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
Tính tổng biểu thức sau: S=1/1+1/2+1/3+...+1/n
bài này làm sao xin mọi người giúp đỡ
Câu trả lời của bạn
program bai1;
var s:real;i,n:longint;
begin
write('N= ');readln(n);
s:=0;
for i:=1 to n do
s:=s+1/i;
write('S= ',s:4:2);
readln
end.
Cho biết tên biến mảng, số phần tử và kiểu dữ liệu của câu lệnh: var A: array[1.. 20] of real
Câu trả lời của bạn
Cho biết tên biến mảng, số phần tử và kiểu dữ liệu của câu lệnh: var A: array[1.. 20] of real
=> Tên biến mảng: A
=> Số phần tử:1..20 -> 20 phần tử
=> Kiểu dữ liệu: Real
Viết chương trình in ra màn hình các số chia hết cho hai được nhập từ bàn phím
Giúp mk với
Câu trả lời của bạn
var a:array [1..100] of integer;
n,i : integer;
begin
readln (n);
for i :=1 to n do
readln (a[i]);
for i:=1 to n do
if a mod 2 = 0 then
write (a[i]);
end.
Nhập N số nguyên từ bàn phím.Tính tổng các số lẻ
Câu trả lời của bạn
program bai1;
var a:array[1..100] of longint;
i,n,s:longint;
begin
wrtie('N= ');readln(n);
for i:=1 to n do
begin
write('A[',i,']= ');
readln(a[i]);
end;
s:=0;
for i:=1 to n do
if a[i] mod 2=1 then s:=s+a[i];
wrtie('s= ',s);
readln
end.
Viết chương trình nhập day số tự nhiên. Hãy đếm và in ra man hình số phần tử chẵn, tính tổng các số chẵn trong n. Sô vừa nhập từ bàn phím. ( giúp mk voi mk đang cần Gấp)
Câu trả lời của bạn
Cứu mình với mai mk thi rồi :((
Viết chương trình Pascal thực hiện các công việc sau:
- Nhập N số nguyên từ bàn phím
- In ra màn hình tổng, tích, tb các số tự nhiên vừa nhập
- In ra màn hình các số tự nhiên vừa nhập là số chẵn
- In ra màn hình các số tự nhiên vừa nhập là số lẻ
- In ra màn hình số tự nhiên lớn nhất và nhỏ nhất
Mai e thi rồi mọi người giúp e với ạ. Em cảm ơn nhiều
Câu trả lời của bạn
program <Tên bạn tự chọn>;
uses crt;
var A: array[1..100] of integer;
i, n, Max, Min: integer;
begin
clrscr;
writeln('Nhap so luong so nguyen:'); readln(n);
for i:=1 to n do begin writeln('A[',i,']='); readln (A[i]) end;
writeln('Cac so chan trong day so la:');
for i:=1 to n do
if A[i] mod 2 = 0 then writeln(A[i]);
writeln('Cac so le trong day so la:');
for i:=1 to n do
if A[i] mod 2 = 1 then writeln(A[i]);
Max:=A[1];
for i:=2 to n do
if Max<A[i] then Max:=A[i];
Min:=A[1];
for i:=2 to n do
if Min>A[i] then Min:=A[i];
writeln('So nho nhat trong day so la', Min);
writeln('So lon nhat trong day so la', Max);
readln
end.
Good luck!
Tính tổng các số lớn hơn 0 của dãy n số được nhập từ bàn phím
câu 2 : viết chương trình tính trung bình cộng và đưa ra màn hình giá trị trung bình cộng đó của mảng các số nguyên được nhập từ bàn phím
Các bạn giúp tớ với mai tớ kiểm tra thực hành !!!
Câu trả lời của bạn
Câu 1:
uses crt;
var n,s: integer;
a: array [1..100] of integer;
begin
clrscr;
write('Nhap n= '); readln(n);
for i:=1 to n do begin
write('nhap so thu ',i,' :'); readln(a[i]);
end;
for i:=1 to n do s:=s+i;
writeln('Tong la: ',s);
readln;
end.
Dùng biến mảng có lợi ích gì? Viết lệnh nhập và xuất phần tử của mảng a
Câu trả lời của bạn
Lợi ích chính của việc sử dụng biến mảng là rút gọn việc viết chương trình, có thể sử dụng câu lệnh lặp để thay nhiều câu lệnh, giúp tiết kiệm rất nhiều thời gian và công sức viết chương trình.
Ngoài ra chúng ta còn có thể lưu trữ và xử lí nhiều dữ liệu có nội dung liên quan đến nhau một cách hiệu quả.
Viết chương trình nhập N số nguyên nhập từ bàn phím, in ra màn hình số nhỏ nhất và lớn nhất?
Câu trả lời của bạn
làm gì mà lung tung
program tim_max_min ;
var i,n,max,min:integer;
a:array[1..100] of integer;
begin
write('nhap do dai cua day so n=');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 <a[i] then max :=a[i];
if min >a[i] then min :=a[i];
end;
writeln('so lon nhat la:',max);
writeln('so be nhat la:',min);
readln
end.
Viết CT sử dụng biến mảng để tính giá trị trung bình của n số nguyên được nhập từ bàn phím.
Câu trả lời của bạn
var a:array[1..100] of longint;
n,i,tb: longint;
begin
read(n);
for i:=1 to n do read(a[i]);
s:=0;
for i:=1 to n do s:=s+i;
tb:=0;
tb:= s mod n;
write(tb);
end.
1.Viết chương trình nhập vào 1 dãy gồm n phần tử và in tổng các số lẻ ra màn hình
2.Viết chương trình cho phép nhập n số vào bàn phím và cho biết số nhỏ nhất trong các số vừa nhập ở vị trí thứ mấy
Câu trả lời của bạn
1
Function TinhTong(A:Arr100; N:integer):integer;
Var i,S: integer;
Begin
S:=0;
For i:=1 to N do
if n mod i=0 then
begin
S:=S+A[i];
TinhTong:=S;
end;
writeln('Tong: ',TinhTong(A,N));
readln;
end.
2
Uses Crt;
Var i,n,m:integer;
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;
m:=A[1];
For i:=2 to n do If A[i]>m then m:=A[i];
Writeln(m);
Readln;
End.
mình không chắc nha bạn kiểm tra thử xem
Viết chương trình nhập vào 1 dãy gồm n phần tử . Kiểm tra xem số vừa nhập có được sắp xếp theo giá trị tăng dần không . Nếu có in YES ra màn hình ngược lại in NO
Câu trả lời của bạn
uses crt;
var a:array[1..1000]of integer;
i,n,d:integer;
begin
clrscr;
write('Nhap so phan tu: '); readln(n);
write('Nhap day so (moi so cach nhau boi mot dau cach): ');
for i:=1 to n do read(a[i]);
for i:=1 to n-1 do if a[i]<a[i+1] then d:=d+1;
if d=n-1 then write('YES') else write('NO');
readln;
end.
Bài 1:Nhập vào một số tự nhiên n, in ra các số chẵn chia hết cho 6 trong khoảng từ 1 đến n.
Help me!!!!!!!!!!!!!!!!!! I need the answer now!
Câu trả lời của bạn
Các công việc có tính lặp lại
Các công việc được tự động hoá
Tính toán
Hệ thống quản trị kinh doanh
Thống kê dân số
Giảng bài bằng máy tính
1.Nêu cú pháp cùng tính chất của các thành phần trong câu lệnh khai báo biến mảng ? cách tham chiếu đến một phần tử bất kỳ trong mảng ? cho ví dụ.
2.hãy nêu lợ ích khi sử dụng biến mảng ?
3 hãy nêu nhược điểm khi làm việc với biến mảng ?
5.hãy viết chương trình nhập vào một dãy N số nguyên từ bàn phím(N là số nguyên dương được nhập vào từ bàn phím và N>10). tính và in ra màn hình các yêu cầu sau:
a.tính tổng các số vừa nhập
b.tính tích các số vừa nhập
c. tính trung bình(tb)của các số vừa nhập
d.hãy tìm số lớn nhất và bé nhất
e.hãy tìm số nhỏ nhất mà lớp hơn TB trong các số vừa nhập
f.hãy nhập vào một số nguyên X.Hãy đếm xem có bao nhiêu số không lớn hơn X trong dãy
Câu trả lời của bạn
tam ngọc biển phức hiền( t đéo biết làm)
viết chương trình một mảng N số nguyên. tính tổng các số chẵn và thông báo ra màn hình
help me!!!
Câu trả lời của bạn
Viết chương trình pascal sử dụng biến mảng nhập vào n số nguyên từ bàn phím và in ra màn hình các số nguyên tố (lớp 8)
Câu trả lời của bạn
bn thử xem đc ko nha (mk cx chưa thử nx)
Cách1:
uses crt;
var n, i, j, dem: longint; {Bạn có thể thay longint thành integer nha}
A:array[1..1000] of longint;
begin
clrscr;
Write('Nhap N: '); readln(n);
for i:=1 to n do
begin
write('Nhap phan tu thu ',i,': ');
readln(A[i]);
end;
Write('Cac so nguyen to co trong mang la: ');
for i:=1 to n do
begin
dem:=0;
for j:=2 to A[i]/2 do
if A[i] mod j=0 then dem:=dem+1;
if dem=0 then write(A[i],'; ');
end;
end.
Cách2:
uses crt;
var n, i, j, dem: longint; {Bạn có thể thay longint thành integer nha}
A:array[1..1000] of longint;
begin
clrscr;
Write('Nhap N: '); readln(n);
for i:=1 to n do
begin
write('Nhap phan tu thu ',i,': ');
readln(A[i]);
end;
Write('Cac so nguyen to co trong mang la: ');
for i:=1 to n do
begin
dem:=0;
for j:=1 to A[i] do
if A[i] mod j=0 then dem:=dem+1;
if dem=2 then write(A[i],'; ');
end;
end.
1. Nhập vào một số n (5<=n<=10) và n phần tử của dãy Ai với 1<Ai<100 (có kiểm tra dữ liệu khi nhập vào. Viết chương trình, thuật toán
a. In ra các phần tử là số nguyên tố của dãy
b. Tính ƯCLN của tất cả các phần tử của dãy
c. Tính biểu thức sau: S=ai1+ai2+ai3+...+ann
d. Sắp xếp và in ra dãy sau sắp xếp
2. Viết chương trình, thuật toán tối giản phân số bằng cách chia cả tử và mẫu cho ƯCLN
3. Viết chương trình con tính xy với x,y là 2 stn được nhập từ bàn phím
4. Viết chương trình con tính giai thừa của n với n stn được nhập từ bàn phím
5. Viết chương trình, thuật toán tìm số hoàn chỉnh, số chính phương, số nguyên tố và BCNN
6. Nhập giá trị của mảng chia hết cho 3 và 5. Sắp xếp các phần tử chia hết cho 3 và 5 theo chiều tăng dần
7. Nhập dữ liệu cho các phần tử của mảng và đưa ra màn hình mảng vừa nhận. Tính tổng của các giá trị của các phần tử tính từ các phần tử lẻ đến số lượng các phần tử lẻ
8. Viết chương trình dùng câu lệnh repeat until Tính tổng của \(A=\dfrac{1}{1\cdot3}+\dfrac{1}{2\cdot4}+...+\dfrac{1}{n\left(n+2\right)}\)
9. Viết chương trình tính hàm \(e^x=1+x+\dfrac{x^2}{2!}+....+\dfrac{x^n}{n!}\)
10. Viết chương trình tính an với a,n được nhập từ bàn phím
Các Bn viết đầy đủ thuật toán, chương trình giúp Mk nhé
Câu trả lời của bạn
dài thế thì ai rảnh mà làm
Giúp mk với các bạn
Giao Huỳnh ,Hà Ngân Hà , Tuấn Anh Phan Nguyễn , Aimee
Câu trả lời của bạn
ban co the ve thu ket qua cho mk coi dc k?
bài 1: viết chương trình tính tổng sau
S=1+2+3...+N
bài 2: viết chương trình pascal sử dụng biến mảng để tính tổng của dãy số, dãy số gồm n số nguyên nhập từ bàn phím.
bài 3: viết chương trình pascal nhập vào số báo danh của 5 bạn học sinh ( tên học sinh cho trước) số báo danh nhập từ bàn phím sau đó in số báo danh kèm tên ra ngoài màn hình
Câu trả lời của bạn
Câu 2: mình làm theo Free pascal nhé
Bài Làm:
Uses crt;
Var n,i,tong:integer;
a ARRAY [1..100] of integer;
Begin
CLRSCR;
Writeln('Moi nhap do dai cua mang'); Readln(n);
For i:=1 to n do
Begin
Writeln('a[',i,']');
Readln(a[i]);
End;
tong:=0;
For i:=1 to n do
tong:=tong+a[i];
Writeln('Tong cua day tren la ',tong);
Readln;
End.
Viết Chương Trình nhập điểm các bạn học sinh.
In ra màn hình các điểm dưới 5
Tính trung bình cộng điểm các bạn học sinh.
Câu trả lời của bạn
var i, n, S, TB : integer;
diem : array [1..100] of real;
begin
write ( ' so hoc sinh la n = '); readln (n);
writeln ('nhap so diem');
for i :=1 to n do
begin
readlm (diem[i]);
end;
begin
for i:=1 to n do
if diem[a]>5 then
S:= S + diem[i];
TB:= S/n;
writeln ('diem trung binh cac so tren 5 la' TB);
end;
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 *