Pascal ... 5 đề bài nhỏ ... giúp em với

:ToanAZ:

Legend of Zelda
Tham gia ngày
8/3/05
Bài viết
975
Reaction score
0
1/ Nhập số tự nhiên n, kiểm tra số đó có phải là số nguyên tố hay không ?
2/ Vẽ hình chữ nhật sau
*****
*****
*****
với n là số cột, m là số hàng
3/ Nhập 2 số nguyên dương, xuất ước chung lớn nhất và bội chung nhỏ nhất.
4/ Xuất bảng cửu chương (không dùng mảng array)
5/ Nhập số tự nhiên n, xuất nhưng số nguyên tố nhỏ hơn n.

trong đó bài tập 1 là em cần nhất .....
giúp em với ... cám ơn ..........
 
Bài 1 cần nhất làm bài 1 trước :))
Mã:
Var i,n,d : integer ;
 begin
  write ('nhap n') ; readln (n);
  d:= 0 ;
  for i := 2 to ( n div 2 ) do
   if n mod i = 0 then 
    d := d + 1 ;
  If d>= 2 then writeln ( ' ko phai so nguyen to ' )
  else writeln (' la so nguyen to');
  readln;
end.

Bạn vào đây đi , mình sẽ giúp đỡ hoàn chỉnh hơn : http://diendanpascal.com/forum ::)
 
có nhiều cách để kiểm tra số nguyên tố
tuy nhiên bạn mới làm quen với lập trình thì nên chọn những cách đơn giản dễ hiểu, đừng vội cố gắng học những cách code theo kiểu quá tối ưu mà ko có lợi cho tư duy lập trình sau này
số nguyên tố là số chỉ chia hết cho 1 và chính nó, do đó bạn sử dụng một vòng lặp từ i chạy từ 1 đến n (với n là số cần kiểm tra) nếu n chia hết cho i thì tăng biến đếm lên 1. Sau khi ra khỏi vòng lặp thì kiểm tra nếu biến đếm = 2 thì số n là số nguyên tố, còn ngược lại n ko phải là số nguyên tố
P.S : đoạn code của koranga mình nghĩ là bạn nhầm chỗ kết luận : d>=2 thì ko là số nguyên tố, ngược lại mới là số nguyên tố ^__^
 
à , đúng là nhầm thật :D Để sửa lại . Quê quá :'>
 
Bác Korangar này suốt ngày quảng cáo

Bài 1:
Mã:
uses crt;
var n,j:integer;
q:boolean;
begin clrscr;
write('Nhap N: '); readln(n); q:=true;
for j:= 2 to sqrt(n) do
if n mod j = 0 then
begin
q:=false;
break;
end;
if q then write('So do la so nguyen to')
else write('So do ko la so nguyen to');
readln;
end.

Bài 2:

Mã:
uses crt;
var m,n,i,j:integer;
begin clrscr;
write('Nhap m: '); readln(m);
write('Nhap n: '); readln(n);
for i:=1 to m do
begin
     for j:=1 to n do write('*');
     writeln;
end;
readln;
end.

Bài 3:
Mã:
uses crt;
var m,n,a,b,tg:integer;
begin clrscr;
write('Nhap m: '); readln(m);
write('Nhap n: '); readln(n);
a:=m; b:=n;
repeat
tg:=b;
b:=b mod a;
a:=tg;
until b=0;
writeln('Uoc chung lon nhat la: ',a);
writeln('Boi chung nho nhat la: ',m * n div a);
readln;
end.

Bài 4:
Mã:
uses crt;
var i,j:integer;
begin clrscr;
for i:=1 to 9 do
begin
     for j:=1 to 9 do write(i,' * ',j,'= ',i*j,'   ');
     writeln;
end;
readln;
end.

Bài 5: bài này thì tương tự bài 1
Chỉ cần làm thêm cái hàm kiểm tra số nguyên tố là xong
 
em cũng có một đề nè! Chỉ em với! Nhập vào một dãi số và cho ra màn hình số nào là số nguyên tố số nào ko, và sắp xếp theo thứ tự tăng dần và chẵn lẻ!
Nếu anh dang onl thì gửi bài truc típ vào mail của em nha!! Mai em thi rùi [email protected] Thanks anh nhìu!!
 
lâu ko sài pascal nên có thể sai cú pháp mong các bác thông cảm
Nhập vào một dãi số và cho ra màn hình số nào là số nguyên tố số nào ko, và sắp xếp theo thứ tự tăng dần và chẵn lẻ!
phân làm 3 procedure rồi gọi trong hàm chính hoặc làm trực tiếp như sau (lười và ko có pascal dể test)

program
use crt;
var a = array[1..100] type integer;
var mangNT = array[1..100] type integer;
var mangKNT = array[1..100] type integer;
var mangChan = array[1..100] type integer;
var mangLe = array[1..100] type integer;
Var i,j,n,spt1,spt2,spt3,spt4 : integer ;
var q : boolean;
begin
spt1 = 0;{so phan tu nguyen to}
spt2 = 0;{so phan tu ko nguyen to}
write ('nhap n') ; readln (n);
for i := 1 to n do
begin
write ('a[' + i + ']=' ) ; readln (a);
q:= true;

{xuly nguyen to hay ko}
for j:= 2 to sqrt(n) do
if a mod j = 0 then
begin
q:=false;
break;
end;

if q = true then
begin
mangNT[spt1 + 1] = a;
spt1 := spt1 + 1;
end;
else
begin
mangKNT[spt2+ 1] = a
spt2 := spt2 + 1;
end;
q := true;
end;

writeln ( ' so nguyen to ' );
for i := 1 to spt1 do
writeln ( mangNT );
writeln ( ' so nguyen to ' );
for i := 1 to spt2 do
writeln ( mangKNT );

{sap tang}
for i := 1 to n - 1 do
for j:= 2 to n do
begin
if a > a[j] then
begin{doi cho}
a := a + a[j];{a := a + b}
a[j] := a - a[j];{b := a + b - b = a}
a := a - a[j];{a := a + b - a = b}
end;
end;
{sap chan le}

{ghi chu muon co thu tu tang thi nen dat cai saptang thanh 1 procedure va goi o nhung vi tri ghi chu sau *}
spt3 = 0;
spt4 = 0;
{*}
{ Saptang(mangChan);}
{ Saptang(mangLe);}
for i := 1 to n do
begin
if a mod 2 = 0 then
begin
spt3 := spt3 + 1;
mangChan[spt3] = a;
end;
else
begin
spt4 := spt4 + 1;
mangLe[spt4] = a;
end;
end;
for i := 1 to spt3 do
begin
write(mangChan + ' ');
end;
for i := 1 to spt4 do
begin
write(mangLe + ' ');
end;
readln;
end.
.
.
___________Auto Merge________________

.
ui, cái này ko hỗ trợ lùi dòng bó tay rồi, lười edit lại quá , sr bạn cố gắng nhìn nha
 
Back
Top