Chủ Đề: Một số bài tập Pascal về mảng một chiều
Đề bài: Nhập vào một mảng gồm n số nguyên và số nguyên k. TÌm và đưa ra màn
hình:
a.Giá trị lớn nhất của mảng, vị trí lớn nhất đó
b. Gía trị nhỏ nhất của màng, vị trí
c. Tính tổng bình phương các giá trị ở vị trí chẵn
d. Sắp xếp mảng theo thứ tự tăng dần
e. Đếm xem trong mang có bao nhiêu giá trị bằng k.
var a:array[1..200] of integer;
max,min,m,j,n,imin,imax,d,k,s,tg:integer;
Begin
write('Nhap so phan tu:');readln(n);
write('Nhap k:'); readln(k);
for m:=1 to n do
begin
write('Nhap a[',m,']=');readln(a[m]);
end;
max:=a[1];min:=a[1];d:=0;s:=0;imin:=1;imax:=1;
for m:= 2 to n do
begin
if a[m]>max then
begin
max:=a[m];
imax:=m;
end;
if a[m]<min then
begin
min:=a[m];
imin:=m;
end;
if a[m]=k then d:=d+1;
if m mod 2=0 then s:=s+sqr(a[m]);
end;
{sx day tang dan}
For m:=1 to n-1 do
For j:=m+1 to n do
if a[m]>a[j] then
begin
tg:=a[m];
a[m]:=a[j];
a[j]:=tg;
end;
Writeln('Gia tri lon nhat cua day la ', max,' o vi tri',imax);
Writeln('Gia tri nho nhat cua day la ', min,' o vi tri',imin);
Writeln('Tong binh phuong cac so o vi tri chan ',s);
writeln('So phan tu co gia tri bang ',k,' la ',d);
Writeln('Mang sau khi sap xep');
for m:=1 to n do
write(a[m]);
readln;
End.
{Tim doan dai nhat gom cac so 0 lien tiep}
var a:array[1..100] of integer;
n,dem,i,j,tong,max,vt:integer;
begin
write('Nhap so phan tu cua mang:');readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');readln(a);
end;
dem:=0;
for i:=1 to n do
begin
if a =0 then dem:=dem+1
else dem:=0;
if dem>max then max:=dem;
end;
write('Doan dai nhat gom cac so 0 lien tiep la ',max);
readln;
end.
{Kiem tra mot day la cap so cong}
var a:array[1..100] of integer;
d,i,n:integer;
kt:boolean;
begin
write('Nhap n:');readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');readln(a);
end;
kt:=true;i:=3; d:=a[2]-a[1];
while (i<=n) do
begin
if a-a[i-1] <>d then kt:=false;
inc(i);
end;
if kt then write('day la cap so cong')
else
write('day khong la csc');
readln;
end.
{Tim day con tang co tong lon nhat, in ra day con do}
var a:array[1..100] of integer;
n, i,j,tong,max,vt:integer;
begin
write('Nhap so phan tu cua mang:');readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');readln(a);
end;
i:=1;max:=0;
while (i<=n) do
begin
j:=i+1;tong:=a;
while (j<=n) and (a[j]>a[j-1]) do
begin
tong:=tong+a[j];
if tong>max then
begin
max:=tong;
vt:=i;
end;
inc(j);
end;
tong:=0;
inc(i);
end;
writeln('Day co tong tang lon nhat');
while (vt<=n) and (a[vt]<a[vt+1]) do
begin
write(a[vt]);
vt:=vt+1;
end;
writeln(a[vt]);
write('Voi tong lon nhat la ',max);
readln;
end.
{Tron hai mang duoc sap xep tang dan thanh mot mang duoc sap xep tang dan}
WriteLN('NHAP PHAN TU CHO MANG A:');
Writeln('_________________________');
write('Nhap n:');readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');readln(a);
end;
WRIteln('NHAP PHAN TU CHO MANG B:');
write('Nhap m:');readln(m);
for i:=1 to m do
begin
write('Nhap b[',i,']:');readln(b);
end;
i:=1;j:=1;k:=1;
{Ca hai day chua het}
while (i<=n) and (j<=m) do
begin
if a<b[j] then
begin
c[k]:=a;
inc(i);
end
else
begin
c[k]:=b[j];
inc(j);
end;
inc(k);
end;
{Day b het}
while (i<=n) do
begin
c[k]:=a;
inc(i);
inc(k);
end;
{Day a het}
while (j<=m) do
begin
c[k]:=b[j];
inc(j);
inc(k);
end;
WRITELN('DAY SAU KHI TRON LA');
writeln('___________________');
for k:=1 to n+m do
write(c[k],' ') ;}
{Tron mang theo pp chan o cuoi}
{Type mang=array[1..100] of integer;
var a,b,c:mang;
i,m,k,n,j:integer;
begin
write('Nhap n:');readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');readln(a);
end;
write('Nhap m:');readln(m);
for j:=1 to m do
begin
write('Nhap b[',j,']:');readln(b[j]);
end;
a[n+1]:=32001;
b[m+1]:=32001;
i:=1;j:=1;
for k:=1 to m+n do
begin
if a<b[j] then begin c[k]:=a;inc(i);end
else
begin c[k]:=b[j];inc(j);end;
end;
writeln('Day sau khi tron la');
for k:=1 to m+n do write(c[k]);}
readln;
end.
{Doi cho phan tu lon nhat va nho nhat}
write('Nhap n:');readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,']:');readln(a);
end;
i:=1;j:=n;min:=a[1];max:=a[n];
while i<=n do
begin
if a<=min then
begin
min:=a;
k:=i;
end;
inc(i);
end;
while j>=1 do
begin
if a[j]>= max then
begin
max:=a[j];
x:=j;
end;
dec(j);