Tải bản đầy đủ (.doc) (18 trang)

Mảng 1 chiều pascal có code đi kèm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (57.77 KB, 18 trang )

Học Sinh : Trần Quang Linh
Lớp :A13
Trường :Trung Học Phổ Thông Triệu Sơn

F.Mảng 1 Chiều
Viết chương trình:
1.nhập vào một mảng A gồm n(n<100) phần tử số nguyên , sau đó
hiển thị mảng vừa nhập lên màn hình theo các dạng sau:
a) a0 a1 a2 ….. an-1 cách nhau 1 khoảng trắng
b) a0,a1,a2,…..,an-1 cách nhau bởi dấu phẩy
c) [a0 a1 a2 …. an-1]
bài làm:
a)
program it_linh;
uses crt;
var a:array[0..100] of integer;
n,i:integer;
begin
clrscr;
writeln(' nhap so phan tu cua mang ');
readln(n);
for i:=0 to n do
write('','a',i, ' ');
readln
end.


b)
program it_linh;
uses crt;
var a:array[0..100] of integer;


n,i:integer;
begin
clrscr;
writeln(' nhap so phan tu cua mang ');
readln(n);
for i:=0 to n do
write('','a',i,',');
readln
end.
c)
program it_linh;
uses crt;
var a:array[0..100] of integer;
n,i:integer;
begin
clrscr;
writeln(' nhap so phan tu cua mang ');
readln(n);
write('[');
for i:=0 to n do
write('','a',i,' ');
write(']');
readln
end.


Bài 1.
program it_linh;
uses crt;
var a:array[1..100] of integer;

n,i:integer;
begin
clrscr;
writeln(' nhap so phan tu cua mang ');
readln(n);
for i:=1 to n do
begin
writeln;
write('nhap phan tu thu ',i,':');
readln(a[i]);
end;
begin
writeln;
write('mang vua nhap la:');
for i:=1 to n do
write('',a[i],' ');
end;
begin
writeln;
write('mang vua nhap la:');
for i:=1 to n do
write('',a[i],',');
end;
begin
writeln;
write('mang vua nhap la:');
write('[');
for i:=1 to n do
write('',a[i],' ');
write(']');

end;
readln
end.


Bài 2 . khởi tại một mảng có 10 phần tử là các số nguyên khác nhau từng
đôi một .tìm vị trí và giá trị của phần tử lớn nhất trong mảng .
Bài làm
program it_linh;
uses crt;
type manga = array[1..10] of integer;
var n,i,max,dem:integer;
a:manga;
begin
clrscr;
writeln('nhap so phan tu cua mang :');
readln(n);
for i:=1 to n do
begin
writeln;
write('nhap phan thu nhat',i,' : ');
readln(a[i]);
end;
begin
writeln;
write('phan tu co gia tri lan nhat trong mang ');
write('[');
for i:=1 to n do
write('',a[i],' ');
write(']');

end;
max:=a[1];
dem:=1;
for i:=1 to n do
begin
if a[i] >= max then
begin
max:=a[i];
dem:=i;
end;
end;
writeln('la phan tu thu ',dem,',');
writeln('co gia tri la',max);
readln
end.


Bài 3 phát sinh 1 mảng gồm n(n ≤ 50 ) phần tử là các số nguyên ngẫu nhiên có
giá trị thuộc [0,127].
Test nhập số phần tử 5
Mảng ngẫu nhiên gồm 5 phần tử là : [3 7 100 97 23]
Bài làm:
program it_linh;
uses crt;
type ap = array[1..50] of integer;
var n,i:integer;
a:ap;
begin
writeln('nhap so phan tu cua mang bat ki trong (0,127)');
readln(n);

randomize;
for i:=1 to n do
begin
A[i]:=random(127);
end;
write('day so bat ki do la:');
for i:=1 to n do
write(A[i]:5);
readln
end.


Bài 4. phát sinh 1 mảng gồm n(n ≤ 40 ) phần tử là các số thực ngẫu nhiên có
giá trị thuộc [0,100].
Bài làm:
program it_linh;
uses crt;
type ap = array[1..40] of real;
var n,i:integer;
a:ap;
begin
writeln('nhap so phan tu cua mang bat ki trong (0,100)');
readln(n);
randomize;
for i:=1 to n do
begin
A[i]:=random(100);
end;
write('day so bat ki do la:');
for i:=1 to n do

write(A[i]:6:2);
readln
end.


Bài 5 . phát sinh 1 mảng gồm n(n ≤ 50 ) phần tử là các số nguyên ngẫu nhiên
có giá trị thuộc [1,500] sắp xếp lại theo thứ tự tăng dần.
Bài làm:
program it_linh;
uses crt;
type ap = array[1..50] of integer;
var n,i,j,tg:integer;
a:ap;
begin
clrscr;
writeln('nhap so phan tu cua mang bat ki trong (0,500)');
readln(n);
randomize;
for i:=1 to n do
begin
A[i]:=random(500);
end;
write('day so bat ki do la:[ ');
for i:=1 to n do
write(A[i]:6);
write(']');
begin
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;
end;
writeln;
write('sau khi sap xep la: [ ');
for i:=1 to n do
write(A[i]:6);
write(']');
readln
end.


Bài 6. khởi tạo hai mảng A và B cùng kích thước n và m (m,n ≤ 40) chứa các
nguyên thuộc [1,500] . Sắp xếp trộn hai mảng lại in ra theo chiều tăng dần.
Test
A:[4 7 9 2]
B:[6 8 1 3 5]
Trộn [1 2 3 4 5 6 7 8 9]
Bài làm:
program it_linh;
uses crt;
type ap = array[1..40] of integer;
var n,m,i,j,tg:integer;
a,b,c:ap;
begin
clrscr;
begin

writeln('nhap so phan tu cua mang A');
readln(n);
for i:=1 to n do
begin
writeln('A[',i,']','=');
readln(A[i]);
end;
end;
begin
writeln('nhap so phan tu cua mang B');
readln(m);
for j:=1 to m do
begin
writeln('B[',j,']','=');
readln(B[j]);
end;
end;
begin
for i:=1 to n do
C[i]:= A[i];
for j:=1 to m do
C[j+n]:=B[j];
end;
begin
for i:=1 to (n+m)-1 do
for j:=i+1 to n+m do


if C[i] > C[j] then
begin

tg:=C[i];
C[i]:=C[j];
C[j]:=tg;
end;
end;
writeln;
write('mang sau khi sap xep [');
for i:=1 to n+m do
write(C[i]:6);
write(']');
readln
end.
Bài 7.Nhập vào một mảng số thực gồm n (n ≤ 30) phần tử, sau đó kiểm tra
xem mảng này có đối
xứng hay không. Một mảng được gọi là đối xứng nếu
Mảng A: [7.2 5.0 5.0 7.2]
Mảng này đối xứng
Mảng A: [1.0 3.3 3.3 2.0]
Mảng này không đối xứng
Bài làm:
program it_linh;
uses crt;
type an = array[0..30] of real;
var i,n,d:integer;
a:an;
begin
clrscr;
writeln('nhap so phan tu cua mang');
readln(n);
for i:=0 to n-1 do

begin
writeln('nhap phan thu thu',i,':');
readln(A[i]);
end;
d:=0;
for i:=0 to (trunc (n/2))-1 do
begin
if A[i] = A[(n-1)-i] then d:=d+1;
end;


if d = n/2 then writeln('day la day doi xung')
else writeln(' day khong phai day doi xung ');
readln
end.
Bài 8. Nhập vào một mảng các số nguyên gồm n (n≤20) phần tử sau đó tính
trung bình cộng các số chẵn.
Bài làm :
program it_linh;
uses crt;
type ar = array [1..20] of integer;
var i,n,j,c:integer;
a:ar;
begin
clrscr;
writeln('nhap so phan tu cua mang');
readln(n);
for i:=1 to n do
begin
write('nhap phan tu thu',i,':');

readln(A[i]);
end;
c:=0;
j:=0;
for i:=1 to n do
begin
if A[i] mod 2 =0 then
begin
c:=c+A[i];
j:=j+1;
end;
end;
writeln('trung binh cong cac so chan cua mang la',c/j:4:2);
readln
end.


