Tin 11

H

hung1xpro96

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Giải bài có sử dụng đệ qui:
1/ Nhập vào một mảng :
a/Tìm GTLN của mảng .
b/ Tìm GTNN của mảng.
c/Đưa ra màn hình các dãy con giảm cực đại .
2/ Nhập vào một mảng có n số nguyên A1,A2,...,An.
Sắp xếp mảng A theo thứ tự tăng dần .
 
P

p_trk

Mã:
  uses crt;
 const fin='BTMAX.in'; fout='FILE.out';
 var n,i,moc: integer;
     a: array[1..100] of integer;
     f: text;
 procedure init;
  begin
      assign(f,fin); reset(f);
       readln(f,n);

       for i:=1 to n do
  [COLOR="Red"]      begin

        readln(f,a[i]);
        end;[/COLOR]
        close(f);

      {write('n= '); readln(n);
      for i:=1 to n do
       begin
           write('a[',i,']='); readln(a[i]);
       end;}
      moc:=a[1];
  end;

 procedure print;
  begin
      assign(f,fout); rewrite(f);
      writeln(f,'MAX= ',moc,' voi tong so la :', n);
      for i:=1 to n do
      writeln(f,a[i]);
      close(f);
    {  write('MAX= ',moc);    }
  end;

 procedure max(i:integer);
  begin
   if i>n then print else
   begin
    if a[i]>moc then
        moc:=a[i];
        max(i+1);
   end;
  end;

BEGIN
 clrscr;
 init;
 max(2);
END.
Mình làm bằng file mà hình như bị lỗi bạn sửa giúp mình luôn nha
 
Last edited by a moderator:
N

ngobaochauvodich

bài giải

Giải bài số 2 như sau:

uses crt;
type day=array[1..200] of real;
var a:day;
n,i,j:byte;
c:real;
procedure xuat(a:day;n:byte);
var i:byte;
begin
for i:=1 to n-1 do write(a:0:2,' < ');
writeln(a[n]:0:2);
end;
begin
repeat
i:=0;j:=0;n:=0;
clrscr;
write('nhap so luong phan tu cua day:');readln(n);
for i:=1 to n do
begin
write('nhap so thu ',i,':');readln(a);
end;
for i:=1 to n do
for j:=1 to n-1 do if a[j]>a[j+1] then
begin
c:=a[j];
a[j]:=a[j+1];
a[j+1]:=c;
end;
writeln('Ket qua la sau khi sap xep la:');
xuat(a,n);
writeln('nhan esc de thoat-phim bat ky de thu lai');
until ord(readkey)=27;
end.
 
H

hung1xpro96

Giải bài số 2 như sau:

uses crt;
type day=array[1..200] of real;
var a:day;
n,i,j:byte;
c:real;
procedure xuat(a:day;n:byte);
var i:byte;
begin
for i:=1 to n-1 do write(a:0:2,' < ');
writeln(a[n]:0:2);
end;
begin
repeat
i:=0;j:=0;n:=0;
clrscr;
write('nhap so luong phan tu cua day:');readln(n);
for i:=1 to n do
begin
write('nhap so thu ',i,':');readln(a);
end;
for i:=1 to n do
for j:=1 to n-1 do if a[j]>a[j+1] then
begin
c:=a[j];
a[j]:=a[j+1];
a[j+1]:=c;
end;
writeln('Ket qua la sau khi sap xep la:');
xuat(a,n);
writeln('nhan esc de thoat-phim bat ky de thu lai');
until ord(readkey)=27;
end.

----------------Mặc dù chưa thử lại nhưng cũng cảm ơn bạn !!!-------------------------
 
P

p_trk

mình fix không nhầm thì bài của bạn không phải đệ qui.
nói đến sắp xếp đệ qui thì bạn nên tham khảo Quicksort.
 
Top Bottom