+Khai báo biến mảng
var
<tên biến mảng>:array[x..y] of <kiểu dữ liệu>;
trong đó:
-tên biến mảng: đặt theo quy tắc
-x chỉ số đầu, y chỉ số cuối (x và y là các số nguyên, x<y)
ví dụ1:
var
a:array[1..8]of integer;
khai báo biến mảng a gồm 8 phần tử kiểu số nguyên. Phần tử đầu tiên có chỉ số là 1, phần tử cuối có chỉ số là 8
ví dụ 2:
var
c:array[3..10]of real;
khai báo biến mảng c gồm 8 phần tử kiểu số thực. Phần tử đầu tiên có chỉ số là 3, phần tử cuối có chỉ số là 10
+Làm việc với các phần tử của biến mảng
ví dụ:
-cần gán giá trị cho phần tử thứ 3 của biến mảng trong ví dụ 1 thì ta thực hiện lệnh sau
a[3]:=9;
-cần in: write(a[3]);
-cần nhập từ bàn phím: readln(a[3]);
BÀI TẬP
Bài 1: Nhập dãy n số nguyên từ bàn phím
var
<tên biến mảng>:array[x..y] of <kiểu dữ liệu>;
trong đó:
-tên biến mảng: đặt theo quy tắc
-x chỉ số đầu, y chỉ số cuối (x và y là các số nguyên, x<y)
ví dụ1:
var
a:array[1..8]of integer;
khai báo biến mảng a gồm 8 phần tử kiểu số nguyên. Phần tử đầu tiên có chỉ số là 1, phần tử cuối có chỉ số là 8
ví dụ 2:
var
c:array[3..10]of real;
khai báo biến mảng c gồm 8 phần tử kiểu số thực. Phần tử đầu tiên có chỉ số là 3, phần tử cuối có chỉ số là 10
+Làm việc với các phần tử của biến mảng
ví dụ:
-cần gán giá trị cho phần tử thứ 3 của biến mảng trong ví dụ 1 thì ta thực hiện lệnh sau
a[3]:=9;
-cần in: write(a[3]);
-cần nhập từ bàn phím: readln(a[3]);
BÀI TẬP
Bài 1: Nhập dãy n số nguyên từ bàn phím
-in dãy vừa nhập ra màn hình
-tính tổng các phần tử trong dãy vừa nhập
-tính tổng các số chẵn, số lẻ trong dãy
-đếm các số chẵn, số lẻ trong dãy
ví dụ:
ví dụ:
Nhập
|
Xuất
|
N=9
9 2 6 7 8 9 6 5 20
|
Day vua nhap la:
9 2 6 7 8 9 6 5 20
Tong cac phan tu trong day la:72
Tong so chan trong day:42
Tong so le trong day:30
So luong so chan:5
So luong so le:4
|
Bài 2: nhập dãy n số nguyên
-tìm giá trị lớn nhất và và giá trị nhỏ nhất của dãy vừa nhập
ví dụ:
ví dụ:
Nhập
|
Xuất
|
N=9
9 2 6 7 68 9 6 5 11
|
Gia tri lon nhat la: 68
Gia tri nho nhat la: 2
|
Bài 3: Nhập dãy n số nguyên
-sắp xếp dãy vừa nhập thành dãy tăng (hoặc dãy giảm)
Nhập
|
Xuất
|
N=9
9 2 6 7 68 9 6 5 1
|
Day sau khi sap xep tang
1 2 5 6 6 7 9 9 68
|
Bài 4: Nhập dãy n số nguyên
-nhập số nguyên x. Hỏi trong dãy có bao nhiêu số nguyên có
giá trị bằng x
ví dụ
ví dụ
Nhập
|
Xuất
|
N=9, x=6
9 2 6 7 68 9 6 5 11
|
có 2 phần tử bằng 6
|
Bài 5: Nhập dãy n số nguyên
Hỏi trong dãy có số âm không. Nếu có in ra 1 ngược lại in ra 0
ví dụ
Bài 6: Nhập dãy n số nguyênví dụ
Nhập
|
Xuất
|
N=8
9 2 -6 7 8 9 6 -5
|
1
|
-Nhập số nguyên x và k. Chèn x vào vị trí k
ví dụ:
ví dụ:
Nhập
|
Xuất
|
N=9, x=12, k=3
9 2 6 7 68 9 6 5 1
|
9 2 12 6 7 68 9 6 5 1
|
Bài 7: Nhập dãy n số nguyên
in ra các số là nguyên tố có trong dãy vừa nhập
ví dụ
ví dụ
Nhập
|
Xuất
|
N=8
9 2 -6 7 8 9 1 -5
|
2 7
|
Bài 8: (*) Nhập dãy n số nguyên
Tìm số âm lớn nhất trong dãy. Nếu không có số âm ghi chữ No
ví dụ
ví dụ
nhập
|
xuất
|
9
20 10 -3 9 -1 -20 39 7 8
|
So am lon nhat la: -1
|
4
10 68 22 39
|
So am lon nhat la:No
|
Bài 9: Nhập dãy n số nguyên
đếm xem trong dãy có bao nhiêu cặp mà các phần tử cạnh nhau là số chẵn
ví dụ
ví dụ:
Chú ý: Phải tạo thật sự được mảng b
ví dụ
Nhập
|
Xuất
|
Giải thích
|
9
20 10 -3 9 -1 -20 39 7 8
|
1
|
|
7
10 68 22 39 30 60 5
|
Bài 10: Nhập dãy n số nguyên.
Đếm xem trong dãy có bao nhiêu số chính phương
Số chính phương là bình phương của một số nguyên. Ví dụ 4, 9,16, 25,...
ví dụ
ví dụ
Nhập
|
Xuất
|
Giải thích
|
8
20 10 -3 9 -1 -20 39 7
|
1
|
Bài 11: Nhập dãy n số nguyên vào mảng a
Tạo mảng b chỉ gồm các số chẵn từ mảng aví dụ:
Nhập
|
Xuất
|
8
10 7 9 8 2 30 60 11
|
Mang a:
10 7 9 8 2 30 60 11
Mang b:
10 8 2 30 60
|
Bài 4:
Trả lờiXóavar
a:array[1..1000]of longint;
i,d,x,n:longint;
begin
write('nhap n=');readln(n);
write('nhap x=');readln(x);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
d:=0;
for i:=1 to n do
if x=a[i] then
d:=d+1;
writeln('co ',d,' phan tu bang ',x);
readln;
end.
chính xác. 10đ
Trả lờiXóaBài 5:
Trả lờiXóavar
a:array[1..1000]of longint;
i,n,d:longint;
begin
write('nhap n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
d:=0;
for i:=1 to n do
if a[i]<0 then
d:=d+1;
if d>=1 then
writeln('1')
else
writeln('0');
readln;
end.
Chính xác. 10đ
Xóabài 7
Trả lờiXóafunction snt(a:longint):byte;
var b,c:longint;
begin
c:=0;
for b:=2 to a div 2 do
if a mod b =0 then c:=c+1;
if (c=0)and(a>1) then snt:=1 else snt:=0;
end;
var a:array[1..1000]of longint;
n,b,c:longint;
begin
readln(n);
for b:=1 to n do
readln(a[b]);
for b:=1 to n do
if snt(a[b])=1 then writeln(a[b],' ');
readln
end.
quá tốt. 10đ
Xóasố lớn nhất trong dãy số
Trả lờiXóauses crt;
var a,b,c,d,max:longint;
begin
readln(a);
max:=0;
while a>0 do
begin
b:=a mod 10;
a:=a div 10;
if b>max then max:=b;
end;
writeln(max);
readln
end.
Chính xác. 10đ. Tìm chữ số nhỏ nhất nữa nhé
Xóabài 6
Trả lờiXóauses crt;
var a:array[1..1000]of longint;
n,x,k,d,b,c:longint;
begin
clrscr;
readln(n);
readln(x);
readln(k);
for c:=1 to n do
readln(a[c]);
for c:=1 to n do
begin
b:=b+1;
if k=b then write(x,' ',a[c],' ')
else write(a[c],' ');
end;
readln
end.
Bài này của Phát thực chất là in ra dãy được dãy như ví dụ, nhưng chưa chèn vào dãy được nhé. Phải thực sự chèn vào được x vào dãy để sau này còn phát triển làm bài khác
XóaBài 6
Trả lờiXóauses crt;
var
a:array[1..1000]of longint;
n,i,d,k,x:longint;
begin
clrscr;
readln(n);
readln(x);
readln(k);
d:=0;
for i:=1 to n do
readln(a[i]);
writeln('cac so vua nhap trong day la:');
for i:=1 to n do
begin
d:=d+1;
if d=k then
write(x,' ');
write(a[i],' ');
end;
readln
end.
bài của Vạn cũng như của Phát chưa thật sự chèn được x vào dãy nhé
Trả lờiXóaTuy nhiên cũng phải khen 2 em rất thông minh khi in ra được dãy giống như đã chèn được vào
Trả lờiXóabài 8
Trả lờiXóauses crt;
var a:array[1..1000]of longint;
b,c,n,max:longint;
begin
readln(n);
for b:=1 to n do
begin
readln(a[b]);
if a[b]<0 then max:=a[b];
end;
c:=0;
for b:=1 to n do
if a[b]<0 then
begin
if a[b]>max then max:=a[b];
c:=c+1;
end;
if c>=1 then
writeln(max)
else writeln('no');
readln;
end.
giỏi. 10đ
Xóaprogram khoa_85;
Trả lờiXóaVar
A:array[1..1000] of integer;
Y,n,m:integer;
Begin
Readln(n);
For y:=1 to n do
Begin
Readln(a[y]);
End;
For y :=1 to n do
M:=a[1];
If ma[y] then
N:=a[y];
End;
If n<0then
Writeln(‘1’)
Else
Writeln(‘0’);
Readln;
End.
program khoa-85;
Trả lờiXóabai 4
Var
A:array[1..1000] of integer;
Y,n,m:integer;
Begin
Readln(n);
For y:=1 to n do
Begin
Readln(a[y]);
End;
For y :=1 to n do
M:=a[1];
If ma[y] then
N:=a[y];
End;
For p:=1 to n do
If a[p]=n then
D:=D+1;
Writeln(d);
Readln;
End.
Em làm bài thật cẩn thận để thầy còn góp ý nhé. Làm thế này biết đường nào mà thầy góp ý.
Trả lờiXóaNhận xét này đã bị tác giả xóa.
Trả lờiXóaBài 6:
Trả lờiXóavar
a:array[1..1000]of longint;
k,n,x,i:longint;
begin
write('nhap n=');readln(n);
write('nhap x=');readln(x);
write('nhap k=');readln(k);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=n downto k do
a[i+1]:=a[i];
a[k]:=x;
for i:=1 to n+1 do
write(a[i],' ');
readln;
end.
Chính xác. 10đ
Xóauses crt;
Trả lờiXóavar a:array[1..1000]of longint;
b,c,d,n:longint;
begin
readln(n);
for b:=1 to n do
begin
write('a[',b,']=');
readln(a[b]);
end;
for b:=1 to n do
if (a[b]>0) and(frac(sqrt(a[b]))=0) then c:=c+1;
writeln(c);
readln
end.
bài 10
XóaChinh xac. 10 d
Trả lờiXóaBài 11:
Trả lờiXóavar
a:array[1..1000]of longint;
i,n:longint;
begin
write('nhap n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
writeln('mang a:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln('mang b:');
for i:=1 to n do
if (a[i] mod 2=0) then
write(a[i],' ');
readln;
end.
Bài 10:
Trả lờiXóafunction cp(n:longint):longint;
var
i,d:longint;
begin
d:=0;
for i:=1 to n div 2 do
if (i*i=n) then
d:=d+1;
cp:=d;
end;
var
a:array[1..1000]of longint;
n,i,d:longint;
begin
write('nhap n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
d:=0;
for i:=1 to n do
if (cp(a[i])=1) then
d:=d+1;
writeln('co ',d,' so chinh phuong');
readln;
end.
Đúng rồi đó em.
Xóabài 11
Trả lờiXóauses crt;
var a:array[1..1000]of longint;
n,x,k,d,c:longint;
begin
clrscr;
readln(n);
for c:=1 to n do
readln(a[c]);
for c:=1 to n do
if a[c]mod 2=0 then d:=d+1;
for c:=n downto d do
a[c+d]:=a[c];
for c:=1 to n do
if a[c]mod 2=0 then
write(a[c],' ');
readln
end.
Bài của Phát chưa thực sự tạo được mảng b nhé. Chỉ in ra được theo yêu cầu đề thôi
XóaBài 10
Trả lờiXóauses crt;
var
a:array[1..1000]of longint;
i,n,d,j:longint;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
for j:=1 to a[i] do
if j*j=a[i] then
d:=d+1;
end;
writeln(d,' so chinh phuong');
readln
end.
chính xác . 10đ
XóaBài 11
Trả lờiXóauses crt;
var
a:array[1..1000]of longint;
b:array[1..1000]of longint;
i,n:longint;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
writeln('mang a: ');
for i:=1 to n do
write(a[i],' ');
writeln('mang b:');
for i:=1 to n do
begin
if a[i] mod 2=0 then
begin
b[i]:=a[i];
write(b[i],' ');
end;
end;
readln
end.
Bài này của em đã thực sự tạo được mảng b. rất tốt
Xóatuy nhiên nó 1 một nhược điểm là b[i] rỗng nếu trường hợp a[i] không chẵn
Bài 11:
Trả lờiXóavar
a,b:array[1..1000]of longint;
i,n:longint;
begin
write('nhap n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
writeln('mang a:');
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n do
if (a[i] mod 2=0) then
b[i]:=a[i];
writeln('mang b:');
for i:=1 to n do
if b[i]>0 then
write(b[i],' ');
readln;
end.
Bài này của Thắng cũng đa thực sự tạo được mảng b. nó cũng có nhược điểm là sẽ có nhiều phần tử của mảng b bị rỗng (0) ở những vị trí a[i] không chẵn. Bài này cách tạo và in của bạn Vạn là hay hơn
Xóauses crt;
Trả lờiXóavar a,b:array[1..1000]of longint;
c,d,e:longint;
begin
readln(c);
e:=0;
for d:=1 to c do
readln(a[d]);
for d:=1 to c do
begin
b[d]:=a[d];
if b[d] mod 2=0 then
begin
e:=e+1;
write(b[d],' ');
end;
end;
if e=0 then writeln('ko co so chan');
readln
end.
bài 11
Phát làm gần chuẩn rồi đó. tóm lại ta làm như sau
Xóad:=0;
for i:=1 to n do
if a[i] mod 2=0 then
begin
d:=d+1;
b[d]:=a[i];
end;
dãy b tạo được d phần tử chẵn từ dãy a