Câu hỏi:

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:

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'! 🚀😉


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử