mỗi sinh viên. Viết chương trình (cấu trúc dữ liệu kiểu bản ghi) tính điểm trung bình của
từng người và tách danh sách lớp thành 3 danh sách: những SV có DTB nhỏ hơn 5 từ 5- 7,và DTB >8. Program Ban_ghi_Tao_danh_sach; type sv=record ms:integer; ht:string[25]; d:array[1..20] of real; dtb:real end; var n,m,n1,n2,n3,i,j,k:integer;
Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal- 1 GVC: Đào Tăng Kiệm
ds,ds1,ds2,ds3:array[1..30] of sv; ttsv:sv;
t:real; BEGIN
Write ( ' Nhap so nguoi n, somon m= '); readln(n,m); for i:=1 to n do
begin
write ( 'ms[',i,']=? ' ); readln(ds[i].ms); write ( 'ht[',i,']=? ' ); readln(ds[i].ht); for j:=1 to m do
begin
write('d[',j,']=? '); readln(ds[i].d[j]); end
end;
{ Tinh diem trung binh cho tung nguoi }
for i:=1 to n do begin t:=0; for j:=1 to m do t:=t+(ds[i].d[j]); ds[i].dtb:=t/m end;
{ Lap cac danh sach }
n1:=0; n2:=0; n3:=0;
for i:=1 to n do if ds[i].dtb<5 then begin
n1:=n1+1; ds1[n1]:=ds[i]
end else if ds[i].dtb<8 then begin n2:=n2+1; ds2[n2]:=ds[i] end else begin n3:=n3+1; ds3[n3]:=ds[i] end; writeln;
{ In ket qua ra man hinh }
If n1<> 0 then
begin
writeln('1. DS SINH VIEN CO DTB<5:');
for i:=1 to n1 do writeln(ds1[i].ms:5,ds1[i].ht:15,ds1[i].dtb:10:1); end;
writeln; if n2<>0 then
begin
writeln('2. DS SINH VIEN CO DTB: 5-7:');
for i:=1 to n2 do writeln(ds2[i].ms:5,ds2[i].ht:15,ds2[i].dtb:10:1); end;
Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal- 1 GVC: Đào Tăng Kiệm
if n3<>0 then
begin
writeln('3. DS SINH VIEN CO DTB: 8-10:');
for i:=1 to n3 do writeln(ds3[i].ms:5,ds3[i].ht:15,ds3[i].dtb:10:1); end;
writeln; readln END.
4. Bài tập tự làm - Viết chương trình Pascal cho các bài tập sau:
4.1. Nhập từ bàn phím 3 số nguyên a, b, c. Tìm giá trị Max - Min của chúng.
4.2. Viết chương trình tính tổng của dãy số: 1+2+...+n (Với n được nhập vào từ bàn phím, n>=1). Viết bằng 3 lệnh chu trình khác nhau – So sánh – Nhận xét .
4.3. Viết chương trình tính tổng các số chẵn trong khoảng từ 1- n .
4.4. Viết chương trình tính tổng các số chẵn và chia hết cho 3 trong khoảng từ 1->n, với n được nhập từ bàn phím.
4.5. Viết chương trình tính tổng S = 1 + 1/2 + 1/3 + 1/4 +...+1/n. Với n là số nguyên và chẵn.
4.6. Viết chương trình tính tổng S = 1 + 1/x + 1/x2 + 1/x3 +...+1/xn. Với n được nhập từ bàn phím.
4.7. Cho một mảng X (nguyên) có m phần tử. Hãy tách mảng X thành 2 mảng Y chứa các phần tử chẵn của X và mảng Z chứa các phần tử chia hết cho 2.
4.8. Cho dữ liệu của một lớp học sinh có m người. Biết các thông tin Họ tên, Mã số sinh viên, điểm trung bình cả năm của mỗi người. Tìm số người có điểm trung bình >B. Lập 2 danh sách cho những người có điểm trung bình từ 5..7 và từ 8..10.
4.9. Cho một dãy số (mảng 1 chiều) các số thực. Tìm số lớn nhất, bé nhất trong dãy số đó. Sắp xếp dãy số theo chiều tăng dần của các giá trị.
4.10. Cho một mảng X có m phần tử, một mảng Y có n phần tử. Hãy tạo ra mảng Z có
m+n phần tử được ghép từ 2 mảng X, Y. Tính tổng các phần tử >A của mảng Z và tích các phần tử<B của Z. So sánh tổng và tích.
4.11. Cho dữ liệu của một lớp học sinh có m người. Biết các thông tin Họ tên, Mã số sinh viên, điểm các môn của n môn mỗi người.
- Tìm điểm trung bình n môn của mỗi người. In lên màn hình Tên, Mã số, Điểm trung bình từng người cả lớp.
Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal- 1 GVC: Đào Tăng Kiệm
- Sắp xếp lại danh sách lớp theo điểm trung bình giảm dần.
4.12. Cho một ma trận A vuông (mảng 2 chiều) có m hàng, m cột. - Tính trung bình cộng của cả ma trận.
- Tính tổng các phần tử nằm phía trên đường chéo chính.
- Tìm giá trị lớn nhất của các phần tử nằm phía dưới đường chéo chính.
4.13. Cho dữ liệu của một phường dân cư có m người. Biết các thông tin Tên chủ hộ, Địa chỉ, Tổng số nước tiêu thụ (m3) mỗi tháng của mỗi nhà trong 12 tháng.
- Nhập các thông tin của từng hộ và In lên màn hình (Tên CH., Địa chỉ ,Tháng 1 ..Tháng 12) - Tìm số lượng nước tiêu thụ trung bình cả phường trong năm.
- Tìm tổng số nước tiêu thụ traong 12 tháng của từng hộ. - Lập danh sách những hộ có lượng tiêu thu nước > X m3
4.14. Cho một ma trận B (mảng 2 chiều) có m hàng, n cột. - Tìm giá trị nhỏ nhất của B
- Xoá đi hàng và cột chứa giá trị nhỏ nhất đầu tiên (Xét theo hàng) của ma trận (Ma trận chỉ còn m-1 hàng và n-1 cột).