Câu 4: Trong cấu trúc lặp: for <biến> in range(start,stop): <câu lệnh> thì <biến> tăng lên mấy đơn vị sau mỗi lần lặp?
A. 0 B. 2 C. 1 D. 1 kết quả khác
Câu 4: Trong cấu trúc lặp: for <biến> in range(start,stop): <câu lệnh> thì <biến> tăng lên mấy đơn vị sau mỗi lần lặp?
A. 0 B. 2 C. 1 D. 1 kết quả khác
Nếu A là bảng (ma trận) kích thước m x n thì đoạn chương trình sau sẽ in ra thông tin gì trên màn hình?
for i in range(m):
for j in range(n):
print(A[i][j],end=” “)
print()
Nếu A là một ma trận kích thước m x n, đoạn chương trình trên sẽ in ra giá trị của từng phần tử trong ma trận A, mỗi dòng một.
Cụ thể, với mỗi giá trị của i trong khoảng từ 0 đến m - 1, vòng lặp đầu tiên sẽ lặp qua từng phần tử trong hàng thứ i của ma trận A. Với mỗi giá trị của j trong khoảng từ 0 đến n-1, vòng lặp thứ hai sẽ in ra giá trị của phần tử tại vị trí (i,j) trong ma trận A bằng lệnh print(A[i][j],end=" "), kết thúc bằng một khoảng trắng.
Sau khi in hết các phần tử trong hàng thứ i, lệnh print() trong vòng lặp đầu tiên sẽ xuống dòng, chuyển sang in hàng tiếp theo của ma trận A. Như vậy, tổng hợp lại, đoạn chương trình sẽ in ra ma trận A dưới dạng bảng trên màn hình.
Cho biết hàm sau sẽ trả về giá trị là bao nhiêu? Xác định độ phức tạp thời gian O- lớn của chương trình.
def Mystery(n):
r=0
for i in range(n-1):
for j in range(i+1,n):
for k in range(1,j):
r=r+1
return r
Tham khảo:
Hàm "Mystery(n)" sẽ trả về giá trị là r.
Độ phức tạp thời gian của chương trình này là O(n3)
"Trình bày cấu trúc lặp với số lần biết trước trong pascal Sử dụng câu lệnh lắp tiến và lặp lùi For -Do trong pascal để giải bài toán: Tính n giai thừa (n!), với n là một số nguyên dương lớn hơn 1"
Tham khảo:
* Lặp tiến :
uses crt;
var i, n, P : longint;
begin
clrscr;
P := 1;
write('nhap so n : '); readln(n);
for i := 1 to n do P := P * i;
writeln(n,'! = ', P);
readln
end.
* Lặp lùi :
uses crt;
var i, n, P : longint;
begin
clrscr;
P := 1;
write('nhap so n : '); readln(n);
for i := n downto 1 do P := P * i;
writeln(n,'! = ', P);
readln
end.
Hãy cho biết hàm sau thực hiện công việc gì? Xác định độ phức tạp thời gian của thuật toán.
def func(A):
n=len(A)
for i in range(n-1):
for j in range(i+1,n):
if A[j] > A[j]:
A[j],A[j] = A[j],A[i]
Công việc của hàm là thực hiện sắp xếp.
Độ phức tạp của thuật toán là O(n2)
Cho cấu trúc lặp với số lần biết trước như bên đưới, hãy vẽ sơ đồ khối của cấu trúc.
Lặp với đếm từ 1 đến N:
Các thao tác cần lặp
Hết lặp.
Xác định độ phức tạp của thuật toán sắp xếp nổi bọt sau:
def BubbleSort(A):
n = len(A)for i in range(n-1):
for j in range(n-1-i):
if A[j] > A[j+1]:
A[j],A[j+1] = A[j+1]1,A[j]
Độ phức tạp của thuật toán sắp xếp nổi bọt là O(n2)
T = O(n) + O(n2) = O(n2)
So sánh câu lệnh lặp với số lần biết trước( for..to..do) và câu lệnh lặp với số lần chưa biết trước(while...do)
Bổ sung thêm: "For..to..do.." hay "For..downto..do.." được hiểu như là cấu trúc lặp với số lần lặp được báo trước và thường sẽ có kết thúc (hay còn gọi là "thoát" khỏi vòng lặp).
Tuy nhiên, cấu trúc "While..do.." hay "Repeat..Until.." nói chung được hiểu như cấu trúc lặp với số lần lặp không biết trước (hoặc chưa biết trước) và có một số trường hợp sẽ "treo" máy vì cấu trúc lặp vô tận xãy ra do lỗi cài đặt hoặc xử lý câu lệnh của người viết chương trình
#from yahoo
Phần I. Trắc nghiệm. (5 điểm)
1. Nhặt thóc ra khỏi gạo cho đến khi trong gạo không còn lẫn thóc là hoạt động:
a. Lặp 10 lần c. Lặp vô số lần (lặp vô hạn)
b. Lặp với số lần chưa biết trước d. Lặp với số lần biết trước
2. Trong câu lệnh lặp For i:=1 to 10 do begin.... end bao nhiêu vòng lặp được thực hiện?
a. Không lần nào b. 10 lần c. 1 lần d. 2 lần
3. Điều kiện kết thúc vòng lặp For... do của Pascal là:
a. Biến đếm lớn hơn giá trị cuối c. Giá trị đầu bằng giá trị cuối
b. Biến đếm lớn hơn hoặc bằng giá trị cuối d. Giá trị đầu lớn hơn giá trị cuối
4. Trong các câu lệnh Pascal sau, câu lệnh nào hợp lệ?
a. For i:=1 to 10; do x=x+1; c. For i:=1 to 10 do x:=x+1;
b. For i:=10 to 1 do x:=x+1; d. For i:=1.5 to 10 do x:=x+1;
5. Trong lệnh lặp For... do của Pascal, sau từ khóa “do” nếu có từ 2 câu lệnh trở lên (câu lệnh
ghép) thì câu lệnh ghép đó phải đặt trong cặp từ khóa nào sau đây?
a. Begin.....readln; b. Begin.....and;
c. End.....Begin d. Begin.....end;
6. Câu lệnh sau đây cho kết quả như thế nào?
For i:=1 to 10 do Writeln(‘A’);
a. In dãy số từ 10 đến 1 ra màn hình c. In dãy số từ 1 đến 10 ra màn hình
b. In 20 ký tự A ra màn hình d. In 10 ký tự A ra màn hình
7. Sau khi thực hiện đoạn chương trình sau, giá trị của biến T bằng bao nhiêu?
i := 0; T := 0;
While i < 3 do
begin T := T + 1; i := i + 1; end;
a. T = 2 b. T = 3 c. T = 4 d. T = 5
8. Cú pháp của câu lệnh lặp với số lần chưa biết trước trong Pascal:
a. While <câu lệnh> do <điều kiện>; c. While <điều kiện> do <câu lệnh>;
b. While <giá trị cuối > do <giá trị đầu>; d. While <giá trị đầu> do <giá trị cuối>;
9. Trong lệnh lặp While... do của Pascal, nếu điều kiện đúng thì:
a. Tiếp tục vòng lặp c. Vòng lặp vô tận
b. Lặp 10 lần d. Thoát khỏi vòng lặp
10. Trong các câu lệnh Pascal sau, câu lệnh nào hợp lệ?
a. x:=1; while x:= 10 do x:=x+5; c. x =1 while x>10 do x:=x+5;
b. x:=1; while x <10 do x:=x+5; d. x:=10; while x<10 do x=x+5;
Phần II. Bài tập. (5 điểm)
Câu 1: Cho đoạn chương trình sau: (2đ)
m:=2; k:=3;
For i:= 0 to 4 do begin
m:=m+1;
k :=k+m;
end;
Sau khi thực hiện đoạn chương trình trên giá trị của các biến m, k bằng bao nhiêu?
1. Câu 2: (3đ)Viết chương trình tính tổng: S= 1+ 1/2 + 1/3 + ….. + 1/N
(n là số nguyên được nhập từ bàn phím)
Làm giúp mình trước ngày 29/04/2020 nha !
Phần II: Bài tập
Câu 1:
Sau khi thực hiện chương trình, chương trình sẽ báo lỗi thiếu begin
Câu 2:
uses crt;
var i,n:integer;
s:real;
begin
clrscr;
write('n='); readln(n);
s:=0;
for i:=1 to n do
s:=s+1/i;
writeln(s:4:2);
readln;
end.
Câu 1: Thực hiện đoạn chương trình sau, giá trị S là bao nhiêu
S:=0;
For i:=1 to 4 do S:=S+i;
Câu 2: Thực hiện đoạn chương trình sau, chữ xin chao được in ra màn hình mấy lần
n:=1;
while n<4 do
begin n:=n+1; writeln('xin chao')end;
Câu 3: So sánh cấu trúc lệnh lặp for...to..do và cấu trúc lệnh lặp while...do
Câu 1: S = 10
Câu 2: Chữ "xin chao" được in ra màn hình 3 lần
Câu 3:
- For...to...do:
+ Là câu lệnh lặp với số lần lặp biết trước.
+ Điều kiện kết thúc vòng lặp là một số xác định.
- While...do:
+ Là câu lệnh lặp với số lần lặp chưa biết trước.
+ Điều kiện để kết thúc vòng lặp thường là một phép so sánh.