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
1Viết chương trình tính tổng n số tự nhiên đầu tiên. 2.Viết chương trình tính tích n số tự nhiên đầu tiên. 3.Viết chương trình tính tổng n số tự nhiên lẻ đầu tiên. 4.Viết chương trình tính tích của n số tự nhiên lẻ đầu tiên.
Câu trả lời của bạn
Var i, n:integer;
S:longint;
Begin
Writeln('Nhập n'); readln (n);
S:=0;i:=1;
Câu 1:
For i:=1 to n do s:=s+i;
Writeln ('Tổng là', s);
Câu 2:
For i:=1 to n do s:=s*i;
Writeln('Tích là', s);
Câu 3:
For i:=1 to n do
If (i mod 2=1) then s:=s+i;
Writeln ('Tổng các số lẻ của', n,' số đầu tiên', s);
Câu 4:
For i:=1 to n do
If (i mod 2=1) then s:=s*i;
Writeln ('Tích các số lẻ của', n,' số đầu tiên', s);
Readln
End.
End.
viết chương trình nhâp một mảng n số xuất ra các số lẻ trong mảng!!
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 n:');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
for i:=1 to n do
if a[i] mod 2<>0 then
writeln(a[i],' la so le');
readln;
end.
viết chương trình nhập vào điểm môn tin của n bạn sử dụng 2 cách
Câu trả lời của bạn
Cách 1
program CTNMT;
uses crt;
var n,i: longint;
A: array [1..1000] of longint;
Begin
Writeln('Hay nhap vao so hoc sinh ban muon nhap diem: ');
Readln(N);
For i:=1 to n do
begin
Writeln('Nhap diem tin cua ban thu ',n);
Readln(A[i]);
end;
Readln;
end.
(Đây chỉ là chương trình nhập vào thôi nha, muốn xuất thì dùng cậu lệnh lặp để xuất từng phần tử của mảng)
câu 1: viết chương trình tính tổng, tích các số tự nhiên nhập từ bàn phím.
câu 2: 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 số cũng được nhập từ bàn phím.
p/s: mik ngu môn tin nhắm nhuôn, lên máy tính chỉ bt cày game thui. giúp mik nha mik đang cần gấp nhất là câu 2, trả lời đúng mik nhất định sẽ tick.
Câu trả lời của bạn
Câu 1:
program bt;
uses crt;
var a:array[1..1000] of integer;
i,n,tong,tich:integer;
begin
clrscr;
write('Do dai cua day la:'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
tong:=0; tich:=1;
for i:=1 to n do
begin
tong:=tong + a[i];
tich:=tich*a[i];
end;
write('tong cac so tu nhien nhap tu ban phim:',tong);
writeln;
write('tich cac so tu nhien nhap tu ban phim:',tich);
readln
end.
Câu 2:
program bt;
uses crt;
var a:array[1..1000] of integer;
i,n:integer;
begin
clrscr;
write('nhap do dai day so:'); readln(n);
writeln('nhap cac phan tu cua day:');
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
readln
end.
Viết chương trình pascal sử dụng biến mảng nhập vào dãy N số nguyên sau in ra màn hình tích của các số vừa nhập ? ( độ dài của dãy số được nhâp từ bàn phím )
Câu trả lời của bạn
program day_so;
uses crt;
var i, n, : integer;
X : longint;
A : array [1..n] of integer;
begin
clrscr;
writeln(' nhap n = ');
readln (n);
for i:= 1 to n do
begin
write ('A[',i,']= ');
readln (A[i]);
end;
writeln (' day ',n,' so nguyen la ');
X:=1;
for i:= 1 to n do X:= X*i;
writeln ('tich cua', n,' =', X);
readln.
Trình bày cách khai báo và sử dụng biến mảng trong Pascal. Lấy ví dụ minh họa ?
Nêu các lợi ích của việc sử dụng biến mảng trong chương trình ?
giúp mik vs ạ.mik cảm ơn nhìu
Câu trả lời của bạn
NHƯ Z NHA !! :v
Khai báo mảng có rất nhiều loại: mảng 1 chiều,mảng 2 chiều, mảng 3 chiều,...
Ở đây tui chỉ nêu mảng 1 chiều và 2 chiều mà thôi :)
Mảng 1 chiều:
+Cách 1: Khai báo trực tiếp: var <tên biến mảng>:array[kiểu chỉ số]of<kiểu phần tử>;
+Cách 2: Khai báo gián tiếp: type <tên kiểu mảng>=array[kiểu chỉ số]of<kiểu phần tử>;
var <tên biến mảng>:<tên kiểu mảng>
VD: C1: var Nhietdo:=array[1..50]of real;
C2: type KM1=array[1..50]of real;
var Nhietdo: KM1;
Mảng 2 chiều:
+Cách 1: Khai báo trực tiếp: var <tên biến mảng>:array[kiểu chỉ số hàng,kiểu chỉ số cột]of<kiểu phần tử>;
+Cách 2: Khai báo gián tiếp: type <tên kiểu mảng>=array[kiểu chỉ số hàng,kiểu chỉ số cột]of<kiểu phần tử>;
var <tên biến mảng>:<tên kiểu mảng>
VD: C1: var B:=array[1..9,1..10]of integer;
C2: type KM1=array[1..9,1..10]of integer;
var B: KM1
==> lợi ích : 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 trương trình :D
Mấy bạn giải câu b, c, d dùm mik nha đừng để ý mấy câu khác
Câu trả lời của bạn
c)
uses crt;
var i, n: integer;
a: array [1..100] of integer;
begin
write(' nhap n:'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
writeln(a[i]);
readln
end.
d)
uses crt;
var i, le, chan: integer;
a: array[1..20] of integer;
begin
for i:=1 to 20 do
begin
write('a[',i,']='); readln(a[i]);
end;
for i:=1 to 20 do
if a[i] mod 2 <> 0 then
writeln((a[i]) ,' la so le');
for i:=1 to 20 do
if a[i] mod 2 = 0 then
writeln((a[i]) ,' la so chan');
readln
end.
Câu 1: Câu 2: Giúp mk vs!!! help me!!!
Câu trả lời của bạn
1/
uses crt;
var n,i,tong:integer;
a:array[1..100] of integer;
begin
clrscr;
write('nhap so phan tu cua day:');readln(n);
write('nhap cac phan tu cua day:');
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
tong:=0;
for i:=1 to n do tong:=tong+a[i];
write('tong cua day so nguyen vua nhap la:',tong);
readln;
end.
BT: Viết chương trình nhập vào dãy n số và in ra tổng các số lẻ trong dãy đó
GIÚP MK VS
Câu trả lời của bạn
program Tinh_tong;
uses crt;
var n,i,T: integer;
a:array[1..100] of integer;
begin
write('nhap n= '); readln(n);
T:=0;
for i:=1 to n do
begin
readln(a[i]);
if i mod 2 <>0 then T:=T+a[i];
end;
writeln('tong cac so le la ',T);
end.
program tongcacsole;
uses crt;
var i, n:integer;
s: longint;
a: array[1..100] of integer;
begin
clrscr;
write ( ' hay nhap so phan tu 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;
for i := 1 to n do
if a[ i] mod 2 < > 0 then s := s + i;
writeln ( ' tong cac so le: ' , s);
readln
end.
*bạn có thể thay dòng :
if a[ i] mod 2 < > 0 then s:= s + i;
bằng dòng:
if a[ i] mod 2 = 1 then s:= s + i;
=>đều cho cùng 1 kết quả nhé
Mọi người giúp mình với nhé
Viết chương trình sử dụng biến mảng nhập dãy số N nguyên từ bàn phím rồi in ra màn hình dãy số N vừa nhập.
Help Meee
Câu trả lời của bạn
uses crt;
var i, n: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;
for i:=1 to n do
writeln(a[i]);
readln
end.
viết chương trình nhập vào 1 dãy số gồm n phần tử kiểu số nguyên
a In dãy số ra màn hình. Tính và in tổng các phần tử là chẵn của dãy số
b đếm xem có bao nhiêu số chẵn bao nhiêu số lẻ bao nhiêu số âm bao nhiêu số dương
Câu trả lời của bạn
b) Đếm số chẵn
var n,i,sl:integer;
begin
sl:=0; readln(n);
for i:=1 to n do
if i mod 2 = 0 then sl:=sl+1;
writeln(sl);
readln;
end.
( Đếm số lẻ, âm/dương tương tự )
viết chương trình nhập n số nguyên từ bàn phím và tính tổng các số dương. càn gấp ak
Câu trả lời của bạn
uses crt;
var a:array[1..100] of integer;
n,i,s:integer;
begin
clrscr;
write('nhap 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]>0 then s:=s+a[i];
write('tong cac so duong la:',s);
readln;
end.
1. viết chương trình tính gtbt sau bằng lệnh for .... do với n nhập từ bàn phím: S=2.3+4.4+....+2n(n+2)
2. viết chương trình tính tổng sau với n là số nguyên nhập từ bàn phím: S= 1/(3.2) + 1/(6.3) + ... + 1/(3n(n+1))
3. viết chương trình nhập n số nguyên và đếm xem trong dãy có bao nhiêu số chẵn và tính tổng của chúng
Câu trả lời của bạn
1) var i,n:ineteger; s:real;
begin
readln(n); s:=0;
for i:=1 to n do
s:=s+2*i*(i+2);
writeln(s);
readln;
end.
1.Viết chương trình dãy số n rồi tìm ra trong dãy số có bao nhiêu số âm, bao nhiêu số dương? 2.Viết chương trình dãy số n rồi tìm ra trong dãy số có bao nhiêu số chẵn, bao nhiêu số lẻ?
Câu trả lời của bạn
viết trương tình nhập 1 dãy số sau đó đếm xem có bao nhiêu số âm
1/ Var i,n,sla,sld:integer;
begin
readln(n);
sla:=0; sld:=0;
for i:=1 to n do
if i < 0 then sla:=sl+1;
writeln('so am', sl);
if i > 0 then sld:=sld+1;
writeln(sld);
readln;
end.
Viết chương trình sử dụng biến mảng nhập vào một dãy số nguyên ( độ dài dãy số được nhập từ bàn phím ). In lên màn hình tất cả các số có trong dãy số.
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 dp dai cua day:');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');readln(a[i]);
end;
writeln('tat ca cac so trong day la:');
for i:=1 to n do write(a[i],' ');
readln;
end.
Tìm các số trong khoảng từ 0 đến 999 bằng tổng lập phương các chữ số của nó!
Giải nhanh giúp mình nha!!
Câu trả lời của bạn
Câu 1:
Giả sử \(\overline{abc}\) (0 <= a, b, c <= 9) là số Amstrong, ta cần tìm a, b và c thỏa mãn:
100a + 10b + c = a3 + b3 + c3. Chương trình như sau:
Program Amstrong;
var a, b, c: integer;
begin
writeln( ‘ cac so Amstrong trong khoang tu 0-999 la’);
for a:= 0 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
if a*100 + b*10 +c = a*a*a + b*b*b + c*c*c
then writeln(a*100 +b*10 +c);
readln;
End.
Ch 1 mảng số nguyên có 30 phần tử . Hãy lập chương trình
a) In ra các số nguyên dương có trong mang
b) In ra các số nguyên âm có trong mảng
c) In ra vị trí của các số 0 có trong mảng
Giúp mik vs mấy you
Câu trả lời của bạn
Program In;
uses crt;
Var a:real;
Begin
clrscr;
Write ('nhap 30 so nguyen:');
Readln(a);
If a>0 then write('So nguyen duong co trong man la:',a);
If a<0 then write('so nguyen am co trong man la:',a);
If a=0 then write ('0');
Readln;
End.
Viết chương trình nhập điểm kiểm tra học kì môn tin cho n học sinh va in ra màn hình. Với n và điểm kiểm tra được nhập từ bàn phím ( sử dụng biến mảng)
Câu trả lời của bạn
program bai1;
var a:array[1..100] ò longint;
i,n:longint;
begin
{Thu tu hoc sinh duoc viet theo a[..]}
repeat
write('N= ');
readln(n);
until n>0;
for i:=1 to n do
begin
write('a[',i,']= ');
readln9a[i]);
end;
write('Diem cua ',n,' hoc sinh la ');
for i:=1 to n do
write(a[i],' ');
readln
end.
1. Tính tổng các phần tử của dãy số A = (a1,a2,....an) cho trước
2. Tính tổng các số dương trong dãy số A = (a1,a2,...an) cho trước
Giúp e với . Pls ><
Câu trả lời của bạn
2 B1 Nhập số n. Tồng n <-0, i <-1
B2 Nhập giá trị cho a ( nhập lần thứ i hay phần tử ai)
B3 Nếu ai >0, Tổng <- Tổng +ai
B4 i <- i+1
B5 Nếu i <=n, quay lại bước 2
B6 In kết quả Tổng và kết thúc thuật toán
:)
Viết chương trình nhập n số nguyên từ bàn phím in ra màn hình những số chia hết cho 2
Câu trả lời của bạn
uses crt;
var i,n: integer;
a: array [1..100] of integer;
begin
write('nhap so n:'); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
writeln('nhung so chia het cho 2 trong day la:');
for i:=1 to n do
if a[i] mod 2 = 0 then
writeln(a[i]);
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 *