[Tin 8]

  • Thread starter phongphanthanh98
  • Ngày gửi
  • Replies 6
  • Views 1,478

P

phongphanthanh98

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Các bạn làm giúp mình 2 bài Pascal này, cố gắng dùng các lệnh trong chương trình học lớp 8 phần khai báo biến thì dùng biến mảng để khai báo (Từ begin -> end giúp mình luôn nha):

Bài 1:

Viết chương trình nhập vào 1 dãy a gồm n số integer (với 1<= n <= 100). Sau đó in ra màn hình các phần tử trong dãy số đó là số nguyên tố.

Bài 2:
Viết chương trình nhập vài 1 dãy a gồm n số integer (với 1<= n <= 100). Sau đó cho biết tích của n số trong dãy có chia hết cho k hay không?

p/s: hic, Hồi nãy ấn lộn, mod nào sửa giúp em cái tiêu đề thành: [Tin 8] Bài lập trình Pascal.
 
Last edited by a moderator:
H

hung1xpro96

Bạn xem thử câu 1 mình làm vầy đúng không nha
Mã:
Program Bai1;
 var i,j,n,m:Integer;
      a:array[1..100] Of Integer;
Function nt(x:Integer):boolean;
 Var i,j:Integer;
  Begin
   nt:=true;
   For i:=2 to x-1 do
    If x mod i = 0 then
     Begin
      nt:=false;
      Exit;
     End;
  End;
Begin
 Writeln('nhap so');
 Readln(n);
 Writeln('nhap mang');
 for i:=1 to n do
 Readln(a[i]);
 For i:=1 to n do
  If nt(i) then
    Writeln(i:3);
 Readln;
End.
Còn đây là bài 2
Mã:
Program Bai1;
 Var k,n,i,j:Integer;
     s:Longint;
     A:array[1..100] Of Integer;
Begin
 Writeln('nhap 2 so n , k');
 Readln(n,k);
 Writeln(' nhap ');
 For i:=1 to n do
  Readln(a[i]);
  s:=1;
 For i:=1 to n do
  s:=s*a[i];
  If s mod k = 0 then Writeln('co')
  Else
   Writeln('khong');
  Readln;
 end.
 
P

p_trk

vì đây là một bài nhỏ , nhưng nếu một bài lớn để tối ưu hóa thì bạn nên chạy từ 2 ---> sqrt(n) để kiểm tra !! thân !!! :-*
 
P

p_trk

Bạn xem thử câu 1 mình làm vầy đúng không nha
Mã:
Program Bai1;
 var i,j,n,m:Integer;
      a:array[1..100] Of Integer;
Function nt(x:Integer):boolean;
 Var i,j:Integer;
  Begin
   nt:=true;
   For i:=2 to x-1 do { [COLOR=Lime][B]bài này mình dùng 2 ---> sqrt(x) để tối ưu hóa bộ nhớ } [/B][/COLOR]
    If x mod i = 0 then
     Begin
      nt:=false;
      Exit;
     End;
  End;
Begin
 Writeln('nhap so');
 Readln(n);
 Writeln('nhap mang');
 for i:=1 to n do
 Readln(a[i]);
 For i:=1 to n do
  If nt(i) then
    Writeln(i:3);
 Readln;
End.
Còn đây là bài 2
Mã:
Program Bai1;
 Var k,n,i,j:Integer;
     s:Longint;
     A:array[1..100] Of Integer;
Begin
 Writeln('nhap 2 so n , k');
 Readln(n,k);
 Writeln(' nhap ');
 For i:=1 to n do
  Readln(a[i]);
  s:=1;
 For i:=1 to n do [COLOR=Lime][B]  { bài này bạn có thể lồng 2 vòng for vào một để tối ưu hóa }[/B][/COLOR]
  s:=s*a[i];
  If s mod k = 0 then Writeln('co')
  Else
   Writeln('khong');
  Readln;
 end.
thân !!! chúc bạn học tốt !
(*) S (*) T (*) A (*) R (*) (*) (*) L (*) O (*) V (*) E (*)
 
K

kool_boy_98

Bạn xem thử câu 1 mình làm vầy đúng không nha
Mã:
Program Bai1;
 var i,j,n,m:Integer;
      a:array[1..100] Of Integer;
Function nt(x:Integer):boolean;
 Var i,j:Integer;
  Begin
   nt:=true;
   For i:=2 to x-1 do
    If x mod i = 0 then
     Begin
      nt:=false;
      Exit;
     End;
  End;
Begin
 Writeln('nhap so');
 Readln(n);
 Writeln('nhap mang');
 for i:=1 to n do
 Readln(a[i]);
 For i:=1 to n do
  If nt(i) then
    Writeln(i:3);
 Readln;
End.
Còn đây là bài 2
Mã:
Program Bai1;
 Var k,n,i,j:Integer;
     s:Longint;
     A:array[1..100] Of Integer;
Begin
 Writeln('nhap 2 so n , k');
 Readln(n,k);
 Writeln(' nhap ');
 For i:=1 to n do
  Readln(a[i]);
  s:=1;
 For i:=1 to n do
  s:=s*a[i];
  If s mod k = 0 then Writeln('co')
  Else
   Writeln('khong');
  Readln;
 end.


Anh ơi, anh có cách giải nào phù ượp với lóp 8 không anh, em đọc cái này chưa hiểu, chậc, chắc là kiến thức 11 hở anh, thế này thì khó lém nha!
 
P

phongphanthanh98


Anh ơi, anh có cách giải nào phù ượp với lóp 8 không anh, em đọc cái này chưa hiểu, chậc, chắc là kiến thức 11 hở anh, thế này thì khó lém nha!

Cảm ơn tất cả các anh vì bài giải này, bài 1 tuy không đúng với chương trình lớp tám nhưng em cũng biết làm rồi, bạn kool_boy_98 cần thì cho mình e-mail mình gửi file qua cho.
 
Last edited by a moderator:
P

p_trk

Sqrt là số thực thì vòng for chạy sao đc ???

Round

Div 1

or dùng while do thế nhé

Mã:
Program Bai1;
 var i,j,n,m:Integer;
      a:array[1..100] Of Integer;
Function nt(x:Integer):boolean;
 Var i,j:Integer;
Begin
 Writeln('nhap so');
 Readln(n);
 Writeln('nhap mang');
 for i:=1 to n do
 Readln(a[i]);
 For i:=1 to n do
    Begin
   nt:=true;
   For j:=2 to round(sqrt(a[i])  do
    If a[i] mod j = 0 then
     Begin
      nt:=false;
      Exit;
     End;
    if nt then write(a[i]);
  End;
  Writeln(i:3);
 Readln;
End.
hàm trunc ;)) ạ anh !!!
thân !!!!!
(*)(*)(*)(*)(*)(*)(*)(*)(*)
 
Top Bottom