Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
299,5 KB
Nội dung
ĐỀ TÀI:
GIẢI VÀ SƯU TẦM CÁC BÀI
TOÁN PASCALỞTRUNG
HOC CƠ SỞ
Sinh viên thực hiện: Phan Thanh Vịnh
Lớp: CĐSP Toán – Tin K50
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 1
I Câu lệnh IF THEN ELSE
Bài 1 :
Nhập 3 số a , b , c bất kì . Hãy kiểm tra xem ba số đó có thể là độ dài ba cạnh của một
tam giác hay không ? Thông báo lên màn hình ‘ Thỏa mãn ‘, ‘ Không thỏa mãn trong
từng trường hợp tương ứng .
Var
a , b , c : Real ;
BEGIN
Writeln (' Nhap do dai 3 canh cua tam giac : ') ;
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 2 :
Nhập N số bất kì .
Đếm cácsố lớn hơn 10 và nhỏ hơn 20 và tính tổng của chúng . Sau đó , đưa ra màn
hình :
So cacso >10 và <20 la : ( gia tri )
Tong cua chung la : ( gia tri )
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 (' Socacso >10 va <20 la : ', Dem ) ;
Writeln (' Tong cua chung la :', Tong ) ;
Readln ;
END .
Bài 3 :
Nhập bốn số a , b , c , d . Hãy tìm giá trị lớn nhất của chúng và gán giá trị lớn nhất đó
cho biến Max .
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 2
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 ) ;
Max := a ;
If Max < b Then Max := b ;
If Max < c Then Max := c ;
If Max < d Then Max := d ;
Writeln (' Gia tri lon nhat la : ', Max ) ;
Readln ;
END .
Bài 4 :
Đọc ngày tháng năm , sau đó viết ra màn hình đó là ngày thứ mấy trong tuần .
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 (' Chu Nhat ') ;
1 : Writeln (' Thu Hai ') ;
2 : Writeln (' Thu Ba ') ;
3 : Writeln (' Thu Tu ') ;
4 : Writeln (' Thu Nam ') ;
5 : Writeln (' Thu Sau ') ;
6 : Writeln (' Thu Bay ') ;
End ;
Readln ;
END .
Bài 5 :
Viết chương trình :
Nhâp số báo danh
Nhập điểm văn , toán , ngoại ngữ
In ra màn hình dưới dạng :
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 3
_ Phiếu điểm :
_ Số báo danh :
_ Điểm văn :
_ Điểm toán :
_ Điểm ngoại ngữ :
_ Tổng số điểm :
Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm >=
15 hay ngược lại .
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 ;
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 6 :
Viết chương trình nhập hai số thực . Sau đó hỏi phép tính cần thực hiện và in kết quả
của phép tính đó .
Nếu là “+” , in kết quả của tổng lên màn hình .
Nếu là “-” , in kết quả của hiệu lên màn hình .
Nếu là “/” , in kết quả của thương lên màn hình .
Nếu là “*” , in kết quả của tích lên màn hình . Nếu là “+” , in kết quả của tổng lên
màn hình .
Nếu là “+” , in kết quả của tổng lên màn hì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 (+ - * /) : ') ;
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 4
Readln( Pt ) ;
If Pt = '+’ Then T := a + b ;
If Pt = '-’ Then T := a - b ;
If Pt = '*’ Then T := a * b ;
If Pt = '/’ Then T := a / b ;
Write ( a , pt , b , ' = ', T ) ;
Readln ;
END .
Bài 7 :
Giải và biện luận phương trình :
x
2
+ ( m – 2 ) x + 1 = 0
ở đây m là tham số thực tuỳ ý .
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 ;
End ;
Readln ;
END .
Bài 8 :
Viết chương trình nhập hai số tự nhiên N, M và thông báo ‘Dung‘ nếu N , M cùng tính
chẵn lẽ , trong trường hợp ngược lại thì thông báo ‘Sai‘.
Uses Crt ;
Var
N , M : Integer ;
Begin
Clrscr ;
Write(' N , M = ') ; Readln( N , M ) ;
If ( (N + M) mod 2 = 0 ) Then Writeln(' Dung ! ')
Else Writeln(' Sai ! ') ;
Readln ;
END
.
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 5
II VỊNG LẶP XÁC ĐỊNH VÀ KHƠNG XÁC ĐỊNH
1 SỬ DỤNG LỆNH FOR
Bài 1 :
Lập trình tính tích cácsố tự nhiên từ 1 tới 10 .
Var i : Byte ; (* chỉ số chạy *)
p : word ; (* tích số *)
BEGIN
p := 1; (* cho giá tṛ ban đầu của tích *)
For i := 1 to 10 Do (* cho i chạy từ 1 tới 10 *)
p := p * i ; (* lần lượt nhân i với p *)
Write (' 1 * 2 * * 10 = ', p ) ;
Readln ;
END .
Bài 2 :
Viết chương trình đếm số lần xuất hiện của các kí tự thuộc bảng chữ cái trong 50 lần
gõ kí tự bằng bàn phím (khơng phân biệt a với A, b với B …, dùng hàm Upcase để
chuyển đổi chữ thường với chữ hoa) .
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 3 :
Cho số tự nhiên n , hãy lập trình để tính các tổng sau :
a. 1 + 1/2
2
+ 1/3
2
+ … + 1/n
2
b. 1 + 1/2! + 1/3! + … + 1/n!
a)
Var n , i : Word ;
S : Real ;
BEGIN
Write (' Nhap n : ') ; Readln (n) ;
S := 0 ;
For i := 1 To n Do
S := S + 1 / sqr(i) ;
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Tốn – Tin K50 6
Writeln (' S = ', S:0:2) ;
Readln ;
END .
b)
Var n , i , j , p : Word ;
S : Real ;
BEGIN
Write (' Nhap n : ') ; Readln(n) ;
p := 1 ;
s := 0 ;
For i :=1 To n Do
Begin
p := p * i ; (* tính i *)
S := S + 1 / p ;
End ;
Writeln (' S = ', S:0:2) ;
Readln ;
END .
Bài 4 :
Tính giá trị của biểu thức sau :
( 1 + 1/1
2
) ( 1 + 1/2
2
) … ( 1 + 1/n
2
)
Var i , n : Byte ;
p : Real ;
Begin
Write(' Nhap n : ') ; Readln (n) ;
p := 1 ;
For i := 1 To n Do p := p * ( 1 + 1/sqr(i) ) ;
Writeln(' p = ', p:10:5 ) ;
Readln ;
End .
2 SỬ DỤNG LỆNH WHILE
Bài 5 :
Lập trình tính tổng :
A = 1 + 1/2 + 1/3 + … + 1/n
ở đây n là số tự nhiên được nhập vào từ bàn phím .
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 ;
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 7
Writeln (' Tong can tim la : ', tong:12:6 ) ;
Readln ;
END .
Bài 6 :
Tính hàm lũy thừa a
n
, ở đây a thực và n tự nhiên được nhập vào từ bàn phím .
Uses Crt ;
Var i , n : Integer ;
a , giatri : Real ;
BEGIN
Clrscr ;
Write (' Cho so a : ') ; Readln(a) ;
Write (' Cho so mu n : ') ; Readln(n) ;
i := 1 ;
giatri := 1 ;
While i <= n Do
Begin
giatri := giatri * a ;
i:= i+1 ;
End ;
Writeln(' a mu n bang : ', giatri ) ;
Readln ;
END .
Uses Crt ;
Var i , n : Integer ;
a , giatri : Real ;
BEGIN
Clrscr ;
Write (' Cho so a : ') ; Readln(a) ;
Write (' Cho so mu n : ') ; Readln(n) ;
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 7 :
Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình cácsố khác
nhau .
Uses Crt;
Var A : Array [1 100] Of Integer;
i , j , n : Integer ;
BEGIN
Clrscr ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
For I := 1 To N Do
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 8
Begin
Write ('A[', i , ']= ') ; Readln ( A[i] ) ;
End ;
Writeln (' Cacso khac nhau la : ') ; Writeln ( A[1] ) ;
i := 2 ;
While i <= N Do
Begin
j := 1 ;
While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;
If j = i Then Writeln( A[i] ) ;
i :=i + 1 ;
End ;
Readln ;
END .
Bài 8 :
Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự tăng
dần .
Uses Crt;
Var A : Array [1 100] Of Integer ;
i , j , n , T : Integer ;
BEGIN
Clrscr ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
Writeln (' Nhap day so : ') ;
For i := 1 To N Do
Begin
Write('A[', i ,'] = ') ; Readln ( A[i] ) ;
End ;
i := 1 ;
While (i <= n-1) Do
Begin
j := i+1;
While j<=n do
Begin
If A[j] < A[i] then
Begin
T := A[j];
A[j ] := A[i];
A[i] := T ;
End ;
j := j + 1;
End ;
i := i + 1;
End ;
Writeln(' Day sau khi sap xep : ') ;
For i := 1 To N Do Write(A[i] : 4) ;
Readln ;
END .
3 Sử dụng lệnh Repeat
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 9
Bài 9 :
Cho một dãy số được nhập từ bàn phím . Hãy viết chương trình nhập một số a rồi liệt
kê tất cả các phần tử trong dãy lớn hơn a.
Uses crt ;
Var a , b : Array[1 50] Of Integer ;
n , m , i , j , k : Byte ;
trung : Boolean ;
BEGIN
Clrscr ;
Write (' Nhap do dai cua day so nguyen : ') ; Readln(n) ;
Writeln (' Nhap cac phan tu cua day : ') ;
For i := 1 To N do
Begin
Write (' a[', i ,'] = ') ; Readln( a[i] ) ;
End ;
i := 1 ; m := 0 ;
Repeat
trung := false ;
j := i + 1;
Repeat
If ( j <= n ) and ( a[i] = a[j] ) Then trung := true ; inc (j) ;
Until trung or ( j > n ) ;
If trung Then
Begin
m := m + 1;
b[m] := a[i] ; writeln ( b[m] : 4 ) ;
End ;
inc(i) ;
Until i > n ;
If m > 1 Then
Begin
i := 1 ;
Repeat
j := i + 1 ;
Repeat
trung := false ;
If b[i] = b[j] Then trung := true ;
If trung Then
Begin
If j < m Then
For k := j To m - 1 Do b[k] := b[k + 1] ;
m := m - 1 ;
dec ( j ) ;
End ;
inc ( j ) ;
Until j > m ;
inc ( i ) ;
Until i > m ;
End ;
If m > 0 Then
For k := 1 To m Do Write ( b[k] : 4 ) ;
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 10
[...]... a[i] ) ; End ; i := 1 ; m := 0 ; Repeat trung := false ; j := i + 1; Repeat If ( j n ) ; If trung Then Begin m := m + 1; b[m] := a[i] ; writeln ( b[m] : 4 ) ; End ; inc(i) ; Until i > n ; If m > 1 Then Begin i := 1 ; Repeat j := i + 1 ; Repeat trung := false ; If b[i] = b[j] Then trung := true ; If trung Then Begin If j < m Then For k... thuc!'); Readln; END Bài 4 : 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 ngồ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 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... ch:= 'A' to 'Z' do Writeln('So lan xuat hien cua ',ch,' trong xau la: ', A[ch]:4) ; Readln ; END Bài 2 : Cho số tự nhiên n và xâu có độ dài n Hãy biến đổi xâu đã cho bằng cách thay đổi trong đó : a a Tất cả các dấu ! bằng dấu chấm b b Mỗi một nhóm các dấu chấm liền nhau bằng một dấu chấm c c Một nhóm các dấu chấm đứng liền nhau bằng dấu ba chấm a) Var S: string; i: byte; BEGIN Write(' Cho mot xau... 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 9 : Viết chương trình nhập xãu kí tự từ bàn phím , sau đó gọt xâu lại bằng cách cách xố đi các kí tự trống ở hai đầu của xâu Ví dụ nếu nhập xâu “ Ha noi “ , thì kết quả sẽ là “Ha noi” Var S: String; BEGIN Write('Cho mot xau ky tu: '); Readln(S); While... Thanh Vịnh - Lớp CĐSP Tốn – Tin K50 14 St2 := S ; End ; End ; Bài 4 : Viết chương trình thực hiện lần lượt các cơng việc sau : _ Lập thủ tục nhập ba số thực dương a , b , c từ bàn phím _ Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay khơng ? _ Viết thủ tục tính diện tích của tam giác _ Viết thủ tục tính cáctrung tuyến của tam giác _ Viết hồn thiện chương trình chính ... Phan Thanh Vịnh - Lớp CĐSP Tốn – Tin K50 16 End; End ; End ; Write('Nhan Enter de ket thuc '); Readln; End Bài 7 : Viết thủ tục Compare ( S1 , S2 : String ; Var Kq : String ) thực hiện cơng việc sau : so sánh hai xâu S1 và S2 , tìm tất cả các kí tự có trong cả hai xâu trên Xâu Kq sẽ chứa tất cả các kí tự đó , mỗi kí tự chỉ được nhớ một lần Uses Crt; Var xau1,xau2,xau: string; (*==================================*)... Bài 7 : Viết chương trình nhập một xâu kí tự và biến đổi chúng thành tồn chữ in hoa Var S : string; i : integer; BEGIN Write('Cho mot xau ky tu: '); Readln(S); For i:=1 to length(S) do If S[i] in ['a' 'z'] then S[i]:= Upcase(S[i]); Write('Chuoi sau khi da bien doi la: ', S); Readln; END Bài 8 : Họ tên một học sinh được nhập từ bàn phím Bạn hãy viết chương trình điều chỉnh lại các kí tự đầu của các. .. If min>d(S[i],S[j]) then min:=d(S[i],S[j]); End; Write('Max(d(Si,Sj)=',max,' Min(d(Si,Sj)=',min); Readln; END Bài 9 : Viết chương trình hồn chỉnh thực hiện các cơng việc của thực đơn sau : 1 1 Nhập dữ liệu ( nhập số tự nhiên n ) 2 2 Phân tích ra thừa số ngun tố ( phân tích n thành tích cácsố ngun tố ) 3 3 Thốt khỏi chương trình Uses Crt; Type uoc_nguyen_to=array[1 50] of longint; Sinh viên: Phan... Write(ch); end Else If ch#13 then Write(#7); Until ch=#13; Readln; END Bài 6 : Hãy lập chương trình nhập vào một xâu kí tự từ bàn phím u cầu các kí tự nhập vào phải là các chữ cái thuộc bảng chữ cái tiếng Anh , bỏ qua các phím khác (* Nhập một xâu toàncác chươ cái *) Uses Crt; Const A:set of char=['a' 'z','A' 'Z']; Var ch: char; st: string; Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Tốn – Tin K50 31... Bài 3 : Viết chương trình nhập hai số ngun dương m , n Sau đó tính trung bình cộng bình phương cácsố ngun từ m đến n Var m , n , k , s : Word ; tb : real ; BEGIN Writeln('Nhap 2 so nguyen duong m, n :') ; Write (' m = ') ; Readln(m) ; Write (' n = ') ; Readln(n); If m > n Then Begin k := m ; m := n ; n := k ; End ; s := 0 ; For k := m To n do s := s + sqr(k) ; tb := s / (n - m + 1) ; Writeln ('Trung . SƯU TẦM CÁC BÀI
TOÁN PASCAL Ở TRUNG
HOC CƠ SỞ
Sinh viên thực hiện: Phan Thanh Vịnh
Lớp: CĐSP Toán – Tin K50
Sinh viên: Phan Thanh Vịnh - Lớp CĐSP Toán –. Repeat
trung := false ;
j := i + 1;
Repeat
If ( j <= n ) and ( a[i] = a[j] ) Then trung := true ; inc (j) ;
Until trung or ( j > n ) ;
If trung