Tên tệp : tepcho.pas Em hãy viết chương trình đọc từ tệp 1 dãy số có n số. Em hãy thực hiện riêng nhưng công việc sau: 1. Sắp xếp tăng, giảm vào tệp sx.pas 2. Tìm số lớn nhất, nhỏ nhất và cho biết vị trí của nó 3. Tính tổng của dãy số 4. Kiểm tra số chẵn, lẻ, số nguyên tố Mỗi câu làm một bài riêng và cho vào từng tệp kết quả ạ.

2 câu trả lời

1.program Taylor;
uses crt;
var d:text; n,i,j,t:longint; a:array[1..10000000]of longint;
begin
clrscr;
   assign(d,'tepcho.pas');reset(d);
      readln(d,n);
      for i:=1 to n do read(d,a[i]);
   close(d);
   assign(d,'sx.pas');rewrite(d);
      for i:=1 to n do
         for j:=i to n do
            if a[i]>a[j] then
               begin
                  t:=a[i];
                  a[i]:=a[j];
                  a[j]:=t;
               end;
      for i:=1 to n do write(d,a[i],' '); writeln(d);
      for i:=1 to n do write(d,a[n-i+1],' ');
   close(d);
end.

2.

program Taylor;
uses crt;
var d:text; n,i,j,t:longint; a:array[1..10000000]of longint;
begin
clrscr;
   assign(d,'tepcho.pas');reset(d);
      readln(d,n);
      for i:=1 to n do read(d,a[i]);
   close(d);
   assign(d,'lonbe.pas');rewrite(d);
      for i:=1 to n do
         for j:=i to n do
            if a[i]>a[j] then
               begin
                  t:=a[i];
                  a[i]:=a[j];
                  a[j]:=t;
               end;
      for i:=1 to n do write(d,a[i],' '); writeln(d);
      for i:=1 to n do write(d,a[n-i+1],' ');
   close(d);
end.

3.program Taylor;
uses crt;
var d:text; n,i,tong:longint; a:array[1..10000000]of longint;
begin
clrscr;
   assign(d,'tepcho.pas');reset(d);
      readln(d,n);
      for i:=1 to n do read(d,a[i]);
   close(d);
   assign(d,'tong.pas');rewrite(d);
   for i:=1 to n do inc(tong,a[i]);
   writeln(d,tong);
   close(d);
end.

4.

program Taylor;
uses crt;
var d:text; n,i:longint; a:array[1..10000000]of longint;
function nt(a:longint):boolean;
var i:longint;
begin
   i:=2;
   while(a>1)and(a mod i<>0) do inc(i);
   nt:=i=a;
end;
begin
clrscr;
   assign(d,'tepcho.pas');reset(d);
      readln(d,n);
      for i:=1 to n do read(d,a[i]);
   close(d);
   assign(d,'clnt.pas');rewrite(d);
      write(d,'Chan:');
      for i:=1 to n do if a[i] mod 2=0 then write(d,a[i],' '); writeln(d);
      write(d,'Le:');
      for i:=1 to n do if a[i] mod 2=1 then write(d,a[i],' '); writeln(d);
      write(d,'Nguyen to:');
      for i:=1 to n do if nt(a[i]) then write(d,a[i],' ');
   close(d);
end.

Câu 1: 

program bai_giai;
var f,g:text;
    A:array[1..10000] of longint;
    n,i,j,tg:longint;
begin
    Assign(f,'tepcho.pas');  reset(f);
    Assign(g,'sapxep.pas');  rewrite(g);
    readln(f,n);
    for i:=1 to n do read(f,A[i]);
    for i:=1 to n-1 do
        for j:=i+1 to n do
            if A[i]>A[j] then
                begin
                    tg:=A[i];
                    A[i]:=A[j];
                    A[j]:=tg;
                end;
    for i:=1 to n do write(g,A[i],' ');
    writeln(g);
    for i:=n downto 1 do write(g,A[i],' ');
    close(f); close(g);
end.

Bài 2:

program bai_giai;
var f,g:text;
    A:array[1..10000] of longint;
    n,i,max,min,bt1,vt2:longint;
begin
    Assign(f,'tepcho.pas');  reset(f);
    Assign(g,'maxmin.pas');  rewrite(g);
    readln(f,n);
    for i:=1 to n do read(f,A[i]);
    max:=A[1]; min:=A[1]; vt1:=1; vt2:=1;
    for i:=2 to n do
        begin
            if A[i]>max then
                begin
                    max:=A[i]; vt1:=i;
                end;
            if A[i]<min then
                begin
                    min:=A[i]; vt2:=i;
                end;
        end;
    writeln(g,max,' ',vt1);
    writeln(g,min,' ',vt2);
    close(f); close(g);
end.

Bài 3:

program bai_giai;
var f,g:text;
    A:array[1..10000] of longint;
    n,i,t:longint;
begin
    Assign(f,'tepcho.pas');  reset(f);
    Assign(g,'tong.pas');  rewrite(g);
    readln(f,n);
    for i:=1 to n do read(f,A[i]);
    t:=0;
    for i:=1 to n do t:=t+A[i];
    write(g,t);
    close(f); close(g);
end.

Bài 4:

program bai_giai;
var f,g:text;
    A:array[1..10000] of longint;
    n,i:longint;
function ktnt(k:longint):boolean;
var r:longint;
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,'tepcho.pas');  reset(f);
    Assign(g,'maxmin.pas');  rewrite(g);
    readln(f,n);
    for i:=1 to n do read(f,A[i]);
    for i:=1 to n do
        if A[i] mod 2=0 then write(g,A[i],' ');
    writeln(g);
    for i:=1 to n do
        if A[i] mod 2=1 then write(g,A[i],' ');
    writeln(g);
    for i:=1 to n do
        if ktnt(A[i]) then write(g,A[i],' ');
    close(f); close(g);
END.

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