View Full Version : Bài tập PASCAL
chihong
16-06-2009, 10:41 AM
bài tập về IF... Then... Else
Bài 1: Nhập vào họ và tên, điểm Trung BÌnh (DTB) của 1 học sinh, sau đ1o nhận xét kết quả học tập thông qua DTB sau:
Loại kém nếu DTB <5
Loại TB nếu 5<=DTb<7
Loại Khá nếu 7<=DTB<8
Loại giỏi nếu DTb >=8.
Bài 2: Tìm sớ lớn nhất trng 2 số nguyên a và b;
Bài 3: Tính diện tích và chu vi hình chữ nhật với chiều dài và chiều rộng nhập từ bàn phím
Bài 4: Tìm cạnh huyền c của tam giác vuông có 2 cạnh a và b theo định lý Pytago.
Bài 5: Viết phươgn trình giải pt bậc hai với các hệ số a, b, c được nhập từ bàn phím.
bài 6: Chỉ dùng 1 biến số viết chương trình tính tổng:
S:=1+2+3+...+100
Bài 7: Tính tổng cảu 1 dãy số được nhập từ bàn phím.
Bài 8: Tính tích của n số nhập từ bàn phím,
deathman
16-06-2009, 10:59 AM
:)) dể wá dzị
mình làm mí bài in đậm thui hen ;))
bài 6:
Var i,s:integer;
Begin
for i:=1 to 100 do S:=S+i;
write(S);
readln;
end.
Bài 7:
Var a:array[1..1000] of integer;
i,s,n:integer;
begin
Write('Nhap so phan tu:');readln(n);
for i:=1 to n do
begin
write('Nhap phan tu ',i,':');
readln(a[i]);
end;
for i:=1 to n do S:=S+a[i];
write(S);
readln;
end.
Bài 8:
Var a:array[1..1000] of integer;
i,n:integer;
s:longint;
begin
Write('Nhap so phan tu:');readln(n);
for i:=1 to n do
begin
write('Nhap phan tu ',i,':');
readln(a[i]);
end;
for i:=1 to n do S:=S*a[i];
write(S);
readln;
end.
chihong
16-06-2009, 11:02 AM
Bạn thử làm bài này xem: Lập danh sách các bộ, sau đó sắp xếp lại theo tên
deathman
16-06-2009, 11:05 AM
cũng dc, mà cái đó mất thời jan lém, tao ko có rảnh, nên nhớ tao là ng` gất nà làm bíng :))
quangluc
16-06-2009, 11:07 AM
Bạn ơi, giải hộ mình đề này:
tính tổng 2 số a và b (a, b là 2 số có từ 255-1000 chữ số)
chihong
16-06-2009, 11:23 AM
hừ, bạn vô đội tuyển Olempic mà ko biết giải bài đó sao?!
deathman
16-06-2009, 11:31 AM
:)) thèn Lực nó thử mày á
chihong
16-06-2009, 12:02 PM
Hừ, nghĩ sao vậy?! Tao có trong đội tuyển Olympic đâu mà ở đ1o thử với chả thử
quangluc
16-06-2009, 08:08 PM
Pascal lớp 11 chắc chỉ cần học cấu trúc điều kiện, vòng lặp là đủ xài rồi nhỉ ?
Hy vọng nó ko lôi đệ quy vào =.=
chihong
17-06-2009, 08:59 AM
Lỡ sách không lôi vô mà "Giáo viên bộ môn tin yêu quý" lôi vô cũng như không.
deathman
17-06-2009, 10:21 AM
mơ đi con, cái đó chỉ Bồi Dưỡng mới dám cho dzô thoi, còn mày? Admin làm thử từ bài 1 -> 5 xem ;))
chihong
17-06-2009, 10:50 AM
Bài 1: Nhập vào họ và tên, điểm Trung BÌnh (DTB) của 1 học sinh, sau đ1o nhận xét kết quả học tập thông qua DTB sau:
Loại kém nếu DTB <5
Loại TB nếu 5<=DTb<7
Loại Khá nếu 7<=DTB<8
Loại giỏi nếu DTb >=8.
PROGRAM Bai1;
VAR
HVT:String;
DTB:Real;
XL:String;
Begin
Writeln('Nhap ten vo:');
Readln(HVT);
Writeln('Nhap DTB:');
readln(DTB);
IF DTB>=8 then]
XL:='Gioi'
else
IF DTB>=7 Then
XK:= 'Kha'
else
If DTB >=5 THEN
XL:='TB'
else
XL:='KEM';
writeln (HVT,' ',DTB:3:1,' ', XL);
Readln;
END.
Khong biet dung ko nữa
deathman
17-06-2009, 10:54 AM
khá mà mấy cái gán XL:="chuỗi" thíu dấu " ' " từa lưa kà
chihong
17-06-2009, 10:55 AM
Nói chung là đánh thiếu thoi :D
chihong
17-06-2009, 10:59 AM
Bài 2: Tìm sớ lớn nhất trng 2 số nguyên a và b;
program BT2;
var a,b:integer;
begin
writeln('Nhap a & b');
Readln(a,b);
If a>b then writeln('So lon nhat la:',a:3)
else writeln('So lon nhat la:',b,3);
readln;
end.
chihong
17-06-2009, 11:18 AM
Bài 3: Tính diện tích và chu vi hình chữ nhật với chiều dài và chiều rộng nhập từ bàn phím
Program BT3;
uses CRT;
VAR
x,y,S,P:real;
Begin
Clrscr;
Writeln('Nhap vo chieu dai va chieu rong hinh nhu nhat:');
raedln(x,y);
S:=x*y;
P:=(x+y)*2;
Writeln ('Dien tich la:',S:5:2);
Writeln('Chu Vi',P:5:2);
readln;
end.
meobeo_luoibieng_9x
21-06-2009, 03:35 PM
Chỉ mình cách làm bài giải phương trình bậc 2 đi
chihong
21-06-2009, 04:13 PM
Có nhiều cách làm, mình mới nghĩ ra 3 hướng thôi:
1. Khi nhập a=0 thì sẽ tính theo pt bậc nhât 1 ẩn
2. Biện luận
3. Nhập a=0 thì bắt nhập lai.
Mình làm cách 2 nha!
Program Giaiphuongtrinhbac2;
uses crt;
var a,b,c,d,x1,x2:real;
begin
writeln('Hay nhap so a,b,c:');
readln(a,b,c);
d:=sqr(b)-4*a*c;
if d>0 then
begin
x1:=(-b+sqrt(d))/2*a;
x2:=(-b-sqrt(d))/2*a;
writeln('Nghiem x1:='.x1:5:1);
writeln('Nghiem x2:=',x2:5:1);
end
else
if d=0 then writeln('Nghiem Kep:',-b/2*a:5:1)
else
writeln('PTVN');
readln
end.
meobeo_luoibieng_9x
21-06-2009, 05:56 PM
Có nhiều cách làm, mình mới nghĩ ra 3 hướng thôi:
1. Khi nhập a=0 thì sẽ tính theo pt bậc nhât 1 ẩn
2. Biện luận
3. Nhập a=0 thì bắt nhập lai.
Mình làm cách 2 nha!
Program Giaiphuongtrinhbac2;
uses crt;
var a,b,c,d,x1,x2:real;
begin
writeln('Hay nhap so a,b,c:');
readln(a.b.c);
d:=spr(b)-4*a*c;
if d>0 then
begin
x1:=(-b+sprt(d))/2*a;
x2:=(-b-sprt(d))/2*a;
writeln('Nghiem x1:='.x1:5:1);
writeln('Nghiem x2:=',x2:5:1);
end
else
if d=0 then writeln('Nghiem Kep:',-b/2*a:5:1)
else
writeln('PTVN');
readln
end.
như thế làm sao hiểu đc, để tui chỉnh sửa lại 1 chút nhé
program PT_2;
uses crt;
var a,b,c:real;
D:real;
x1,x2,x:real;
begin
clrscr;
write('nhap a=');
readln(a);
write('nhap b=');
readln(b);
write('nhap c=');
readln(c);
D:=sqr(b)-4*a*c;
writeln('D=',D:1:1);
If D>0 then writeln('pt co 2 no phan biet');
begin
x1:=(-b+sqrt(D))/2*a;
writeln('x1=',x1:1:3);
x2:=(-b-sqrt(D))/2*a;
writeln('x2=',x2:1:3);
readln
end;
If D=0 then write('pt co no kep');
begin
x:=-b/2*a;
writeln('x=',x:1:3);
readln;
end;
If D<0 then writeln('PT vo no');
end.
meobeo_luoibieng_9x
21-06-2009, 06:32 PM
Bài 4: Tìm cạnh huyền c của tam giác vuông có 2 cạnh a và b theo định lý Pytago.
program pi_ta_go;
uses crt;
var a,b:real;
C:real;
begin
clrscr;
write('a=');
readln(a);
write('b=');
readln(b);
C:=sqrt((sqr(a))+(sqr(b)));
write('C=',C:1:0);
readln;
end.
Thêm vài bài đi đang máu:Monkey26:
chihong
21-06-2009, 06:56 PM
như thế làm sao ra kết quả đc, để tui chỉnh sửa lại 1 chút nhé
program PT_2;
uses crt;
var a,b,c:real;
D:real;
x1,x2,x:real;
begin
clrscr;
write('nhap a=');
readln(a);
write('nhap b=');
readln(b);
write('nhap c=');
readln(c);
D:=sqr(b)-4*a*c;
writeln('D=',D:1:1);
If D>0 then writeln('pt co 2 no phan biet');
begin
x1:=(-b+sqrt(D))/2*a;
writeln('x1=',x1:1:3);
x2:=(-b-sqrt(D))/2*a;
writeln('x2=',x2:1:3);
readln
end;
If D=0 then write('pt co no kep');
begin
x:=-b/2*a;
writeln('x=',x:1:3);
readln;
end;
If D<0 then writeln('PT vo no');
end.
Mình check cách của mình đúng mà, sao sai được, nếu sai thì chắc tại mình đánh nhầm chữ sqr và sqrt thành spr và sprt thôi. Còn cách làm của bạn thì mình check thử rồi, khi mình nhập nghiệm vào với a=1 b=2 c=-3 thì nó trả về 3 nghiệm (?!) 2 nghiệm của x1 và x2; còn 1 nghiệm x nữa. Bạn xem lại xem sao.
meobeo_luoibieng_9x
21-06-2009, 07:14 PM
Uhm, mình chỉnh sửa lại xem thử rồi đúng là ra kết quả đúng thật. Nhưng mỗi tội hơi khó hiểu cho người mới
chihong
21-06-2009, 07:26 PM
MÌnh dau thấy bạn sửa chỗ nào đâu?!
meobeo_luoibieng_9x
21-06-2009, 08:04 PM
mình có bảo mình sửa bài bạn đâu, mình chép vào pascal rồi sửa chứ. nếu thể cũng đc mình sửa lài bài của bạn luôn(sửa chỗ viết nhầm thui)
chihong
21-06-2009, 08:13 PM
ban in dam len di
meobeo_luoibieng_9x
21-06-2009, 08:18 PM
Bài của bạn mình chỉnh lại rồi, mình đã nói là chỉ sai chữ p và q, dấu . và , thui
Powered by vBulletin® Version 4.1.7 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.