Mình có viết 1 chương trình con bằng procedure để tìm max 1 dãy số n với n nhập từ bàn phím(sử dụng đến mảng) rồi truyền trị vào procedure để tính toán, nhưng mình ko thể nào truyền trị vào chương trình con dc vì nó bị xung đột với mảng, lúc nào cũng báo illegal compression :( . bạn nào biết sửa thì giúp mình, sau đây là chương trình mình viết bằng 2 cách khai báo mảng:
Cách 1:
program Timmax;
uses crt;
var n:integer;
{----------------------------}
procedure timmax(n:integer);
var A:array[1..n] of integer ------>error
i,max,csmax:integer;
begin;
for i:=1 to n do
begin
writeln('phan tu thu ',i,' la:');
readln(A);
end;
max:=A[1];
csmax:=1;
for i:=2 to n do
if A>max then
begin
max:=A;
csmax:=i;
end;
writeln('gia tri cua max la: ',max);
writeln('chi so cua max la: ',csmax);
end;
{----------------------------}
begin;
writeln('so phan tu cua day so la`:');
readln(n);
timmax(n);
readln
end.
Cách 2:
program Timmax;
uses crt;
var n:integer;
{----------------------------}
procedure timmax(n:integer);
const x=n;
type Max=array[1..x] of integer;
var A:Max;
i,max,csmax:integer;
begin;
for i:=1 to x do
begin
writeln('phan tu thu ',i,' la:');
readln(A);
end;
max:=A[1];
csmax:=1;
for i:=2 to x do
if A>max then
begin
max:=A;
csmax:=i;
end;
writeln('gia tri cua max la: ',max);
writeln('chi so cua max la: ',csmax);
end;
{----------------------------}
begin;
writeln('so phan tu cua day so la`:');
readln(n);
timmax(n);
readln
end.