Nội dung của Bài 7: Câu lệnh lặp dưới đây sẽ giúp các em biết được nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình, hiểu hoạt động của câu lệnh lặp với số lần biết trước for...do trong Pascal, viết đúng lệnh for...do trong một số tình huống đơn giản, hiểu lệnh ghép trong Pascal,... Mời các em cùng theo dõi bài học để tìm hiểu chi tiết.
Trong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi lặp lại nhiều lần.
Ví dụ:
Ví dụ số lần lặp biết trước: Các ngày trong tuần các em đều lặp đi lặp lại hoạt động buổi sáng đến trường và buổi trưa trở về nhà.
Ví dụ số lần lặp không biết trước: Trong một trận cầu lông các em lặp đi lặp lại công việc đánh cầu cho đến khi kết thúc trận cầu.
Tóm lại: Khi viết chương trình máy tính, trong nhiều trường hợp ta cũng phải viết lặp lại nhiều câu lệnh chỉ để thực hiện 1 phép tính nhất định.
Ví dụ 1: Giả sử cần vẽ 3 hình vuông có cạnh 1 đơn vị. Mỗi hình vuông là ảnh dịch chuyển của hình bên trái nó một khoảng cách 2 đơn vị.
Hình 1. Ba hình vuông
Thuật toán:
Bài toán vẽ một hình vuông:
Hình 2. Các bước vẽ hình vuông
Thuật toán mô tả các bước để vẽ hình vuông:
Trong đó, biến k được sử dụng như là biến đếm để ghi lại số cạnh đã vẽ được.
Ví dụ 2: Tính tổng 100 số tự nhiên đầu tiên S=1+2+…+100
Thuật toán:
KẾT LUẬN:
Cú pháp:
For < Biến đếm > := < Giá trị đầu > to < Giá trị cuối > do < Câu lệnh >;
Trong đó:
Lưu ý:
Hoạt động của vòng lặp:
Ví dụ 3: Chương trình sau sẽ in ra màn hình thứ tự lần lặp.
Chương trình mẫu:
Program ViDu3;
Var i: Integer;
Begin
For i:=1 to 10 do
Writeln ('Day la lan lap thu ',i);
Readln;
End.
Ví dụ 4: In một chữ "O" trên màn hình.
Chương trình mẫu:
Program ViDu4;
Uses crt;
Var i:Integer;
Begin
Clrscr;
For i:=1 to 20 do
Begin
Writeln('O'); Delay(100);
End;
Readln;
End.
Hình 3. Câu lệnh đơn và câu lệnh ghép
Câu lệnh đơn giản writeln('O') và delay(100) được đặt trong hai từ khóa begin và end để tạo thành một câu lệnh ghép trong Pascal.
Ví dụ 5: Chương trình sau đây sẽ tính tổng N số tự nhiên đầu tiên với N nhập từ bàn phím.
Chương trình mẫu:
Program tinh_tong;
Var N,i: Integer;
S: longint;
Begin
Clrscr;
Writeln(‘Nhap N =’);
Readln(N);
S:=0;
For i:=1 to N do
S:=S+i;
Witeln(‘tong la:’,S);
Readln;
End.
Ví dụ 6: Ta kí hiệu N! là tích N số tự nhiên đầu tiên: N! = 1.2.3…N.
Chương trình mẫu:
Program tinh_giai_thua;
Var N,i: Integer;
P: Longint;
Begin
Clrscr;
Write(‘Nhap N =’);
readln(N);
P:=1;
For i:=1 to N do
P:=P*i;
Wirteln(N,’!=’,P);
Readln;
End.
Sau khi học xong Bài 7: Câu lệnh lặp, 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 7 cực hay có đáp án và lời giải chi tiết.
Chọn cú pháp đúng nhất về câu lệnh lặp:
Hoạt động nào sau đây lặp với số lần lặp biết trước?
Em hiểu lệnh lặp theo nghĩa nào dưới đây?
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 7để 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 60 SGK Tin học 8
Bài tập 2 trang 60 SGK Tin học 8
Bài tập 3 trang 60 SGK Tin học 8
Bài tập 4 trang 61 SGK Tin học 8
Bài tập 5 trang 61 SGK Tin học 8
Bài tập 6 trang 61 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
Chọn cú pháp đúng nhất về câu lệnh lặp:
Hoạt động nào sau đây lặp với số lần lặp biết trước?
Em hiểu lệnh lặp theo nghĩa nào dưới đây?
Khi nào thì câu lệnh For..to..do kết thúc?
Cho các câu lệnh sau hãy chỉ ra câu lệnh đúng?
Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu nào?
Trong câu lệnh lặp với số lần biết trước (For – do), được thực hiện mấy lần?
Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1 đến 100
Kết quả của < điều kiện > trong câu lệnh sẽ có giá trị là gì?
Sau khi thực hiện đoạn chương trình sau:
S:=0; For i:=1 to 5 do S:=S+i;
Giá trị của biến S bằng bao nhiêu?
Cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hàng ngày.
Hãy cho biết tác dụng của câu lệnh lặp với số lần biết trước.
Khi thực hiện các hoạt động lặp, chương trình kiểm tra một điều kiện. Với lệnh lặp:
for < biến đếm > := < giá trị đầu > to < giá trị cuối > do < câu lệnh >;
của Pascal, điều kiện cần phải kiểm tra là gì?
Sau khi thực hiện đoạn chương trình sau, giá trị của biến j bằng bao nhiêu?
j:=0;
for i:=0 to 5 do j:=j+2
Các câu lệnh Pascal có hợp lệ không, vì sao?
a) for i:=100 to 1 do writeln('A');
b) for i:=1.5 to 10.5 do writeln('A');
c) for i=1 to 10 do writeln('A');
d) for i:=1 to 10 do; writeln('A');
e) var x: real; for x:=1 to 10 do writeln('A');
Hãy mô tả thuật toán để tính tổng sau đây:
\(A=\frac{1}{1.3}+\frac{1}{2.4}+\frac{1}{3.5}+...+\frac{1}{n.(n+2)}\)
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Câu trả lời của bạn
var a,b,c,n:integer;
begin
readln(n,a,b,c);
if (a=b) or (b=c) or (a=c) then
writeln('can') else writeln('khong can');
end.
Viết chương trình tính S=\(\frac{1}{1.2}+\frac{1}{2.3}+\frac{1}{3.4}+....+\frac{1}{99.100}\)
Câu trả lời của bạn
program Tinh_tong;
uses crt;
var S,i,n:longint;
begin
clrscr;
writeln('hay nhap n',); Readln(n);
S:=0;
i:=1;
For i:=\(\frac{1}{1.3}\)to\(\frac{1}{99.100}\) do \(S:=S+\frac{1}{99.100}\);
i:=i+1;
IF i<=n THEN writeln('Tong cua S=',A);
Readln
End.
viết chương trình tính tổng 30 số nguyên đầu tiên
Câu trả lời của bạn
var i,n,s:integer;
begin
readln(n); s:=0;
for i:=1 to 30 do
s:=s+i;
wirteln(s);
end.
Viết chương trình nhập vào một dãy số nguyên và tính tổng dãy đó. Viết chương trình nhập vào một dãy số nguyên và tính tích dãy đó. ........................Pascal.......................
Câu trả lời của bạn
còn phải in ra dãy số lẻ nx mà nếu không in ra sẽ bị thiếu trừ điểm
2.
uses crt;
var i, n :integer;
tich: longint;
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;
tich:=1;
for i:=1 to n do
tich:= tich* a[i];
writeln('tich cua day so la: ', tich);
readln
end.
1.
uses crt;
var i, n:integer;
s: longint;
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;
for i:=1 to n do
s:= s+ a[i];
writeln('tong cua day so la: ', s);
readln
end.
sau khi thuc hien doan phuong trinh sau gia tri cua bien j bang baqo nhieu?
j: = 0 ;
for i : = 1to 10 do j : = j + 2 ;
Câu trả lời của bạn
so lan lap la 10
=> j+2(10+2+2+2+2+2+2+2+2+2+2)=20
tick di
Viết chương trình tính tổng 200 số tự nhiên đầu tiên.
Câu trả lời của bạn
program tinhtong;
uses crt;
var i: integer;
s: longint;
begin
s:= 0;
for i:= 1 to 200 do s:= s+i;
writeln('tong 200 so tu nhien dau tien la: ', s);
readln
end.
1.Cho đoạn chương trình sau :
S:= 0 ; n:= 0 While S <= 7 do
begin n:= n+1; S:= S+n ; end ;
a)Tính số vòng lặp.
b)Sau khi thực hiện chương trình giá trị biến S bằng bao nhiêu?
Câu trả lời của bạn
a/ 7 vòng lặp
b/ biến bằng 1,2,3,4,5,6,7
Viết CT nhập vào một số, kiểm tra xem số đó có phải là số chính phương ko ? (Sử dụng câu lệnh lặp nha mấy bạn.) Ai bt thì cho mình câu hỏi. Cảm ơn nhìu
Câu trả lời của bạn
Program Marble_Top;
uses crt;
var i,n,t:integer;
begin
write('nhap n '); readln(n);
for i:= 1 to n do
if i*i =n then t:= t+1;
if t=1 then write (n, ' la so chinh phuong') else write (n, ' khong la so chinh phuong');
readln
end.
Viết chương trình in ra màn hình tổng của n số chẵn đầu tiên vs n dk nhập từ bàn phím
Giúp mjnk vs nha mấy bn. Bài KT kì II của tui
Câu trả lời của bạn
uses crt;
var n,i,s,dem:integer;
begin
clrscr;
write('nhap n:');readln(n);
s:=0; dem:=0; i:=0;
while dem<=n do
begin
if i mod 2 =0 then
begin
s:=s+i;
dem:=dem+1;
i:=i+1;
end
else i:=i+1;
end;
write(s);
readln;
end.
Bài 1: Viết chương trình tính n! ( n! = 1.2.3.4...n )
Bài 2: Viết chương trình nhập vào mảng gồm n phần tử là số nguyên dương, in ra mảng vừa nhập. Kiểm tra và in ra màn hình các phần tử là số chẵn.
MN GIÚP MÌNH VỚI MAI PHẢI NỘP BÀI RỒI HUHU T_T
Câu trả lời của bạn
Bài 1:
program cau1;
uses crt;
var n,i:integer;
p:longint;
begin
clrscr;
write('Nhap n:'); readln(n);
p:=1;
for i:=1 to n do p:=p*i;
writeln('n!=',p);
readln
end.
program bt;
var a:array[1..1000] : integer;
i,n,t:integer;
begin
write('nhap so phan tu cua mang');
readln(n);
for i:=1 to n do
begin
write('phan tu thu ',i,' : ');
readln(a[i]);
end;
for i:=1 to n do
t:= t + a[i]
write('tong cac phan tu trong mang la :',t);
readln
end.
B1:
uses crt;
var n,i:longint;
begin
write('nhap n= ');readln(n);
for i:=1 to n do n:=n*1;
write('n!= ',n);
readln
end.
Câu này làm như thế nào mọi người ơi ......hepl me
Câu trả lời của bạn
Program luy_thua;
Uses crt;
Var a, i, n: integer;
Begin
Write('Nhap co so a: '); readln(a);
Write('Nhap so mu n: '); readln(n);
For i:=1 to n do a:=a*a;
Writeln('Gia tri a luy thua n la: ', a);
Readln;
End.
Mọi người giúp mình với ạ: viết chương trình tính số các số nguyên dương được nhập từ bàn phím. Cảm ơn mọi người
Câu trả lời của bạn
Var s,i,n : Integer
Begin
Writeln( ' Nhap n = ') ; Readln ( n) ;
S:= 0 ;
For i := 1 to 10 do
If i mod 2 = 0 then s:= s+1
Writeln (' Tong cac so chan<= ' , n , ' la ',S ) ;
Readln ;
End.
Sau khi thực hiện đoạn chương trình sau, giá trị của biến j bằng bao nhiêu?
j:=0;
for i:=0 to 5 do j:=j+2;
Câu trả lời của bạn
Đoạn chương trình này có 6 vòng lặp mà mỗi vòng tăng thêm 2 đơn vị nên giá trị của j sẽ bằng: 2,4,6,8,10,12
Hãy mô tả thuật toán để tính tổng sau đây:
A = \(\frac{1}{1.3}\)+\(\frac{1}{2.4}\)+\(\frac{1}{3.5}\)+...+\(\frac{1}{n\left(n+2\right)}\).
Câu trả lời của bạn
Bước 1: nhập n, \(A\leftarrow0\), \(i\leftarrow1\);
Bước 2: \(A\leftarrow A+\frac{1}{i\left(i+2\right)}\)
Bước 3: \(i\leftarrow i+1\)
Bước 4: Nếu i<=n thì quay về bước 2.
Bước 5: Ghi kết quả A ra màn hình và kết thúc
Bài 1: Viết chương trình, tính tổng. S= 1+2+3+4+5
Câu trả lời của bạn
lười viết
Program Tinh_toan;
uses crt;
var i,n:integer;
S:longint;
begin
For i:=1 to 5 do S:= S+i;
write('tong S = ' , S);
readln
end.
program gacho;
uses crt;
var a:integer; {1 biến là đủ)
begin
clrscr;
for a:=1 to 36 do {tốt nhất là cứ xét a từ 1 đến 36 cho tổng quát)
begin
if ((4*a+2*(36-a))=100)then {rõ ràng a+b=36 rồi đâu cần xét nữa)
begin
writeln ('so cho la', a);
writeln ('so ga la', 36-a);
end;
end;
readln;
end.
Đây là chương trình lập trình với pascal nah!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
???? Viết chương trình tính tổng S=12+22+32+......+n2
Mình thanks trước nah
Câu trả lời của bạn
S=1^2-2^2+3^2-4^2+...+n^2
tính 1^2+2^2+3^3+...+n^n
mọi người giúp e với
var n,i,s:integer;
begin
readln(n);
for i:=1 to n do s:=s+i*i;
writeln(s);
readln;
end.
Viết chương trình tính tổng 100 số tự nhiên đầu tiên
Câu trả lời của bạn
Program tinh_tong;
uses crt;
const : N:=100;
Var i,tong:integer;
begin
clrscr;
tong:=0; i:=1;
while i<=N do
begin
tong: = tong + i;
i:=i+1;
end;
Writeln('tong cua 100 so tu nhien dau tien la ',tong);
Readln ;
End.
Hãy tìm hiểu đoạn lệnh sau đây và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp và khi kết thúc giá trị của S bằng bao nhiêu ?
S := 0; n :=1
While S <= 18 do
Begin n := n +3; S := S + n; end;
Câu trả lời của bạn
Với đoạn lẹnh này chương trình sẽ thực hiện 3 vòng lặp và kết thúc giá trị của S=21.
Lần thứ nhất:
n=n+3=1+3=4; S=S+n=0+4=4;
Lần thứ hai:
\(n=n+3=4+3=7;S=S+n=4+7=11;\)
Lần thứ ba:
\(n=n+3=7+3=10;S=S+n=11+10=21;\)
đến lần này S=21 mà 21>18 không thỏa mãn điều kiện nên lệnh lặp không được thực hiện, câu lẹnh kết thúc, S=21 lặp 3 lần.
Viết chương trình tính tổng n số tự nhiên cho đến khi S<= 2000 thì dừng.
Câu trả lời của bạn
program tong_so_tu_nhien;
uses crt;
var a,i,s: longint;
begin
clrscr;
s:= 0;
while s<=2000 do begin
writeln('nhap so n: '); readln(n);
s:= s+n;
writeln('tong la: ',s); end;
readln
end.
Mình chạy chương trình rồi! Làm đúng đó nên bạn tham khảo nhé! Chúc bạn học tốt!
Câu trả lời của bạn
uses crt;
var s,t:string;
n,i,j,z,k,l:longint;
a:array[1..100] of string;
begin
clrscr;
write('nhap xau:');readln(s);
z:=1; j:=0;
s:=s+' ';
for i:=1 to length(s) do
if (s[i]=' ') and (s[i-1]<>' ') then
begin
j:=j+1;
a[j]:='';
for k:=z to i-1 do
begin
a[j]:=a[j]+s[k];
end;
z:=i+1;
end;
for i:=1 to j-1 do
for k:=i+1 to j do
if length(a[i])>length(a[k]) then
begin
t:=a[i];
a[i]:=a[k];
a[k]:=t;
end;
s:='';
for i:=1 to j do
s:=s+' '+a[i];
writeln('xau da sap xep tu tang dan la:');
write(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 *