Thứ Ba, 30 tháng 10, 2018

Bài tập Pascal 11



Cho n=96745. Hãy mô phỏng lại đoạn chương trình sau và cho biết d=?
Câu 1/
d:=0;
While n<>0 do
Begin
   m:= n mod 10;
    n:= n div 10;
  d:=d+1;
end;
câu 2/
d:=0;
While n<>0 do
Begin
    m:= n mod 10;
    n:= n div 10;
   d:=d+m;
end;
Câu 3/ Làm bài hạt thóc trên ô cờ bằng while..do hoặc repeat...until 
Câu 4/ Làm kiểm tra số n nhập từ bàn phím có phải là nguyên tố không? bằng while..do hoặc repeat...until 
Câu 5/ nhập số nguyên n. in số đảo ngược của n
ví dụ n=938 thì đảo ngược của nó là 839
câu 6/ nhập số nguyên n. N có bao nhiêu chữ số chẵn, lẻ
ví dụ n=938 có 2 số lẻ, 1 số chẵn
Câu 7/ Nhập số nguyên n. hỏi n có là số đối xứng không
biết số đối xứng là số nếu đọc từ trái qua phải hoặc từ phải qua trái được số giống nhau
ví dụ 22, 212, 9339 là các số đối xứng
các số 93, 100, 9393 không đối xứng

