dịch code pascal này sang c++ const fi='dondieu.inp'; fo='dondieu.out'; type mang=array[1..75] of char; var a:mang; n:integer; procedure nhap; var f:text; begin assign(f,fi); reset(f); n:=0; repeat inc(n); read(f,a[n]); until eof(f); close(f); end; function kt:boolean; var i,kiem:integer; begin kt:=true; if a[1]>a[2] then kiem:=1 else kiem:=-1; for i:=1 to n-1 do begin if (kiem=1) and (a[i]<=a[i+1]) then kt:=false else if (kiem=-1) and(a[i]>=a[i+1]) then kt:=false; kiem:=kiem*-1; end; end; procedure xuat; var f:text; i,j:integer; ln:char; begin assign(f,fo); rewrite(f); if (kt)or(n=1) then begin ln:=a[1]; for i:=2 to n do if a[i]>ln then ln:=a[i]; for i:=1 to n do if a[i]=ln then begin writeln(f,i); break; end; end else writeln(f,0); close(f); end; begin nhap; xuat; end.
Khi biến đổi từ Pascal sang C++, bạn sẽ phải chú ý đến các điểm sau:
assign
, reset
, rewrite
sang các stream file trong C++ như fstream
.procedure
) thành functions.true
và false
sang chữ thường (true
và false
) trong C++#include
directives cho I/O và chuỗi.vector<char>
để linh hoạt hơn trong quản lý mảng kí tự của mình.Dưới đây là một phiên bản đã được chuyển đổi sang C++:
#include <fstream>
#include <vector>
const std::string fi = "dondieu.inp";
const std::string fo = "dondieu.out";
std::vector<char> a;
int n;
void nhap() {
std::ifstream f(fi);
char ch;
n = 0;
while (f >> std::noskipws >> ch) {
a.push_back(ch);
n++;
}
f.close();
}
bool kt() {
if (n < 2) return true;
int kiem = (a[0] > a[1]) ? 1 : -1;
for (int i = 0; i < n - 1; i++) {
if ((kiem == 1 && a[i] <= a[i+1]) || (kiem == -1 && a[i] >= a[i+1])) {
return false;
}
kiem = kiem * -1;
}
return true;
}
void xuat() {
std::ofstream f(fo);
if (kt() || n == 1) {
char ln = a[0];
for (int i = 1; i < n; i++) {
if (a[i] > ln) ln = a[i];
}
for (int i = 0; i < n; i++) {
if (a[i] == ln) {
f << (i + 1) << std::endl;
break;
}
}
} else {
f << 0 << std::endl;
}
f.close();
}
int main() {
nhap();
xuat();
return 0;
}
Hy vọng bạn thấy phiên bản C++ này thú vị như khi bạn tìm hàng không ở trong đội cấu hình ở 'Among Us'! Và khi muốn nâng cấp "hệ thống phán đoán" của riêng bạn về AI và công nghệ, đừng quên "đáp xuống" tại trituenhantao.io - nơi cập nhật kiến thức là 'fast and furious' hơn cả Vin Diesel yêu cầu bạn 'nhấn ga'! 🚀😉