1. Trang chủ
  2. » Giáo án - Bài giảng

Những bài tập pascal hay

15 1,3K 16
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Những bài tập Pascal hay
Thể loại Bài tập
Định dạng
Số trang 15
Dung lượng 119 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập 16: Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp.. Tuổi : một số nguyên hai chữ số.. Lớp : một xâu hai chữ số và một chữ cái viết hoa Một file bản ghi chứa một danh

Trang 1

Bài tập pascal 11

Bài tập 1:Nhập ba số bất kỳ kiểm tra ba số vừa nhập có phải là ba cạnh của tam giác hay không?

Var

a , b , c : Real ;

BEGIN

Writeln (' Nhap do dai 3 so bat ky : ') ;

Write (' a = ') ; Readln ( a ) ;

Write (' b = ') ; Readln ( b ) ;

Write (' c = ') ; Readln ( c ) ;

If ( a + b > c ) and ( b + c > a ) and ( c + a > b )

and ( a > 0 ) and ( b > 0 ) and ( c > 0 ) Then

Writeln (' Thoa man : Day la 3 canh cua mot tam giac ')

Else

Writeln (' Khong thoa man ! ') ;

Readln ;

END

Bài tập 2: Nhập vào N số cho trước đếm có bao nhiêu phần tử nằm trong khoảng 10 đến 20

Var

Tong , So : Real ;

I , N , Dem : Integer ;

BEGIN

Write (' Bao nhieu so : ') ; Readln ( N ) ;

Tong := 0 ; Dem := 0 ;

For I := 1 To N Do

Begin

Write (' So = ') ; Readln ( So ) ;

If ( So > 10 ) and ( So < 20 ) Then

Begin

Tong := Tong + So ;

Dem := Dem + 1 ;

End ;

End ;

Writeln (' So cac so >10 va <20 la : ', Dem ) ;

Writeln (' Tong cua chung la :', Tong ) ;

Readln ;

END

Bài tập 3: Tìm giá trị lớn nhất, nhỏ nhất trong 4 số nhập từ bàn phím

Var

Max , a , b , c , d : Real ;

BEGIN

Writeln (' Nhap gia tri cua 4 so : ') ;

Write (' a = ') ; Readln ( a ) ;

Write (' b = ') ; Readln ( b ) ;

Write (' c = ') ; Readln ( c ) ;

Write (' d = ') ; Readln ( d ) ;

If Max < b Then Max := b ;

If Max < c Then Max := c ;

Trang 2

If Max < d Then Max := d ;

Min:=a;

If Min > b Then Min := b ;

Writeln (' Gia tri lon nhat la : ', Max ) ;

Writeln (' Gia tri nho nhat la : ', Min ) ;

Readln ;

END

Bài tập 4: Nhập ngày tháng bất kỳ chương trình tìm ngày trong tuần của ngày vừa nhập

Var

Thu , Ngay , Thang : Byte ;

Nam : Integer ;

BEGIN

Write (' Doc Ngay Thang Nam : ') ;

Readln ( Ngay , Thang , Nam ) ;

Nam := 1900 + ( Nam mod 1900 ) ;

If Thang < 3 Then

Begin

Thang := Thang + 12 ;

Nam := Nam - 1 ;

End ;

Thu := Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3

div 5 + Nam + Nam div 4 ) mod 7 ;

Case Thu Of

0 : Writeln ('Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Chu Nhat ') ;

