Đề bài: Cho mảng a gồm n phần tử kiểu nguyên có trong tệp dữ liệu DL.PAS . Lập trình thực hiện các công việc sau . Kết quả lưu trong tệp KQ. PAS 1. Đếm số phần tử lẻ chia hết cho 7 2. Tính tổng các phần từ thuộc [10.30] 3. Tính trung bình cộng các phân tử âm lẻ 4. Đếm các số là số nguyên tố có trong dãy.

2 câu trả lời

Chương trình:

uses crt;
var f1, f2: text;
    a: array[1..500] of longint;
    i,n,z,dema,demc,demd: integer; tongb: longint; tongc: real;
    lasnt: boolean;
begin
     {Khai bao bien ghi file}
     assign(f1, 'dl.pas');
     reset(f1);
     assign(f2, 'kq.pas');
     rewrite(f2);

     {Doc du lieu}
     readln(f1,n);
     for i:=1 to n do
         readln(f1,a[i]);

     {Cau a}
     for i:=1 to n do
         if ((a[i] mod 2 = 1) and (a[i] mod 7 = 0)) then dema:=dema+1;

     {Cau b}
     for i:=1 to n do
         if ((a[i]>=10) and (a[i]<=30)) then
            tongb:=tongb+a[i];
     {Cau c}
     for i:=1 to n do
         if ((frac(a[i]/2) = -0.5) and (a[i] < 0)) then
         begin
              tongc:=tongc+a[i];
              demc:=demc+1;
         end;
     if (demc<>0) then tongc:=tongc/demc else tongc:=0;

     {Cau d}
     for i:=1 to n do
     begin
          if ((a[i] <> 0) and (a[i] <> 1)) then
          begin
               for z:=2 to a[i]-1 do
               begin
                    if (a[i] mod z = 0) then lasnt:=false;
               end;
          end
          else lasnt:= false;
          if (lasnt=true) then
          begin
               demd:=demd+1;
               lasnt:=true;
          end
          else lasnt:=true;
     end;

     {Ghi ket qua: }
     writeln(f2, 'Cau a: So luong phan tu le chia het cho 7 la: ',dema);
     writeln(f2, 'Cau b: Tong cac so trong day co gia tri tu 10 den 30 la: ',tongb);
     writeln(f2, 'Cau c: Trung binh cong cac so trong day co gia tri am la: ',tongc:0:0);
     writeln(f2, 'Cau d: So luong so nguyen to: ',demd);
     close(f1);
     close(f2);
end.

====================

Dữ liệu vào (DL.pas)

15
7
21
14
18
40
26
-4
-7
2
3
5
7
12
15
13

----------------------

Đầu ra:

Cau a: So luong phan tu le chia het cho 7 la: 3
Cau b: Tong cac so trong day co gia tri tu 10 den 30 la: 119
Cau c: Trung binh cong cac so trong day co gia tri am la: -7
Cau d: So luong so nguyen to: 7

program bai_giai;
var f,g:text;
    A:array[1..10000] of integer;
    n,i,dl,t,ta,da,dnt:integer;
function ktnt(k:integer):boolean;
var r:integer;
begin
    ktnt:=false;
    if k<2 then exit;
    for r:=2 to trunc(sqrt(k)) do
        if k mod r=0 then exit;
    ktnt:=true;
end;
BEGIN
    Assign(f,'DL.PAS');  reset(f);
    Assign(g,'KQ.PAS');  rewrite(g);
    readln(f,n);
    for i:=1 to n do read(f,A[i]);
    dl:=0; t:=0; ta:=0; da:=0; dnt:=0;
    for i:=1 to n do
        begin
            if (A[i] mod 2=1) and (A[i] mod 7=0) then dl:=dl+1;
            if (A[i]>=10) and (A[i]<=30) then t:=t+A[i];
            if (A[i]<0) and (A[i] mod 2=1) then
                begin
                    ta:=ta+A[i]; da:=da+1;
                end;
            if ktnt(A[i]) then dnt:=dnt+1;
        end;
    writeln(g,dl);
    writeln(g,t);
    writeln(g,ta/da:0:2);
    writeln(g,dnt);
    close(f); close(g);
end.

Câu hỏi trong lớp Xem thêm