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ữ t[r]
(1)CHUYÊN ĐỀ HỌC SINH GIỎI TIN CÂU LỆNH IF … THEN … ELSE Bài :Nhập số a , b , c bất kì Hãy kiểm tra xem ba số đó có thể là độ dài ba cạnh 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 trường hợp tương ứng Bài :Nhập N số bất kì Đếm các số lớn 10 và nhỏ 20 và tính tổng chúng Sau đó , đưa màn hình : So cac so >10 và <20 la : ( gia tri ) Tong cua chung la : ( gia tri ) Bài :Nhập bốn số a , b , c , d Hãy tìm giá trị lớn chúng và gán giá trị lớn đó cho biến Max Bài :Đọc ngày tháng năm , sau đó viết màn hình đó là ngày thứ tuần Bài :Viết chương trình : Nhâp số báo danh Nhập điểm văn , toán , ngoại ngữ In màn hình 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 ( 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 Bài :Viết chương trình nhập hai số thực Sau đó hỏi phép tính cần thực và in kết phép tính đó Nếu là “+” , in kết tổng lên màn hình Nếu là “-” , in kết hiệu lên màn hình Nếu là “/” , in kết thương lên màn hình Nếu là “*” , in kết tích lên màn hình Nếu là “+” , in kết tổng lên màn hình Nếu là “+” , in kết tổng lên màn hình Bài :Giải và biện luận phương trình : x2 + ( m – ) x + = đây m là tham số thực tuỳ ý Bài :Viết chương trình nhập hai số tự nhiên N, M và thông báo ‘Dung‘ N , M cùng tính chẵn lẽ , trường hợp ngược lại thì thông báo ‘Sai‘ Lop8.net (2) VÒNG LẶP XÁC ĐỊNH VÀ VÒNG LẶP KHÔNG XÁC ĐỊNH Sử dụng lệnh For Bài :Lập trình tính tích các số tự nhiên từ tới 10 Bài :Viết chương trình đếm số lần xuất các kí tự thuộc bảng chữ cái 50 lần gõ kí tự 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) Bài :Cho số tự nhiên n , hãy lập trình để tính các tổng sau : a + 1/22 + 1/32 + … + 1/n2 b + 1/2! + 1/3! + … + 1/n! Bài :Tính giá trị biểu thức sau : ( + 1/12 ) ( + 1/22 ) … ( + 1/n2 ) Sử dụng lệnh While…do Bài :Lập trình tính tổng : A = + 1/2 + 1/3 + … + 1/n đây n là số tự nhiên nhập vào từ bàn phím Bài :Tính hàm lũy thừa an , đây a thực và n tự nhiên nhập vào từ bàn phím Bài :Viết chương trình nhập dãy số tối đa 100 số , sau đó in màn hình các số khác Bài :Viết chương trình nhập dãy số tối đa 100 số , sau đó xếp lại theo thứ tự tăng dần Sử dụng lệnh Repeat Bài :Cho dãy số nhập từ bàn phím Hãy viết chương trình nhập số a liệt kê tất các phần tử dãy lớn a Bài 10 :Viết chương trình nhập dãy số tối đa 50 số in màn hình các số trùng dãy Bài 11 :Bạn có 1000 đ đem gửi ngân hàng với lãi suất 8%/tháng Sau tháng tiền lãi nhập vào để tính lãi suất tháng sau Bạn muốn để dành số tiền tăng lên là x Vậy phải để bao lâu Bài 12 :Viết chương trình tìm ƯSCLN N số nhập từ bàn phím CHƯƠNG TRÌNH CON Bài :Dùng thủ tục chuyển số tự nhiên n cho trước sang hệ số Bài :Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = Bài :Hãy viết lại thủ tục Insert chuỗi kí tự cho trước tùy ý Bài :Viết chương trình thực 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 tam giác hay không ? _ Viết thủ tục tính diện tích tam giác _ Viết thủ tục tính các trung tuyến tam giác _ Viết hoàn thiện chương trình chính Bài :Giải phương trình x + y + z = 12 phạm vi số nguyên không âm với điều kiện x <4 Bài :Cho trước các số N , a , b , c tự nhiên Giải phương trình sau phạm vi số nguyên không âm x + y + z = N với điều kiện x < a , y < b , z < c Lop8.net (3) Bài :Viết thủ tục Compare ( S1 , S2 : String ; Var Kq : String ) thực công việc sau : so sánh hai xâu S1 và S2 , tìm tất các kí tự có hai xâu trên Xâu Kq chứa tất các kí tự đó , kí tự nhớ lần Bài :Viết hàm tính D (St1 , St2) , với U, V là hai xâu kí tự bất kì , là tổng số các kí tự không giống hai xâu trên , loại kí tự nhớ lần Ví dụ D (‘aabba’ , ‘bcdd’) = vì có hai kí tự a và d là không giống các xâu trên Bài :Viết chương trình hoàn chỉnh thực các công việc thực đơn sau : Nhập liệu ( nhập số tự nhiên n ) Phân tích thừa số nguyên tố ( phân tích n thành tích các số nguyên tố ) Thoát khỏi chương trình CẤU TRÚC DỮ LIỆU KIỂU MẢNG Bài :Giải hệ phương trình tuyến tính hai ẩn dùng ma trận : a11x + a12y = c1 a21x + a22y = c2 Bài :Lập phương trình tạo mảng chứa bảng cửu chương Bài :Viết chương trình nhập hai số nguyên dương m , n Sau đó tính trung bình cộng bình phương các số nguyên từ m đến n Bài :Viết chương trình nhập từ bàn phím các phần tử mảng hai chiều Kích thước mảng nhập trước từ bàn phím Bài :Dãy số sau gọi là dãy Fibonaci : a1 = a2 = a3 = a4 = an = an-1 + an-2 Viết chương trình tính 20 số Fibonaci đầu tiên và đưa kết vào mảng 20 phần tử Bài :Dãy số an định nghĩa sau : a1 = a2 = an = 2an-1 + an-2 ( n > ) Hãy lập chương trình tính và gán giá trị dãy vào biến mảng Bài :Nhập số tự nhiên N và viết chương trình tạo mảng bao gồm N số nguyên tố đầu tiên Bài :Viết chương trình nhập bảng số x với điều kiện các số nhập trên màn hình đúng vị trí mình trên bảng số Bài :a Viết chương trình nhập liệu từ dãy đối xứng vào mảng chiều b Viết chương trình nhập liệu là ma trận đối xứng vào mảng hai chiều XÂU KÝ TỰ Bài :Lập trình đếm số lần xuất loại kí tự thuộc bảng chữ cái tiếng Anh xâu kí tự Str Bài :Cho số tự nhiên n và xâu có độ dài n Hãy biến đổi xâu đã cho cách thay đổi đó a Tất các dấu ! dấu chấm Lop8.net (4) b Mỗi nhóm các dấu chấm liền dấu chấm c Một nhóm các dấu chấm đứng liền dấu ba chấm Bài :Cho số tự nhiên n và dãy các kí tự S1 , S2 , … , Sn Hãy tìm số tự nhiên I đầu tiên cho các kí tự Si , Si+1 là chữ cái a Nếu dãy không có cặp thì thông báo Bài :Cho số tự nhiên n và dãy các kí tự S1 , S2 , … , Sn Biết dãy có ít dấu phẩy Hãy tìm số tự nhiên i cho : a Si là dấu phẩy đầu tiên b Si là dấu phầy cuối cùng Bài :Viết chương trình nhập xâu kí tự , sau đó xem xâu đó có phải là xâu đối xứng không ( xâu đối xứng là xâu có các kí tự giống và đối xứng qua điểm xâu , ví dụ ‘ABBA’ ‘ABCBA’ ) Bài :Cho xâu kí tự S Hãy viết chương trình tính xem S có bao nhiêu loại kí tự khác ( phân biệt chữ in hoa với chữ in thường ) Ví dụ với S là “Pascal” ta có đáp số là Bài :Viết chương trình nhập xâu kí tự và biến đổi chúng thành toàn chữ in hoa Bài :Họ tên học sinh 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ác từ đơn tên học sinh trở thành chữ in hoa Bài :Viết chương trình nhập xãu kí tự từ bàn phím , sau đó gọt xâu lại cách cách xoá các kí tự trống hai đầu xâu Ví dụ nhập xâu “ Ha noi “ , thì kết là “Ha noi” DỮ LIỆU KIỂU TỆP Bài :Bạn hãy viết hàm Card(A) đếm số phần tử tập hợp A cho trước có kiểu Set Of 99 Bài :Bạn hãy lập chương trình tạo tập hợp các số nguyên chẵn kiểu Byte và loại khỏi nó các số chia hết cho Kết thể trên màn hình Bài :Xét chương trình sau : Program B4 ; Var Thoat : Set Of Char = [‘e’ , ’E’] ; BEGIN Write (‘ Hay go E de ket thuc : ‘) ; Repeat Ch := Readkey ; Until Ch in thoat ; END Hãy tìm và sửa lỗi chương trình đó Bài :Bạn hãy lập chương trình hiển thị menu dạng sau trên màn hình Xem Sua chua Loai bo Nhap them Thoat Lua chon cua ban : _ Lop8.net (5) Sau đó đợi gõ phím Chương trình phải đợi phím gõ vào là các chữ số các chữ cái đầu 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 tập hợp để kiểm tra việc nhập giá trị cho biến từ bàn phím Bài :Hãy lập chương trình nhập vào xâu nhị phân Các kí tự nhập vào không hợp lệ bị bỏ qua Bài :Hãy lập chương trình nhập vào xâu kí tự từ bàn phím Yê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 Bài :Viết chương trình có chức thêm phần tử vào tập hợp trực tiếp từ bàn phím và loại bớt phần tử khỏi tập hợp trực tiếp từ bàn phím CẤU TRÚC DỮ LIỆU KIỂU FILE Bài :Hãy lập chương trình tạo tệp số nguyên chứa các số nguyên tố nhỏ 10000 theo thứ tự tăng dần Bài :Cho f là tệp văn chứa các xâu 10 kí tự Hãy lập chương trình nhập và hiển thị nội dung file đó lên màn hình , xâu dòng , đầy trang màn hình thì dừng lại đợi gõ Enter hiển thị trang hết Bài :Bạn hãy viết chương trình cho phép đọc liệu từ bàn phím và ghi thêm vào cuối tệp các ghi Bài :Cho văn chứa text file f Trong văn , tính từ trái sang phải , từ trên xuống , kí tự # là kí hiệu xoá từ đứng trước nó có Ví dụ ‘#Ta#oi di ngu#h###hoc’ có nghĩa là ‘Toi di hoc’ Bạn hãy viết chương trình sửa lại file f theo quy ước trên Bài :Cho file f và g cùng kiểu ( không rõ kiểu nào ) Bạn hãy lập thủ tục gán nội dung file g cho file f Bài :Cho file text ghi lại chương trình Pascal học sinh Hãy viết chương trình kiểm tra lỗi chương trình Pascal trên theo các cách sau đây : Cách : Kiểm tra xem số lượng các dấu ‘ ( dấu mở và dấu đóng ) có không ? Cách : Kiểm tra xem số lượng các từ Begin và End có không ? Bài :Cho file text Hãy viết chương trình đếm xem file text trên chứa bao nhiêu từ ( Chú ý : theo quy định , các từ cách hay nhiều dấu cách ) Bài :Cho file text Viết chương trình loại bỏ các khoảng trống thừa bên file text này Lop8.net (6) ?Hướng dẫn : C¢U LỆNH IF … THEN … ELSE 1) Var a , b , c : Real ; BEGIN Writeln (' Nhap dai 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 > ) and ( b > ) and ( c > ) Then Writeln (' Thoa man : Day la canh cua mot tam giac ') Else Writeln (' Khong thoa man ! ') ; Readln ; END 2) Var Tong , So : Real ; I , N , Dem : Integer ; BEGIN Write (' Bao nhieu so : ') ; Readln ( N ) ; Tong := ; Dem := ; For I := To N Do Begin Write (' So = ') ; Readln ( So ) ; If ( So > 10 ) and ( So < 20 ) Then Begin Tong := Tong + So ; Dem := Dem + ; End ; End ; Writeln (' So cac so >10 va <20 la : ', Dem ) ; Writeln (' Tong cua chung la :', Tong ) ; Readln ; END Lop8.net (7) 3) Var Max , a , b , c , d : Real ; BEGIN Writeln (' Nhap gia tri cua 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 4) Var Thu , Ngay , Thang : Byte ; Nam : Integer ; BEGIN Write (' Doc Ngay Thang Nam : ') ; Readln ( Ngay , Thang , Nam ) ; Nam := 1900 + ( Nam mod 1900 ) ; If Thang < Then Begin Thang := Thang + 12 ; Nam := Nam - ; End ; Thu := Abs ( Ngay + Thang * + ( Thang + ) * div + Nam + Nam div ) mod ; Case Thu Of : Writeln (' Chu Nhat ') ; : Writeln (' Thu Hai ') ; : Writeln (' Thu Ba ') ; : Writeln (' Thu Tu ') ; : Writeln (' Thu Nam ') ; : Writeln (' Thu Sau ') ; : Writeln (' Thu Bay ') ; End ; Readln ; END Lop8.net (8) 5) 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 6) 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 ) ; 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 Lop8.net (9) 7) Uses Crt; Var m , Delta : Real ; BEGIN Clrscr; Write (' m = ') ; Readln( m ) ; Delta := sqr( m-2 ) - ; If Delta < Then Writeln(' Phuong trinh vo nghiem ') Else Begin If Delta = Then Writeln(' Phuong trinh co nghiem kep X= ', -( m - ) / ) Else Begin Writeln(' Phuong trinh co nghiem : ') ; Writeln (' X1 = ', ( -(m-2) + sqrt(delta) ) / ) ; Writeln (' X2 = ', ( -(m-2) - sqrt(Delta) ) / ) ; End ; End ; Readln ; END 8) Uses Crt ; Var N , M : Integer ; Begin Clrscr ; Write(' N , M = ') ; Readln( N , M ) ; If ( (N + M) mod = ) Then Writeln(' Dung ! ') Else Writeln(' Sai ! ') ; Readln ; END VßNG LặP X¸C §ÞNH Vµ KH¤NG X¸C §ÞNH 1)Var i : Byte ; (* số chạy *) p : word ; (* tích số *) BEGIN p := 1; (* cho giá trị ban đầu tích *) For i := to 10 Do (* cho i chạy từ tới 10 *) p := p * i ; (* nhân i với p *) Write (' * * * 10 = ', p ) ; Readln ; END Lop8.net (10) 2) Uses Crt ; Var a : Array[ 'A' 'Z' ] of integer; (* mảng đếm *) ch : char ; (* biến nhập kí tự *) i : byte ; (* số lần gõ phím *) BEGIN Clrscr ; For ch :='A' to 'Z' Do a[ch] := ; (* xả đếm *) Writeln (' Go phim 50 lan ') ; For i := To 50 Do (* thực 100 lần *) Begin ch :=Readkey ; (* nhập kí tự vào Ch không cần gõ Enter *) ch := Upcase(ch) ; (* Đỗi chữ thường thành chữ hoa *) a[ch] := a[ch] + ; End; Writeln (' So lan xuat hien cac ki tu la :') ; For ch :='A' to 'Z' (* Kiểm tra đếm từ 'A' tới 'Z' *) If a[ch] > Then (* Nếu Ch có xuất *) Writeln (ch , a[ch] : , ' lan ') ; (* Viết màn hình kí tự và số lần xuất *) Readln ; END 3)a) Var n , i : Word ; S : Real ; BEGIN Write (' Nhap n : ') ; Readln (n) ; S := ; For i := To n Do S := S + / 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 := ; s := ; For i :=1 To n Do Begin p := p * i ; (* tính i *) S := S + / p ; End ; 10 Lop8.net (11) Writeln (' S = ', S:0:2) ; Readln ; END 4)Var i , n : Byte ; p : Real ; Begin Write(' Nhap n : ') ; Readln (n) ; p := ; For i := To n Do p := p * ( + 1/sqr(i) ) ; Writeln(' p = ', p:10:5 ) ; Readln ; End 5) 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 + ; End ; Writeln (' Tong can tim la : ', tong:12:6 ) ; Readln ; END 6) 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 := ; giatri := ; While i <= n Do Begin giatri := giatri * a ; i:= i+1 ; End ; Writeln(' a mu n bang : ', giatri ) ; Readln ; 11 Lop8.net (12) END 7) 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 := To N Do Begin Write ('A[', i , ']= ') ; Readln ( A[i] ) ; End ; Writeln (' Cac so khac la : ') ; Writeln ( A[1] ) ; i := ; While i <= N Do Begin j := ; While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ; If j = i Then Writeln( A[i] ) ; i :=i + ; End ; Readln ; END 8) 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 := To N Do Begin Write('A[', i ,'] = ') ; Readln ( A[i] ) ; End ; i := ; While (i <= n-1) Do Begin j := i+1; While j<=n Begin If A[j] < A[i] then Begin T := A[j]; A[j ] := A[i]; 12 Lop8.net (13) A[i] := T ; End ; j := j + 1; End ; i := i + 1; End ; Writeln(' Day sau sap xep : ') ; For i := To N Do Write(A[i] : 4) ; Readln ; END 9) Uses Crt ; Var b : Array[1 100] Of Real; a : Real ; n , i : Byte ; BEGIN Clrscr ; Write ('Nhap dai cua day so : ') ; Readln(n) ; Writeln (' Nhap cac phan tu cua day : ') ; For i := To n Do Begin Write (' b[', i ,'] = ') ; Readln( b[i] ) ; End ; Write (' Nhap so thuc a : ') ; Readln(a) ; Writeln (' Cac phan tu lon hon a cua day : ') ; i:=1; Repeat If ( b[i] > a ) Then Writeln (' b[', i ,'] = ', b[i]:8:2 ) ; inc(i) ; Until i > n ; Readln ; END 10) Uses crt ; Var a , b : Array[1 50] Of Integer ; n , m , i , j , k : Byte ; trung : Boolean ; BEGIN Clrscr ; Write (' Nhap dai cua day so nguyen : ') ; Readln(n) ; Writeln (' Nhap cac phan tu cua day : ') ; For i := To N Begin Write (' a[', i ,'] = ') ; Readln( a[i] ) ; End ; 13 Lop8.net (14) i := ; m := ; Repeat trung := false ; j := i + 1; Repeat If ( j <= n ) and ( a[i] = a[j] ) Then trung := true ; Until trung or ( j > n ) ; If trung Then Begin m := m + 1; b[m] := a[i] ; writeln ( b[m] : ) ; End ; inc(i) ; Until i > n ; If m > Then Begin i := ; Repeat j := i + ; Repeat trung := false ; If b[i] = b[j] Then trung := true ; If trung Then Begin If j < m Then For k := j To m - Do b[k] := b[k + 1] ; m := m - ; dec ( j ) ; End ; inc ( j ) ; Until j > m ; inc ( i ) ; Until i > m ; End ; If m > Then For k := To m Do Write ( b[k] : ) ; Readln ; END 11) uses crt ; var thang : Byte ; tien , lai , x : Real ; BEGIN clrscr ; 14 Lop8.net inc (j) ; (15) writeln (' Chuong trinh tinh thoi gian rut tien lai ') ; write (' So tien lai muon rut : ') ; readln(x) ; tien := 1000 ; thang :=1 ; repeat lai := tien * / 100 ; tien := tien + lai ; thang := thang + ; until tien >= x ; writeln (' Ban phai gui tien ', thang div 12 , ' nam ', thang mod 12 ,' thang ') ; writeln (' Khi so tien ban rut duoc la ', tien:12:2 ,' dong ') ; readln ; END 12) Uses crt ; Var a : Array [1 100] Of Integer ; n , i : Byte ; d : integer ; BEGIN Clrscr ; Writeln (' Tim USCLN cua N so :') ; Write (' Nhap so N : ') ; Readln(n) ; Writeln ('Nhap ', N ,' so : ') ; For i := To n Do Begin Write(' So thu ', i ,' = ') ; Readln( a[i] ) ; End ; For i := To n-1 Do Repeat d := a[i] ; a[i] := a[ i+1 ] mod a[i] ; a[i+1] := d ; Until a[i] = ; Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ; Readln ; END 15 Lop8.net (16) CH¦¥NG TR×NH CON 1) Procedure Change ( n : integer ; Var St : String ) ; (* thủ tục chuyển số tự nhiên n cho trước sang hệ số và lưu xâu St *) Type b : Array[0 1] Of Char = ('0' , '1') ; Var du , So : Integer ; S : String ; Begin S := '' ; (* xâu rỗng *) So := n ; Repeat Du := So mod ; So :=So div ; S := b[du] + s ; Until So = ; St := S ; End ; 2) Uses Crt ; Var a, b, c, x1, x2: real; (*================================*) Procedure Nhapabc(var aa,bb,cc: real); Begin Write('a='); Readln(aa); Write('b='); Readln(bb); Write('c='); Readln(cc); End; (*=================================*) Procedure GPTB2; Var Delta: real; Begin Delta:=sqr(b)-4*a*c; If Delta<0 then Writeln('Phuong trinh vo nghiem.') Else If Delta=0 then Begin Write('Phuong trinh co nghiem kep : '); Write('x1,2=',-b/(2*a):8:2); End Else Begin x1:=(-b+sqrt(Delta))/(2*a); x2:=(-b-sqrt(Delta))/(2*a); 16 Lop8.net (17) Writeln('Phuong trinh co nghiem phan biet la :'); Writeln('X1=',x1:8:2, 'X2=',x2:8:2); End; End; (*================================*) BEGIN (* CT chính *) Clrscr; Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So :'); Nhapabc(a,b,c); If a<>0 then GPTB2 Else Writeln(' Khong phai phuong trinh bac hai '); Readln ; END 3) Uses Crt; Var a, b, c: real ; (*================================*) Procedure Nhap(Var a, b, c: real); Procedure input (Var a: real; tenbien: Char); Begin Repeat Write('Nhap ' + tenbien+' = '); Readln(a); Until (a>=0); End; Begin (* bắt đầu thủ tục nhập *) Input(a, 'a'); Input(b, 'b'); Input(c, 'c'); End; (* kết thúc thủ tục nhập *) (*================================*) Procedure Kiemtra(a, b, c: Real); Begin If (a<b+c) and (b<a+c) and (c<a+b) then Writeln(a:0:2, ', ', b:0:2, ' va ', c:0:2, ' lap ba canh cua tam giac ') Else Writeln('Khong lap ba canh cua tam giac') ; End; (*===============================*) Procedure Trung_tuyen (a, b, c: Real); Var ma, mb, mc: real; Begin ma:=sqrt((2*sqr(b)+2*sqr(c)-sqr(a))/4); mb:=sqrt((2*sqr(a)+2*sqr(c)-sqr(b))/4); mc:=sqrt((2*sqr(a)+2*sqr(b)-sqr(c))/4); Writeln('Cac trung tuyen cua tam giac la : ') ; Writeln('ma=', ma:0:2, ' mb=', mb:0:2, ' mc=', mc:0:2); 17 Lop8.net (18) End; (*================================*) Procedure Dientich (a, b, c: real); Var p, S: real; Begin p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Dien tich =', S:0:2); End; (*================================*) BEGIN (* Chương trình chính *) Clrscr; Nhap(a, b, c); Kiemtra(a, b, c); Dientich(a, b, c); Trung_tuyen(a, b, c); Readln; END 4) Uses Crt; Var a, b, c: real ; (*================================*) Procedure Nhap(Var a, b, c: real); Procedure input (Var a: real; tenbien: Char); Begin Repeat Write('Nhap ' + tenbien+' = '); Readln(a); Until (a>=0); End; Begin (* bắt đầu thủ tục nhập *) Input(a, 'a'); Input(b, 'b'); Input(c, 'c'); End; (* kết thúc thủ tục nhập *) (*================================*) Procedure Kiemtra(a, b, c: Real); Begin If (a<b+c) and (b<a+c) and (c<a+b) then Writeln(a:0:2, ', ', b:0:2, ' va ', c:0:2, ' lap ba canh cua tam giac ') Else Writeln('Khong lap ba canh cua tam giac') ; End; (*===============================*) Procedure Trung_tuyen (a, b, c: Real); Var ma, mb, mc: real; Begin ma:=sqrt((2*sqr(b)+2*sqr(c)-sqr(a))/4); 18 Lop8.net (19) mb:=sqrt((2*sqr(a)+2*sqr(c)-sqr(b))/4); mc:=sqrt((2*sqr(a)+2*sqr(b)-sqr(c))/4); Writeln('Cac trung tuyen cua tam giac la : ') ; Writeln('ma=', ma:0:2, ' mb=', mb:0:2, ' mc=', mc:0:2); End; (*================================*) Procedure Dientich (a, b, c: real); Var p, S: real; Begin p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Dien tich =', S:0:2); End; (*================================*) BEGIN (* Chương trình chính *) Clrscr; Nhap(a, b, c); Kiemtra(a, b, c); Dientich(a, b, c); Trung_tuyen(a, b, c); Readln; END 5) Uses Crt; Var X, Y, Z: byte; Begin Clrscr; Writeln('Giai phuong trinh X+Y+Z=12 pham vi ' + 'so nguyen khong am voi dieu kien x<4'); For X:=0 to For Y:=0 to 12 For Z:=0 to 12 If (X+Y+Z=12) then Writeln(' x=',X,' y=',Y, 'z=',Z); Readln; End 6) Uses Crt; Var N, a, b, c, X, Y, Z, i: Integer; Begin Clrscr; Write(' N, a, b, c = '); Readln(N, a, b,c); If (a+b+c-3<N) then Begin Writeln('Phuong trinh vo nghiem'); Readln; Exit; End Else 19 Lop8.net (20) Begin Writeln('Phuong trinh co nghiem la:'); Writeln('x': 10, 'y': 10, 'z':10); i:=4; For X:=0 to (a-1) For Y:=0 to (b-1) For Z:=0 to (c-1) If (X+Y+Z=N) then Begin Writeln(x: 10, y: 10, z: 10); inc(i); If i=24 then Begin Write('Nhan Enter de tiep tuc '); Readln; i :=0; End; End ; End ; Write('Nhan Enter de ket thuc '); Readln; End 7) Uses Crt; Var xau1,xau2,xau: string; (*==================================*) Procedure compare(s1, s2: string; Var kq: string); Var i: byte; (*===============================*) Function kt(ch: char; st: string): boolean; (* Kiểm tra xem kí tự Ch có xâu St không Nếu có thì hàm trả giá trị True Nếu không thì hàm trả giá trị False *) Begin kt:=pos(ch,st)<>0; End; (*================================*) Begin (* Thân thủ tục Compare*) kq:=''; (* Xâu rỗng *) For i:=1 to length(s1) If (not kt(s1[i],kq)) and (kt(s1[i],s2)) then kq:=concat(kq,s1[i]); End; (*==============================*) BEGIN Clrscr; Writeln('Nhap xau S1 va S2 :'); 20 Lop8.net (21)