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ạo mảng như sau:
5 10 15 20 25 30 35
10 11 12 13 14 15 16
a. Tính tổng các phần tử chằn trong mảng
b. So sánh số phần tử chẳn và lẻ trong mảng
Câu trả lời của bạn
a)Var z:array[1..1000] of longint;
n, i,S:longint;
Begin
S:=0;
Readln(n);
For i:=1 to n do begin writeln('s',i,'=');
Readln(z[i]);
End;
For i:=1 to n do if z[i] mod 2 = 0 then begin S:=S + z[i];
End;
Writeln('Tong chan la ',S);
End.
b)
Var z:array[1..1000] of longint;
n, i, chan, le:longint;
Begin
S:=0;
Readln(n);
For i:=1 to n do begin writeln('s',i,'=');
Readln(z[i]);
End;
For i:=1 to n do if z[i] mod 2 = 0 then begin write(z[i]:10);
Writeln('chan');
chan:=z[i];
End;
For i:=1 to n do if z[i] mod 2 = 0 then begin write(z[i]:10);
Writeln('chan');
chan:=z[i];
End;
If chan>le then writeln('So phan tu chan trong mang nhieu hon')
else writeln('So phan tu le trong mang nhieu hon');
End.
Cậu thử kiểm tra lại nhé!
Viết Chương Trình S=1+1/2+1/3+...+1/n với số n là số tự nhiên được nhập từ bàn phím.
Các Bạn Ơi Giúp Mình Với
Câu trả lời của bạn
Var i , n : integer;
S : real;
Begin
write ('n=') ; read (n);
S:= 0;
For i:=1 to n do S:= S + 1/i;
Write (S);
Readln;
End.
giúp mk bt pascal này vs!!!!!
Giả thiết có N hộp được đặt tên A1,A2,....,AN (3<=N<=200). Mỗi hộp được khóa bởi một khóa riêng. Người ta bỏ vào mỗi hộp một chìa khóa và khóa các hộp từ A3 cho đến AN. sau đó mở hai hộp A1 và A2 lấy các chìa khóa ra. Nếu những chìa khóa này mở được một số hộp nào đó, người ta sẽ lấy các chìa khóa ra từ đó và mở tiếp các hộp khác. Nếu cuối cùng người ta mở được hết các hộp, thì các chìa khóa gọi là bố trí tốt.
vct pascal tìm xem có bao nhiêu cách bố trí tốt chìa khóa
vd: N=6 có 240 cách bố trí tốt!
cảm ơn trước ạ!!!
Câu trả lời của bạn
const
fi='botri.inp';
fo='botri.out';
var
f:text;
i,n,t:integer;
procedure inp;
begin
assign(f,fi);
reset(f);
read(F,n);
closE(F);
end;
procedure out;
begin
assign(f,fo);
rewrite(F);
t:=1;
for i:=n-1 downto 1 do
t:=t*i;
t:=t*2;
write(f,t);
closE(F);
end;
BEGIN
INP;
OUT;
END.
const
fi='botri.inp';
fo='botri.out';
var
f:text;
i,n,t:integer;
procedure inp;
begin
assign(f,fi);
reset(f);
read(F,n);
closE(F);
end;
procedure out;
begin
assign(f,fo);
rewrite(F);
t:=1;
for i:=n-1 downto 1 do
t:=t*i;
t:=t*2;
write(f,t);
closE(F);
end;
BEGIN
INP;
OUT;
END.
Viết chương trình in ra màn hình các điểm của các học sinh.
In ra màn hình các điểm trên 5.
Tính trung bình các điểm trên 5.
Sử dụng khai báo biến mảng
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.
Viết chương trình nhập giá trị cho biến mảng
Câu trả lời của bạn
Dùng biến n để lưu lượng số cần nhập.
- Dùng mảng để lưu các số vừa nhập.
- Cho i chạy từ n về 1 để in các số vừa nhập.
b.Mã chương trình:
Program mang_1; uses crt; var n, i: integer; M: array[1..100] of real; Begin write('Nhap so n: ');readln(n); for i:=1 to n do Begin write('M[',i,']='); readln(M[i]); end; for i:= n downto 1 do write(m[i],’ ,’); readln end. |
Anh em giúp bài này nhé là 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ó ( những chữ số này được gọi làAMSTRONG
Câu trả lời của bạn
Trong trường hợp tìm các số từ 0 đến 999 (tức là chấp nhận cả các số có 1 hoặc 2 chữ số):
Em có thể viết 3 vòng for lồng nhau để duyệt tất cả các giá trị của a, b và c (từ 0 đến 9)
Trong mỗi lần lặp thì kiểm tra điều kiện abc = a^3 + b^3 + c^3 bằng câu lệnh tương đương trong pascal:
a*100 + b*10 + c = a*a*a + b*b*b + c*c*c
Nếu thỏa mãn thì in ra màn hình.
Mà lớp 8 có tin học ak
Viết chương trình nhập vào 1 mảng số nguyên gồm n phần tử
Câu trả lời của bạn
program mang;
uses crt;
var i,n:longint;
A:array[1..1000] of integer;
begin
clrscr;
write ('So cac phan tu cua mang la '); readln (n);
For i:=1 to n do
begin
write ('Hay nhap phan tu thu',i);readln(A[i]);
end;
readln;
end.
viết chương trình nhập vào dãy số từ bàn phím sau đó in ra màn hình
Câu trả lời của bạn
Program Day_so;
Uses crt;
Var a:string;
Begin
clrscr;
Writeln('Hay nhap day so',a);Readln(a);
End.
viết công thức tính : tính tổng các số 1+ 1/2*3+....+1/n*(n+1) trên Pascal
Câu trả lời của bạn
Var i,n:integer;
S:real;
Begin
Write(' nhap n : ');
Readln(n);
S:=1;
For i:= 1 to n do S:= S+1/i*(i+1);
Writeln (' tong cac so :',S);
Readln;
end.
Viết chương trình nhập 10 phần tử cho mảng A tính tổng các số trong dãy tổng các số lẻ tổng các số chẳng
Giúp mình giải với ạ
Câu trả lời của bạn
Uses crt;
Var A:array[1..10] of integer;
Tong,Tongle,Tongchan,i:integer;
Begin
Clrscr;
Tong:=0;
Tongchan:=0;
Tongle:=0;
For i:=1 to 10 do
Begin
Write('a[',i,'] : ');Readln(a[i]);
Tong:=Tong+a[i];
If a[i] mod 2 = 0 then
Tongchan:=Tongchan+a[i]
Else
Tongle:=Tongle+a[i];
Clrscr;
End;
Writeln('Tong cac phan tu : ',Tong);
Writeln('Tong cac phan tu le : ',Tongle);
Writeln('Tong cac phan tu chan : ',Tongchan);
End.
{ Có gì sai sót cho mình xin lỗi =) }
Viết chương trình nhập n số nguyên từ bàn phím và in ra màn hình tổng giá trị của các số nguyên đó
Câu trả lời của bạn
Program bai1;
uses crt;
var tong : array [1..100] of integer;
S, i, n : integer;
Begin
clrscr;
readln (n);
for i:=1 to n do
readln (tong [i]);
for i:=1 to n do
S:= S+tong[i];
Writeln ('tong cua' n 'so nguyen la' S);
End.
Cho một file songuyen.inp gồm 2 dòng:
Dòng 1 chứa số nguyên N (N<=106), dòng 2 chứa n phần tử, các phần tử cách nhau bởi dấu cách
Viết chương trình:
a)Tìm số nguyên tố lớn nhất của dãy ghi vào file songuyen.out.
b)Tìm số chính phương lớn nhất của dãy ghi vào file songuyen.out.
*Câu a, b viết hai chương trình riêng.
Các bạn giúp mình với, mình cảm ơn trước nhé!
Câu trả lời của bạn
Viết C++ được không? :))
1. Viết chương trình nhập vào 1 dãy số gồm n số rồi in ra các số âm có trong dãy số đó.
2. Viết chương trình nhập vào 1 số in ra các ước của số đó.
3. Viết chương trình nhập vào một số đếm xem số đó có bao nhiêu ước.
4. Viết chương trình nhập vào 1 số rồi tính tổng các ước của số đó.
5. Viết chương trình nhập vào 1 số, in ra các ước của số đó, đếm xem số đó có bao nhiêu ước và tính tổng các ước của số đó.
Câu trả lời của bạn
1.program insoam;
uses crt;
var a:array[1..50] of integer;
n,i:integer;
begin
clrscr;
write('nhap so phan tu: ');readln(n);
for i:=1 to n do
begin
write('a[',i,']'); readln(a[i]);
end;
write('cac phan tu am la: ');
for i:=1 to n do
if a[i]<0 then write(a[i]);
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 gồm n phần tử. sau đó in ra màn hình các số nguyên tố
Câu trả lời của bạn
program Project1;
uses crt;
var
a:array[1..100] of integer;
n, i:integer;
begin
clrscr;
write('Nhap vao so phan tu co trong day:='); readln(n);
for i:=1 to n do
begin
write('Nhap vao phan tu thu ',i,' :='); readln(A[i]);
end;
for i:=1 to n do
writeln(A[i]);
readln;
end.
viet chương trình đếm các số nguyên tố trong khoảng a đến b với a<b và ab là hai số nguyên được nhâp từ bàn phím
Câu trả lời của bạn
uses crt;
var a,b,dem,j,i:longint;
kt:boolean
begin
repeat
clrscr;
write('nhap a= ');readln(a);
write('nhap b= ');readln(b);
until a<b;
for i:=a to b do if i>1 then
begin
kt:=true;
for j:=2 to i-1 do if i mod j=0 then
begin
kt:=false;
break;
end;
if kt=true then inc(dem);
end;
readln
end.
Viết chương trình nhập mảng số nguyên n phần tử đếm xem trong mảng có bao nhiêu phần tử âm rồi thông báo lên màn hình. xuất mảng con ra màn hình
Câu trả lời của bạn
program day_con;
uses crt;
var A:array[1..100] of integer;
i,n,dau,ldau,dai: integer;
begin
write('Nhap so n: '); readln(n);
for i:=1 to n do
begin write('a[',i,']='); read(a[i]); end;
i:=0;
dau:=1;
dai:=0;
ldau:=1;
ldau:=i+1;
while i<=n do
begin
i:=i+1;
if M[i] < 0 then begin dai:=dai+1;
end;
writeln('Co ',dai,'phan tu am; Bat dau tu: ',ldau);
readln
end.
Viết chương trình nhập vào một mảng là dãy các số nguyên
+ Tìm số bé nhất trong dãy số
+ Tính trung bình cộng các số lẽ
+ Đếm xem trong dãy có bao nhiêu số chia hết cho 5
Câu trả lời của bạn
program ct1;
vả i, n : integer;
min , sum: integer;
tb: real;
dem: integer;
a: array (1.. 100) of integer;
begin
write (' nhap do dai cua day so n=');
readln (n);
for i:=1 to n do begin
write (' nhap phan tu thu i cua mang a (',i,')');
readln (a (i));
end;
nim : a (1);
for i: = 1 to n do
if min > a (i) then min : = a(i);
write ( ' gia tri nho nhat la', min);
9
uses crt;
var n,i,j,min,dem,dem1:longint;
a:array[1..100]of longint;
begin
clrscr;
write('nhap n= ');readln(n);
for i:=1 to n do
begin
readln(n);
if a[i] mod 2<>0 then
begin
inc(dem);
t:=t+a[i];
end;
if a[i] mod 5=0 then inc(dem1);
end;
min:=a[1];
for i:=1 to n do if a[i] < min do min:=a[i];
writeln('So nho nhat: ',min);
writeln('Chia het cho 5: ',dem1);
write('Trung binh cong so le: ',t/dem);
readln
end.
program sduhf;
uses crt;
var A: array[1..1000] of integer;
n,i,min,dem,tinh: integer;
tb: real;
begin
clrscr;
writeln('Nhap do dai day: '); read(n);
writeln('Nhap cac phan tu cua day: ');
for i:=1 to n do
begin
writeln('a[',i,'] = '); read(a[i]);
end;
{tim so be nhat};
min:=a[1];
for i:= 1 to n do
if a[i] < min then min:=a[i];
writeln('So be nhat la: ',min);
{tim TBC cac so le};
tb:= 0;
dem:=0;
for i:= 1 to n do
if a[i] mod 2 <> 0 then
begin
dem:=dem+1; tb:=tb+a[i];
end;
tb:= tb/dem;
writeln('Trung binh cong cac so le la: ',tb);
{dem so so chia het cho 5};
tinh:=0;
for i:=1 to n do
if a[i] mod 5 = 0 then tinh:=tinh + 1;
writeln('Co ',tinh,'so chia het cho 5');
Readln
end.
Viết chương trình nhập vào một mảng là dãy các số nguyên
+ Tìm số lớn nhất trong dãy
+ Tính trung bình cộng các số chẵn
+ Đếm xem trong dãy có bao nhiêu số chia hết cho 3
Câu trả lời của bạn
uses crt;
var n,i,j,max,dem:longint;
a:array[1..100]of longint;
begin
clrscr;
write('nhap n= ');readln(n);
for i:=1 to n do
begin
readln(n);
if a[i] mod 2=0 then
begin
inc(dem);
t:=t+a[i];
end;
if a[i] mod 3=0 then inc(j);
end;
max:=a[1];
for i:=1 to n do if a[i] > max do max:=a[i];
writeln('So lon nhat: ',max);
writeln('Chia het cho 3: ',j);
write('Trung binh cong so chan : ',t/dem);
readln
end.
program sgvuhf;
uses crt;
var A: array[1..1000] of integer;
n,i,max,dem,tinh: integer;
tb: real;
begin
clrscr;
writeln('Nhap do dai day: '); read(n);
writeln('Nhap cac phan tu cua day: ');
for i:=1 to n do
begin
writeln('a[',i,'] = '); read(a[i]);
end;
{tim so lon nhat};
max:=a[1];
for i:= 1 to n do
if a[i] > max then max:=a[i];
writeln('So lon nhat la: ',max);
{tim TBC cac so chan};
tb:= 0;
dem:=0;
for i:= 1 to n do
if a[i] mod 2 = 0 then
begin
dem:=dem+1; tb:=tb+a[i];
end;
tb:= tb/dem;
writeln('Trung binh cong cac so chan la: ',tb);
{dem so so chia het cho 5};
tinh:=0;
for i:=1 to n do
if a[i] mod 3 = 0 then tinh:=tinh + 1;
writeln('Co ',tinh,'so chia het cho 3');
Readln
end.
Viết chương trình nhập vào điểm của n bạn học sinh trong lớp in ra màn hình các điểm vừa nhập,in ra màn hình điểm của bạn cao nhất
Giúp mình với~~~ Mai mình thi!!☹
Câu trả lời của bạn
=))
Câu 1: Cho đoạn chương trình:
S:=0;
For i:=1 to 5 do S:=S+1;
a) Cho biết giá trị của S
b) Đoạn chương trình trên thực hiện bao nhiêu lần lặp
Câu 2:
Viết chương trình bằng ngôn ngữ lập trình pascal thực hiện công việc nhập 20 phần tử có giá trị nguyên cho mảng B(1 chiều, nhập từ bàn phím)
a) Tính tổng các phần tử có giá trị dương trong mảng
b) Tính tổng các phần tử có giá trị lẻ trong mảng
*Giúp mình nha, sắp thi rùi
Câu trả lời của bạn
câu 1 a) S=5
b)Doan chuong trinh thuc hien 5 vong lap
câu 2:
program tinhtong;
uses crt;
var B:array [1..20] of integer;
le,tong,i:integer;
begin
writeln ('nhap gia tri cua mang B');
for i:=1 to 20 do
readln (B[i]);
for i:=1 to 20 do
begin
if A[i] mod 2=1 then le:=le+A[i];
if A[i]>0 then tong:=tong+A[i];
end;
writeln ('tong cac so duong la',tong);
writeln ('tong cac so le la',le);
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 *