32 nhận xét:

  1. program Uoc_chung_nho_nhat;
    uses crt;
    var
    a,b:longint;
    begin
    write('nhap a=');
    readln(a);
    write('nhap b=');
    readln(b);
    while (a>b)or(b>a) do
    begin
    if a>b then
    a:=a-b;
    if b>a then
    b:=b-a;
    if a=b then
    writeln(a);
    end;
    readln
    end.

    Trả lờiXóa
    Trả lời
    1. Đúng (9 đ) nhưng em nên thay điều kiên (a>b)or(b>a) thành a<>b và in sau khi kết thúc vòng while nhé

      Xóa
  2. var
    a,b:integer;
    begin
    write('nhap a=');readln(a);
    write('nhap b=');readln(b);
    while a<>b do
    begin
    if a>b then
    a:=a-b;
    if b>a then
    b:=b-a;
    end;
    writeln(a);
    readln;
    end.

    Trả lờiXóa
  3. Program khoa_85;
    Var
    a,b:integer;
    begin
    writeln(‘nhap so a’);
    readln;
    if a<=1 then
    writeln(‘day ko la so nguyen to’)
    else
    begin
    b:=2;
    while (a mod I <>o) do
    b:=b+1;
    if a=b then writeln(‘la so nguyen to’);
    end.
    else
    writeln(‘ko phai so nguyen to’);
    readln;
    end.

    Trả lờiXóa
  4. Khá tốt. Nhưng có vài điểm chính cần sửa lại
    1. Điều kiện là while (a mod b<>0) do
    2. lệnh end; kết thúc câu lệnh ghép phải để sau câu lệnh writeln(‘ko phai so nguyen to’);

    Trả lờiXóa
  5. Dạ thầy ơi sao em sao chép từ pascal qua bình luận không được ạ

    Trả lờiXóa
  6. em phải mở bài làm bằng notpage, rồi mới coppy qua được

    Trả lờiXóa
  7. program So_hat_thoc;
    uses crt;
    var
    a,b,c,d:longint;
    begin
    readln(c);
    a:=1;
    b:=1;
    d:=1;
    while d<=64 do
    begin
    d:=d+1;
    a:=a*2;
    b:=b+a;
    if d=c then
    writeln(b);
    end;
    readln
    end.

    Trả lờiXóa
    Trả lời
    1. Rất tốt (10đ). Nhưng không cần câu lệnh if d=c then writeln(b);. Em chỉ cần in b sau khi kết thúc vòng while..do

      Xóa
  8. program Ktra_so_ngto;
    uses crt;
    var
    a,b:longint;
    begin
    write('nhap a=');
    readln(a);
    b:=2;
    while (a mod b<>0)and(a>=2) do
    b:=b+1;
    if a=b then
    writeln('day la so nguyen to')
    else writeln('ko phai so nguyen to');
    readln
    end.

    Trả lờiXóa
  9. Nhận xét này đã bị quản trị viên blog xóa.

    Trả lờiXóa
  10. var
    a,n,d,s:longint;
    begin
    write('nhap n=');readln(n);
    d:=0;s:=0;
    while n>0 do
    begin
    a:=n mod 10;
    n:=n div 10;
    if a mod 2=0 then
    d:=d+1;
    if a mod 2<>0 then
    s:=s+1;
    end;
    writeln('so chan=',d,',so le=',s);
    readln;
    end.

    Trả lờiXóa
  11. Nhận xét này đã bị quản trị viên blog xóa.

    Trả lờiXóa
  12. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  13. Program khoa_85;
    Var
    A,b,n:integer ;
    Begin
    Writeln(‘nhap so n’);
    Readln(n);
    B:=0;
    While n<>o do
    Begin
    A:=n mod 10;
    B:=b*10+a;
    N:=n div 10;
    End;
    Write(b);
    Readln;
    End.

    Trả lờiXóa
  14. Nhận xét này đã bị quản trị viên blog xóa.

    Trả lờiXóa
  15. Số chính phương
    var
    i,n,d:longint;
    begin
    write('nhap n=');readln(n);
    d:=0;
    for i:=1 to n do
    if i*i=n then
    d:=d+1;
    if d=1 then
    writeln('so chinh phuong')
    else
    writeln('khong la so chinh phuong');
    readln;
    end.

    Trả lờiXóa
    Trả lời
    1. Hoặc em đổi vòng lặp for thành
      for i:=1 to n div 2 do
      Cách này nhanh hơn thì phải. Em thấy cả 2 cách đều đúng

      Xóa
    2. ok. Em đã làm đúng. nhưng nhanh hơn thì ko

      Xóa
  16. {ucln:}
    uses crt;
    function ucln(a,b:longint):longint;
    var c,d:longint;
    begin
    c:=0;
    d:=0;
    while c<>d do
    begin
    if c>d then c:=c-d
    else d:=d-c;
    end;
    ucln:=c;
    end;
    var n,s:longint;
    begin
    readln(n);
    readln(s);
    writeln(ucln(n,s));
    readln
    end.

    Trả lờiXóa
    Trả lời
    1. ai rồi nhé phải như sau:
      function ucln(c,d:longint):longint;

      begin

      while c<>d do
      begin
      if c>d then c:=c-d
      else d:=d-c;
      end;
      ucln:=c;
      end;

      Xóa

  17. a,b:longint;
    function ucln(c,d:longint):longint;
    begin
    while c<>d do
    begin
    if c>d then c:=c-d;
    if d>c then d:=d-c;
    end;
    ucln:=c;
    end;
    begin
    readln(a);
    readln(b);
    writeln(ucln(a,b));
    readln
    end.

    Trả lờiXóa
  18. tổng các số từ 1 đến n
    uses crt;
    var a,b,c,d,e:longint;
    begin
    readln(a);
    for b:=1 to a do
    begin
    if b<10 then
    c:=b+c;
    e:=b;
    if b>=10 then
    begin
    d:=e mod 10;
    e:=e div 10;
    c:=c+d+e;
    end;
    end;
    writeln(c);
    readln
    end.

    Trả lờiXóa
  19. uses crt;
    var
    a,b,c,d,f:longint;
    begin
    readln(a);
    b:=1;
    while (b<10)and(b<=a) do
    begin
    c:=c+b;
    b:=b+1;
    end;
    while (b>=10)and(b<=a) do
    begin
    f:=b;
    while f>0 do
    begin
    d:=f mod 10;
    f:=f div 10;
    c:=c+d;
    end;
    b:=b+1;
    end;
    write(c);
    readln
    end.

    Trả lờiXóa
  20. nguyendinhduong2007nqlúc 23:16 30 tháng 10, 2020

    cau 6
    var
    a,b,c,n:integer;
    begin
    b:=0;
    c:=0;
    writeln('nhap n');readln(n);
    while n>0 do
    begin
    a:=n mod 10;
    n:=n div 10;
    if a mod 2=0 then b:=b+1 else c:=c+1;
    end;
    writeln('so chan',b);
    writeln('so le',c);
    readln;
    end.

    Trả lờiXóa