Viết chương trình nhập vào 1 mảng a gồm n phần tử , sắp xếp mảng thành mảng tăng dần. Uses crt; Var a:array[1..1000] of integer; i,j,n,t:integer; procedure nhap; begin Write(‘Nhap n : ‘); Readln(n); For i:=1 to n do Begin Write(‘a[‘,i,’]: ‘); Readln(a[i]); End; End; Procedure sapxep; Begin For j:=1 to n-1 do For i:=1 to n-1 do If a[i]>a[i+1] then Begin T:=a[i]; A[i]:=a[i+1]; A[i+1]:=t; End; End; Procedure Inra; Begin For i:=1 to n do Write(a[i]:3); End; {bat dau chuong trinh chinh } Begin Nhap; Sapxep; Inra; Readln; End; Viết chương trình nhập vào một mảng a gồm n phần tử , tính tổng các phần tử trong mảng. Uses crt; Var a:array[1..1000] of integer; i,j,n,t,s:integer; procedure nhap; begin Write(‘Nhap n : ‘); Readln(n); For i:=1 to n do Begin Write(‘a[‘,i,’]: ‘); Readln(a[i]); End; End; Procedure tinhtong; Begin S:=0; For i:=1 to n do S:=s+a[i]; End; Procedure Inra; Begin Write(‘Tong la : ‘,s); End; {bat dau chuong trinh chinh } Begin Nhap; tinhtong; Inra; Readln; End; Viết chương trình tính tổng các phần tử lẻ trong mảng. Sửa lại phần procedure tinhtong; bài 2 thành Procedure tinhtong; Begin S:=0; For i:=1 to n do If a[i] mod 2 <>0 then S:=s+a[i]; End; Viết chương trình tính trung bình cộng của một mảng a gồm n phần tử . -Sửa lại phần Procedure tinhtong ; bài 2 thành Function TBC:real; Begin S:=0; For i:=1 to n do S:=s+a[i]; TBC:=s/n; End; -Sửa phần procedure Inra ; thành Procedure Inra; Begin Write(‘TBC la : ‘,TBC:2:4); End; 5. Viết chương trình nhập vào 1 xâu, sau đó đếm xem số lần xuất hiện mỗi ký tự trong xâu VD: THPT Quynh Luu 4 KQ: T:2 H:2 P:1 Q:1 U:3 Y:1 N:1 4:1 Giải (#32 là dấu cách ) In hoa toàn bộ xâu . Xét ký tự đầu s[1]; Đếm xem có bao nhiêu ký tự giống s1 trong xâu. Mỗi lần có s[i] =s[1] thì xóa đi s[i] để tránh lặp Đếm hết thì ghi ra s[1] và đếm Xóa s[1] chuyển đếm về 1. Quay lại xét tiếp s[1]; CODE: VAR s:STRING; i,d,j:INTEGER; PROCEDURE xuli;{ xu ly bai toan } BEGIN IF s[1] <>#32 THEN BEGIN d:=1; j:=2; WHILE j<=length(s) DO IF s[j] = s[1] THEN BEGIN inc(d) ; delete(s,j,1); END ELSE inc(j); Write(s[1],' : '); writeln(d); delete(s,1,1); END ELSE delete(s,1,1); END; BEGIN Write('Nhap xau : '); Readln(S); FOR i:=1 TO length(s) DO s[i]:=upcase(s[i]); WHILE s<>'' DO xuli; Readln; END. Tính tổng sau S= 1/i! với i chạy từ 0 đến n S=∑_(i=0)^n▒1/i! Giải : Ta viết hàm tính giai thừa sau đó tính tổng. Hàm giai thừa là f(x)= x*(x-1)*(x-2)*...*1 VAR s:REAL; n,i:INTEGER; FUNCTION Giaithua(n:INTEGER):LONGINT; VAR s,i:LONGINT; BEGIN s:=1; FOR i:=n DOWNTO 1 DO s:=s*i; Giaithua:=s; END; BEGIN Write('Nhap n : '); Readln(n); s:=0; FOR i:=0 TO n DO s:=s+1/giaithua(i); Write('S= ',s:4:4); Readln; END. 6. Tính tổng S= x^i với i từ 0 đến n S=∑_(i=0)^n▒x^i Tương tự bài tính giai thừa nhưng hàm Lũy thừa F(x,i)= x*x*x*x...*x (i thừa số); VAR s:LONGINT; i,x,n:LONGINT; FUNCTION Luythua(x,i:LONGINT):LONGINT; VAR s,j:LONGINT; BEGIN s:=1; FOR j:=1 TO i DO s:=s*x; Luythua:=s; END; BEGIN Writeln('Nhap n : '); readln(n); Write('Nhap x : '); Readln(x); s:=0; FOR i:=0 TO n DO s:=s+Luythua(x,i); Write('S= ',s); readln; END. Viết chương trình đếm số từ trong một xâu . Giải: Thay vì đếm từ, ta sẽ đếm số dấu cách (#32) trong câu. Sau đó cộng thêm 1 ( vì từ đầu tiên k có dấu cách đứng trước). Var s:string; Dem,i: integer; Procedure Nhap; Begin Write(‘Nhap xau : ‘ ); Readln(s); End; Procedure Demtu; Begin Dem:=0; For i:=1 to length(s) do If s[i]=#32 then inc(dem); End; Procedure Inra; Begin Write(‘So tu la : ‘,dem+1); End; { chuong trinh chinh} Begin Nhap; Demtu; Inra; Readln; End. Viết chương trình nhập vào một xâu toàn bộ là chữ thường, sau đó in hoa những ký tự đứng đầu một từ. VD : hoc sinh  Hoc Sinh Giải Ta thấy chữ cái đầu (s[1] luôn phải in hoa ). Sau đó mỗi chữ cái sau dấu cách (#32) phải in hoa. Var s:string; i: integer; Procedure Nhap; Begin Write(‘Nhap xau : ‘ ); Readln(s); End; Procedure Xuli; Begin S[1]:=upcase(s[1]); For i:=2 to length(s) do If s[i]=#32 then s[i+1]:=upcase(s[i+1]); End; Procedure Inra; Begin Write(‘Xau moi : ‘,s); End; { chuong trinh chinh} Begin Nhap; Xuli; Inra; Readln; End. Viết chương trình Tính tổng x+y Giải pt bậc 2 một ẩn Giai thừa của n CODE: PROGRAM Baitap; USES crt; VAR a,b,c:REAL; n,x,y:INTEGER; FUNCTION Tinhtong(x,y:INTEGER):INTEGER; BEGIN Tinhtong:=x+y; END; PROCEDURE GiaiPT(a,b,c:REAL); VAR D,x1,x2:REAL; BEGIN D:= b*b - 4*a*c; IF D<0 THEN Write('Phuong trinh vo nghiem ! ') ELSE BEGIN BEGIN x1:= (-b-sqrt(d)) /(2*a) ;x2:=(-b+sqrt(D))/(2*a); END; Writeln('x1= ',x1:2:2); Writeln('x2= ',x2:2:2); END; END; FUNCTION TinhGT(n:BYTE):LONGINT; VAR gt,i:LONGINT; BEGIN gt:=1; FOR i:=1 TO n DO gt:=gt*i; TinhGT:=gt; END; BEGIN Clrscr; Write('Nhap x va y : '); Readln(x,y); Write('Tong la : ',Tinhtong(x,y)); Readln; Write('Nhap he so a,b,c cua phuong trinh : '); Readln(a,b,c); GiaiPT(a,b,c); Readln; Write('Nhap n : '); Readln(n); Write(n,'!= ',TinhGT(n)); Readln; END. 9. Kiểm tra một số có phải là nguyên tố hay không VAR x:LONGINT; FUNCTION Ngto(x:INTEGER):BOOLEAN; VAR j: INTEGER; BEGIN Ngto:=TRUE; IF x <=1 THEN Ngto:=FALSE ELSE FOR j:=2 TO Trunc(Sqrt(x)) DO IF x MOD j = 0 THEN BEGIN Ngto:=FALSE; exit; END; END; BEGIN Readln(x); IF ngto(x) THEN Write(' La so nguyen to') ELSE write(' KHong phai nguyen to ') ; readln; END.