Bài 9. Liệt kê các phần tử có giá trị ngẫu nghiên nhỏ hơn hoặc bằng x trong
một mảng gồm n≤30 phần tử số thực dược sinh ngẫu nhiên , mỗi phần tử có
giá trị thuộc đoạn [0,10].
Bài làm :
program it_linh;
uses crt;
type ar = array[1..30] of real;
var n,i,j : integer;
a:ar;
x:real;
begin
writeln('nhap so phan tu cua mang');
readln(n);

randomize;
for i:=1 to n do
A[i]:= random (10);
write('mang sinh ngau nhien la: [');
for i:=1 to n do
write(A[i]:6:2);
write(']');
writeln;
writeln('nhap so can lay nho hon mang ngau nhien');
readln(x);
j:=0;
for i:=1 to n do
begin
if (A[i] < x) or (A[i] = x) then j:=j+1;
end;
write('co ', j ,' phan tu nho hon hoac bang ', x:6:2 ,' la : ');
for i:=1 to n do
begin
if (A[i] < x) or (A[i] = x) then write(A[i]:6:2);
end;
readln
end.


Bài 10 . nhập vào 1 mảng các số thực gồm n (n≤100) phần tử và số nguyên k.
xóa phần tử k trong mảng.
Bài làm:
program it_linh;
uses crt;
var n,i,k: integer;

A:array[1..100] of real;
begin
clrscr;
writeln('nhap so phan tu');
readln(n);
writeln;
for i:=1 to n do
begin
write('nhap tu thu ' , i , ':');
readln(A[i]);
end;
write('vi tri phan tu can xoa',':'); readln(k);
if k < 1 then writeln(' khong co vi tri phan tu de xoa')
else if (k < n) and (k > 1) then
begin
write(' mang sau khi xoa phan tu thu ' , k , 'la :');
for i:=k to n-1 do A[i]:=A[i+1];
for i:=1 to n-1 do write(A[i]:4:2, ' ' , ' ');
end;
if k > n then writeln(' khong co vi tri phan tu de xoa');
readln
end.


Bài 11.xóa phần tử có giá trị bằng x trong mảng gồm n phần tử trong mảng
gồn n số nguyên . mảng nguyên được sinh ngẫu nhiên gồm n≤100 phần tử có
giá trị từ [0,200] , áp dụng xóa phần tử có giá trị bằng x .
Bài làm:
program it_linh;
uses crt;

var a:array[1..100] of integer;
n,i,k,j:integer;
begin
clrscr;
writeln('nhap so phan tu');
readln(n);
randomize;
for i:=1 to n do
begin
A[i]:=random(200);
end;
write('mang bat khi do la :');
for i:=1 to n do
begin
write(A[i]:4);
end;
writeln;
writeln(' nhap gia tri can xoa ');
readln(k);
j:=0;
for i:=1 to n do
begin
if k = A[i] then
begin
j:=j+1;
A[i]:=A[i+1];
for i:=i to n do A[i+1]:=A[i+2];
end;
end;
writeln(' mang co ' , j , ' phan tu bi xoa .');

writeln;
write(' mang sau khi xoa la : ');
for i:=1 to n-j do write( A[i] :4);
readln
end.


Bài 12. Chèn một số nguyên x vào mảng A sao cho sau khi chèn mảng A có
thứ tự tăng dần . biết mảng A đã có thứ tự tăng dần.
Bài làm:
program it_linh;
uses crt;
var A:array[1..100] of integer;
n,i,k,j:integer;
begin
clrscr;
writeln(' nhap so phan tu cua mang ');
readln(n);
writeln(' nhap mang theo thu tu tang dan');
for i:=1 to n do
begin
writeln;
write('nhap phan tu thu ',i,':');
readln(A[i]);
end;
begin
writeln;
write('mang vua nhap la:');
for i:=1 to n do
write('',A[i],' ');

end;
writeln;
writeln('nhap gia tri phan tu can chen ');
readln(k);
i:=1;
while A[i] < k do i:=i+1;
for j:= n downto i do
begin
A[j+1]:=A[j];
end;
A[j]:=k;
for i:=1 to n+1 do write(A[i],' ', ' ');
readln
end.


