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.