[r]
Trang 1ÔN TẬP KIỂM TRA HKII Bài 1: Cho xâu S có độ dài không quá 100 kí tự, thực hiện: in ra xâu chỉ chứa kí tự số.
Yêu cầu: Dữ liệu được đọc vào từ tệp Xau.int; kết quả được ghi vào tệp Xau.out.
Program b1;
var S, P: string [100];
f1, f2: text;
i: integer;
begin
assign (f1, ‘Xau.int’);
reset (f1);
read (f1, S);
P:=’’;
For i:= 1 to legnth (S) do
If (S[i] > ‘0’) and (S[i] <= ‘9’) then
P:= P + S [i];
Assign (f2, ‘Xau.out’);
Rewrite (f2);
Writeln (f2, P);
Close (f1);
Close (f2);
Readln
End
Bài 2: Cho xâu S dài không quá 30 kí tự
a) Đếm số lần xuất hiện của kí tự ‘k’
b) Thay kí tự ‘k’ bằng kí tự ‘e’ (Làm việc với tệp)
Program b2;
Var f1, f2: text;
S: string [30];
i, x, D, tim: integer;
begin
assign (f1, ‘bandau.pas’);
reset (f1);
read (f1, S);
x:= length (S);
D:= 0;
For i:= 1 to x do if S[i] = ‘k’ then D:= D + 1;
While pos (‘k’, S) <> 0 do
Begin
Tim:= pos (‘k’, S);
Delete (S, tim, 1);
Insert (‘e’, S, tim);
End;
Trang 2Assign (f2, ‘lucsau.pas’);
Rewrite (f2);
Writeln (f2, D);
Writeln (f2, S);
Close (f1);
Close (f2);
Readln
End
Viết chương trình có sử dụng chương trình con thực hiện:
Bài 1: Tính tổng:
S =
2
2
2
4 2 2
3 2 2
2
* Hàm:
Program tong;
Var n: integer;
Function tinh(a: integer): real;
Var T: real;
i: integer;
begin
T:= 0;
For i:= 2 to a do
T:= T + a*(2/sqrt(2));
Tinh:= T;
End;
Begin
Write (‘Cho gia tri n = ‘); readln (n);
Write (tinh(n));
Readln
End
* Thủ:
Program tong;
Var n: integer;
Procedure tinh (b: integer);
Var S: real;
i: integer;
begin
S:= 0;
For i:= 2 to b do
S:= S + a * (2/sqrt(2));
Writeln (‘Tong bang: ‘,S);
End;
Begin
Trang 3Tinh (n);
Readln
End
Bài 2: Tính tổng 2 số nguyên a, b được nhập vào từ bàn phím
Program B2;
Var a, b: integer;
Function Tong(x, y: integer): integer;
Var S: integer;
Begin
S:= x + y;
Tong:= S;
End;
Begin
Write (‘Cho 2 so nguyen: ‘);
Readln (a, b);
Writeln (Tong (a, b));
Readln
End
Bài 3 : Tính chu vi, diện tích hình tròn với bán kính được nhập từ bàn phím.
Program hinhtron;
Var r: real;
Function chuvi(d: real): real;
Const pi:= 3.14;
Var P: real;
Begin
P:= 2 * pi * d;
Chu vi:= P;
End;
Function dientich(x: real): real;
Const pi:= 3.14;
Var S: real;
Begin
S:= x * x * pi;
Dientich:= S;
End;
Begin
Write (‘Cho gia tri ban kinh: ‘,r); readln (r);
Writeln (Chu vi (r));
Writeln (Dientich (r));
End
Trang 4Bài 4 : Tính tổng luỹ thừa: S = am + bn + cp + dq
Program b4;
Var tonglt: integer;
Function lthua(x, k: integer): integer;
Var i, LT: integer;
Begin
LT:= 1;
For i:= 1 to k do LT:= LT * x;
Lthua:= LT;
End;
Begin
Write (‘Cho cac gia tri: ‘);
Readln (a, b, c, d, m, n, p, q);
Tonglt:= lthua (a, m) + lthua (b, n) + lthua (c, p) + lthua (d, q);
Writeln (‘Tong luy thua bang : ‘,Tonglt);
Readln
End
Bài 5: Tính chu vi, diện tích hình vuông với độ dài cạnh được nhập từ bàn phím.
Program hinhvuong;
Var a: real;
Procedure Chuvi (x: real);
Var C: real;
Begin
C:= x * 4;
Writeln (‘Chu vi hinh vuong bang: ‘, C);
End;
Function Dientich(y: real): real;
Var D: real;
Begin
D:= y * y;
Dientich:= D;
End;
Begin
Write (‘Cho do dai canh: ‘); readln (a);
Chu vi (a);
Writeln (Dientich(a));
Readln
End
Trang 5Bài 6: Cho mảng gồm 100 phần tử thuộc kiểu số nguyên
a) Đếm xem có bao nhiêu phần tử lẻ?
b) Tính trung bình cộng các phần tử chẵn?
Program b6;
Type mang = array [1 100] of integer;
Var X: mang;
Procedure Tinh(A: mang; n: integer); {Bắt đầu câu a} Var i, D: integer;
Begin
D:= 0;
For i:= 1 to n do
If A[i] mod 2 <> 0 then D:= D + 1;
Writeln (D);
End;
Function tim(B: mang; n: integer): real; {Bắt đầu câu b} Var S, T, i: integer;
Tbc: real;
Begin
S:= 0; T:= 0;
For i:=1 to n do
If B[i] mod 2 = 0 then
Begin
S:= S + B[i];
T:= T + 1;
End;
Tbc:= S / T;
Tim:= Tbc;
End;
Begin
Write (‘Nhap so phan tu: ‘); readln(n);
For i:= 1 to n do
Begin
Write (‘Nhap phan tu thu ‘,i,’:’);
Readln (X[i]);
End;
Tinh (X, n);
Writeln (Tim(X, n));
Readln
End
Trang 6Bài 7: Tính tổng: S = 1n
4
1 3
1 2
1
Program b7;
Var n: integer;
Function tong (a: integer): real;
Var i: integer;
S: real;
Begin
S:= 0;
For i:=1 to a do S:= S + a/sqrt(i);
Tong:= S;
End;
Begin
Write (‘Nhap gia tri n bang: ‘); readln (n);
Writeln (Tong (n));
Readln
End
Bài 8: Tìm số lớn nhất trong ba số a, b, c cho trước.
Program maxbaso;
Var a, b, c: real;
Function max(a, b: real): real;
Begin
If a>b then max:=a else max:=b;
End;
Begin
Write (‘Nhap vao 3 so: ‘);
Readln (a, b, c);
Writeln (‘So lon nhat trong 3 so la: ‘, max (max(a, b), c)); Readln
End