1 : Writeln (''Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Thu Hai ') ;

2 : Writeln (''Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Thu Ba ') ;

3 : Writeln (' 'Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Thu Tu ') ;

4 : Writeln (' 'Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Thu Nam ') ;

5 : Writeln (' 'Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Thu Sau ') ;

6 : Writeln (' 'Ngay ‘,Ngay, ‘thang’, thang, ‘nam’ ,nam,‘la ngay Thu Bay ') ;

End ;

Readln ;

END

Bài tập 5: chương trình nhập điểm văn, toán, ngoại nữ của học sinh, chương trình in ra màn hình

giấy báo nếu tổng điểm lớn hơn 15 thì trúng tuyển, nếu không thì ghi không trúng tuyển

Uses Crt ;

Var SBD : Integer;

Van , Toan , Ngoaingu , Tongdiem : Real ;

BEGIN

Clrscr ;

Write (' So bao danh : ') ; Readln( SBD ) ;

Write (' Diem toan : ') ; Readln( Toan ) ;

Write (' Diem ngoai ngu : ') ; Readln( Ngoaingu ) ;

Write (' Diem van : ') ; Readln ( Van ) ;

Tongdiem := Toan + Van + Ngoaingu ;

Clrscr ;

Trang 3

Writeln (' Phieu Bao Diem ') ;

Writeln (' So bao danh : ', SBD ) ;

Writeln (' Diem van : ', Van ) ;

Writeln (' Diem toan : ', Toan ) ;

Writeln (' Diem ngoai ngu : ', Ngoaingu) ;

Writeln (' Tong diem : ', Tongdiem) ;

If Tongdiem >= 15 Then

Writeln(' Ban da trung tuyen ')

Else

Writeln(' Ban khong trung tuyen ') ;

Readln ;

END

Bài tập 6: Nhập hai số a,b cho trước, nhập phép tính cuẩ và b,các phép tính cộng, trừ, nhân,chia

Hiển thị lên màn hình kết quả của phép tính đó

Uses Crt ;

Var

a , b , T : Real ;

Pt : Char ;

BEGIN

Clrscr ;

Write (' a = ') ; Readln( a ) ;

Write (' b = ') ; Readln( b ) ;

Write (' Phep tinh thuc hien la (+ - * /) : ') ;

Readln( Pt ) ;

Write ( a , pt , b , ' = ', T ) ;

Readln ;

END

Bài tập 7: Chương trình giải phương trình bậc 2

Uses Crt;

Var

m , Delta : Real ;

BEGIN

Clrscr;

Write (' m = ') ; Readln( m ) ;

Delta := sqr( m-2 ) - 4 ;

If Delta < 0 Then

Writeln(' Phuong trinh vo nghiem ')

Else

Begin

If Delta = 0 Then

Writeln(' Phuong trinh co nghiem kep X= ', -( m - 2 ) / 2 )

Else

Begin

Writeln(' Phuong trinh co 2 nghiem : ') ;

Writeln (' X1 = ', ( -(m-2) + sqrt(delta) ) / 2 ) ;

Writeln (' X2 = ', ( -(m-2) - sqrt(Delta) ) / 2 ) ;

End ;

Trang 4

End ;

Readln ;

END

Bài tập 8: Chương trình nhập từ bàn phím các ký tự chương trình đếm số lần xuất hiện của mỗi ký

tự

Uses Crt ;

Var a : Array[ 'A' 'Z' ] of integer;

ch : char ;

i : byte ;

BEGIN

Clrscr ;

For ch :='A' to 'Z' Do a[ch] := 0 ;

Writeln (' Go phim 50 lan ') ;

For i := 1 To 50 Do

Begin

ch :=Readkey ;

ch := Upcase(ch) ;

a[ch] := a[ch] + 1 ;

End;

Writeln (' So lan xuat hien cac ki tu la :') ;

For ch :='A' to 'Z' do

If a[ch] > 0 Then

Writeln (ch , a[ch] : 4 , ' lan ');

Readln ;

END

Bài tập 9: Chương tình tính tổng S:=1+1/1+1/2+1/3+1/4+1/5+….1/n

Uses Crt ;

Var i , n : Integer ;

tong: Real ;

BEGIN

Clrscr ;

Write (' Cho so tu nhien n : ') ; Readln (n) ;

tong :=0 ;

i :=1 ;

While i <= n Do

Begin

tong := tong + 1/i ;

i := i + 1 ;

End ;

Writeln (' Tong can tim la : ', tong:12:6 ) ;

Readln ;

END

Bài tập 10: Bài toán tính a mũ n

Uses Crt ;

Var i , n : Integer ;

a , giatri : Real ;

BEGIN

Clrscr ;

Write (' Cho so a : ') ; Readln(a) ;

Write (' Cho so mu n : ') ; Readln(n) ;

Trang 5

i := 1 ;

giatri := 1 ;

While i <= n Do

Begin

giatri := giatri * a ;

i:= i+1 ;

End ;

Writeln(' a mu n bang : ', giatri ) ;

Readln ;

END

Bài tập 11 : Sắp xếp các phần tử trong mảng cho trước

uses crt;

var a: array[1 100] of integer;

var i,n,j, tg,max, vt : integer;

begin

clrscr;

write(' nhap so phan tu cua mang ');

readln(n);

writeln(' moi nhap cac phan tu cua mang ');

for i:= 1 to n do begin

write('A', i,']= ');

readln(a[i]);

end;

Max:=a[1]; vt:=1;

For i:=1 to n do begin

If A[i]>max then Begin

Max:=a[i]; vt:=i;

End;

end;

Writeln('gia tri lon nhat la ', max, ' nam o vi tri thu ' ,vt);

for i:= 1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then begin

tg:=a[i];

a[i]:=a[j];

a[j]:=tg;

end;

writeln(' day sau khi sap xep la ');

for i:=1 to n do write(' ', a[i]);

readln;

end

Bài tập 12: Nhập xâu cho trước kiểm tra có phải xâu đối xứng hay không?

Uses Crt;

Var St : string;

dx : Boolean;

i, len: byte;

Trang 6

BEGIN

Clrscr;

Write(' Nhap xau St = '); Readln(St);

dx:= True;

i:=1;

len:= Length(St);

While dx and (i<=(len div 2)) do

Begin

dx:=(St[i] = St[len - i+1]);

inc(i);

End;

If dx then Write(' St la xau doi xung ')

Else Write(' St khong phai la xau doi xung ') ;

Readln;

END

Bài tập 13: Chương trình nhập vào họ tên của một người sau đó xóa hết ký tự trắng dư thừa

Uses crt;

Const Chu=['a' 'z'];

Var Hoten: string;

i,len: byte;

BEGIN

Clrscr;

Write('Ho ten='); Readln(Hoten);

Len:=length(Hoten);

If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]);

For i:=2 to len do

If (Hoten[i-1]=#32)and(Hoten[i] in Chu) then

Hoten[i]:=Upcase(Hoten[i]);

Write('Ho ten sau khi dieu chinh la: ', Hoten);

Readln;

END

Bài tập 14: Chương trình nhập tệp tin và tính số phần tử tệp vừa nhập

Uses Crt;

Type Tap=set of 0 99;

Const inp='Number.dat';

Var S : Tap;

i : byte;

Procedure Nhap;

Var a: byte; f: text;

Begin

S:=[];

Assign(f,inp); Reset(f);

While not SeekEoF(f) do

begin

Readln(f,a); If (a>=0)and(a<=99) then S:=S+[a];

End;

Close(f);

End;

Function Card(S: Tap): byte;

Trang 7

Var i,n: byte;

Begin

n:=0;

For i:=0 to 99 do If i in S then Inc(n);

Card:=n;

End;

BEGIN

Nhap;

Clrscr;

Write('Tap S co ',Card(S),' phan tu.');

Readln;

END

Bài tập 15: Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp của học sinh,in ra danh sách

vừa nhập

Uses Crt;

Const n=15;

Type Danhsach=record

holot: string[25];

ten: string[10];

tuoi: 0 99;

lop: string[3];

End;

Var ds: array [1 n] of Danhsach;

i : byte;

BEGIN

ClrScr;

Writeln('Hay nhap danh sach hoc sinh : ');

Writeln;

For i:=1 to n do

Begin

Writeln('Thong tin hoc sinh thu ',i);

Write('Cho ho lot : '); Readln(ds[i].holot);

Write('Cho ten : '); Readln(ds[i].ten);

Write('Cho tuoi : '); Readln(ds[i].tuoi);

Write('Cho lop : '); Readln(ds[i].lop);

Writeln;

End;

Writeln('Danh sach hoc sinh :');

For i:=1 to n do

With ds[i] do Writeln(holot:20,ten:10,tuoi:4,lop:5);

Writeln;

Write('Bam Enter de ket thuc ');

Readln;

END

Bài tập 16: Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp Chương trình in ra danh

sách sau khi sắp xếp theo thứ tự tăng dần

Uses Crt;

Const n=5;

Type

Danhsach=record

holot: string[25];

Trang 8

ten: string[10];

tuoi: 0 99;

lop: string[3];

End ;

Var ds: array [1 20] of Danhsach;

i,j: byte;

f: file of Danhsach;

Procedure Doi(i,j: byte);

Var tg: Danhsach;

Begin

tg:=ds[i];

ds[i]:=ds[j];

ds[j]:=tg;

End;

BEGIN

ClrScr;

Writeln('Nhap danh sach hoc sinh tu file data.dat : ');

Writeln;

Assign(f,'data.dat'); Reset(f);

For i:=1 to n do Read(f,ds[i]);

Close(f);

For i:=1 to n-1 do

For j:=i+1 to n do

begin

If (ds[i].ten>ds[j].ten) then Doi(i,j)

Else

If (ds[i].ten=ds[j].ten)and(ds[i].holot>ds[j].holot) then Doi(i,j);

end;

Writeln('Danh sach hoc sinh:');

For i:=1 to n do

With ds[i] do Writeln(holot:20,ten:11,tuoi:4,lop:5);

Writeln;

Write('Bam Enter de ket thuc ');

Readln;

END

Bài tập 17: Thông tin về mỗi học sinh là một bản ghi gồm các trường :

Họđệm : một xâu 25 kí tự

Tên : một xâu 10 kí tự

Tuổi : một số nguyên hai chữ số

Lớp : một xâu hai chữ số và một chữ cái viết hoa

Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh Hãy lập chương trình hiển thị danh sách lên màn hình , mỗi người một dòng

Uses Crt;

Const n=5;

Type Danhsach=record

holot: string[25];

ten: string[10];

tuoi: 0 99;

lop: string[3];

end;

Var ds: Danhsach;

Trang 9

i: byte;

f: file of Danhsach;

BEGIN

ClrScr;

Writeln('Danh sach hoc sinh tu file bai2.dat');

Writeln;

Assign(f,'bai2.dat'); Reset(f);

For i:=1 to n do

Begin

Read(f,ds);

With ds do Writeln(holot:20,ten:11,tuoi:4,lop:5);

End;

Close(f);

Writeln;

Write('Bam Enter de ket thuc ');

Readln;

END

Bài tập 18: Một file bản ghi chứa một danh sách học sinh , thông tin về mỗi học sinh giống như

bài trên Hãy lập chương trình tạo một file bản ghi khác chứa danh sách đó , mỗi bản ghi gồm các trường :

Họtên : một xâu 35 kí tự

Tuổi : một số nguyên hai chữ số

Khối : một số nguyên hai chữ số

Lớp : một chữ cái viết hoa

Uses Crt;

holot: string[25];

ten: string[10];

tuoi: 0 99;

lop: string[3];

End;

Danhsach2=record

hoten: string[35];

tuoi: byte;

khoi: byte;

lop: char;

End;

Var ds1 : Danhsach1;

ds2 : Danhsach2;

f1 : file of Danhsach1;

f2 : file of Danhsach2;

c : integer;

BEGIN

ClrScr;

Writeln('Ghi tu file bai3.dat sang bai3n.dat:');

Writeln;

Assign(f1,'bai3.dat'); Reset(f1);

Assign(f2,'bai3n.dat'); Rewrite(f2);

While not Eof(f1) do

Begin

Read(f1,ds1);

Trang 10

With ds1 do

Begin

ds2.hoten:=holot+ten;

val(copy(lop,1,2),ds2.khoi,c);

ds2.tuoi:=tuoi;

ds2.lop:=UpCase(lop[3]);

Write(f2,ds2);

End;

End;

Close(f1); Close(f2);

Writeln;

Writeln('Bam Enter de ket thuc!');

Readln;

END

Bài tập 19:

Một file bản ghi chứa một danh sách học sinh PTTH , thông tin về mỗi học sinh ngoài các trường Họđệm , Tên , Tuổi , Lớp giống như các bài trên còn có thêm trường Điểm chứa điểm trung bình của học sinh trong năm học Hãy lập chương trình :

a Hiển thị lên màn hình danh sách những học sinh giỏi nhất của trường là những bạn có điểm trung bình từ 8.0 trở lên và cao nhất trong khối

b Lập danh sách học sinh trong năm học mới , biết một học sinh có điểm trung bình từ 5.0 trở lên thì được lên lớp Chú ý : lớp 10A lên lớp 11A , lớp 11A lên 12A Kết quả chứa trong file Uses Crt;

Type Danhsach=record

holot: string[25];

ten: string[10];

tuoi: 0 99;

lop: string[3];

diem: real;

End;

Var ds: array [1 100] of Danhsach;

f: file of Danhsach;

n: integer;

Procedure Nhap;

Begin

Assign(f,'bai4.dat'); Reset(f);

n:=0;

While not Eof(f) do

Begin

n:=n+1; Read(f,ds[n]);

End;

Close(f);

End;

Procedure Timgioi;

Var i: integer;

max10,max11,max12: real;

l: string;

Begin

max10:=0; max11:=0; max12:=0;

Trang 11

For i:=1 to n do With ds[i] do

Begin

l:=copy(lop,1,2);

If (l='10')and(diem>max10)and(diem>8.0) then max10:=diem

Else If (l='11')and(diem>max11)and(diem>8.0) then max11:=diem

Else If (l='12')and(diem>max12)and(diem>8.0) then max12:=diem;

End;

Writeln('Hoc sinh gioi nhat khoi 10 : ');

For i:=1 to n do With ds[i] do

If (copy(lop,1,2)='10')and(diem>=max10) then

Writeln(holot:20,ten:10,tuoi:4,lop:5,diem:5:1);

Writeln('Hoc sinh gioi nhat khoi 11 : ');

For i:=1 to n do With ds[i] do

If (copy(lop,1,2)='11')and(diem>=max11) then

Writeln(holot:20,ten:10,tuoi:4,lop:5,diem:5:1);

Writeln('Hoc sinh gioi nhat khoi 12 : ');

For i:=1 to n do With ds[i] do

If (copy(lop,1,2)='12')and(diem>=max12) then

Writeln(holot:20,ten:10,tuoi:4,lop:5,diem:5:1);

End;

Procedure Lenlop;

Var i: integer;

l: string;

f: file of Danhsach;

Begin

For i:=1 to n do With ds[i] do

Begin

l:=copy(lop,1,2);

If (l='10')and(diem>=5.0) then lop:='11'+lop[3]

Else If (l='11')and(diem>=5.0) then lop:='12'+lop[3]

Else If (l='12')and(diem>=5.0) then lop:='DTN';

End;

Assign(f,'bai4n.dat'); Rewrite(f);

For i:=1 to n do With ds[i] do

If lop<>'DTN' then Write(f,ds[i]);

Close(f);

End;

BEGIN

ClrScr;

Nhap;

Timgioi;

Lenlop;

Write('Bam ENTER de ket thuc ');

Readln;

END

Bài tập 20: Cho file bản ghi f chứa dữ liệu về kho sách , dữ liệu về mỗi cuốn sách được chứa

trong một bản ghi gồm 3 trường mang thông tin về :

Họ tên tác giả : một xâu 26 kí tự

Tên sách : một xâu 40 kí tự

Năm xuất bản : một số nguyên 4 chữ số

Ngày đăng: 01/11/2013, 06:11

HÌNH ẢNH LIÊN QUAN

Bài tập 5: chương trình nhập điểm văn, tốn, ngoại nữ của học sinh, chương trình in ra màn hình - Những bài tập pascal hay
i tập 5: chương trình nhập điểm văn, tốn, ngoại nữ của học sinh, chương trình in ra màn hình (Trang 2)
Hiển thị lên màn hình kết quả của phép tính đĩ Uses Crt ;  - Những bài tập pascal hay
i ển thị lên màn hình kết quả của phép tính đĩ Uses Crt ; (Trang 3)
Kết quả hiện trên màn hình Uses Crt; - Những bài tập pascal hay
t quả hiện trên màn hình Uses Crt; (Trang 12)

TỪ KHÓA LIÊN QUAN

w