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
nhập mảng có n phần tử nguyên tử bàn phím. in ra màn hình các phần tử lẻ và tính tích các phần tử đó
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
Program Tong_chu_so;
Var s:string;
i:byte;
p:integer;{bien luu tong}
begin
write('Nhap so: ');readln(s);
for i:=1 to length(s) do p:=p+ord(s[i]);
p:=p-48*length(s);
writeln(p);
Readln
End
Câu trả lời của bạn
Câu trả lời của bạn
vai trò của thông tin
Câu trả lời của bạn
Viết chương trình sử dụng câu lệnh lặp để nhập các phần tử của dãy số gồm n phần tử, kiểm tra xem dãy số đã cho có bao nhiêu số nguyên dương và bao nhiêu số nguyên âm.
Câu trả lời của bạn
bạn có thể sử dụng white...do hặng for....do
mình vừa lưu chuông trình pascal vào ổ d giờ mik muốn mở ra thì dùng trình duyệt nào
Câu trả lời của bạn
nêu các thao tác mở 1 tệp mới, lưu tệp, mở tệp có sẵn ở trong phần mềm geogebra
Câu trả lời của bạn
Em hãy viết chương trình nhập vào N số nguyên (0 < N ≤ 688886) a1; a2; a3; … an (-9 tỷ tỷ ≤ ai ≤ +9 tỷ tỷ) vào từ bàn phím. In ra màn hình dãy số vừa nhập, số lớn nhất có trong dãy, vị trí của các số lớn nhất có trong dãy, số lượng phần tử lớn nhất có trong dãy mỗi kết quả trên một dòng. Ví dụ: Nhập vào N = 5; Các phần tử a1 = 500; a2 = 125; a3 = 300; a4 = 25; a5 =500; Kết quả trên màn hình là: 100 125 300 25 500 500 1 5 2
Câu trả lời của bạn
a) Tính tổng các số âm trong dãy
b)tính tổng các số chia hết cho 2 trong dãy
Câu trả lời của bạn
1.Cho 1 xâu kí tự tính xem trong số đó có bao nhiêu loại kí tự khác nhau (không phân biệt in hoa hay in thường)
2.Viết chương trình nhập 1 mảng n số nguyên. Đếm số phần tử nhỏ hơn 0, đếm số phần tử lớn hơn 0
3.Nhập xâu gồm tất cả chữ và số xuất ra màn hình các số riêng và chữa riêng. Hãy đếm số lần xuất hiện của mỗi chữ mỗi số
Câu trả lời của bạn
viết chương nhập số a , thông báo ra màn hình số đó có mấy chữ số và tổng các chữ số của nó
Giúp mình với ạ , mình cần gấp lắm
Câu trả lời của bạn
Câu 1. Trong Pascal vòng lặp nào sau là vòng lặp có bước lặp xác định (biết trước).A. While … doB. Repeat … UntilC. For .. to .. doD. Case.. ofCâu 2. Phương án nào dưới đây là khai báo mảng hợp lệ ?A. mang : array[0..10] of integer;B. mang : array[0..10] : integer;C. mang : integer of array[0..10];D. mang : array(0..10) : integer;Câu 3. Cho khai báo sau :a : array[0..16] of integer ;Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?A. for k := 1 to 16 do write(a[k]);B. for k := 16 downto 0 do write(a[k]);C. for k:= 0 to 15 do write(a[k]);D. for k := 16 down to 0 write(a[k]);Câu 4. Cho khai báo sau:Var a : array[0..10] of integer ;Phương án nào dưới đây chỉ phần tử thứ 10 của mảng ?A. a[10];B. a(10);C. a[9];D. a(9);Câu 5. Chọn khai báo đúng:A. Var A: array[1..10] of integer; B. Var A= array[1..10] of integer;C. Var A:= array[1..10] of integer; D. Var A: array[1,10] of integer;Câu 6. Cho khai báo: Var a : array[0..50] of real; và đoạn chương trình:k := 0 ;for i := 1 to 50 doif a[i] < a[k] then k := i ;Đoạn chương trình trên thực hiện công việc gì dưới đây ?A.Tìm phần tử nhỏ nhất trong mảng;B.Tìm phần tử lớn nhất trong mảng;C.Tìm chỉ số của phần tử lớn nhất trong mảng;D.Tìm chỉ số của phần tử nhỏ nhất trong mảng;Câu 7. Cho S va i là biến nguyên. Khi chạy đoạn chương trình:S:=0;For i:=1 to 10 do s:=s+i;Writeln(s);Kết quả in lên màn hình là:A. s=11B. s=55C. s=100D. s=101Câu 8. Câu lệnh cho phép ta nhập giá trị của a từ bàn phím là: A. readln(a); B. Writeln(a); C. Write(‘nhap gia tri cua a:’); D. Write(a);Câu 9. Câu lệnh lặp với số lần chưa biết trước bắt đầu bằng từ khóa:A. ForB. WhileC. IfD. VarCâu 10. Cho S và i là biến nguyên. Khi chạy đoạn chương trình : s:=0; for i:=1 to 3 do s := s + i; writeln(s); Kết quả in lên màn hình của S là :63 05Câu 11. Khai báo biến kiểu mảng nào sau đây là hợp lệ:A. Var A: array[1.5..10.5] of real;B. Var A: array[1…N] of real;C. Var A: array[100..1] of integer;D. Var A: array[1..50] of integer;Câu 12. Khi chạy chương trình:Var S, i, j: Integer;BeginS:=0;for i:= 1 to 3 dofor j:= 1 to 4 do S:=S+1;End.Giá trị sau cùng của S là:A. 4B. 3C. 12D. 0Câu 13. Một số kiểu dữ liệu trong passcal: A. Integer, real, byte, char… B. Writeln, readln, integer, begin... C. For, while, array, to… D. While, do, real…Câu 14. Câu lệnh lặp while…do nào dưới đây là đúng: A. While i:=10 do S := S+1/i;B. While i > 1 do S = S+1/i;C. While 10 do S := S+1/i;D. While i do S = S+1/i;Câu 15. Cho khai báo: Var a : array[0..50] of real ; và đoạn chương trìnhk := 0 ;for i := 1 to 50 doif a[i] > a[k] then k := i ;Đoạn chương trình trên thực hiện công việc gì dưới đây ?A. Tìm phần tử nhỏ nhất trong mảng;B. Tìm phần tử lớn nhất trong mảng;C. Tìm chỉ số của phần tử lớn nhất trong mảng;D. Tìm chỉ số của phần tử nhỏ nhất trong mảng;Câu 16. Để dịch chương trình trong Free Pascal ta dùng tổ hợp phím nào?A. Ctrl + F9B. Alt + F9C. Ctrl + Shitf +F9D. Shift + F9Câu 17. Trong câu lệnh lặp for..do, số vòng lặp biết trước và bằng Giá trị cuối – giá trị đầu + 1B. Giá trị cuối – giá trị đầu + 2Giá trị cuối – giá trị đầu+ 3D. Giá trị cuối + giá trị đầu + 4Câu 18. Trong Pascal, câu lệnh nào sau đây được viết đúng? A. for i = 1 to 100 do writeln(‘A’); B. for i := 1 to 10 writeln(‘A’); C. for i := 1 to 100 do writeln(‘A’); D. for i to 10 do writeln(‘A’);Câu 19. Câu lệnh lặp với số lần chưa biết trước bắt đầu bằng từ khóa:A. ForB. WhileC. IfD. VarCâu 20. Điều kiện trong câu lệnh lặp với số lần chưa biết trước thường là:Phép gánB. Câu lệnh đơnC. Câu lệnh ghépD. Phép so sánhCâu 21. Cú pháp đầy đủ của câu lệnh While … do làA. While <câu lệnh> do <điều kiện>;B. While <điều kiện>; <câu lệnh>;C. While <điều kiện> to <câu lênh> do;D. While <điều kiện> do <câu lệnh>;Câu 22. Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:A. Chỉ số đầu > chỉ số cuối.B. Chỉ số đầu chỉ số cuối.C. Kiểu dữ liệu chỉ có thể là real.D. Cả ba ý trên đều đúng.Câu 23. Hãy tính số vòng lặp của câu lệnh for i:=3 to 28 do writeln(’A’); A. 28;B. 26;C. 25;D. 3;Câu 24. Phần thân chương trình bắt đầu bằng từ khóa nào? A. EndB. BeginC. UsesD. Var. Câu 25. Cú pháp câu lệnh lặp với số lần biết trước là:A. For <biến đếm> = <giá trị đầu> to <giá trị cuối> do <câu lệnh>;B. For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; C. For <biến đếm> := <giá trị cuối> to <giá trị đầu> do <câu lệnh>; D. For <biến đếm> : <giá trị đầu> to <câu lệnh> do <giá trị cuối>; Câu 26. Pascal sử dụng câu lệnh nào sau đây để lặp với số lần lặp biết trước ?A. if...thenB. if...then...elseC. for...doD. while...doCâu 27. Lệnh nào dưới đây viết đúng về câu lệnh gán :A. x : 15;B. x:=15;C. x=:15;D. x=15;Câu 28. Khai báo biến mảng: A: array[1..7] of real; rồi sau đó sử dụng câu lệnhFor i:= 1 to 5 do readln(A[i]); để nhập giá trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao nhiêu giá trị? A. 6;B. 4;C. 5;D. 7;Câu 29. Từ khóa dùng để khai báo biến trong ngôn ngữ lập trình Pascal là từ khóa nào?A. Const.B. Var.C. Real.D. End.Câu 30. Sau khi thực hiện chương trình dưới đâyj:= 1; for i := 1 to 3 do j:= j+1;Giá trị của biến j bằng bao nhiêu?A. 5;B. 3;C. 4;D. 1;Câu 31. Trong Pascal, kiểu dữ liệu nào là kiểu số nguyên? A. real B. string C. char D. integerCâu 32. Câu lệnh cho phép ta nhập giá trị của biến a từ bàn phím là: A. readln(a); B. Writeln(a); C. Write(‘nhap gia tri cua a:’); D. Write(a);Câu 33. Để thoát khỏi Free Pascal, em thao tác như thế nào?A. File\ Close.B. Edit\ Close.C. File\ Exit.D. Edit\ Exit.Câu 34. Câu lệnh pascal nào hợp lệ?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’);Câu 35. Cú pháp đúng của câu lệnh điều kiện rẽ nhánh dạng đủ là:A. If <điều kiện> then <câu lệnh1>: else <câu lệnh 2>:.B. If <điều kiện> then <câu lệnh1> else <câu lệnh 2>:.C. If <điều kiện> then <câu lệnh1>; else <câu lệnh 2>;.D. If <điều kiện> then <câu lệnh1> else <câu lệnh 2>;.Câu 36. Để chạy chương trình trong Free Pascal ta dùng tổ hợp phím nào?A. Ctrl + F9B. Alt + F9C. Ctrl + Shitf +F9D. Shift + F9Câu 37. Cú pháp khai báo biến mảng trong Pascal là:A. Var <tên mảng> ; array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;B. Var <tên mảng> : array[<chỉ số đầu>…<chỉ số cuối>] of <kiểu dữ liệu>; C. Var <tên mảng> : array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>; D. Var <tên mảng> : array[<chỉ số đầu>..<chỉ số cuối> for <kiểu dữ liệu>; Câu 38. Trong Pascal, kiểu dữ liệu nào là kiểu số thực? A. char B. integer C. real D. stringCâu 39. Đoạn lệnh sau đây so:=1;while so<10 do writeln(so);Sẽ cho kết quả nào?A. In ra các số từ 1 đến 9.B. In ra các số từ 1 đến 10.C. In ra vô hạn các số 1.D. In ra vô hạn các số 10.Câu 40. Trong câu lệnh while…do nếu điều kiện sai thì:A. Tiếp tục vòng lặpB. Lặp 1 lầnC. Lặp vô hạn lầnD. Thoát khỏi vòng lặpCâu 41. Với câu lệnh sau: If x<9 then x:= x + 1; Giá trị của biến x sẽ là bao nhiêu nếu trước đó giá trị của x = 8?A. x= 8.B. x= 9.C. x= 10.D. x= 11.Câu 42. Từ khóa dùng để khai báo hằng trong ngôn ngữ lập trình Pascal là từ khóa nào?A. Const.B. Var.C. Real.D. End.
Câu trả lời của bạn
VIẾT CHƯƠNG TRÌNH NHẬP VÀO 1 SỐ N, tính lập phương của số đó và in kết quả ra màn hình
Câu trả lời của bạn
A. Khi giá trị cuối lớn hơn giá trị đầu
B. Khi giá trị đầu lớn hơn giá trị cuối
C. Khi giá trị đầu bằng giá trị cuối
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 *