I. NỘI DUNG: Bài 1: Viết chương trình giải PT: ax2 + bx+ c = 0 (a≠ 0) Viết chương trình giải hệ PT: Bài 2: Viết chương trình nhập vào một số n lớn (n>1000). Giả sử n lưu trữ số giây. Đổi n ra giờ, phút giây. Ví dụ 3665 giây = 1 giờ + 1 phút + 5 giây HD: Nhập n M:=n; h:=0; p:=0; g:=0; If m>3600 then begin h:=m div 3600; m:=m mod 3600; end; If m> 60 then begin p:=m div 60; m:=m mod 60; end; g:=m; writeln(n, ‘ duoc doi ra’, h, ‘ gio ’, p, ‘ phut ‘, g, ‘giay’); Bài 3: Nhập vào một số nguyên N. Kiểm tra số N có phải là số nguyên tố hay không? HD: nhập n ok:=true; IF N>=4 THEN for i:=2 to n div 2 do if n mod i =0 then begin ok:=false; break; end; if ok= true then writeln(n, ‘la nguyen to’) else writeln(n, ‘ khong la nguyen to’); Bài 4: Nhập vào một số nguyên N. Kiểm tra số N có phải là số chính phương? (VD : 9, 25, 36…) HD: nhập n if frac(sqrt(n))=0 then writeln(n, ‘la chinh phương’) else writeln(n, ‘ khong la chinh phuong’); Bài 5: Nhập vào một số nguyên N. Kiểm tra số N có phải là số hoàn hảo hay không? nhập n ok:=true; T:=0; for i:=1 to n div 2 do if n mod i =0 then T:=T+i; if n= T then writeln(n, ‘la hoan hao’) else writeln(n, ‘ khong la hoan hao’); Bài 6: Nhập vào một số nguyên N. Kiểm tra số N có phải là số đẹp hay không? ( Số đẹp là số có chữ số sau luôn lớn hơn hoặc bắng chữ số đứng trước nó) nhập n; M:=n; ok:=true; while (m>0) and(ok=true) do begin cs1:=m mod 10; m:= m div 10; cs2:= m mod 10; if cs11000) Giả sử n lưu trữ số giây Đổi n giờ, phút giây Ví dụ 3665 giây = + phút + giây HD: - Nhập n - M:=n; h:=0; p:=0; g:=0; - If m>3600 then begin h:=m div 3600; m:=m mod 3600; end; - If m> 60 then begin p:=m div 60; m:=m mod 60; end; - g:=m; - writeln(n, ‘ duoc doi ra’, h, ‘ gio ’, p, ‘ phut ‘, g, ‘giay’); Bài 3: Nhập vào số ngun N Kiểm tra số N có phải số ngun tố hay khơng? HD: - nhập n - ok:=true; - IF N>=4 THEN for i:=2 to n div if n mod i =0 then begin ok:=false; break; end; if ok= true then writeln(n, ‘la nguyen to’) else writeln(n, ‘ khong la nguyen to’); Bài 4: Nhập vào số ngun N Kiểm tra số N có phải số phương? (VD : 9, 25, 36…) HD: - nhập n if frac(sqrt(n))=0 then writeln(n, ‘la chinh phương’) else writeln(n, ‘ khong la chinh phuong’); Bài 5: Nhập vào số ngun N Kiểm tra số N có phải số hồn hảo hay khơng? - nhập n - ok:=true; T:=0; - for i:=1 to n div if n mod i =0 then T:=T+i; if n= T then writeln(n, ‘la hoan hao’) else writeln(n, ‘ khong la hoan hao’); Bài 6: Nhập vào số ngun N Kiểm tra số N có phải số đẹp hay khơng? ( Số đẹp số có chữ số sau ln lớn bắng chữ số đứng trước nó) - nhập n; M:=n; - ok:=true; - while (m>0) and(ok=true) begin cs1:=m mod 10; m:= m div 10; cs2:= m mod 10; if cs1 (a nhập từ bàn phím), tính tổng: S= 1 1 + + + + (SGK Tin học 11 – Trang 42) a a +1 a + a +100 Bài 2: Lập trình tính giai thừa của số ngun n (do giới hạn lưu trữ số ngun cho n=3) Viết chương trình in các số Fibơnaxi với từ đến 20 F1:=1; f2:=1; write(f1:6, f2:6); For i:=3 to 20 Begin F3:=f1+f2; F1:=f2; f2:=f3; write(f1:6, f2:6); End; Bài 4: Viết chương trình tìm tất các số có chữ số cho abc = a3 + b3 + c3 For a:=1 to For b:=0 to For c:= to 10 If 100*a+10*b+c=a*a*a+b*b*b then writeln(a,b,c) Bài 6: Cho số thực a (a nhập từ bàn phím) Tìm số ngun dương n nhỏ nhất thỏa mãn 1+ 1 + + + > a n - nhập a; - S:=0; n:=1; - While s>a begin s:=s+1/n; n:=n+1; end; - Write(n); Bài 7: Tính tổng S= + + 2n với n số tự nhiên nhập từ bàn phím S:=0; For i:=n downto s:= sqrt(+2*i); Bài 8: Tính tổng S = + S:=1; 1 1 + + + + đến 1E-4 begin S:=S+1/(2*n+1); N:=n+1; End; Writeln(s:10:2); Bài 9: Tính tổng S =1 + S:=1; 1 1 + + + + đến 1E-4 begin S:=S+1/(n*n); N:=n+1; End; Writeln(s:10:2); Bài 12: Turbo Pascal có hàm exp để tính ex, nhiên ex có thể tính theo cơng thức khai triển chuỗi sau: x2 x3 xn e =1+x+ + + + + 2! 3! n! x Lập trình nhập số thực x tính ex với độ xác exp =2 *10-6 Write(‘Nhap gia tri cua x: ‘); Readln(x); s := 1; n:=1; sh:= x/n; While sh >= 1E-6 Begin S := S + sh; n:= n + 1; Sh:=sh * x /n ;``q end; Writeln( ‘Tong can tim la: ‘ , S :10 :2); Bài 13: Tính các giá trị biểu thức sau với số n tự nhiên nhập từ bàn phím: S = 1.2 + 2.3.4 + n(n + ) ( 2n) S:=0; dem:=1; For i:=1 to n Begin Dem:=dem+1; Sh:=1; For j:=i to dem Sh:=sh*j; S:= S+sh; End; Bài 14: Viết chương trình nhập số thực x, tính các giá trị sau với độ xác của số hạng cuối 10-6 : x3 x5 x n +1 n sin x = x − + − + (−1) + 3! 5! ( 2n +1)! 2n x2 x4 n x cos x = − + − + (−1) + 2! 4! 2n! Tinh sin(x) Write(‘Nhap gia tri cua x: ‘); Readln(x); S := x; n:=1; sh:= x; While abs( sh) >= 1E-6 Begin Sh:=(-1)* sh * x * x/ ((2*n)*(2*n+1)); S := S + sh; n:= n + 1; end; Writeln( ‘Tong can tim la: ‘ , S :10 :2); BUỔI 3: ƠN TẬP PHẦN DỮ LIỆU KIỂU MẢNG Ngày soạn: 10/10/2013 I MỤC ĐÍCH, U CẦU: Kiến thức:- Nắm khái niệm mảng chiều - Nắm quy tắc mà NNLT xây dựng sử dụng mảng chiều Kỹ - Nhận biết các thành phần khai báo kiểu mảng chiều - Nhận biết định danh của phần tử kiểu mảng chiều x́t chương trình - Biết cách khai báo mảng đơn giản số kiểu miền của kiểu ngun II NỘI DUNG: A) Mảng chiều: Bài 1: Nhập vào mảng gồm N phần tử các số ngun Đưa giá trị TB của dãy các số Tìm phần tử Max vị trí của phần tử Max dãy Bài 2: Nhập vào mảng gồm N phần tử các số ngun Đếm xem có số đồng thời chia hết cho cho Bài 3: Nhập vào mảng gồm N phần tử các số ngun Sắp xếp dãy số thành dãy khơng giảm for j:=N downto for i:=1 to j-1 if a[i]>a[i+1] then begin t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t; end; Bài 4: Nhập vào mảng gồm N phần tử các số ngun Đếm xem dãy có số ngun tố, số phương số đẹp Dem_nt:=0; dem_cp:=0; dem_dep:=0; For i:=1 to n Begin Ok:=true; If a[i]>=4 then For j:=2 to a[i] div if a[i] mod j =0 then begin ok:=false; break; end; if ok= true then dem_nt:=dem_nt+1; end; for i:=1 to n if frac(sqrt(a[i]))=0 then dem_cp:=dem_cp+1; For i:=1 to n Begin T:=0; For j:=1 to a[i] div if a[i] mod j =0 then T:=T+j; if a[i]=t then dem_dep:=dem_dep+1; end; Bài 5: Nhập vào mảng gồm N phần tử các số ngun In tấn śt số lần x́t của các số dãy - xếp dãy số tăng dần - so:=a[1]; dem:=1; - for i:=1 to n if a[i] so then begin writeln(so,’ xuat hien’, dem,’lan’); so:=a[i]; dem:=1; end else dem:=dem+1; Bài 7: Nhập vào mảng A gồm N phần tử các số ngun, lưu trữ các hệ số của đa thức sau: S(x) = anxn + an-1xn-1 + … + a1x + a0 Nhập giá trị của x tính S(x) Khai bao mảng A lưu trữ hệ số đa thức Var a:array[0 100] of integer; Nhập x; N; s:=a[n]; For i:=n downto S:=s*x+a[i]; Bài 8: Nhập vào mảng A gồm N phần tử các số ngun a) Sắp xếp mảng tăng dần b) Chèn thêm số k vào mảng cho dãy số vấn dãy tăng dần c) Loại bỏ khỏi dãy số vị trí p - xếp dãy số - nhập số k; - vt:=1; while (k>a[vt]) and(vtc[i+1] then Begin t:= c[i]; c[i]:=c[i+1]; c[i+1]:=t; B[i]:=a[i+1]; b[i+1]:=a[i]; End; If c[i]= c[i+1] then if a[i][...]... đó có lẫn vào một số có 3 chữ số (vd: fffhgj234fgg)- có kiểm tra việc nhập sai (vd: jghjg45jk hoặc ggdg012gdg hoặc ggdgg34hjhh3…) và cho phép nhập lại Kiểm tra cho biết số đó có phải là số nguyên tố không? var s,s1:string; x,vt,c,dem,i:integer; function ktranto(a:integer):boolean; begin ktranto:=true; for i:=2 to a-1 do if a mod i=0 then ktranto:=false; end; begin repeat dem:=0; write('moi nhap xau:... s1:=copy(s,vt,3); val(s1,x,c); end; until (c=0) and (x>99) and (dem=3); if ktranto(x) then write('day la so nguyen to :',x); readln; end 7 VCT kiểm tra việc nhập một ký tự và một xâu ký tự bằng kí tự in hoa( nếu không đúng thì nhập lại) sau đó cho biết số lần ký tự xuất hiện trong xâu ký tự? uses crt; var i,dem:integer; ch:char; s:string; begin clrscr; repeat write('moi nhap ki tu: '); readln(ch); until ch in ['A'... n='); Readln(n); PHANTICH(n); Readln; End BÀI TẬP TỰ GIẢI Bài tập 4.7: Viết 2 hàm tìm Max , min của 3 số thực Bài tập 4.8: Viết hàm PERFECT(n:Word):Boolean; để kiểm tra số ngun n có phải là số hồn thi n hay khơng? Bài tập 4.9: Viết thủ tục FILL(x1,y1,x2,y2:Integer; ch:Char); để tơ một vùng màn hình hình chữ nhật có đỉnh trên bên trái là (x1,y1) và đỉnh dưới bên phải là (x2,y2) bằng các ký... Giải phương trình bặc hai - Tìm Max/Min của 2 số a,b - Tìm USCLN và BSCNN của 2 số ngun a,b - Kiểm tra số ngun dương n có phải là số ngun tố hay khơng? - Kiểm tra số ngun dương n có phải là số hồn thi n hay khơng? - Đổi một số ngun dương n sang dạng nhị phân - In ra màn hình bảng cữu chương từ 2 → 9 Sau đó, tự viết các chương trình có sử dụng Unit SOHOC vừa được xây dựng ở trên 22 ... xóa bớt sau lần kiểm tra VCT sửa danh từ riêng bò nhập sai (VD: TraN QuANG kHai Tran Quang Khai) uses crt; var s:string; i:integer; begin write('nhap mot danh tu rieng:');readln(s); while s[1]=#32... readln; end VCT in ngược từ xâu, từ in dòng xuất số ký tự từ? 11 ( vd: Tran Quang Khai Khai : ký tự Quang : ký tự Tran : ký tự uses crt; var s,s1,s2,t:string; a:array[1 100] of string; b:array[1... không? var s,s1:string; x,vt,c,dem,i:integer; function ktranto(a:integer):boolean; begin ktranto:=true; for i:=2 to a-1 if a mod i=0 then ktranto:=false; end; begin repeat dem:=0; write('moi nhap