I. Ngôn ngữ lập trình Pascal:
1. Giới thiệu chung về ngôn ngữ lập trình:
Từ trước tới nay đã có hàng nghìn ngôn ngữ lập trình khác nhau được thiết kế và sử dụng.
Hàng năm lại có nhiều ngôn ngữ mới ra đời. Các ngôn ngữ được dùng phổ biến có thể kể
đến : Ngôn gữ Ada, Angol, APL, Asembly Basic, C, C++,Cobol, Fortran, Delphi, Java,
Lisp,Pascal,Perl,PHP,Prolog, Python, Ruby Sự phát triển của ngôn ngữ gắn liền với sự
phát triển của tin học và phần cứng. Mỗi loại ngôn ngữ thích hợp với một lĩnh vực và một
số dạng bài toán nhất định. Ví dụ, trong khối kỹ thuật, các ngôn ngữ được sử dụng nhiều là
Algol, Fortran, C++, Basic, Visual Basic, Java, Pascal
Các ngôn ngữ lập trình có thể xây dựng dựa trên “ Lập trình tuyến tính”, “ Lập trình có cấu
trúc” : Pascal; “Lập trình hướng đối tượng” : Java, Delphi,Visual Basic; “Lập trình trên nền
Web”: HTML.
36 trang |
Chia sẻ: phuongt97 | Lượt xem: 601 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình môn học Nhập môn tin học - Phần III: Ngôn ngữ lập trình Pascal 1 - Đào Tăng Kiệm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
sẽ tự động thực hiện các bước:
gán giá trị đầu, tăng và kiểm tra giá trị cuối của biến điều khiển (mà không thể hiện
từng bước này trong câu lệnh).
Các lưu ý:
- Nếu Miền tác động có 1 lệnh thì viết ngay sau Do, nếu có từ 2 lệnh trở lên thì các
lệnh này phải đặt trong khối Begin End;
- Khôngcó dấu ; sau Do
- Các lệnh có thể lồng nhau, tuy nhiên các vòng lặp không được cắt nhau.
- Vòng lặp trong có thể kết thức trước khi đến giá trị cuối của biến điều khiển và
chuyển ra vòng lặp ngoài, tuy nhiên không thể chuyển từ vòng lặp ngoài vào vòng
lặp trong.
- Lệnh For to Do là loại lệnh thực hiện trước, kiểm tra sau, do vậy ít nhất sẽ thực hiện
1 lần.
- Trong miền tác động của lệnh không được có lệnh nào làm biến đổi giá trị đầu, cuối
của biến điều khiển.
Ví dụ: - Các ví dụ minh hoạ cho câu lệnh.
+ FOR i := 1 TO n DO T:=T + A[i] ; (Tính tổng 1 véc tơ)
+ FOR i := 1 m DO (Nhập dữ liệu và tính tổng cho mảng A)
Begin
Write (’ A[ ’ , I , ’ ] = ’); Readln ( A[i] );
T:=T + A[i] ; End;
- Các bài tập:
+ Bài tập 1: Viết chương trình Tìm giá trị lớn nhất của một vecto (Ví dụ 6 phần thuật
toán)
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
Bộ môn Tin học Xây dựng 26
Program tim_max_cua_vec_to;
Var i,n: integer;
a: array [1 .. 50] of real;
ln:real;
BEGIN
write('Nhap so phan tu n=');
readln (n);
for i:=1 to n do
Begin
Write ( 'Nhap gia tri cua phan tu thu ', i, ': ' );
Readln (a[i]);
End;
ln:= a [1];
for i:=1 to n do
if a[i]> ln then ln := a[i];
writeln ('Gia tri lon nhat cua day so la ', ln: 10:2);
readln;
END.
+ Bài tập 2: Cho một ma trận B có mxn phần tử. Viết chương trình Pascal tính số lượng
các phần tử > K trong từng hàng và tích các phần tử < K trong cả ma trận.
Program Tim_so_luong_Tich ;
Var i, j, m, n, dem : integer;
B: array [1.. 10, 1.. 10 ] of real;
Sl: array [1.. 10 ] of integer; K, Tich :real ;
BEGIN
Write ( ' Nhap so phan tu cua ma tran m, n= ' );
Readln (m, n);
Write ( ' Nhap gia tri K = ' );
Readln (k);
for i:=1 to m do
for j:=1 to n do
Begin
Write ('Nhap gia tri cua phan tu B [', i, ',' , j , ’ ] ’ );
Readln ( B [ i,j ] );
End;
For i := 1 to m do
Begin
SL [i] := 0 ;
for j := 1 n do If B [ i, j ] > K Then SL [i] := SL [i] +1 ;
End;
Tich := 1 ; dem := 0 ;
For i := 1 to m do
for j := 1 n do If B [ i, j ] < K Then
Begin Tich := Tich * B [I,j] ;
Dem := Dem + 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
Bộ môn Tin học Xây dựng 27
{ Xuat ket qua }
Wwiteln ( ’ So luong cac phan tu cua tung hang > K ’ );
For i:= 1 to m do Writeln ( ’ Hang ’ , i , ’ : ’ , SL [[i] :5 ) ;
If Dem 0 Then Writeln ( ’ Tich cac phan tu < K = ’ , Tich : 8:2 )
Else Writeln ( ’ Khong co phan tu nao < K , Tich = 0 ’ ) .
Readln
END.
2. Câu lệnh lặp kiểm tra điều kiện trước - WHILE (WHILE DO)
Khái niệm: Lệnh While Do dùng cho cả 2 dạng bài toán lặp với số lần lặp đã xác
định và không xác định .
Cấu trúc lệnh :
WHILE DO Các lệnh lặp ;
Giải thích các đại lượng :
- Biểu thức điều kiện là biểu thức so sánh hoặc Logic, kết quả của nó chỉ nhận một trong
2 giá trị đúng hoặc sai.
- Miền tác động của lệnh (Các lệnh lặp) có thể là 1 hoặc nhiều lệnh sẽ được thực hiện
khi điều kiện đúng.
Cách thực hiện của lệnh: Khi gặp lệnh, chương trình kiểm tra giá trị của BTĐK, các
lệnh lặp sẽ được thực hiện khi giá trị của biểu thức điều kiện vẫn là “đúng” và sẽ
dừng thực hiện ngay khi giá trị của BTĐK nhận giá trị “sai” .
Các lưu ý :
- Khi sử dụng lệnh While Do cho các thuật toán chu trình phải chú ý, trong câu lệnh
chưa có các bước gán giá trị đầu và tăng biến điều khiển. Do vậy chúng ta phải tự bổ
sung nếu cần. Bước nhẩy của biến điều khiển là bất kỳ.
- Nếu Miền tác động có 1 lệnh thì viết ngay sau Do, nếu có từ 2 lệnh trở lên thì các
lệnh này phải đặt trong khối Begin End;
- Khôngcó dấu ; sau Do
- Các lệnh có thể lồng nhau, tuy nhiên các vòng lặp không được cắt nhau.
- Vòng lặp trong có thể kết thức trước khi giá trị của biến điều khiển nhận giá trị “sai”
và chuyển ra vòng lặp ngoài, tuy nhiên không thể chuyển từ vòng lặp ngoài vào vòng
lặp trong.
- Lệnh While Do là loại lệnh kiểm tra trước,thực hiện sau, do vậy có thể không có
vòng lặp nào được thực hiện.
Ví dụ: - Các ví dụ minh hoạ cho câu lệnh:
+ WHILE i <= n DO T:= T + i / X[i] ;
+ WHILE Hoi = ‘C’ DO
Begin
Write (‘Nhap du lieu ‘);
Readln ( SV [i]. Hoten, SV [i] . Diem);
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
Bộ môn Tin học Xây dựng 28
Readln (Hoi) ;
End;
+ i:= 1 ;
WHILE i <= n DO
Begin
Write (’ A[ ’ , i , ’ ] = ’); Readln ( A[i] );
T:=T + A[i] ; i := i+ 1
End;
3. Câu lệnh lặp với điều kiện kiểm tra sau - REPEAT (REPEAT UNTIL)
Khái niệm: Lệnh Repeat Until dùng cho cả 2 dạng bài toán lặp với số lần lặp đã xác
định và không xác định.
Cấu trúc lệnh :
Repeat Until ;
Giải thích các đại lượng :
- Biểu thức điều kiện là biểu thức so sánh hoặc Logic, kết quả của nó chỉ nhận một trong
2 giá trị đúng hoặc sai.
- Miền tác động của lệnh (Các lệnh lặp nằm giữa Repeat và Until) có thể là 1 hoặc nhiều
lệnh, các lệnh này sẽ được thực hiện khi điều kiện là sai.
Cách thực hiện của lệnh: Khi gặp lệnh, chương trình thực hiện ít nhất một lần các
lệnh trong miền tác động (giữa Repeat tới Until), sau đó kiểm tra giá trị của BTĐK,
các lệnh sẽ được thực hiện lặp lại khi giá trị của biểu thức điều kiện là “sai” và sẽ
dừng thực hiện ngay khi giá trị của BTĐK nhận giá trị “đúng” .
Các lưu ý :
- Khi sử dụng lệnh Repeat .. Until cho các thuật toán chu trình phải chú ý, trong câu
lệnh chưa có các bước gán giá trị đầu và tăng biến điều khiển. Do vậy chúng ta phải
tự bổ sung nếu cần. Bước nhẩy của biến điều khiển có thể là bất kỳ.
- Miền tác động của lệnh không phải đặt trong khối Begin End;
- Các lệnh có thể lồng nhau, tuy nhiên các vòng lặp không được cắt nhau.
- Vòng lặp trong có thể kết thúc trước khi giá trị của biểu thức điều kiện nhận giá trị
“đúng” và chuyển ra vòng lặp ngoài, tuy nhiên không thể chuyển từ vòng lặp ngoài
vào vòng lặp trong.
- Lệnh Repeat Until là loại lệnh thực hiện trước, kiểm tra sau, do vậy các lệnh lặp sẽ
thực hiện ít nhất 1 lần.
Ví dụ: - Các ví dụ minh hoạ cho câu lệnh:
+ REPEAT
T:= T + i / X[i]
Until i > n ;
+ REPEAT
Write (‘Nhap du lieu, Ho ten ‘);
Readln ( SV[i] . Hoten);
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
Bộ môn Tin học Xây dựng 29
Readln (Hoi) ;
Until Hoi = ‘K’;
+ i:= 1 ;
Repeat
Write (’ A[ ’ , i , ’ ] = ’); Readln ( A[i] );
T:=T + A[i] ; i := i+ 1
Until i > n ;
- Ví dụ sử dụng cả 3 lệnh chu trình: Cho một véc tơ A có n phần tử. Viết chương trình
tạo ra 2 véc tơ mới từ A là véc tơ B chỉ chứa các phần tử dương và véc tơ C chỉ chứa
các phần tử âm.
Program Tach_vec_to;
Var i,j,k, n: integer;
A, B, C : array [1..10] of real;
BEGIN
Write (' Nhap so phan tu n= ');
Readln (n);
i:=1; { Nhap du lieu mang A – su dung Repeat }
Repeat
Write (' Nhap gia tri cua phan tu thu A[ ', i, ' ] : ' );
Readln (a[i]);
i:= i+ 1
Until i >n ;
{ Tach vec to – Su dung While Do }
i:=1; j:= 1 ; k:= 1;
While i<= n Do
Begin
If a[i] > 0 Then
Begin
J:= j + 1;
B [j] := A[i]
End
Else If a[i] <0 Then
Begin
k := k + 1 ;
C [k] := A [i]
End;
i:= i+ 1 ;
End;
{ In ket qua - Su dung For }
If j 0 Then
Begin Writeln ( ’ Cac phan tu cua vec to B’ );
For i:= 1 to J Do Write (B [i] :6:1);
Writeln;
End
Else Writeln ( ’ Khong co phan tu duong trong vec to A ’ );
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
Bộ môn Tin học Xây dựng 30
If k 0 Then
Begin Writeln ( ’ Cac phan tu cua vec to B’ );
For i:= 1 to k Do Write (C [i] :6:1);
Writeln;
End
Else Writeln ( ’ Khong co phan tu am trong vec to A ’ );
Readln
END.
IV. Dữ liệu kiểu bản ghi (Record) và ứng dụng:
1. Khái niệm: Khác với một số dữ liệu đã biết ở các phần trước như mảng, tập hợp là
các phần tử phải cùng kiểu, Bản ghi là cách đơn giản để kết hợp nhiều dữ liệu có các
kiểu khác nhau thành một kiểu mới do người dùng tự định nghĩa.
Đặc điểm của dữ liệu bản ghi :
- Mỗi bản ghi có một tên chung và mỗi mục dữ liệu trong BG được gọi là một trường
(field). Mỗi trường có thể có kiểu bất kỳ.
- Mỗi bản ghi có thể có nhiều trường, trong các trường lại có thể có trường con.
- Bản ghi có thể có cấu trúc không đổi hoặc thay đổi.
- Các bản ghi có thể lồng nhau (trong các trường lại là một bản ghi khác).
- Trước khi làm việc với dữ liệu bản ghi, chúng ta phải khai báo chúng.
2. Khai báo dữ liệu kiểu bản ghi:
Khai báo trực tiếp Khai báo gián tiếp
Var
Tên_bản_ghi : Record
Tên_trường_1: Kiểu;
Tên_trường_2: Kiểu;
. . . . . .
Tên_trường_n: Kiểu;
End;
Type
Tên_bản_ghi = Record
Tên_trường_1: Kiểu;
Tên_trường_2: Kiểu;
. . . . .
Tên_trường_n: Kiểu;
End;
Var Danh_sách_biến_BG : Kiểu_bản_ghi;
Trong đó: tên của bản ghi và tên trường tuân theo qui định đặt tên của Pascal. Kiểu phải
là một trong các kiểu vô hướng, mảng hoặc một kiểu mới đã khai báo trước đó.
- Minh họa: + Tạo và khai báo 1 bản ghi để lưu trữ dữ liệu cho từng cán bộ trong một
cơ quan bao gồm các thông tin: Họ tên, Địa chỉ, năm sinh, lương, giới tính, tình trạng gia
đình:
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
Bộ môn Tin học Xây dựng 31
Type
TTHS = Record
Ho_ten : string [ 25];
D_chi : string [ 40 ];
N_sinh: integer;
Luong : real ;
G_tinh : Char ;
TTGD : integer
End ;
+ Để lưu trữ dữ liệu cho cả cơ quan có m người, dùng một mảng Ho_so, trong đó mỗi
phần tử của mảng là một record có cấu trúc TTHS và khai báo mảng qua Var như sau:
Var Ho_so : Array [1.. m] of TTHS ; ( m là hằng số)
3. Truy nhập dữ liệu bản ghi:
Để truy nhập bản ghi cũng sử dụng các lệnh Read, Write và các lệnh chu trình. Muốn
nhập hoặc xuất dữ liệu bản ghi, phải làm việc với từng trường thông qua các biến bản
ghi. Cấu trúc lệnh như sau:
Read[ln] ( Biến_bản_ghi. Trường1. trường1_1);
Write[ln] ( Biến_bản_ghi. Trường1. trường1_1);
Biến bản ghi có thể là biến đơn hoặc biến mảng.
- Nhập dữ liệu cho từng cán bộ vào mảng hồ sơ của cơ quan khai báo ở trên như sau:
For i:= 1 to m Do
Begin
Writeln ( ’ Dua vao Ho ten, Dia chi cua can bo thu’ , i , ’: ’ );
Readln (Ho_so [i] . Ho_ten, Ho_so[i] . D_chi );
End;
- In lên màn hình danh sách cán bộ gồm Họ tên, Năm sinh, Lương của cả cơ quan :
For i:= 1 to m Do
Writeln(Ho_so [i].Ho_ten :25, Ho_so[i].N_sinh :6, Ho_so[i].Luong :8:2);
4. Tính toán, xử lý dữ liệu bản ghi:
Để tính toán, xử lý các dữ liệu bản ghi, có thể dùng tất cả các lệnh của Pascal như các
lệnh điều khiển, lệnh chu trình, lệnh gán
Tuy nhiên trong các câu lệnh với kiểu bản ghi thường xuyên phải nhắc lại tên của biến,
tên trường làm câu lệnh dài, rườm rà Trong Pascal có thể dùng câu lệnh With để khắc
phục điều này. Khi sử dụng With thì các tham số không cần xuất hiện
trong các câu lệnh đựoc phủ trong miền With.
Cấu trúc của lệnh With
WITH Tên_biến_bản_ghi . Tên_trường . [tên_trường . . .] DO
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
Bộ môn Tin học Xây dựng 32
Viết lại các câu lệnh trên dùng With
For i:= 1 to m Do With Ho_so[i] Do
Writeln (Ho_ten: 25,N_sinh: 6, Luong: 8:2);
5. Ví dụ:
Các ví dụ minh hoạ cho câu lệnh:
Khai báo gián tiếp bản ghi đơn Khai báo bản ghi kép
Type
SV = Record
HT : string [15];
D : array [ 1.. 50 ] of real ;
TB : real;
PL : Char;
End ;
VT = array [1..60] of SV ;
Var
DS1,DS2 : VT ;
Type
HT = Record
Ho : String [15] ;
Dem : String [10] ;
Ten : String [15] ;
End;
SV = Record
Hoten : HT;
D : array [ 1.. 50 ] of real ;
TB : real;
PL : Char;
End ;
Var DS : array [1..60] of SV;
Các bài tập ví dụ:
- Bài tập 1: Cho một lớp học sinh, biết mã số SV, tên và điểm thi 3 môn của 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à
sắp xếp lại danh sách theo điểm trung bình tăng dần .
Program Vi_du_Ban_ghi_Sapxep;
type sinhvien = record
masv:string[10];
tensv: string[30];
dt,dl,dh,dtb:real;
end;
var
temp:sinhvien;
sv:array[1..100] of sinhvien;
n, i, j: integer;
BEGIN
{Nhap du lieu n sinh vien}
write('Nhap so sinh vien:');
readln(n);
for i:=1 to n do
begin
writeln('Nhap thong tin cua sv thu ' , i);
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
Bộ môn Tin học Xây dựng 33
write('Ma sv:'); readln(sv[i].masv);
write('Ten sv:'); readln(sv[i].tensv);
write('Diem toan:'); readln(sv[i].dt);
write('Diem ly:'); readln(sv[i].dl);
write('Diem hoa:'); readln(sv[i].dh);
sv[i].dtb := (sv[i].dt+sv[i].dl+sv[i].dh)/3;
end;
{in ra danh sach sinh vien vua nhap}
writeln;
writeln(' Danh sach sinh vien vua nhap');
writeln(' STT ','Masv':5,'Tensv':10,' DT DL DH DTB');
for i:=1 to n do
writeln(i:4, sv[i].masv:5, sv[i].tensv:10, sv[i].dt:6:1, sv[i].dl:6:1, sv[i].dh:6:1,
sv[i].dtb:6:1);
{sap xep danh sach sinh vien theo diem trung binh tang dan}
for i:= 1 to n do
for j:=i+1 to n do
if (sv[i].dtb >sv[j].dtb) then
begin
temp:=sv[i];
sv[i]:=sv[j];
sv[j]:=temp;
end;
{in ket qua sau danh sach sinh vien sau khi sap xep}
writeln;
writeln(' Danh sach sinh vien sap theo thu tu dtb tang dan');
writeln(' STT ','Masv':5,'Tensv':10,' DT DL DH DTB');
for i:=1 to n do
writeln(i:4, sv[i].masv:5, sv[i].tensv:10, sv[i].dt:6:1, sv[i].dl:6:1, sv[i].dh:6:1,
sv[i].dtb:6:1);
readln;
END.
- 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 thi m môn của
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
Bộ môn Tin học Xây dựng 34
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 n20 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;
writeln;
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
Bộ môn Tin học Xây dựng 35
if n30 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.
- Lập danh sách những người có điểm trung bình các môn >8 .
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
Bộ môn Tin học Xây dựng 36
- 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).
Các file đính kèm theo tài liệu này:
- giao_trinh_mon_hoc_nhap_mon_tin_hoc_phan_iii_ngon_ngu_lap_tr.pdf