Bài tập  /  Bài đang cần trả lời

Chỉ ra lỗi sai trong các chương trình dưới đây và sửa lại cho đúng

----- Nội dung dịch tự động từ ảnh -----
II. TỰ LUẬN (6đ)
Câu 9 (1.5 điểm). Chỉ ra lỗi sai trong các chương trình dưới đây và sửa lại cho đúng.
a) program UCLN_BCNN;
var x; y: UCLN; BCNN: integer;
begin
readln(x,y);
BCNN:=x*y;
while x-y do if x>y then x:=x-y else y:=y-x;
UCLN:=x;
BCNN:=BCNN div UCLN;
write(UCLN,' ',BCNN);
end.
b) program so_hoan_hao;
var n, i, s: integer;
begin
write('Nhap so n: '); readln(n);
s:=0;
for i:=1 to n do if n mod i = 0 then s:=s+i;
if s= n then write(n,' la so hoan hao')
else writeln(n, 'khong phai la so hoan hao');
end.
c) program tinh_a_mu_n;
var i, n: integer;
a, gia tri: real;
begin
write ('Cho so a : '); readln(a);
write('Cho so mu n: '); readln(n);
i:= 1; giatri := 1;
while i begin
giatri := giatri* a;
i:=i+2
end;
writeln(' a mu n bang :', giatri);
end.
Câu 10 (1.5 điểm). Cho biết số lần lặp và giá trị của biến S sau khi thực hiện các đoạn cl
sau:
a)
S:=10;
for i:=1 to 3 do S:=S*i;
FAST CHARGE
b) n:=1; S:=14;
while n<10 do
begin
n:=n*2;
S:=S +n;
end;
S:=0;
for i:=10 to 20 do if (i mod 2 = 0) and (i mod 3 = 0) then S = S + i;
phần
1 trả lời
Hỏi chi tiết
213
2
0
Phạm Tuyên
29/04/2023 18:23:03
+5đ tặng

B9
a) a) Chương trình tính ước chung lớn nhất và bội chung nhỏ nhất của hai số nguyên dương x và y bị lỗi ở dòng "UCLN: integer;" vì không khai báo biến UCLN. Sửa lại thành "UCLN, x, y, BCNN: integer;" và đổi tên biến UCLN thành ucln ở dòng cuối để phù hợp với khai báo. Ngoài ra, câu lệnh while x - y do if x > y then x := x - y else y := y - x cũng bị lỗi vì x - y không phải là một điều kiện hợp lệ để kiểm tra, cần thay đổi thành while x <> y. Sửa lại chương trình như sau:
program UCLN_BCNN;
var x, y, ucln, BCNN: integer;
begin
readln(x, y);
BCNN := x * y;
while x <> y do 
  if x > y then x := x - y 
  else y := y - x;
ucln := x;
BCNN := BCNN div ucln;
write(ucln, ' ', BCNN);
end.
b)Chương trình kiểm tra xem một số nguyên dương n có phải là số hoàn hảo hay không bị lỗi ở dòng "write(n, 'khong phai la so hoan hao');" do thiếu khoảng trắng trước chuỗi "khong phai...". Sửa lại thành "write(n, ' khong phai la so hoan hao');" để đúng cú pháp. Sửa lại chương trình như sau:

program so_hoan_hao;
var n, i, s: integer;
begin
write('Nhap so n: '); readln(n);
s := 0;
for i := 1 to n do 
  if n mod i = 0 then 
    s := s + i;
if s = n then 
  write(n, ' la so hoan hao')
else 
  writeln(n, ' khong phai la so hoan hao');
end.

 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo