vungtauitk33.files.wordpress.com · web viewbÀi 11 – 12 – 13 author mai chi created date...
TRANSCRIPT
![Page 1: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/1.jpg)
HỆ THỐNG BÀI TẬP ÔN TẬP
KHỐI 11 CHƯƠNG 4
BÀI 11 – 12 – 13
Đáp án trắc nghiệm là những câu được in nghiêng
A. KIỂU MẢNG
Mục tiêu:
Cài đặt được thuật toán của một số bài toán đơn giản với KDL mảng.
Thực hiện được khai báo mảng, truy cập, tính toán với các phần tử của mảng.
Yêu cầu:
Hiểu khái niệm mảng một chiều và hai chiều.
Hiểu cách khai báo và truy cập đến các phần tử của mảng.
Mức độ BT: BT căn bản
1. Trong các phát biểu sau, phát biểu nào sai?
a. Kiểu mảng là KDL có cấu trúc, rất cần thiết và hữu ích.
b. Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.
c. Các ngôn ngữ lập trình thông dụng cho phép người lập trình xây dựng KDL mảng một
chiều.
d. Ngôn ngữ lập trình Pascal không cho phép người lập trình xây dựng KDL mảng một
chiều.
2. Để khai báo mảng một chiều cần:
a. Mô tả kiểu của các phần tử.
b. Mô tả số lượng phần tử.
c. Mô tả kiểu của các phần tử và cách đánh số của các phần tử của nó.
d. Mô tả cách đánh số các phần tử của nó.
Hãy chọn phương án hợp lý nhất.
3. Số phần tử của mảng một chiều là:
a. Vô hạn.
b. Có giới hạn.
c. Có nhiều nhất 100 phần tử.
d. Có nhiều nhất 1000 phần tử.
![Page 2: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/2.jpg)
4. KDL của các phần tử trong mảng là:
a. Mỗi phần tử có 1 kiểu.
b. Có cùng 1 KDL.
c. Có cùng 1 kiểu đó là kiểu số nguyên.
d. Có cùng 1 kiểu đó là kiểu số thực.
5. Cú pháp để khai báo biến mảng một chiều trực tiếp là:
a. Var <tên biến mảng> : array [kiểu chỉ số] <kiểu phần tử>;
b. type <tên biến mảng> : array [kiểu chỉ số] <kiểu phần tử>;
c. Var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;
d. type <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;
6. Cú pháp câu lệnh nào sau đây là đúng?
a. type mang : array [-100 to100] of integer;
b. type mang : array [-100 ..100] of integer;
c. type mang = array [-100 to100] of integer;
d. type mang = array [-100 ..100] of integer;
7. Cú pháp câu lệnh nào sau đây là đúng?
a. Var mang : array [1 … 100] of char;
b. Var mang : array [1-100] of char;
c. Var mang1c : array (1 .. 100) of char;
d. Var mang1c : array [1 .. 100] of char;
8. Với khai báo A: array[1..100] of integer; thì việc truy xuất đến phần tử thứ 5 như sau:
a. A(5);
b. A[5];
c. A5;
d. A 5;
9. Cú pháp để khai báo biến mảng hai chiều trực tiếp là:
a. Var <tên biến mảng> : array [kiểu chỉ số hàng; kiểu chỉ số cột] <kiểu phần tử>;
b. Var <tên biến mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] <kiểu phần tử>;
c. Var <tên biến mảng> : array [kiểu chỉ số hàng; kiểu chỉ số cột] of <kiểu phần tử>;
d. Var <tên biến mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>;
![Page 3: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/3.jpg)
10. Cú pháp câu lệnh nào sau đây là đúng?
a. Var mang : array [1 .. 100, 1 .. 100] of char;
b. Var mang : array [1 .. 100; 1 .. 100] of char;
c. Var mang2c : array (1 .. 100 1 .. 100) of char;
d. Var mang2c : array [1 .. 100, 1 .. 100] of char;
11. Cú pháp câu lệnh nào sau đây là đúng?
a. type mang : array [-100 to 100, -100 to 100] of integer;
b. type mang : array [-100 .. 100, -100 .. 100] of integer;
c. type mang = array [-100 to 100, -100 to 100] of integer;
d. type mang = array [-100 .. 100, -100 .. 100] of integer;
12. Với khai báo A: array[1..100, 1..100] of integer; thì việc truy xuất đến các phần tử như sau:
a. A(i,j)
b. A[i,j]
c. A(i;j)
d. A[i;j]
13. Các phần tử trong mảng một chiều phải:
a. Giống hệt nhau
b. Có kiểu dữ liệu giống nhau
c. Là số nguyên
d. Là số thực
14. Viết chương trình nhập vào mảng một chiều các số nguyên, hiển thị các số đó ra màn hình.
Program BT14;
Var A: array[1..100] of integer;
i, n: byte;
Begin
Writeln(‘Nhap so phan tu cua mang: ’); Readln(n);
For i:= 1 to n do
Write(‘Nhap gia tri phan tu thu’, i);
Readln(A[i]);
Writeln(‘Gia tri cua mang sau khi nhap la: ’);
![Page 4: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/4.jpg)
For i:=1 to n do
Write(A[i], ‘ ’);
Readln;
End.
15. Viết chương trình nhập vào mảng một chiều các số nguyên sau đó thực hiện:
a. Đếm xem có bao nhiêu phần tử có giá trị bằng 100.
b. Đếm xem có bao nhiêu phần tử có giá trị lớn hơn -100 và nhỏ hơn 100.
Program BT15;
Var A: array[1..100] of integer;
i, n, dem1, dem2: byte;
Begin
Writeln(‘Nhap so phan tu cua mang: ’); Readln(n);
dem1 := 0; dem2 := 0;
For i:= 1 to n do
Begin
Write(‘Nhap gia tri phan tu thu’, i);
Readln(A[i]);
If (A[i] = 100) then dem1 := dem1 + 1;
If (A[i] > -100) and (A[i] < 100) then
dem2 := dem2 + 1;
End;
Writeln(‘Co ’, dem1, ‘phan tu bang 100’ );
Writeln(‘Co ’, dem2, ‘phan tu lon hon -100 va nho hon
100’);
Readln;
End.
16. Viết chương trình nhập vào mảng một chiều các số nguyên sau đó thực hiện:
a. Đếm xem có bao nhiêu phần tử có giá trị chia hết cho 3.
b. Đếm xem có bao nhiêu phần tử có giá trị lớn hơn -100 và nhỏ hơn 100 và chia hết cho 3.
![Page 5: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/5.jpg)
Program BT16;
Var A: array[1..100] of integer;
i, n, dem1, dem2: byte;
Begin
Writeln(‘Nhap so phan tu cua mang: ’); Readln(n);
dem1 := 0; dem2 := 0;
For i:= 1 to n do
Begin
Write(‘Nhap gia tri phan tu thu’, i);
Readln(A[i]);
If (A[i] mod 3 = 0) then
begin
dem1 := dem1 + 1;
If(A[i] > -100)and(A[i] < 100)then
dem2 := dem2 + 1;
end;
End;
Writeln(‘Co ’, dem1, ‘phan tu chia het cho 3’);
Writeln(‘Co ’, dem2, ‘phan tu lon hon -100 nho hon 100
va chia het cho 3’);
Readln;
End.
17. Viết chương trình nhập vào mảng một chiều các số nguyên rồi thực hiện các công việc sau:
a. Tính tổng các phần tử của mảng.
b. Đếm số các phần tử có giá trị dương và tính tổng của chúng.
c. Đếm số các phần tử có giá trị âm và tính tổng của chúng.
Program BT17;
Var A:array[1..100] of integer;
i, n, dem, S, Sd, Sa: integer;
Begin
![Page 6: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/6.jpg)
Writeln(‘Nhap so ptu cua mang:’); Readln(n);
S := 0; Sd := 0; Sa := 0; dem :=0;
For i:=1 to n do
Begin
Writeln(‘Nhap ptu thu’, i,‘: ’);
Readln(A[i]); S := S + A[i];
If (A[i] > 0) then
Begin
dem := dem + 1; Sd := Sd + A[i];
End;
End;
Sa := S – Sd;
Writeln(‘Tong cua day vua nhap la: ’, S);
Writeln(‘Co ’, dem, ‘phan tu co gia tri duong. Tong
cac phan tu duong la’, Sd);
Writeln(‘Co ’, n - dem, ‘phan tu co gia tri am. Tong
cac phan tu am la’, Sa);
Readln;
End.
18. Viết chương trình nhập vào mảng một chiều các số thực rồi thực hiện các công việc sau:
a. Tìm số dương đầu tiên và chỉ số của nó trong mảng.
b. Tìm số âm đầu tiên và chỉ số của nó trong mảng.
c. Tìm số dương cuối cùng và chỉ số của nó trong mảng.
d. Tìm số âm cuối cùng và chỉ số của nó trong mảng.
Program BT18;
Var A:array[1..100] of integer;
i, n: integer;
Begin
Writeln(‘Nhap so ptu cua mang:’); Readln(n);
For i:=1 to n do
![Page 7: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/7.jpg)
Begin
Writeln(‘Nhap ptu thu’, i,‘: ’);Readln(A[i]);
End;
For i:=1 to n do
Begin
If (A[i] > 0) then
Writeln(‘So duong dau tien co gia tri’,
A[i], ‘chi so’, i);
Break;
End;
For i:=1 to n do
Begin
If (A[i] < 0) then
Writeln(‘So am dau tien co gia tri’,
A[i], ‘chi so’, i);
Break;
End;
For i:=n downto 1 do
Begin
If (A[i] < 0) then
Writeln(‘So duong cuoi cung co gia tri’,
A[i], ‘chi so’, i);
Break;
End;
For i:=n downto 1 do
Begin
If (A[i] < 0) then
Writeln(‘So am cuoi cung co gia tri’,
A[i], ‘chi so’, i);
Break;
![Page 8: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/8.jpg)
End;
Readln;
End.
19. Viết chương trình nhập vào mảng một chiều các số nguyên rồi thực hiện các công việc sau:
a. Tìm giá trị lớn nhất và in ra chỉ số của nó.
b. Tìm giá trị nhỏ nhất và in ra chỉ số của nó.
c. Tìm giá trị lớn nhất mà chia hết cho 3.
Program BT19;
Var A: array[1..100] of integer;
i, n, Max, Min, k, l, Max3: byte;
Begin
Writeln(‘Nhap so phan tu cua mang: ’); Readln(n);
Max := A[1]; Min := A[n]; k := 0; l := 0;
For i:= 1 to n do
Begin
Write(‘Nhap gia tri phan tu thu’, i);
Readln(A[i]);
End;
For i:= 2 to n do
Begin
If (A[i] > Max) then
Begin
Max := A[i]; k := i;
End;
End;
Writeln(‘Gia tri lon nhat la’, Max, ‘chi so la’, k);
For i:= n-1 downto 1 do
Begin
If (A[i] < Min) then
Begin
![Page 9: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/9.jpg)
Min := A[i]; l := i;
End;
End;
Writeln(‘Gia tri nho nhat la’, Min, ‘chi so la’, l );
Max3 := Min;
For i:=1 to n do
If (A[i] mod 3 = 0) and (A[i] > Max3) then
Max3 := A[i];
Writeln(‘Gia tri lon nhat chia het cho 3 la’, Max3);
Readln;
End.
20. Viết chương trình nhập vào mảng một chiều các số nguyên rồi thực hiện các công việc sau:
a. Tìm giá trị trung bình của các phần tử.
b. Đếm số phần tử có giá trị lớn hơn giá trị trung bình.
Program BT20;
Var A:array[1..100] of integer;
i, n, dem, S, TB: integer;
Begin
Writeln(‘Nhap so phan tu cua mang: ’); Readln(n);
S:=0; dem:=0;
For i:= 1 to n do
Begin
Write(‘Nhap gia tri phan tu thu’, i);
Readln(A[i]);
S := S + A[i];
End;
TB := S / n;
For i := 1 to n do
If (A[i] > TB) then dem := dem + 1;
Writeln(‘Co’, dem, ‘phan tu co gia tri lon hon’, TB);
![Page 10: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/10.jpg)
Readln;
End.
21. Viết chương trình nhập vào mảng một chiều các số nguyên rồi thực hiện các công việc sau:
a. In ra danh sách các số chẵn và tổng của chúng.
b. In ra danh sách các số lẻ và tổng của chúng.
Program BT21;
Var A:array [1..100] of integer;
i, n, Sc, Sl: integer;
Begin
Writeln(‘Nhap so phan tu cua mang: ’); Readln(n);
Sc:=0; Sl:=0;
For i:= 1 to n do
Begin
Write(‘Nhap gia tri phan tu thu’, i);
Readln(A[i]);
End;
Writeln(‘Danh sach so chan cua mang la:’);
For i:=1 to n do
If (A[i] mod 2 = 0) then
Begin
write(A[i], ‘ ’); Sc := Sc + A[i];
End;
Writeln(‘Tong cac so chan cua mang la’, Sc);
Writeln(‘Danh sach so le cua mang la:’);
For i:=1 to n do
If (A[i] mod 2 <> 0) then
Begin
write(A[i], ‘ ’); Sl := Sl + A[i];
End;
Writeln(‘Tong cac so le cua mang la’, Sl);
![Page 11: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/11.jpg)
Readln;
End.
22. Viết chương trình tính tổng bình phương của các số âm trong một mảng gồm N phần tử.
Ý tưởng:
Duyệt tất cả các phần tử A[i] của mảng: Nếu A[i]<0 thì cộng dồn (A[i])2 vào biến S.
Program BT22;
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,S:Integer;
Begin
{Nhập mảng}
Write(‘Nhap N=’); Readln(N);
For i:=1 To N Do
Begin
Write(‘A[‘,i,’]=’); Readln(A[i]);
End;
{Tính tổng}
S:=0;
For i:=1 To N Do
If A[i]<0 Then S:=S+A[i]*A[i];
{In kết quả ra màn hình}
Writeln(‘S= ’, S);
Readln;
End.
23. Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm vào một số nguyên
X. Hãy kiểm tra xem phần tử X có trong mảng A hay không?
Ý tưởng: Dùng thuật toán tìm kiếm tuần tự. So sánh x với từng phần tử của mảng A. Thuật toán
dừng lại khi x=A[i] hoặc i>N.
![Page 12: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/12.jpg)
Nếu x=A[i] thì vị trí cần tìm là i, ngược lại thì kết quả tìm là 0 (không tìm thấy).
Program BT23;
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,x:Integer;
Function TimKiem(x, N: Integer; A:Mang):Integer;
Var i:Integer;
Begin
I:=1;
While (I <= N) and (X<>A[I]) do I:=I+1;
If I <= N Then Timkiem:=I Else Timkiem:=0;
End;
Begin
{Nhập mảng}
Write(‘Nhap N=’); Readln(N);
For i:=1 To N Do
Begin
Write(‘A[‘,i,’]=’); Readln(A[i]);
End;
Write(‘Nhap X=’); Readln(x);
{Kết quả tìm kiếm}
If TimKiem(X,N,A)<>0 Then
Writeln(‘Vi tri cua X trong mang la:’,
TimKiem(X,N,A))
Else Writeln(‘X khong co trong mang.’);
Readln;
End.
24. Cho một mảng 2 chiều A cấp mxn gồm các số nguyên và một số nguyên x. Viết chương
trình thực hiện các công việc sau:
![Page 13: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/13.jpg)
a/ Đếm số lần xuất hiện của x trong A và vị trí của chúng.
b/ Tính tổng các phần tử lớn nhất của mỗi dòng.
Program BT24;
Uses Crt;
Type Mang = ARRAY[1..10,1..10] Of Integer;
Var A:Mang;
m,n,i,j,x,dem,S,max:Integer;
Begin
{Nhập ma trận}
Write(‘Nhap số dòng m=’); Readln(m);
Write(‘Nhap số cột n=’); Readln(n);
For i:=1 To m Do
For j:=1 To n Do
Begin
Write(‘A[‘,i,j,’]=’); Readln(A[i,j]);
End;
{Nhập x}
Write(‘Nhap x=’); Readln(x);
{Đếm số lãn xuất hiện của x và vị trí của x}
dem:=0;
Writeln(‘Vi tri cua x trong mang A: ‘);
For i:=1 To m Do
For j:=1 To n Do
If x=A[i,j] Then
Begin
Write(i,j,’ ; ‘); dem:=dem+1;
End;
Writeln(‘So lan xuat hien cua x trong mang la: ‘,dem);
{Tính tổng các phần tử lớn nhất của mỗi dòng}
S:=0;
![Page 14: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/14.jpg)
For i:=1 To m Do {duyệt qua từng dòng}
Begin
{Tìm phần tử lớn nhất của dòng thứ i}
Max:=A[i,1];
For j:=2 To n Do
{duyệt từng phần tử của dòng thứ i}
If max<A[i,j] Then max:=A[i,j];
{Cộng max vào biến S}
S:=S+max;
End;
Writeln(‘Tong cac ptu lon nhat cua moi dong la: ‘,S);
Readln;
End.
25. Trong khai báo mảng một chiều, nếu ở kiểu chỉ số có n1=-99; n2=0. Hãy cho biết muốn
tham chiếu đến phần tử thứ 4 của mảng thì chỉ số là:
A. 4 B. 3 C. -96 D. -95
26. Các phần tử của mảng có thể có kiểu gì?
A. Real; C. Real, Integer, Char;
B. Real, Integer; D. Real ,Integer, Char, Boolean;
27. Để tham chiếu đến phần tử hàng 5 cột 4 của mảng 2 chiều B, ta viết:
a. A[5,4] b. A[4,5] c. B[5,4] d. B[4,5]
28. Giả sử mảng 1 chiều A được khai báo như sau: VAR A: array[-1..1] of Real;
Mảng A được khai báo như trên có bao nhiêu phần tử?
A. 3 B. 1 C. 0 D. 2
BT LÀM THÊM
1. Viết chương trình mảng một chiều các số nguyên sau đó sắp xếp các giá trị của mảng theo
thứ tự tăng dần rồi in ra màn hình.
2. Viết chương trình mảng một chiều các số nguyên sau đó sắp xếp các giá trị của mảng theo
thứ tự giảm dần rồi in ra màn hình.
![Page 15: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/15.jpg)
3. Viết chương trình nhập vào mảng một chiều các số nguyên, đếm số cách chọn hai phần tử
mà tổng giá trị của chúng bằng 10.
4. Viết chương trình nhập vào một mảng bao gồm n phần tử số nguyên (2<n<50). Tính tích các
giá trị là bội của 3 và tổng các phần tử là ước của 5. In KQ sau khi tính.
5. Viết chương trình nhập vào 1 mảng gồm 30 phần tử số thực. Tính tích các giá trị không phải
là bội của 3 và tổng các phần tử không phải là ước của 5. In KQ sau khi tính.
6. Viết chương trình nhập vào 1 mảng bao gồm n phần tử số nguyên (50<n<100). Tìm và in ra
màn hình các số nguyên tố.
7. Viết chương trình nhập vào 1 mảng bao gồm 10 phần tử số nguyên. Nhập k. Xóa phần tử có
giá trị bằng k đầu tiên tìm được. In mảng sau khi xóa.
8. Viết chương trình nhập vào 1 mảng bao gồm n phần tử số nguyên (2<n<50). Sắp xếp mảng
vừa nhập. In ra các phần tử ở vị trí lẻ.
9. Viết chương trình nhập vào 1 mảng số nguyên N phần tử. In ra màn hình mảng đó. Tính tổng
các số là bội của 3 và 2.
10. Viết chương trình nhập vào 1 mảng số nguyên N phần tử. In ra màn hình mảng đó. Tìm số
lớn nhất và nhỏ nhất trong mảng. Đếm xem có bao nhiêu số dương, số âm trong mảng.
11. Viết chương trình nhập vào mảng 1 chiều gồm n phần tử (n <= 100) kiểu nguyên rồi thực
hiện:
a. Đếm số lượng phần tử dương rồi in KQ ra màn hình.
b. Tính tổng các phần tử dương trong mảng.
c. Tính trung bình các phần tử trong mảng.
d. Tính trung bình các phần tử dương trong mảng.
e. Tìm vị trí đầu tiên của phần tử bằng k với k nhập từ bàn phím.
f. Tìm vị trí đầu tiên của phần tử bằng k với k nhập từ bàn phím. Nếu có nhiều phần tử
bằng k thì hiển thị ra màn hình tất cả các vị trí của phần tử bằng k đó.
g. Đếm số lượng phần tử là số nguyên tố trong mảng.
h. Kiểm tra mảng vừa nhập có phải là cấp số cộng hay không?
i. Sắp xếp mảng theo thứ tự tăng dần các phần tử và hiện ra màn hình mảng tăng đó.
![Page 16: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/16.jpg)
KIỂU XÂU
Mục tiêu:
Cài đặt được thuật toán của một số bài toán đơn giản với KDL xâu.
Thực hiện được khai báo xâu, nhập, xuất xâu, tham chiếu đến các phần tử của xâu.
Biết cách làm việc với biến xâu qua các hàm và thủ tục.
Yêu cầu:
Hiểu khái niệm mảng một chiều và hai chiều.
Hiểu cách khai báo và truy cập đến các phần tử của mảng.
Biết các hảm và thủ tục liên quan đến xâu.
Mức độ BT: BT căn bản
1. Để khai báo biến kiểu xâu trực tiếp ta sử dụng cú pháp nào?
a. var <tên biến> : <tên kiểu> ;
b. var <tên biến> : string [độ dài lớn nhất của xâu;
c. var <tên biến> = <tên kiểu> ;
d. var <tên biến> = string [độ dài lớn nhất của xâu] ;
2. Trong các khai báo sau, khai báo nào đúng?
a. var hoten : string [27];
b. var diachi : string (100);
c. var hoten = string [30];
d. var hoten = string (20);
3. Trong các phát biểu sau, phát biểu nào sai?
a. Xâu không có kí tự nào được gọi là xâu rỗng.
b. Thao tác nhập và xuất đối với dữ liệu kiểu xâu như nhập hay xuất giá trị của biến KDL
chuẩn.
c. Xâu có chiều dài không được vượt quá 255.
d. Có thể tham chiếu đến từng kí tự trong xâu.
4. Trên dữ liệu kiểu xâu có các phép toán nào?
a. Phép toán so sánh và phép gán.
b. Phép so sánh và phép nối.
c. Phép gán và phép nối.
![Page 17: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/17.jpg)
d. Phép gán, phép nối và phép so sánh.
5. Trong các phát biểu sau, phát biểu nào sai?
a. Xâu A lớn hơn xâu B nếu độ dài xâu A lớn hơn độ dài xâu B.
b. Xâu A lớn hơn xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu
A có mã ASCII lớn hơn.
c. Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A nhỏ hơn B.
d. Hai xâu bằng nhau nếu chúng giống nhau hoàn toàn.
6. Xâu ‘ABBA’ lớn hơn xâu:
a. ‘ABC’
b. ‘ABABA’
c. ‘ABCBA’
d. ‘BABA’
7. Xâu A = ‘ABBA’ nhỏ hơn xâu:
a. ‘A’
b. ‘B’
c. ‘AAA’
d. ‘ABA’
8. Xâu ‘ABBA’ bằng xâu:
a. ‘A’
b. ‘B’
c. ‘abba’
d. Tất cả A,B,C đều sai.
9. Xâu ‘ABBA’ nhỏ hơn xâu:
a. ‘a’
b. ‘A’
c. ‘AB’
d. ‘ABB’
10. Xâu ‘ABBA’ nhỏ hơn xâu:
a. ‘a’
b. ‘A’
![Page 18: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/18.jpg)
c. ‘AAA’
d. ‘ABA’
11. Xâu ‘2007’ nhỏ hơn xâu:
a. ‘20007’
b. ‘207’
c. ‘1111111111’
d. ‘1010101010’
12. Cho A = ‘abc’ và B = ‘ABC’ khi đó A+B cho kết quả nào?
a. ‘aAbBcC’
b. ‘abcABC’
c. ‘AaBbCc’
d. ‘ABCabc’
13. Thủ tục delete(st, p, n) thực hiện:
a. Xóa n kí tự của biến xâu st bắt đầu từ vị trí p.
b. Xóa p kí tự của biến xâu st bắt đầu từ vị trí n.
c. Xóa các kí tự của biến xâu st bắt đầu từ vị trí n đến vị trí p.
d. Xóa các kí tự của biến xâu st bắt đầu từ vị trí p đến vị trí n.
14. Cho xâu s = ‘123456789’ sau khi thực hiện thủ tục delete(s,3,4) thì:
a. s = ‘1256789’
b. s = ‘12789’
c. s = ‘123789’
d. s = ‘’
15. Thủ tục insert (s1,s2,p) thực hiện:
a. Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí p.
b. Chèn xâu s2 vào xâu s1 bắt đầu từ vị trí p.
c. Chèn p kí tự của xâu s1 vào đầu xâu s2.
d. Chèn p kí tự của xâu s2 vào đầu xâu s1.
16. Cho xâu s1 = ‘123’ và s2 = ‘abc’ sau khi thực hiện thủ tục insert (s1,s2,2) thì:
a. s1 = ‘123’ và s2 = ‘a123bc’
b. s1 = ‘1abc23’ và s2 = ‘abc’
![Page 19: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/19.jpg)
c. s1 = ‘123’ và s2 = ‘12abc’
d. s1 = ‘ab123’ và s2 = ‘abc’
17. Hàm length(s) cho giá trị là:
a. Độ dài của xâu s.
b. Kí tự đầu tiên của xâu s.
c. Kí tự cuối cùng của xâu s.
d. Kí tự có STT nhỏ nhất trong xâu s.
18. Cho s = ‘500 ki tu’, hàm length(s) cho giá trị bằng:
a. 500
b. 9
c. 5
d. ‘500’
19. Hàm pos(s1,s2) cho giá trị là:
a. Vị trí xuất hiện đầu tiên của s1 trong s2.
b. Vị trí xuất hiện đầu tiên của s2 trong s1.
c. Vị trí xuất hiện cuối cùng của s1 trong s2.
d. Vị trí xuất hiện cuối cùng của s2 trong s1.
20. Cho s1 = ‘010’ và s2 = ‘1001010’ hàm pos(s1,s2) cho giá trị bằng:
a. 3
b. 4
c. 5
d. 0
21. Hàm copy(s,p,n) cho giá trị là:
a. Một xâu gồm n kí tự liên tiếp bắt đầu từ vị trí p của xâu S.
b. Một xâu gồm p kí tự liên tiếp bắt đầu từ vị trí n của xâu S.
c. Một xâu gồm n kí tự liên tiếp bắt đầu từ vị trí p-n của xâu S.
d. Một xâu gồm p kí tự liên tiếp bắt đầu từ vị trí n-p của xâu S.
22. Cho s = ‘123456789’ hàm copy(s,2,3) cho giá trị bằng:
a. ‘234’
b. 234
![Page 20: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/20.jpg)
c. ‘34’
d. 34
23. Khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự:
a. var s_s : string;
b. var s1 : str[256];
c. var abc : string[100];
d. var cba : string[1];
24. Viết chương trình nhập vào 1 xâu bất kì và in ra màn hình xâu ngược lại.
Program BT24;
Var i,k: byte;
S: string;
Begin
Writeln(‘Nhap xau: ’); readln(S);
k := length(S);
For i := k downto 1 do write (a[i]);
Readln;
End.
25. Viết chương trình nhập vào 1 xâu. Hỏi xâu vừa nhập có phải là xâu đối xứng không?
Ví dụ: ‘ABCCBA’; ‘AAA’; ‘abcdcba’ là xâu đối xứng
‘abc’; ‘sdjgfuy’ không là xâu đối xứng
Program BT25;
Var St:string;
i,l:byte;
Begin
Write('Nhap chuoi: '); Readln(St);
l:=length(St); i:=1;
While (i < l div 2) and (St[i] = St[l-i+1]) do
begin
i:=i+1;
If i < (l div 2) then
![Page 21: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/21.jpg)
writeln('Chuoi nay doi xung');
end;
While (i < l div 2) and (St[i] <> St[l-i+1]) do
begin
i:=i+1;
If i < (l div 2) then
Writeln('Chuoi nay khong doi xung');
end;
Readln;
End.
26. Viết chương trình nhập 1 xâu bất kì, in ra màn hình xâu sau khi đã xóa tất cả các kí tự ‘A’.
Program BT26;
Var vt: byte;
st: string;
Begin
writeln(‘Nhap xau: ’); readln(st);
while pos(‘A’, st) <> 0 do
begin
vt:= pos (‘A’, st);
delete(st,vt,1);
end;
write(‘Xau sau khi da duoc xoa la: ’, st);
Readln;
end.
27. Viết chương trình nhập vào một chuỗi kí tự, sau đó nhập vào một kí tự bất kì và đếm số lần
của nó trong chuỗi đã nhập.
Program DEM_SO_KY_TU;
Uses Crt;
Var st:string[30];
![Page 22: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/22.jpg)
x:char;i,dem:integer;
Begin
Clrscr;
Writeln('DIEM SO LAN XUAT HIEN CUA 1 KY TU');
Writeln('------------------------------------------');
Write('Nhap xau ky tu la:');readln(st);
Write('Nhap ky tu x=');readln(x);
dem:=0;
For i:=1 to length(st) do
If x= st[i] then dem:=dem+1;
Writeln('so lan xuat hien cua ',x,' trong xau "', st,'"
la: ',dem);
Readln;
End.
28. Viết chương trình nhập vào 1 xâu bất kì, cho biết xâu có bao nhiêu từ, (mỗi từ là một dãy
các kí tự khác kí tự trắng liên tiếp nhau)
Program DEM_SO_KY_TU;
Uses Crt;
Var st:string[60];
i, sotu, dem:integer;
Begin
Clrscr;
Writeln('DIEM SO TU TRONG XAU');
Writeln('------------------------------------------');
Write('Nhap xau ky tu la:');readln(st);
{cộng thêm dấu cách phía trước xâu để đếm cả từ đầu tiên}
st := ' ' + st; dem := 0;
for i := 2 to length(s) do
{st[i] là vị trí bắt đầu 1 từ}
if (st[i-1]=' ') and (st[i]<>' ') then
![Page 23: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/23.jpg)
dem := dem + 1;
sotu := dem;
Readln;
End.
29. Viết chương trình nhập vào 1 xâu. Thay tất cả những ký tự ‘c’ trong xâu thành ký tự ‘k’.
Program BT33;
Var vt: byte;
st: string;
Begin
writeln(‘Nhap xau: ’); readln(st);
while pos(‘c’, st) <> 0 do
begin
vt:= pos (‘c’, st); delete(st,vt,1);
insert(‘a’,st,vt);
end;
write(‘Xau sau khi da duoc thay the la: ’, st);
Readln;
End.
30. Muốn biến h lưu trữ độ dài xâu s ta viết:
a. s:=copy(h); c. h:=copy(s);
b. s:=Length(h); d. h:=length(s);
31. Cho St:= ‘TIN HOC’; để có KQ là xâu ‘TIN’ ta thực hiện:
a. DELETE(St,4,2); b. DELETE(St,4,3)
c. DELETE(St,4,4) d. DELETE(St,2,4)
32. Cho St:= ‘NTPT - TRUONG THPT HOANG HOA THAM’; n:=POS(‘PT’,St) có giá trị là:
a. 3 b. 1 c. 0 d. 2
BT LÀM THÊM
1. Viết chương trình nhập vào 1 xâu không quá 30 kí tự. Nhập ký tự bất kỳ ch. Hỏi trong xâu
có ký tự nào bằng ký tự ch hay không?
![Page 24: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/24.jpg)
2. Viết chương trình nhập vào 1 xâu sau đó chuyển các kí tự thường của xâu thành kí tự hoa.
3. Viết chương trình nhập vào 1 xâu. In xâu theo thứ tự đảo ngược. In xâu chữ hoa ra màn hình.
4. Viết chương trình nhập vào 1 xâu. Đếm xem trong xâu có bao nhiêu phần tử là ‘a’ (không
phân biệt chữ hoa, chữ thường)
5. Nhập vào 1 xâu s khác rỗng và thực hiện chuẩn hóa xâu. Tức là :
a. Xóa các khoảng trắng thừa.
b. Chuyển những ký tự đầu thành chữ hoa, những ký tự khác thành chữ thường.
6. Viết chương trình nhập vào 1 xâu không quá 20 kí tự. Đổi xâu ra chữ hoa đầu mỗi từ. In KQ
ra màn hình.
![Page 25: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/25.jpg)
B. KIỂU BẢN GHI
Mục tiêu:
Cài đặt được thuật toán của một số bài toán đơn giản với kiểu bản ghi.
Yêu cầu:
Biết khái niệm kiểu bản ghi.
Biết cách khai báo, truy cập trường của bản ghi.
Biết cách gán giá trị của kiểu bản ghi.
Mức độ BT: BT căn bản
1. Để khai báo biến bản ghi gián tiếp, ta dùng cú pháp:
a. Type TênKiểu = record
Tên trường 1: kiểu 1;
Tên trường 2: kiểu 2;
…
Tên trường n : kiểu n;
End;
Var Tên biến : tên kiểu;
b. Type TênKiểu = record
Tên trường 1 = kiểu 1;
Tên trường 2 = kiểu 2;
…
Tên trường n = kiểu n;
End;
Var Tên biến : tên kiểu;
c. Type TênKiểu : record
Tên trường 1: kiểu 1;
Tên trường 2: kiểu 2;
…
Tên trường n : kiểu n;
End;
Var Tên biến : tên kiểu;
![Page 26: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/26.jpg)
d. Type TênKiểu : record
Tên trường 1 = kiểu 1;
Tên trường 2 = kiểu 2;
…
Tên trường n = kiểu n;
End;
Var Tên biến : tên kiểu;
2. Để khai báo biến bản ghi trực tiếp ta dùng cú pháp:
a. Var TênKiểu = record
Tên trường 1: kiểu 1;
Tên trường 2: kiểu 2;
…
Tên trường n : kiểu n;
End;
b. Var TênKiểu = record
Tên trường 1= kiểu 1;
Tên trường 2= kiểu 2;
…
Tên trường n = kiểu n;
End;
c. Var TênKiểu : record
Tên trường 1: kiểu 1;
Tên trường 2: kiểu 2;
…
Tên trường n : kiểu n;
End;
d. Var TênKiểu : record
Tên trường 1= kiểu 1;
Tên trường 2= kiểu 2;
…
![Page 27: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/27.jpg)
Tên trường n = kiểu n;
End;
3. Trong KDL bản ghi, mỗi bản ghi dùng để?
a. Mô tả hay lưu trữ thông tin về nhiều đối tượng cần quản lý.
b. Mô tả hay lưu trữ thông tin về 1 thuộc tính cần quản lý.
c. Mô tả hay lưu trữ thông tin về 1 đối tượng cần quản lý.
d. Mô tả hay lưu trữ thông tin về nhiều thuộc tính cần quản lý.
4. Trong các phát biểu sau, phát biểu nào sai?
a. Hai biến bản ghi cũng kiểu có thể gán được cho nhau.
b. Các biến cùng cấu trúc nhưng có tên kiểu khác nhau thì vẫn có thể sử dụng phép gán
cho nhau.
c. Giữa hai biến bản ghi cùng kiểu có thể so sánh bằng.
d. Giữa hai biến bản ghi cùng kiểu có thể so sánh khác.
5. Trong các phát biểu sau, phát biểu nào đúng?
a. Có thể nhập giá trị của 1 biến kiểu bản ghi như nhập giá trị của biến KDL chuẩn.
b. Có thể xuất giá trị của 1 biến kiểu bản ghi như xuất giá trị của biến KDL chuẩn.
c. Có thể nhập hay xuất giá trị của 1 biến kiểu bản ghi như nhập hay xuất giá trị của biến
KDL chuẩn.
d. Các thao tác nhập, xuất hay xử lí mỗi trường bản ghi phải tuân theo quy định của kiểu
trường này.
6. Để truy cập đến DL của 1 trường nào đó trên bản ghi ta sử dụng cú pháp:
a. Tên trường.Tên biến;
b. Tên trường:Tên biến;
c. Tên biến.Tên trường;
d. Tên biến:Tên trường;
7. Trong các khai báo sau, khai báo nào đúng?
a. Type HS = record
SBD : string[6];
Ten : string [27];
Diem : real;
![Page 28: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/28.jpg)
End;
Var hs : HS;
b. Type HS = record
SBD : string[6];
Ten : string [27];
Diem : real;
End;
Var hs1, hs2 : HS;
c. Type HS = record
SBD = string[6];
Ten = string [27];
Diem = real;
End;
Var hs : HS;
d. Type HS = record
SBD : string[6];
Ten : string [27];
Diem : real;
End;
Var hs = HS;
8. Để mô tả 1 kiểu bản ghi NgayThang gồm có ba trường: Ngay, Thang, Nam ta sử dụng khai
báo nào dưới đây?
a. Type NgayThang = Record
Ngay : byte;
Thang : byte;
Nam : word;
End;
b. Type NgayThang : Record
Ngay : byte;
Thang : byte;
![Page 29: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/29.jpg)
Nam : word;
End;
c. Var NgayThang = Record
Ngay : byte;
Thang : byte;
Nam : word;
End;
d. Var NgayThang : Record
Ngay = byte;
Thang = byte;
Nam = word;
End;
9. Một kiểu bản ghi được khai báo như sau:
Type phanso = record
tu, mau : integer;
end;
Var p, q: phanso;
Câu lệnh nào trong các câu lệnh sau là không phù hợp?
a. p := q;
b. q := p;
c. writeln (p.tu,’/’, p.mau);
d. writeln (‘p = ’, p, ‘q = ’, q);
10. Một kiểu bản ghi được khai báo như sau:
Type phanso = record
tu, mau : integer;
end;
Var p, q: phanso;
Câu lệnh nào trong các câu lệnh sau là không phù hợp?
a. p := q;
b. q := p;
![Page 30: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/30.jpg)
c. readln(p.tu,p.mau);
d. readln(q);
11. Một kiểu bản ghi được khai báo như sau:
Type phanso = record
tu, mau : integer;
end;
Var p, q: phanso;
Câu lệnh nào trong các câu lệnh sau là không phù hợp?
a. p := q;
b. q := p;
c. writeln (‘p*q=’, p.tu*q.tu, ‘/’,p.mau*q.mau);
d. writeln (p*q);
12. Khai báo mô tả kiểu bản ghi địa chỉ có ba trường số nhà, tên đường và thành phố với KDL
phù hợp.
Type Diachi = record
so_nha:integer;
duong, thanh_pho:string;
end;
13. Mỗi phân số được lưu trong 1 bản ghi gồm có hai trường: tử số và mẫu số. Hãy định nghĩa
kiểu phân số sau đó viết chương trình thực hiện công việc cộng, trừ, nhân, chia hai phân số.
Type phanso = record
Tu, mau:integer;
End;
Var p,q : phanso;
Begin
Writeln(‘Nhap phan so thu nhat: ’); read(p.tu,p.mau);
Writeln(‘Nhap phan so thu hai: ’); read(q.tu,q.mau);
Writeln(‘Tong cua 2 phan so la: ’, p.tu*q.mau+p.mau*q.tu,
‘/’,q.mau*p.mau);
Writeln(‘Hieu cua 2 phan so la: ’, p.tu*q.mau-p.mau*q.tu,
![Page 31: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/31.jpg)
‘/’,q.mau*p.mau);
Writeln(‘Tich cua 2 phan so la: ’,p.tu*q.tu,‘/’,
q.mau*p.mau);
Writeln(‘Thuong cua 2 phan so la: ’,p.tu*q.mau,‘/’,
q.tu*p.mau);
End.
14. Để quản lý HS trong lớp học, mỗi HS người ta quản lý hai thông tin sau:
Họ và tên
Điểm trung bình
Hãy định nghĩa kiểu học sinh sau đó viết chương trình thực hiện các công việc hiện danh
sách học sinh theo điểm trung bình giảm dần.
Type hocsinh = record;
ten : string;
diem : real;
end;
Var hs : array[1..50] of hocsinh;
tg : hocsinh;
i,j,n : byte;
Begin
Write(‘So hoc sinh la: ’); read(n);
For i := 1 to n do
Begin
Writeln(‘Nhap ho ten hs thu ’,i);
readln(hs[i].ten);
Writeln(‘Nhap diem hs thu ’,i);
readln(hs[i].diem);
End;
For i := 1 to n-1 do
For j := i+1 to n do
If hs[j].diem>hs[i].diem then
![Page 32: vungtauitk33.files.wordpress.com · Web viewBÀI 11 – 12 – 13 Author MAI CHI Created Date 09/19/2011 09:51:00 Last modified by MAI CHI Company HOME](https://reader035.vdocuments.pub/reader035/viewer/2022081605/5b3dea697f8b9a0e628e9798/html5/thumbnails/32.jpg)
Begin
tg:=hs[i]; hs[i]:= hs[j]; hs[j]:=tg;
end;
For i:= 1 to n do writeln(hs[i].ten, ‘’, hs[i].diem);
Readln;
End.