PDA

View Full Version : Các bài tập pascal



tinhve
29-11-2007, 19:18
Bạn nào giỏi giúp mình với !
Mình mới học các câu lệnh kiểu rẻ nhánh(If) và kiểu lặp(for , while ) mà ông thầy ông cho các bài tập ác quá !
Bài 1 : Nhập các số , kết thúc bằng số 0 . Đếm các số có giá trị bằng 5 .
Bài 2 : Nhập các số , kết thúc bằng số 0 . Đưa ra dãy ngược lại
Bài 3 : Nhập các số , kết thúc bằng số 0 . Đưa ra dãy các số lẻ
Bài 4 : Nhập các số , kết thúc bằng số 0 . Đưa ra dãy các số nguyên tố trong dãy .

Mong nhận được nhiều bài làm của các bro !!

grenadier1991
29-11-2007, 20:21
Bài này đâu khó đâu:
Bài 1: Lần lượt nhập các số, nếu bằng không thì kết thúc, nếu bằng 5 thì biến đếm tăng lên 1.


Var
a, i: Integer; {a để nhập số vào từ bàn phím, i để đếm}
Begin
a:=10; i:=0;
While a<>0 Do
Begin
Write('Nhap a= '); Readln(a);
If a=5 Then i:=i+1;
End;
Writeln('So cac so 5 la: ',i);
Readln;
End.

Bài 2 phải dùng mảng để lưu dữ liệu, chưa dc dạy thì ko cần làm.
Bài 3 tương tương tự bài 1, chỉ cần sửa lại điều kiện If là xong.
Bài 4 cũng phải sửa lại điều kiện If nhưng cần biết về cách kiểm tra số nguyên tố.
Cách thông dụng nhất: Theo định nghĩa, SNT là số chỉ chia hết cho nó và chính nó, tức là ko chia hết cho bất kỳ số nào nằm giữa khoảng đó. Giả sử có một số S, ta có thể phần tích S=a*b, dễ thấy nếu S chia hết cho a thì cũng chia hết cho b=>khi phân tích S thành tích 2 số, chỉ cần kiểm tra S có chia hết cho số nhỏ hơn ko mà thôi. Dễ thấy, số nhỏ hơn lớn nhất chính là căn bậc 2 của S => Vậy chỉ cần xét có chia hết cho bất kỳ số nào từ 2 đến phần nguyên của căn bậc 2 của S hay ko mà thôi.

thuonghcm
29-11-2007, 20:49
từ bài 2 trở đi bắt buộc phải học mảng hay string thì mới làm duoc

alucar
30-11-2007, 10:43
Bài 2 :D
program vd;
const max=5;{giả sử nhập 5 số}
var a:array[1..max] of real;
var i:byte;
begin
for i:=1 to max do
begin
Write('Nhap so thu ',i,' ');
read(a[i]);
end;
for i:=max downto 1 do
write(a[i]:4:0);
readln;
readln;
end.

tinhve
30-11-2007, 12:35
cảm ơn các bro .

tinhve
05-12-2007, 20:18
Var
a, i: Integer; {a để nhập số vào từ bàn phím, i để đếm}
Begin
a:=10; i:=0;
While a<>0 Do
Begin
Write('Nhap a= '); Readln(a);
If a=5 Then i:=i+1;
End;
Writeln('So cac so 5 la: ',i);
Readln;
End.

Cho em hỏi tại sao Lại gán a:=10 , Và bài toán của em là đếm các số bằng 5 có nghĩa là nhập các số sao cho có số 5 là đếm . Chẳng hạn các số 514 556 thì trong 2 số đó có 3 số 5 ??? Ai help nhanh với sắp nộp bài rồi !

oOOo
05-12-2007, 23:52
sao ở đây toàn hỏi mấy bài linh tinh vậy???
chịu khó đọc sách chứ mấy bài này hỏi làm gì ông ơi

alucar
06-12-2007, 08:58
à cái đó là để cho cái vòng lập ko bị error tại vì nếu mình ko nhập giá trị cho a thì nó sẽ = 0 :D .Còn cái trên thì bạn đã thấy rồi đó nếu a:=5 thì biến i sẽ +1 giá trị cho đến khi bạn nhập a=0 thì nó sẽ thoát và in ra giá trị i :| bạn ko hiểu à

dmtmhh
05-03-2009, 22:03
nhập các số từ bàn phím đến số o thì dừng tồi tính tổng các số đã nhập

nguyenthong1593
11-08-2010, 19:21
Bạn tình về ơi!! Nếu bạn biết về mảng thì dễ hơn để giải những bài như thế này!! Theo minh 4 bài tập trên nên dùng mảng là tốt nhất coi như những con số là các ký tự sau đó so sánh với các ký tự số để làm theo yêu cầu của đề bài!! Chúc bạn thành công nha!! nếu muốn có bài giải thì nhắn tin qua yahoo cho minh nha! nguyenducthong1593@yahoo.com

leduongtuananhqt
02-05-2011, 21:36
Bài 2 :D
program vd;
const max=5;{giả sử nhập 5 số}
var a:array[1..max] of real;
var i:byte;
begin
for i:=1 to max do
begin
Write('Nhap so thu ',i,' ');
read(a[i]);
end;
for i:=max downto 1 do
write(a[i]:4:0);
readln;
readln;
end.

Vay gia su muon nhap 15 so thi sao ban? ><

[=========> Bổ sung bài viết <=========]

Hau het moi ng deu quen 1 diem quan trong, do la ko co cau len dung khi nhap "0"

[=========> Bổ sung bài viết <=========]

Tính ra thì cũng dễ mà. Mình giải xong rồi, có gì thắc mắc liên lạc qua yahoo: leduongtuananh nha
Mình chỉ viết ct thôi, bạn có gì test ở máy nha. Mình chỉ test trên máy ảo thôi.
Mình sẽ upload file rar lên để bạn tải về tiên test nha.
Riêng các bài sau, bạn nên dùng mảng ARRAY đê cho tiện hơn nha.
Link:
http://www.mediafire.com/?eewbf1h4bhehldi
Chúc bạn thành công ;)