Đề tài: Giải và sưa tầm các bài toán pascal ở trung học phổ cơ sở pot

52 470 6
Đề tài: Giải và sưa tầm các bài toán pascal ở trung học phổ cơ sở pot

Đ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

ĐỀ 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 Snh 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ác số 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 cac so >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 (' So cac so >10 va <20 la : ', Dem ) ; Writeln (' Tong cua chung la :', Tong ) ; Readln ; Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 2 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 . 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 . Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 3 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 : _ 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 ; Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 4 BEGIN Clrscr ; Write (' a = ') ; Readln( a ) ; Write (' b = ') ; Readln( b ) ; Write (' Phep tinh thuc hien la (+ - * /) : ') ; 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 ! ') ; Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 5 Readln ; END . 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ác số 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. a. 1 + 1/2 2 + 1/3 2 + … + 1/n 2 b. b. 1 + 1/2! + 1/3! + … + 1/n! a) Var n , i : Word ; S : Real ; BEGIN Write (' Nhap n : ') ; Readln (n) ; S := 0 ; Snh viên: Phan Thanh Vịnh - Lớp CĐSP Tốn – Tin K50 6 For i := 1 To n Do S := S + 1 / sqr(i) ; 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 ; Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 7 i := i + 1 ; End ; 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ác số khác nhau . Uses Crt; Var A : Array [1 100] Of Integer; i , j , n : Integer ; BEGIN Clrscr ; Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 8 Write(' Do dai cua day so N = ') ; Readln (N) ; For I := 1 To N Do Begin Write ('A[', i , ']= ') ; Readln ( A[i] ) ; End ; Writeln (' Cac so 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 . Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 9 3 Sử dụng lệnh Repeat 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 Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50 10 [...]... 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... 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... 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. .. trên màn hình 1 Xem 2 2 Sua chua 3 3 Loai bo 4 4 Nhap them 5 5 Thoat Lua chon cua ban : _ Sau đó đợi gõ phím Chương trình phải đợi cho tới khi phím gõ vào là một trong các chữ số 1 5 hoặc các chữ cái đầu của các tuỳ chọn thì thơng báo phím gõ vào hợp lệ và kết thúc chương trình Trong chương trình phải dùng một tập hợp để kiểm tra việc nhập giá trị cho biến từ bàn phím (* Hiển tḥ menu *) Uses Crt;... then begin st:=st+ch; 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àn các chươ cái *) Uses Crt; Const A:set of char=['a' 'z','A' 'Z']; Var ch: char; st: string; Snh viên: Phan Thanh Vịnh - Lớp CĐSP... 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... Vt To length(St2) Do S := S + St2[i] ; 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ác trung tuyến của tam giác _ Viết hồn thiện chương trình chính ... Readln; END Bài 5 : Hãy lập chương trình nhập vào một xâu nhị phân Các kí tự nhập vào khơng hợp lệ bị bỏ qua (* nhập một xâu nḥ phân *) Uses Crt; Const bit : set of char= ['0','1']; Var ch: char; st: string; BEGIN Clrscr; st:=''; Write('Nhap vao mot xau nhi phan : '); Repeat ch:= Readkey; If ch in bit then begin st:=st+ch; Write(ch); end Else If ch#13 then Write(#7); Until ch=#13; Readln; END Bài 6... Begin Delete(S,j+2,i-j-2); i:=j+1; End; End ; Inc(i); End; Write('Chuoi sau khi bien doi la: ',S); Readln; END Bài 3 : Snh viên: Phan Thanh Vịnh - Lớp CĐSP Tốn – Tin K50 25 Cho số tự nhiên n và một dãy các kí tự S1 , S2 , … , Sn Hãy tìm số tự nhiên I đầu tiên sao cho các kí tự Si , Si+1 đều là chữ cái a Nếu trong dãy khơng có những cặp như vậy thì thơng báo Var S: string; i: integer; BEGIN Write(' . ĐỀ 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 Snh viên: Phan Thanh Vịnh - Lớp CĐSP Toán – Tin K50. ! ') ; Readln ; END . Bài 2 : Nhập N số bất kì . Đếm các số 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 cac so >10 và <20 la : ( gia tri ) Tong. CĐSP Toán – Tin K50 7 i := i + 1 ; End ; 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

Ngày đăng: 13/07/2014, 22:20

Từ khóa liên quan

Mục lục

  • Size 16

    • Size 24

      • Size 32

        • Size 40

Tài liệu cùng người dùng

Tài liệu liên quan