Nhập mảng trong pascal (có sử dụng tệp)

cho 1 dãy gồm n số x1,x2,…,xn mỗi số có giá trị không vượt qua 10^6
yêu cầu: đếm số lượng phần tử ở vị trí chẵn có giá trị lẻ.
ai giúp mk làm bài này vs T^T

khai báo 1 biếm dem;
if(i%2==0 && a[i]%2!=0) dem++;

3 Likes

xin lỗi nhưng mk vẫn chưa hiểu lắm, bạn có thể giải thích rõ hơn đc ko?

1 Like

Cấu trúc chương trình theo cách hiểu của mình:

  • Khai báo 1 biến là dem là 1 int để lưu trữ số lượng các phần tử có yêu cầu như đề
  • Sau đó khai báo thêm 1 array nữa là a để lưu trữ x1,x2,…xn
  • Hỏi user nhập n
  • Hỏi user thêm 1 lần nữa để nhập các số từ số thứ 1 đến số thứ n, sau đó thêm lần lượt các số đó vào array (cái này bạn dùng vòng lặp for)
  • Sau đó dùng 1 vòng lặp for từ 0 đến n với i nằm trong n để kiểm tra xem i có chia hết cho 2 không và thành phần thứ i trong dãy a có chia hết cho 3 không(hay if(i%2==0 && a[i]%2!=0) như của @Vinh_Nguyen), nếu có thì dem++, nếu không thì bỏ qua.
  • Sau khi hoàn thành vòng lặp for thì in dem ra là xong

Đây là cấu trúc của chương trình theo cách hiểu của mình, mình chưa code Pascal bao giờ cả nên không biết là có làm được không và cũng không thể show code cho bạn được.

5 Likes

cảm ơn, mk cũng nhập như thế trong pascal mà khi mk không sử dụng tệp thì nó chạy đc mà khi sử dụng tệp lại ko đc
bạn có biết tại sao ko? giải thích theo cách bạn hiểu cũng đc ha

Trong Pascal khi xử lý tệp có hai loại tệp: tệp văn bản text và tệp nhị phân binary.

Hơn nữa, nếu xử lý tệp text thì bạn phải tạo ra nó bằng Notepad có sẵn trên Windows mà không sử dụng các trình soạn thảo khác (cũng có thể sử dụng nếu bạn biết encoding là gì) để lưu file dưới dạng mã ASCII thì Pascal mới đọc được.

Dùng trình soạn thảo khác khi lưu có khả năng thành encoding khác, Pascal bó tay.

2020-11-15-10-28_2

3 Likes

có dạng sử dụng mảng vs 2 tệp ko???

Hai tệp thì mở tệp thêm một lần nữa, nó không có gì phức tạp so với 1 tệp.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?