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
Giup minh voi
Câu trả lời của bạn
bài 1: viết chương trình nhập vào dãy số in ra màn hình tổng các số vừa nhập của dãy.
bài 2 : viết chương trình nhập vào dãy số in ra màn hình tổng các số chẵn của dãy.
bài 3 : viết chương trình nhập vào dãy số in ra màn hình các số lẻ của dãy.
bài 4: viết chương trình nhập vào dãy số in ra màn hình các số âm của dãy.
bài 5: viết chương trình nhập vào dãy số in ra màn hình dãy được sắp xếp theo thứu tụ tăng dần.
Câu trả lời của bạn
bài 1:
Program tong_day;
Uses crt;
Var n,i:integer;
day:array[1..100] of integer;
s:longint;
Begin
Clrscr;
Write('Nhap so phan tu cua day: ');read(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,': ');Read(day[i]);
s:=s+day[i];
End;
Write('Tong cac so vua nhap cua day la: ',s);
Readln;
End.
bài 2:
Program tong_chan_day;
Uses crt;
Var n,i:integer;
day:array[1..100] of integer;
s:longint;
Begin
Clrscr;
Write('Nhap so phan tu cua day: ');read(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,': ');Read(day[i]);
If (day[i] mod 2 = 0) then s:=s+day[i];
End;
Write('tong cac so chan cua day la: ',s);
Readln;
End.
bài 3:
Program in_le_day;
Uses crt;
Var n,i:integer;
day:array[1..100] of integer;
Begin
Clrscr;
Write('Nhap so phan tu cua day: ');read(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,': ');Read(day[i]);
End;
Write('Cac so le trong day la: ');
For i:=1 to n do If (day[i] mod 2 = 1) then Write(day[i],' ');
Readln;
End.
bài 4:
Program in_am_day;
Uses crt;
Var n,i:integer;
day:array[1..100] of integer;
Begin
Clrscr;
Write('Nhap so phan tu cua day: ');read(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,': ');Read(day[i]);
End;
Write('Cac so am trong day la: ');
For i:=1 to n do If (day[i] < 0) then Write(day[i],' ');
Readln;
End.
bài 5:
Program in_tang_dan;
Uses crt;
Var n,i,j,tam:integer;
day:array[1..100] of integer;
s:longint;
Begin
Clrscr;
Write('Nhap so phan tu cua day: ');read(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,': ');Read(day[i]);
End;
For i:=1 to n-1 do
For j:=i+1 to n do
If (day[i]>day[j]) then Begin tam:=day[i]; day[i]:=day[j]; day[j]:=tam; End;
Write('Day duoc sap xep tang dan la: ');
For i:=1 to n do write(day[i],' ');
Readln;
End.
Câu trả lời của bạn
Câu trả lời của bạn
viết phương trình nhập từ bàn phím 2 a,b so sánh 2 số đó nếu có số lớn hơn tính hiệu của số lớn trừ số nhỏ.
Mong trả lời sớm
Câu trả lời của bạn
Câu trả lời của bạn
a) Sai, vì chỉ số đầu và chỉ số cuối không cách nhau bởi dấu phải
b)Đúng
c) Sai, vì khai bảo kiểu số nguyên, hai chỉ số không thể là số thực
d)Đúng
Viết chương trình in ra tổng các số chẵn(với n nhập từ bàn phím hoặc n được cho biết trước )
Câu trả lời của bạn
Câu trả lời của bạn
Câu 1: Viết chương trình nhập vào N phần tử của 1 mảng số nguyên A (1 <= N<= 50 )
a) In ra màn hình các giá trị vừa nhập
b) In ra các giá trị chẵn
c) Tính tổng các a
d) Tính tổng các giá trị lẻ
Câu 2:Viết chương trình nhập vào N phần tử của 1 mảng số nguyên A (1 <= N<= 50 )
a) Đếm xem có bao nhiêu giá trị chẵn
b) Tính TB mảng A
c) In ra GTLN
d) In ra GTNN
Câu trả lời của bạn
Câu trả lời của bạn
cú pháp nhập mk chỉ bạn bằng ví dụ luôn nha
for i:=1 to 5 do
begin
write ('a[',i,']=');
readln(a[i]);
end;
xuất nha
write ('gia tri bien mang la');
for i:=1 to 5 do write (a[i]:3);
{ở đây mk :3 có ngĩa là cách khoảng ra nha}
Viết chương trình nhập dãy số A gồm n phần tử với n là số nguyên . Sắp xếp dãy theo thứ tự giảm dần và in kết quả ra màn hình.
Câu trả lời của bạn
tính trung bình cộng của n số tự nhiên hiển thị giá trị lớn nhất và nhỏ nhất. giúp mk vs mng owiii :((
Câu trả lời của bạn
Câu trả lời của bạn
program baitap;
var a:array [1..100] of integer;
i,n:integer;
begin
write('moi nhap gia tri n=');
readln(n);
for i:=1 to n do begin
write('a[',i,']=');
readln(a[i]);
end;
write('cac so chan la');
for i:=1 to n do
if a[i] mod 2 = 0 then write (a[i]:3);
write('cac so le la');
for i:=1 to n do
if a[i] mod 2 <>0 then write (a[i]:3);
readln;
end.
{mk sử dụng :3 nghĩa là cách khoảng ra nha}
Nhập vào dãy số gồm n số nguyên từ bàn phím. Sau đó in ra dãy các số chẵn và dãy các số lẻ trong n số trên.
Câu trả lời của bạn
program baitap;
var a:array [1..100] of integer;
i,n:integer;
begin
write('moi nhap gia tri n=');
readln(n);
for i:=1 to n do begin
write('a[',i,']=');
readln(a[i]);
end;
write('cac so chan la');
for i:=1 to n do
if a[i] mod 2 = 0 then write (a[i]:3);
write('cac so le la');
for i:=1 to n do
if a[i] mod 2 <>0 then write (a[i]:3);
readln;
end.
{mk sử dụng :3 nghĩa là cách khoảng ra nha,bạn kiểm tra xem đúng hay ko nha}
Bạn nhập mảng như đã được GV hướng dẫn, sau đó dùng For...do... cùng câu lệnh If để KT điều kiện chẵn(A[i] mod 2=0), điều kiện lẻ(A[i] mod 2 <>0). Nếu đúng thì bạn In ra màn hình theo từng phần tử riêng biệt nhwung đừng dùng ....ln để phần tử cùng nằm trên 1 hàng ngang
Câu trả lời của bạn
Program SXM;
Uses crt;
Var A:array[1..100]of integer;
n:byte;
tam,i,j,S:integer;
Begin
S:=0;
Write('Nhap so phan tu: ');Readln(n);
For i:=1 to n do
Begin
Write('A[',i,']=');Readln(A[i]);
End;
For i:=1 to n-1 do
For j:=i+1 to n do if A[i]>A[j] then
Begin
Tam:=A[i];
A[i]:=A[j];
A[j]:=Tam;
End;
Write('Sap xep tang dan: ');
For i:=1 to n do Write(A[i],',');
Readln;
Write('Sap xep giam dan: ');
For n downto i:=1 do write(A[i],',');
Readln;
For i:=1 to n do S:=S+A[i];
Write('Tong mang: ',S:5:2);
Readln;
End.
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
Câu trả lời của bạn
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 *