Bài 13 .Nhập vào mảng A gồm n (n ≤ 100) phần tử là các số nguyên dương.
Trong quá trình nhập kiểm tra các phần tử nhập vào không được trùng, nếu
trùng thì thông báo và yêu cầu nhập lại. Quá trình nhập dừng lại khi nhập
vào số 0.
Nhập phần tử thứ 1: 5
Nhập phần tử thứ 2: 3
Nhập phần tử thứ 3: 5
Đã có phần tử này trong mảng. Vui lòng nhập lại!
Nhập phần tử thứ 3: 4
Nhập phần tử thứ 4: 0
Mảng vừa là [5 3 4], gồm có 3 phần tử.
Bài Làm:
program it_linh;
uses crt;

var A: array[1..100] of integer;
i,n,c,j :integer;
begin
clrscr;
writeln;
i:=0;
repeat
i:=i+1;
n:=i;
write('nhap phan tu thu ', i , ' la:');
readln(A[i]);
c:=A[i];
if n <> 1 then
begin
for j:= 1 to n-1 do
if A[j] = c then
begin
writeln(' Da Co Phan Tu Nay !!!. Vui Long Nhap Lai !');
write('nhap phan tu thu ', i , ' la:');
readln(A[i]);
end;
end;
until A[i] = 0;
writeln;
write(' MANG VUA NHAP LA :[ ');
for i:=1 to n-1 do write(A[i],' ');
write(']');
readln
end.



Bài 14. Quay vòng mảng A sang phải k vị trí.
Nhập số phần tử n: 5
Nhập mảng A: 3 5 1 2 4
Nhập số vị xoay k: 3
Mảng A sau khi xoay 3 vị trí: 1 2 4 3 5
Bài Làm:
program it_linh;
uses crt;
var A,B: array[1..1000] of integer;
i,j,n,k:integer;
begin
clrscr;
writeln('nhap so phan tu');
readln(n);
for i:=1 to n do
begin
write('Nhap phan tu thu',i,':');
readln(A[i]);
end;
writeln('nhap so vi tri xoay sang phai');
readln(k);
for j:=n downto k do B[j]:=A[j];
for j:=1 to n-k do A[j+k]:=A[j];
for j:=n downto k do
A[j-2]:=B[j];
for j:=1 to n do write(A[j],' ');
readln
end.



Bài 15. Tách 1 mảng các số nguyên X thành 2 mảng A và B, sao cho mảng A
chứa toàn số lẻ và mảng B chứa toàn số chẵn. Mảng X được sinh một cách
ngẫu nhiên với mỗi phần tử có giá trị thuộc đoạn [1, 50].
Nhập số phần tử của mảng X: 7
Mảng X được sinh ngẫu nhiên: [22 7 14 30 43 6 2] Sau khi tách, ta có:
Mảng A: [7 43]
Mảng B: [22 14 30 6 2]
Bài Làm:
program it_linh;
uses crt;
var A,B: array[1..1000] of integer;
i,n,j,k,m:integer;
begin
clrscr;
writeln('nhap so phan tu de boc ngau nhien');
readln(n);
randomize;
k:=0;
m:=0;
randomize;
for i:=1 to n do
A[i]:=random(50);
writeln;
write('mang bat ki la: [');
for i:=1 to n do write(A[i],' ');
write(']');
for i:=1 to n do
if A[i] mod 2 = 0 then
begin

m:=m+1;
B[m]:=A[i];
end;
for i:=1 to n do
if A[i] mod 2 <> 0 then
begin
k:=k+1;
A[k]:=A[i];
end;
writeln;
write('Mang A :[');
for i:=1 to k do write(A[i],' ');
write(']');
writeln;
write('Mang B :[');
for i:=1 to m do write(B[i],' ');
write(']');
readln
end.


Bài 16. Nhập vào một mảng A gồm n (n ≤ 100) phần tử số nguyên, sau đó hiển thị các
dãy con tăng có trong mảng.
Nhập vào số phần tử của mảng: 7
Nhập phần tử thứ 1: 1
Nhập phần tử thứ 2: 2
Nhập phần tử thứ 3: 8
Nhập phần tử thứ 4: 4
Nhập phần tử thứ 5: 7
Nhập phần tử thứ 6: 10

Nhập phần tử thứ 7: 9
Mảng vừa nhập là: [1 2 8 4 7 10 9]
Các dãy con tăng trong mảng là:
- Dãy con thứ 1: 1 2 8
- Dãy con thứ 2: 4 7 10
- Dãy con thứ 3: 9

Bài Làm:



×