Nội dung của Bài 9: Làm việc với dãy số dưới đây chúng ta sẽ cùng tìm hiểu về khái niệm mảng một chiều; cách khai báo mảng, nhập, in, truy cập các phần tử của mảng; thuật toán tìm số lớn nhất, số nhỏ nhất của một dãy số;... Mời các em cùng theo dõi bài học để tìm hiểu nội dung chi tiết.
Dữ liệu kiểu mảng:
Là dãy hữu hạn các phần tử có cùng kiểu dữ liệu, được sắp xếp thứ tự bằng cách gán cho mỗi phần tử một chỉ số.
Hình 1. Minh họa dữ liệu kiểu mảng
Trong đó:
Biến mảng:
Hình 2. Minh họa biến mảng và giá trị của biến mảng
Cách khai báo mảng trong Pascal như sau:
Tên mảng: array [ < Chỉ số đầu > .. < Chỉ số cuối > ] of < Kiểu dữ liệu >;
Trong đó:
Ví dụ 1: Khai báo mảng sau:
Hình 3. Mảng Tuoi
var Tuoi: array[1..40] of integer;
Trong đó:
Lưu ý:
Kích thước của mảng phải được khai báo bằng một con số cụ thể.
Cú pháp: Tên mảng [ Chỉ số ]
Ví dụ 2: Tuoi[4]=9
Tham chiếu tới phần tử thứ tư của mảng Tuoi
Sử dụng lệnh Read (hoặc Readln) kết hợp với For ... do để nhập giá trị cho mảng.
Các bước nhập giá trị cho mảng:
Ví dụ 3: Thể hiện bằng pascal
Write('Nhap vao so HS: ');
Readln(n);
For i:=1 to n do
Begin
write('Diem cho HS thu ',i, ' : ');
readln(A[i]);
end;
Sử dụng lệnh Write (hoặc Writeln) kết hợp với For ... do để in giá trị các phần tử của mảng.
Các bước in giá trị của mảng:
Ví dụ 4: Thể hiện bằng pascal
Writeln('Điểm của lớp: ');
For i:=1 to n do
Write(A[i]:5);
Ví dụ 5: Tìm những học sinh có điểm Tin đạt loại giỏi
For t := 1 to 40 do if DiemTin[t] > 8.0 then writeln('Loai Gioi');
Sử dụng biến mảng và câu lệnh lặp (thường là For…do) giúp cho việc viết chương trình được ngắn ngọn và dễ dàng hơn.
Ví dụ 6: Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số lớn nhất. N cũng được nhập từ bàn phím.
Ý tưởng: Trước hết ta khai báo biến N để nhập số các số nguyên sẽ được nhập vào. Sau đó khai báo N biến lưu các số được nhập vào như là các phần tử của một biến mảng A. Ngoài ra, cần khai báo một biến i làm biến đếm cho các lệnh lặp và biến Max để lưu số lớn nhất, Min để lưu số nhỏ nhất.
Chương trình mẫu:
program MaxMin;
uses crt;
Var
i, n, Max, Min: integer;
A: array[1..100] of integer;
{Phần thân chương trình sẽ tương tự dưới đây}
Begin
clrscr;
write('Hay nhap do dai cua day so, = ');
readln(n);
writeln('Nhap cac phan tu cua day so: ');
For i:=1 to n do
Begin
write('a[',i,']='); readln(a[i]);
End;
Max:=a[1];
Min:=a[1];
For i:=2 to n do
Begin
if Max
Max:=a[i];
if Min>a[i] then
Min:=a[i]
End;
write('So lon nhat la Max = ',Max);
write('; So nho nhat la Min = ',Min);
readln;
End.
Trong chương trình này, chúng ta hãy lưu ý một số điểm sau: Số tối đa các phần tử của mảng phải được khai báo bằng một số cụ thể (Ở đây là 100).
Sau khi học xong Bài 9: Làm việc với dãy số - Tin học 8, các em cần ghi nhớ:
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 8 Bài 9 cực hay có đáp án và lời giải chi tiết.
Số phần tử trong khai báo dưới đây là bao nhiêu?
Var tuoi : array[12..80] of integer;
Khai báo mảng nào là đúng trong các khai báo sau đây?
Cú pháp khai báo dãy số nào sau đây đúng nhất?
Câu 4- 10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 8 Bài 9để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Bài tập 1 trang 79 SGK Tin học 8
Bài tập 2 trang 79 SGK Tin học 8
Bài tập 3 trang 79 SGK Tin học 8
Bài tập 4 trang 79 SGK Tin học 8
Bài tập 5 trang 79 SGK Tin học 8
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học DapAnHay sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 8 DapAnHay
Số phần tử trong khai báo dưới đây là bao nhiêu?
Var tuoi : array[12..80] of integer;
Khai báo mảng nào là đúng trong các khai báo sau đây?
Cú pháp khai báo dãy số nào sau đây đúng nhất?
Để nhập dữ liệu từ bàn phím cho mảng A có 10 phần tử là số nguyên ta dùng lệnh nào sau đây?
Các cách nhập dữ liệu cho biến mảng sau, cách nhập nào không hợp lệ?
Em hãy chọn phát biểu đúng khi nói về dữ liệu kiểu mảng:
Cách khai báo biến mảng sau đây là đúng?
Cú pháp để truy cập đến giá trị phần tử trong mảng là:
Chọn câu phát biểu đúng về kiểu dữ liệu của mảng?
Để in giá trị phần tử thứ 20 của mảng một chiều A ra màn hình ta viết:
Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình.
Các khai báo biến mảng sau đây trong Pascal đúng hay sai:
a) var X: Array[10,13] Of Integer;
b) var X: Array[5..10.5] Of Real;
c) var X: Array[3.4..4.8] Of Integer;
d) var X: Array[10..1] Of Integer;
e) var X: Array[4..10] Of Real;
"Có thể xem biến mảng là một biến được tạo từ nhiều biến có cùng kiểu, nhưng chỉ dưới một tên duy nhất". Phát biểu đó đúng hay sai?
Câu lệnh khai báo mảng sau đây có được máy tính thực hiện không?
var N: integer;
A: array[1..N] of real;
Viết chương trình Pascal sử dụng mảng để nhập từ bàn phím các phần tử của một dãy số. Độ dài của dãy cũng được nhập từ bàn phím.
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Viết chương trình tính tổng C = 1+8+27+...+n3
Câu trả lời của bạn
PROGRAM TINH_TONG;
Uses Crt;
N, i, C:Integer;
BEGIN
clrscr();
Repeat
begin
Write('Nhap N='); Readln(N);
end;
Until N>0;
C:=1;
For i:=2 To N Do
C:= C + i*i*i;
Writeln('Tong can tim la C = ', C);
Readln;
END.
Viết Ct tính tổng A=1+2+3+...+n và in kết quả .(n nhập từ phím 20>n>2)
Câu trả lời của bạn
...
var i, n,A : integer;
begin
clrscr;
write('nhap n = '); readln(n);
A:= 0 ;
for i:= 1 to n do
A:= A + 1 ;
readln
end.
Giup mk vs Viết chương trình nhập vào dãy số nguyên từ bàn phím. In ra màn hình giá trị nhỏ nhất của dãy số Càng sớm càng tốt nha các bn Cảm ơn nhìu
Câu trả lời của bạn
uses crt;
var n,i,min:integer;
a:array[1..100] of integer;
begin
clrscr;
write('nhap so phan tu cua day:');readln(n);
for i:=1 to n do
begin
write('nhap a[',i,']:');readln(a[i]);
end;
min:=a[1];
for i:=1 to n do
if a[i]<min then min:=a[i];
write('gia tri nho nhat cua day so la:',min);
readln;
end.
Truy vấn trong bài mảng một chiều của pascal là gì ?
Trả lời nhanh giùm mình, mình đang cần gấp !!
Câu trả lời của bạn
Là các tham chiếu đến các phần tử
Bài này làm sao ? Bài số 5 trang 78 Viết chương trình sử dụng biến mảng để nhập từ bàn phím các phần tử của 1 dãy số.Độ dài của dãy cũng được nhập từ bàn phím
Câu trả lời của bạn
uses crt;
var n,i:integer;
a:array[1..100] of integer;
begin
clrscr;
write('nhap so phan tu cua day:');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
writeln('day so da nhap:');
for i:=1 to n do write(a[i]:2);
readln;
end.
viết chương trình in ra màn hình dòng chữ tên hs _lop và nhập vào 3 số nguyên a,b,c từ bàn phím và thực hiện các công việc sau
a) tính tổng a,b,c
b) tính tích a,b,c
c)cho biết a là số chẵn hay lẻ
Câu trả lời của bạn
uses crt;
var a,b,c,s,x:integer;
begin
clrscr;
write('hs_lop');
writeln('nhap 3 so=');readln(a,b,c);
begin
s:=a+b+c;
writeln('tong la:',s);
x:=a*b*c;
writeln('tich la:',x);
end;
if a mod 2 =0 then writeln(a,'la so chan')
else write('a,'la so le');
readln;
end.
mình ko chắc pn kt thử xem
Sử dụng biến mảng viết chương trình nhập điểm các bạn trong lớp va và in ra màn hình kết quả học tập : loai gioi , khá, trung bình và kém ( tiêu chuẩn từ 8. 0 trở lên đạt loại giỏi , từ 6. 5 đến 7. 9 đạt loại khá , từ 5. 0 đến 6. 4 loại trung bình và dưới 5. 0 đạt loại kém )
Câu trả lời của bạn
Program Phan_loai;
uses crt;
Var i, n, G, Kh, TB, K: integer;
A: array[1..100] of real;
Begin
clrscr;
write('Nhap so HS trong lop, n= ');
readln(n);
writeln('Nhap diem :');
For i:=1 to n do
Begin
write(i,' . ');
readln(a[i]);
End;
G:=0; Kh:= 0; TB:= 0; K:= 0;
for i:=1 to n do
Begin
if a[i] >= 8.0 then G:= G + 1;
if a[i] <5.0 then K:= K + 1; if (a[i] =6.5) then Kh:= Kh + 1;
if (a[i] >= 5 ) and (a[i] < 6.5) then TB:= TB + 1;
end;
writeln(' Ket qua hoc tap: ');
writeln(G, ' ban hoc gioi ');
writeln(Kh, ' ban hoc kha ');
writeln(TB, ' ban hoc trung binh');
writeln(K, ' ban hoc kem ');
Readln;
End.
Viết Ct tính tổng A=1+2+..+n và in kết quả 20>n>3 .Ai biết giúp mình với .
Câu trả lời của bạn
Program tinh_tong;
uses crt;
Var i,n,sum: integer;
Begin
write('Nhap so n: n= '); readln(n);
while (n>= 20) or (n<=3) do begin ('Nhap lai n: n='); readln (n); end;
sum:=0;
for i:=1 to n do sum:=sum+i;
writeln('Tong can tinh là:', sum);
Readln;
End.
Viết chương trình nhập vào 1 mảng số nguyên 10 phần tử sau đó in ra màn hình mảng vừa nhập ?
VD : A[1] = 0 ; A[2] = 7 ; A[3]=8 ; A[4]=1 ; A[5]=9;
A[6]=3 ; A[7] =4 ; A[8] =11 ; A[9] = 100; A[10]=-5
In ra màn hình : 0 7 8 1 9 3 4 11 100 -5
Câu trả lời của bạn
Program ct; USES CRT; Var n,i: Integer; A:array[1..10] of integer; Begin Clrscr; Write(' nhap n:'); Readln(n); For i:=1 to n do begin Write('A[',i,']='); Readln(A[i]); end; For i:=1 to n do Write(A[i]); Readln; End.
( Nếu đề chỉ yêu cầu là nhập 10 phần tử thì không cần khai báo n và thay n -> 10 trong câu lệnh for...do. Còn đề yêu cầu in n phần tử thì làm như trên).
giúp mình với!!
VCT: nhập vào 1 mảng (tối đa 20 pt) xét xem phần tử nào là số nguyên tố.
Cứu mình đi mình cần gấp lắm!!
Câu trả lời của bạn
uses crt;
var n,i,d,j:integer;
a:array[1..20] of integer;
begin
clrscr;
write('Nhap so phan tu cua day:');
readln(n);
while (n>20) do
begin
write('nhap lai so phan tu cua day thoa man toi da la 20 phan tu:');readln(n);
end;
for i:=1 to n do
begin
write('a[',i,'] =');readln(a[i]);
end;
for i:=1 to n do
begin
d:=0;
for j:=1 to a[i] do
if a[i] mod j = 0 then d:=d+1;
if d=2 then writeln(a[i],' la so nguyen to');
end;
readln;
end.
Nhập các phần tử của dãy số chính là điểm trung bình của 10 bạn trong lớp in ra màn hình bạn có điểm trung bình thấp nhất
Câu trả lời của bạn
uses crt;
var i,min:integer;
dtb:array[1..10] of real;
begin
clrscr;
writeln('nhap dtb cua 10 ban trong lop:');
for i:=1 to 10 do
begin
write('dtb[',i,']=');readln(dtb[i]);
end;
min:=1;
for i:=2 to 10 do
if dtb[i]<dtb[min] then min:=i;
write('ban co diem trung binh thap nhat la ban thu:',min,' dtb la:', dtb[min]:2:1);
readln;
end.
giúp e với gấp ạ
viết chương trình nhập vào 2 ptu. cho biết 2 tử này có bao gồm kí tự của nhau hay k? ví dụ READ và DEAR là bao gồm ký tự của nhau
Giusp e với ạ e tks
Câu trả lời của bạn
program ctdt;
uses crt;
var s1,s2:string;
dem,i,j:integer;
(*--------------------*)
BEGIN
clrscr;
write('nhap ptu1: ');readln(s1);
write('nhap ptu2: ');readln(s2);
{cach1:
dem:=0;
while i<=length(s1) do
begin
while j<=length(s2) do
if s1[i]=s2[j] then
begin
dem:=dem+1;
break;
end
else j:=j+1;
i:=i+1;
end;}
{cach 2}
dem:=0;
for i:=1 to length(s1) do
begin
for j:=1 to length(s2) do
if s1[i]=s2[j] then
begin
dem:=dem+1;
end;
end;
if dem=length(s1) then
write('hai ptu ,'s1,' , ',s2,' bao gom ki tu cua nhau')
else write('hai ptu ,'s1,' , ',s2,' khong bao gom ki tu cua nhau');
readln
end.
Viet chuong trinh nhap vao 1 mảng gom n phần tử số thực
a) in mảg vua nhập
b) tìm giá trị nhỏ nhất của mảng
c) sap xep mảg tăng dần
Câu trả lời của bạn
chương trình sẽ là:
var i,n,j,tang,min:integer;
A:array[1..100] of longint;
begin
readln(n);
for i:=1 to n do readln(A[i]);
writeln('mang vua nhap');
for i:=1 to n do writeln(A[i]:3);
min:=A[i];
for i:=2 to n do
if A[i]<min then min:=A[i];
writeln('gia tri nho nhat la ' , min);
for i:=1 to n-1 do
for j:=i+1 to n do
if A[i]>A[j] then
begin
tang:=A[i];
A[i]:=A[j];
A[j]:=tang;
end;
writeln('day so sau khi sap xep tang dan');
for i:=1 to n do writeln(A[i]:3);
end.
viết chương trình nhập điểm trung bình 3 môn toán, văn, anh của 30 học sinh trong lớp và in ra màn hình những bạn được học sinh giỏi với điều kiện toán hoặc văn >= 8 và không có môn nào <5.
giúp em với
Câu trả lời của bạn
bạn xem cách làm ở bài 1 bài thực hành số 7 j đấy có ak
viết chương trình nhập vào một mảng n số nguyên. xuất ra số lớn nhất, số nhỏ nhất, tính trung bình số lớn nhất và số nhỏ nhất.
giúp mk với!!
Câu trả lời của bạn
uses crt;
var n,i,max,min:integer;
s:real;
a:array[1..100] of integer;
begin
clrscr;
write('nhap n:');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
max:=a[1]; min:=a[1];
for i:=2 to n do
begin
if a[i]>max then max:=a[i]
if a[i]<min then min:=a[i];
end;
s:=(max+min)/2;
wrrite('so lon nhat la:',max);
write('so nho nhat la:',min);
write(' trung binh số lớn nhất và số nhỏ nhất là:',s);
readln;
end.
Viết chương trình Pascal sử dụng biến mảng để tính giá trị trung bình của n số nguyên nhập từ bàn phím.chiều dài của dãy cũng được nhập từ bàn phím.
Câu trả lời của bạn
program tinh_trung_binh;
uses crt;
var i, s,n: integer;
A: array[1..100] of integer;
begin
write('Nhap do dai cua day so: '); readln(n);
for i:=1 to n do
begin write('A[',i,']='); readln (A[i]); end;
s:=0;
for i:=1 to n do s:=s + A[i];
write('Gia tri trung binh la: ', s div n);
Readln;
End.
Bạn Phan dùng ba biến mảng, lần lượt biểu diễn cước phí điện thoại, điện, dịch vụ internet của gia đình trong 12 tháng của năm vừa qua. hãy giúp Phan viết chương trình Pascal thực hiện:
a/ Nhập số tiền chi cho ba dịch vụ từng tháng từ bàn phím.
b/ Tính và in ra màn hình tổng số tiền mà gia đình Phan phải trả cho các dịch vụ này trong năm vừa qua.
c/ Hãy cho biết dịch vụ nào chi nhiều nhất.
d/ Cho biết trung bình mỗi tháng gia đình Phan phải trả bao nhiêu tiền cho các dịch vụ nói trên.
Câu trả lời của bạn
Program phi_dichvu;
const n = 12;
Var a, b, c: array[1..n] of integer;
i, tong1, tong2, tong3, tong, max, k: integer;
begin
{a. Nhập cước phí điện thoại, điện tiêu dùng và Internet(đừng ghi nhé, chỉ là để làm dấu chỗ làm thôi)}
for i:=1 to n do
begin
writeln('Nhap cac khoan chi dich vu thang thu ', i);
write('Tien dien thoai: '); readln(a[i]);
write('Tien dien tieu dung: '); readln(b[i]);
write('Tien Internet: '); readln(c[i]);
end;
writeln;
{b. Tính tổng số tiền phải trả trong năm}
tong1:=0; tong2:=0; tong3:=0;
for i:=1 to n do
begin tong1:=tong1+a[i];
tong2:=tong2+b[i];
tong3:=tong3+c[i];
end;
tong:=tong1+tong2+tong3;
writeln('Tong so tien chi dinh ki trong nam qua: ', tong);
writeln:
{c.tìm dịch vụ có tổng chi cao nhất}
max:=tong1; k:=1;
if max<tong2 then k:=2;
if max< tong3 then k:=3;
if k=1 then writeln('Tiền chi cho điện thoại cao nhất.')
else if k=2 then writeln ('Tiền chi cho điện cao nhất.')
else writeln('Tien chi cho Internet cao nhat.');
writeln;
{d. Tính trung bình khoản chi dịch vụ mỗi tháng}
writeln('Chi dich vu trung binh hang thang la: ', tong div n);
readln;
end.
trình bày cách sử dụng biến mảng trong Pascal ! tin 8 nhé
Câu trả lời của bạn
- Cách khai báo mảng: Có 2 cách khai báo:
var <tên mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
vd:
vd:
type mang=array[1..100] of integer;
var a,b,c:mang;
1)Viết chương trình sử dụng câu lệnh lặp while do tính tổng các số chẵn của N.
2)Viết chương trình nhập vào một mảng số nguyên. Liệt kê các phần tử là số nguyên âm.
Giải giùm mk đi đang gấp lắm!! Mai kiểm tra rùi
Câu trả lời của bạn
1)
program MQRN;
uses crt;
var N,S,i: longint;
begin
Writeln('Nhap n'); Readln(n);
i:=1; S:=0;
while i<=N do
begin
if (i mod 2)=0 then S:=S+i;
i:=i+1;
end;
Writeln('Tong cac so chan la :',S);
Readln;
end.
2)
program Tim_so_am;
uses crt;
var a: array[1..1000] of integer;
i,N: longint;
begin
Writeln('Nhap so phan tu N: '); Readln(n);
for i:= 1 to n do
begin
Writeln('Nhap so thu ',i); Readln(a[i]);
end;
for i:= 1 to n do if a[i] < 0 then Write(a[i]:5);
Readln;
end.
Viết chương trình tính tổng 200 số nguyên đầu tiên
Câu trả lời của bạn
program tinh_tong;
uses crt;
var i: integer;
s: longint;
begin
s:=0;
i:=1;
while i<= 200 do
begin
s:= s+i; i:= i+1;
end;
writeln('tong cua 200 so tu nhien dau tien la:=', s);
readln
end.
0 Bình luận
Để lại bình luận
Địa chỉ email của hạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *