Bài tập 2: Cho một lớp học sinh có n người, biết mã số SV, tên và điểm th im môn của

Một phần của tài liệu Giáo trình nhập môn tin học phần III ngôn ngữ lập trình pascal 1 (Trang 33)

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:'); (adsbygoogle = window.adsbygoogle || []).push({});

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).

Một phần của tài liệu Giáo trình nhập môn tin học phần III ngôn ngữ lập trình pascal 1 (Trang 33)