Góc học tập khoa CNTT - ĐHXD
ầ
ế Ph n A: Lý thuy t
a) CPU
ủ ậ ộ ứ Câu 1: Các b ph n ch c năng c a máy tính ?
ộ ỉ ủ ệ
ố ọ ự ề ể ồ ờ
ố ử ệ ự ệ ệ ụ Là kh i x lý trung tâm, là b ch huy c a máy tính. Nó có nhi m v th c hi n các phép tính s h c và logic đ ng th i đi u khi n các quá trình th c hi n l nh.
Có 3 b ph n chính :
ậ ộ
Kh i tính toán s h c ALU : Th c hi n h u h t các thao tác,
ệ ế ầ ố ự
ủ ệ ố ố ọ ọ phép tính quan tr ng c a h th ng.
ể
ố ớ ệ ị Kh i đi u khi n CU : quy đ nh dãy thao tác c n làm đ i v i h ệ ố ố ầ ọ ề ằ ề ể ệ ạ th ng b ng cách t o ra tín hi u đi u khi n m i vi c.
ư ữ ạ ờ ệ Các thanh ghi : l u tr thông tin t m th i trong quá trình làm vi c
ủ c a CPU
b) B nhộ
Chia ra làm 2 lo i :ạ
ớ
B nh trong : ROM, RAM
ộ ớ
ộ ổ ứ ớ B nh ngoài : c ng, USB, CD, VCD…
c) Các thi
ế ị t b vào ra
Các thi
ế ị ộ t b vào : chu t, bàn phím…
Thi
ế ị t b ra : màn hình, máy in…
Câu 2 : So sánh ROM và RAM
ROM
ỉ ộ ể
ươ ữ ươ ượ ể ọ + Ch có th đ c thông tin ra ữ ư ấ ả + Do nhà s n xu t ghi vào, l u tr ố ị ch ng trình c đ nh.
ạ ử ụ ươ
1https://www.facebook.com/groups/CNTT.NUCE/
ữ ệ ị ấ ắ ị ấ + D li u không b m t đi khi t t RAM ễ ọ + Có th ghi vào, đ c ra m t các d dàng. ể ư ng trình + Đ c dung đ l u tr ch ữ ờ ạ t m th i khi chúng đang ch y và d ệ ượ li u đ ắ + Khi t ng trình s d ng. c ch ữ ệ t máy d li u b m t đi.
Góc học tập khoa CNTT - ĐHXD
máy.
ắ ả ệ ử ằ ộ i m t bài toán b ng máy tính đi n t ? Câu 3 : Nguyên t c gi
ướ ồ G m 5 b c :
ậ ứ 1. L p công th c cho bài toán
ươ ọ 2. Ch n ra ph ng pháp gi ả ố i t ấ t nh t
3. L p s đ thu t toán
ậ ơ ồ ậ
4. Vi
ế ươ ữ ậ ằ t ch ng trình b ng ngôn ng l p trình
5. Th c hi n ch
ự ệ ươ ng trình trên máy
ệ ế ữ ể ổ ở ệ ơ ố h c s 2 Câu 4 : Chuy n đ i gi a các h đ m và các phép tính
Ví d :ụ
(571)8=5.82+7.81+1.80=(377)10
(F5)16=15.161+5.160=(245)10
(FA5C)16=15.163+10.162+5.161+12.160=(64092)10
ạ ể ừ ơ ố ơ ố ừ ơ ố c s 10 sang c s 2, t c s 10 sang c ơ
+ Ngoài ra còn có các d ng chuy n t ệ ế ố s 8… và các h đ m khác
ứ ệ ạ ở ệ ơ ố ừ ộ ự + D ng th 2 là th c hi n các phép tính h c s 2 :c ng, tr , nhân, chia.
ủ ấ ộ ươ ụ ng trình pascal ? cho ví d ? Câu 5 : C u trúc c a m t ch
G m 3 ph n
ầ ồ
1. Tiêu đ c a ch
ề ủ ươ ng trình
2. Khai báo
Program tenchuongtrinh;
Uses
Lable
2https://www.facebook.com/groups/CNTT.NUCE/
Const
Góc học tập khoa CNTT - ĐHXD
Var
Type
Function
Procedure
3. Thân ch
ươ ng trình
Begin
{….}
End.
Ví d : vi
ụ ế ươ ệ t ch ng trình tính di n tích hình tròn bán kính R
Program VD;
Const PI=3.14;
Var R,S :real;
Begin
Write(‘Nhap ban kinh : ‘);readln(R);
S:=PI*R*R;
Writeln(‘Dien tich hinh tron la : ‘,S:6:1);
Readln;
End.
ế ứ ằ ữ ậ ể t bi u th c b ng ngôn ng l p trình pascal Câu 6 : Vi
Ví d : ụ
α β Y=sin( )+arctg( )+
Vi ế ạ t l i thành :
3https://www.facebook.com/groups/CNTT.NUCE/
Y:=sin(alpha)+arctan(beta)+1/sqrt(sqr(A)+sqrt(1+sqr(A)+sqrt(1+sqr(B)+sqr(A))))
Góc học tập khoa CNTT - ĐHXD
ị ế ụ t ? cho ví d ? ặ Câu 7 : Nêu các vòng l p xác đ nh mà em đã bi
Có 2 vòng l p xác đ nh :
ặ ị
1. For
ị ố ị ầ ề ế ệ
2. For
ị ố ị ầ ề ệ
ế
do
ế ố ừ ỗ ố ằ ụ Ví d 1 : Vi t ra màn hình các s t 50>24, m i s n m trên 1 dòng
Var i:integer;
Begin
For i:=50 downto 24 do
Writeln(i);
Readln;
End.
ữ ừ ữ ỗ t ra màn hình các ch cái t ‘a’>’z’ m i ch cái cách
ế ụ Ví d 2 : Vi ộ ấ nhau m t d u cách.
Var i:char;
Begin
For i:=’a’ to ‘z’ do
Write(I,’ ‘);
Readln;
End.
Câu 8 : So sánh repeat …until… và while…do…? Cho ví d ụ
Gi ng nhau : Đ u là vòng l p không xác đ nh
Khác nhau :
4https://www.facebook.com/groups/CNTT.NUCE/
ề ặ ố ị
Góc học tập khoa CNTT - ĐHXD
Repeat…until… While…do…
ể
ể Repeat
5https://www.facebook.com/groups/CNTT.NUCE/
ứ
While
Góc học tập khoa CNTT - ĐHXD
ệ ệ ự ế ể ứ
ể ứ ệ
ị ướ ự ừ ị ể
ề ệ ề ự ệ ớ + Th c hi n công vi c cho đ n khi bi u th c Boolean có giá tr TRUE. ử ệ ệ + Th c hi n công vi c tr c và th đi u ki n Boolean sau. + Ch ng nào bi u th c boolean có ệ ự giá tr TRUE thì th c hi n công vi c. ệ ướ + Ki m tra đi u ki n Boolean tr c ệ sau đó m i th c hi n công vi c.
Ví d : tính t ng các s t
6https://www.facebook.com/groups/CNTT.NUCE/
ố ừ ụ ổ 1>N
Góc học tập khoa CNTT - ĐHXD
Repeat…until… While…do…
S:=0;i:=1; Repeat S:=S+i; i:=i+1; Until i>N;
Chú ý :
S:=0;i:=1; While (i<=N) do Begin S:=S+i; i:=i+1; end;
ữ ữ ặ
+ Ngoài ra còn có các câu so sánh gi a vòng l p for và while, gi a for và repeat.
ị ặ + Nêu các vòng l p không các đ nh
ặ
ươ ươ ế ằ ằ ụ ừ ặ ng trình vi ng trình trên b ng vòng l p khác. Ví d t t b ng vòng l p for,while,repeat sau repeat
7https://www.facebook.com/groups/CNTT.NUCE/
ạ ộ + Cho m t đo n ch ạ ế ạ i đo n ch t l đó vi ế ạ ằ i b ng while t l vi
Góc học tập khoa CNTT - ĐHXD
ơ ồ ế ạ ậ ế ạ ằ ặ + D ng ti p theo cho s đ thu t toán và vi i b ng vòng l p t l
ả ộ ụ Câu 9 : Cách khai báo m t m ng ? cho ví d
M ng m t chi u : có 2 cách khai báo
1. Gián ti pế
ề ả ộ
ỉ ẫ ể Type KieumangT=array[Ki u ch d n] of kieuphantu;
Var A:KieumangT;
Ví d :ụ
Type A=array[3..7] of integer;
Var B:A;
ự ế 2. Tr c ti p
ỉ ẫ ể ể Var A:array[Ki u ch d n] of ki u ph n t ầ ử ;
Ví d :ụ
Var B:array[3..7] of integer;
M ng nhi u chi u ( đây ch xét đ n m ng 2 chi u) : Cách khai báo
ề ế ả ỉ
1. Gián ti pế
ả ươ t ng t ề ề ở ề ự ả m ng 1 chi u
Type PT:array[1..5] of real;
Var MPT:array[1..3] of PT;
ự ế 2. Tr c ti p
Var MPT:array[1..3,1..5] of real;
Khai báo :
8https://www.facebook.com/groups/CNTT.NUCE/
ả ụ Câu 10 : Cách khai báo b n ghi ? cho ví d
Góc học tập khoa CNTT - ĐHXD
Type tenkieubanghi=record
S1:T1;
S2:T2;
…..
Sn:Tn;
End;
Var bien:tenkieubanghi;
ả ể ươ ứ Trong đó : T1,T2,...Tn là các mô t ki u t ng ng
Ví d :ụ
S1,S2,…Sn là danh sách các tr ngườ
Type sinhvien=record
Ht:string[30];
Dt:array[1..20] of real;
DTB:real;
End;
Var sv:array[1..50] of sinhvien;
ủ ụ ể ữ ệ ư Câu 11 : Đ a ra các th t c đ ghi d li u cho t pệ ? cho ví dụ
1. M t p đ ghi
ở ệ ể
Assign(bientep,tentep);
Rewrite(bientep);
ị ệ 2. Ghi các giá tr vào t p
3. Đóng t pệ
9https://www.facebook.com/groups/CNTT.NUCE/
Write(Bientep,item1,item2,…,itemN);
Góc học tập khoa CNTT - ĐHXD
Close(bientep);
Ví d : T o m t t p ch a các s nguyên t
ộ ệ ứ ố ừ ướ ạ 1>100 ghi d i d ng
ạ ụ nguyen.dat
Var f:file of integer;
i:integer;
Begin
Assign(f,’nguyen.dat’);
Rewrite(f);
For i:=1 to n do
Write(f,i);
Close(f);
End.
ủ ụ ể ọ ữ ệ ư Câu 12 : Đ a ra các th t c đ đ c d li u cho t pệ ? cho ví dụ
ở ệ ể ọ 1. M t p đ đ c
Assign(bientep,tentep);
Reset(bientep);
2. Đ c d li u t
ọ ữ ệ ừ ệ t p
3. Đóng t pệ
Read(bientep,var1,var2,…,varN);
Close(bientep);
Ví d : Cho t p nguyen.dat ch a các s nguyên. Đ c ph n t
ọ ầ ử ứ ấ th nh t
ứ ế ệ ụ ầ ừ ứ và ph n t ố th 3 gán vào 2 bi n a và b
Var f:file of integer;
10https://www.facebook.com/groups/CNTT.NUCE/
a,b:integer;
Góc học tập khoa CNTT - ĐHXD
Begin
Assign(f,’nguyen.dat’);
Reset(f);
While not eof(f) do
Begin
Read(f,a,b,b);
End;
Close(f);
End.
ủ ụ ể ữ ệ ư ệ ả ? Câu 13 : Đ a ra các th t c đ ghi d li u cho t p văn b n
1. M t p đ ghi
ở ệ ể
Assign(bientep,tentep);
Rewrite(bientep);
ị ệ 2. Ghi các giá tr vào t p
Write(bientep,item1,item2,…,itemN);
Writeln(bientep,item1,item2,…,itemN);
3. Đóng t pệ
Writeln(bientep);
Close(bientep);
ủ ụ ể ọ ữ ệ ư ệ ả ? Câu 14 : Đ a ra các th t c đ đ c d li u cho t p văn b n
ở ệ ể ọ 1. M t p đ đ c
Assign(bientep,tentep);
11https://www.facebook.com/groups/CNTT.NUCE/
Reset(bientep);
Góc học tập khoa CNTT - ĐHXD
2. Đ c d li u t
ọ ữ ệ ừ ệ t p
Read(bientep,var1,var2,…,varN);
Readln(bientep,var1,var2,…,varN);
3. Đóng t pệ
Readln(bientep);
Close(bientep);
ậ ợ ụ Câu 15 : Nêu các phép toán trong t p h p ? cho ví d
ụ ậ Ví d : cho 2 t p
A:=[1..10,15..25];
B:=[8..17,24..31];
1. Phép gán
2. Phép giao
ậ ợ Có 6 phép toán trong t p h p
3. Phép h pợ
C:=A*B=[8..10,15..17,24..25];
4. Phép hi uệ
C:=A+B=[1..31];
C:=AB=[1..7,18..23];
C:=BA=[11..14,26..31];
ộ ề ử 5. Phép th thu c v
6. Phép so sánh : >,<,<>,=
4 in A = TRUE
Không có phép so sánh >= ho c <=
12https://www.facebook.com/groups/CNTT.NUCE/
ặ
Góc học tập khoa CNTT - ĐHXD
Ví d : A:=[3,4,5]; B:=[3,4,5]
ụ A=B
ạ ậ ắ ằ ậ ợ
ệ ợ ỉ ề ậ
C:=A*B
C:=A+B
C:=AB
C:=BA
ợ ệ ủ ệ ủ ệ Chú ý : D ng đ bài cho 2 t p h p A=[…] và B=[…] và b t tìm t p C b ng các ố ớ phép toán trên t p h p thì ch có 3 phép toán : H p, giao, hi u. Riêng đ i v i phép hi u thì có hi u c a A cho B và hi u c a B cho A
ủ ấ ặ ươ ạ ng trình con d ng
ụ Câu 16 : Trình bày c u trúc chung (ho c so sánh) c a ch ủ ụ hàm và th t c ? cho ví d
13https://www.facebook.com/groups/CNTT.NUCE/
Procedure Function
Góc học tập khoa CNTT - ĐHXD
tenthutuc(Khai bao cac
ị
ế ằ ể ế ằ
ươ ươ ng trình con} ng trình con}
Procedure tham so hinh thuc neu co); {Khai báo các h ng, bi n…} Begin {Thân ch End. Function tenham(Khai bao cac tham so hinh thuc neu co):ki u giá tr hàm; {Khai báo các h ng, bi n…} Begin {Thân ch End.
ả ạ ế ả ộ ị ế ả i k t qu thông qua tên
i cho m t giá tr k t qu vô ủ
ể ế ứ ể ả ạ l ng thông qua tên c a nó. ượ ử ụ ứ ể + Không tr l ủ c a nó. + Không th vi t trong các bi u th c. + Tr ướ h + Đ c s d ng trong các bi u th c.
14https://www.facebook.com/groups/CNTT.NUCE/
Ví d : ụ
Góc học tập khoa CNTT - ĐHXD
Procedure Function
Procedure dientich(r:real;var dt:real); Begin dt:=3.14*r*r; end; Function dt(r:real):real; Begin dt:=3.14*r*r; End;
ươ ế ạ ậ t ch
ậ ạ ậ
ủ ụ ạ ệ ư + Ngoài ra còn có các d ng bài t p nh : vi ng trình tính chu vi và di n ủ tích c a m t hình nào đó vd : hình ch nh t, tam giác. Đ i v i bài t p d ng này ặ ế nên vi ố ớ ữ ố ng trình con d ng hàm ho c th t c có tham s . ộ ươ t ch
ệ ữ ế ị ụ t gi a tham bi n và tham tr ? cho ví d Câu 17 : Phân bi
ụ ạ ươ Ví d : Cho đo n ch ng trình sau
Var bk,S,P:real;
15https://www.facebook.com/groups/CNTT.NUCE/
Procedure dientich(r:real; var dt,cv:real);
Góc học tập khoa CNTT - ĐHXD
Const PI=3.14;
Begin
dt:=PI*r*r;
cv:=PI*r*2;
End;
Begin
Write(‘Nhap ban kinh : ‘);readln(bk);
Dientich(bk,S,P);
Writeln(‘Dien tich la : ‘,S:6:1,’ Chu vi la : ‘,P:6:1);
End.
Trong đó : r là tham trị
Dt,cv là các tham bi nế
ề ả ố ứ C r,dt,cv đ u là các tham s hình th c
ề ả ố ự C bk,S,P đ u là các tham s th c
16https://www.facebook.com/groups/CNTT.NUCE/
Tham trị Tham bi nế
Góc học tập khoa CNTT - ĐHXD
ầ ứ
ố ươ ầ ượ ặ
khóa var.
ố ự ể ộ ố ự
ổ ị
ươ ể
ữ ổ + là tham s hình th c trong ph n tiêu ặ ề ủ đ c a ch ng trình con không đ t ừ sau t ể + Các tham s th c có th là m t bi u ứ ể th c. Chúng có th thay đ i trong ỏ ươ ng trình con và khi ra kh i ch ươ ng trình con đó chúng không thay ch ị ổ đ i giá tr . ố ứ + là tham s hình th c trong ph n tiêu ề ủ ươ đ c a ch c đ t sau ng trình con đ ừ t khóa var. ế ả + Các tham s th c ph i là các bi n, ượ c phép là giá tr . Chúng có không đ ổ th thay đ i trong ch ng trình con và ỏ ng trình con chúng khi ra kh i ch gi ươ ị nguyên giá tr thay đ i đó.
ư ườ ng trình con xong sau đó đ a ra các tr ợ ng h p
ươ ả ẽ ư ế ạ ế + Ngoài ra còn có d ng cho ch ỏ ừ b t khóa var thì k t qu s nh th nào
ệ ụ ế ế ị ươ ụ t bi n toàn c c và bi n đ a ph ng ? cho ví d Câu 18 : Phân bi
17https://www.facebook.com/groups/CNTT.NUCE/
ế ế ị ươ ụ Bi n toàn c c Bi n đ a ph ng
Góc học tập khoa CNTT - ĐHXD
ế ượ ế ượ
ể c khai báo trong ng trình chính, chúng có th dung
ươ + là các bi n đ ươ ch ở ọ ơ m i n i trong ch ng trình.
ế c khai báo trong ỉ ng trình con và nó ch có tác ạ ươ ng trình con ng trình con k t thúc thì
ụ ế + là các bi n đ ươ ch ụ d ng trong ph m vi ch ươ đó. Khi ch ấ bi n này m t tác d ng.
ạ ươ ả ạ ạ ế ng trình sau đó tìm k t qu khi ch y đo n
18https://www.facebook.com/groups/CNTT.NUCE/
ạ ươ + D ng ti p theo là cho đo n ch ch ế ng trình đó
Góc học tập khoa CNTT - ĐHXD
ầ
ậ
Ph n B: Bài t p
var i,n : integer; x:array[1..100] of real; tong : real; begin write('n = ');readln(n); for i:=1 to n do begin write('x[',i,']= '); readln(x[i]); end; for i:=1 to n do tong:=tong+x[i]; writeln('TB = ',tong/n); readln; end.
ủ ị Bài 1 : Cho dãy x1,x2…xn. Tính giá tr trung bình c a dãy
ồ ầ ử
var i,n,k,l : integer; x,y,z : array[1..100] of real; begin write('Nhap n : ');readln(n); for i:=1 to n do begin write('x[',i,'] = '); readln(x[i]); end; for i:=1 to n do if x[i]>=0 then begin k:=k+1; y[k]:=x[i]; end else begin l:=l+1; z[l]:=x[i]; end; Writeln('Day ca phan tu >=0 la :'); for i:=1 to k do writeln('y[',i,'] = ',y[i]:4:1);
19https://www.facebook.com/groups/CNTT.NUCE/
ầ ử Bài 2 : Cho dãy x1,x2…xn. Tác dãy trên thành 2 dãy : 1 dãy g m các ph n t ồ >=0, 1 dãy g m các ph n t <0
Góc học tập khoa CNTT - ĐHXD
Writeln('Day ca phan tu <0 la :'); for i:=1 to l do writeln('z[',i,'] = ',z[i]:4:1); readln; end.
ầ ử ố ầ ề ầ >=0 v đ u, ph n
var i,n,k : integer; x,y : array[1..100] of real; begin write('Nhap n : ');readln(n); for i:=1 to n do begin write('x[',i,'] = '); readln(x[i]); end; for i:=1 to n do if x[i]>=0 then begin k:=k+1; y[k]:=x[i]; end; for i:=1 to n do if x[i]<0 then begin k:=k+1; y[k]:=x[i]; end; for i:=1 to k do writeln('y[',i,'] = ',y[i]:4:1); readln; end.
ậ ự ắ Bài 3 : Cho dãy x1,x2…xn. S p x p dãy s sao cho ph n t ầ ử ử các ph n t t ế ổ không thay đ i ề ố <0 v cu i, tr t t
var i,n,k : integer; x,y : array[1..100] of real; begin write('Nhap n : ');readln(n); for i:=1 to n do begin write('x[',i,'] = '); readln(x[i]); end; write('Nhap vi tri k :');readln(k);
20https://www.facebook.com/groups/CNTT.NUCE/
ầ ử xk Bài 4 : Cho dãy x1,x2…xn. Xóa ph n t
Góc học tập khoa CNTT - ĐHXD
for i:=k to n-1 do x[i]:=x[i+1]; for i:=1 to n-1 do writeln('x[',i,']= ',x[i]:4:1); readln; end.
ị Bài 5 : Cho dãy x1,x2…xn. Chèn M vào v trí k
Cách 1 :
var i,n,k,m : integer;
x,y : array[1..100] of real;
begin
write('Nhap n : ');readln(n);
for i:=1 to n do
begin
write('x[',i,'] = ');
readln(x[i]);
end;
write('Nhap vi tri k :');readln(k);
write('Nhap so can chen M :');readln(m);
for i:=1 to n+1 do
if i
Cách 2 : Dino
uses crt;
var i,k,m,n:integer;
a:array[1..100] of integer;
Begin
clrscr;
write('Nhap so phan tu day: ');
readln(n);
For i:=1 to n do
begin
write('A[',i,']= ');
readln(a[i]);
end;
21https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
write('Nhap vi tri k: ');
readln(k);
write('Nhap so m: ');
readln(m);
for i:=n downto k do a[i+1]:=a[i];
a[k]:=m;
writeln('Day sau khi chen la: ');
for i:=1 to n+1 do write(a[i]:4);
readln;
End.
ể ả ả Bài 6 : Ki u m ng Cho b ng sau :
STT H tênọ Đi mể
22https://www.facebook.com/groups/CNTT.NUCE/
1 ….. m
Góc học tập khoa CNTT - ĐHXD
1..n
1. Tính đi m trung bình c a t ng sinh viên
ủ ừ ể
ữ ể ấ
2. Tìm ra nh ng sinh viên có đi m trung bình cao nh t
3. S p x p l
ế ạ ả ậ ự ắ ầ ủ ể i b ng trên theo tr t t tăng d n c a đi m trung bình
var n,m,i,j,k :integer;
ht:array[1..20] of string[20];
diem:array[1..20,1..10] of real;
tong,tb:array[1..20] of real;
tg,tg2,s,max:real;
tg1:string[20];
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
begin
write('HTSV ',i,' la ');
readln(ht[i]);
for j:=1 to m do
begin
write('DT mon ',j,' la ');
readln(diem[i,j]);
end;
end;
for i:=1 to n do
begin
23https://www.facebook.com/groups/CNTT.NUCE/
Gi i :ả
Góc học tập khoa CNTT - ĐHXD
tong[i]:=0;
for j:=1 to m do
tong[i]:=tong[i]+diem[i,j];
tb[i]:=tong[i]/m;
end;
max:=tb[1];
for i:=1 to n do
if tb[i]>max then
max:=tb[i];
write('Danh sach cac hoc sinh co TB max bang ',max:6:1,'
la :');
for i:=1 to n do
if tb[i]=max then
write(ht[i],', ');
for i:=1 to n-1 do
for k:=i+1 to n do
if tb[i]>tb[k] then
begin
tg:=tb[i];
tb[i]:=tb[k];
tb[k]:=tg;
tg1:=ht[i];
ht[i]:=ht[k];
ht[k]:=tg1;
for j:=1 to m do
begin
tg2:=diem[i,j];
diem[i,j]:=diem[k,j];
diem[k,j]:=tg2;
end;
end;
writeln('Danh sach sau khi sap xep la :');
for i:=1 to n do
begin
writeln;
write(ht[i]);
for j:=1 to m do
write(' ',diem[i,j]:4:1,' ');
end;
readln;
end.
var i,m,n,j : integer;
a:array[1..10,1..10] of real;
b1:array[1..10] of real;
24https://www.facebook.com/groups/CNTT.NUCE/
ộ ủ ừ ừ ổ Bài 7 : Cho ma tr n ậ Anxm, tính t ng t ng hàng, t ng c t c a ma tr n
ậ
Góc học tập khoa CNTT - ĐHXD
b2:array[1..10] of real;
begin
write('Nhap so hang : ');readln(n);
write('Nhap so cot : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
for i:=1 to n do
b1[i]:=0;
for i:=1 to m do
b2[i]:=0;
for i:=1 to n do
for j:=1 to m do
begin
b1[i]:=b1[i]+a[i,j];
b2[j]:=b2[j]+a[i,j];
end;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(a[i,j]:4:1,' ');
end;
writeln;
writeln('Tong tung hang la : ');
for i:=1 to n do
writeln('Hang ',i,'= ',b1[i]:4:1);
writeln('Tong tung cot la : ');
for j:=1 to m do
writeln('Cot ',j,'= ',b2[j]:4:1);
readln;
end.
var i,m,n,k,j:integer;
a:array[1..100,1..100] of real;
begin
write('Nhap so hang :');readln(n);
write('Nhap so cot :');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
25https://www.facebook.com/groups/CNTT.NUCE/
ứ ủ ậ Bài 8 : Cho ma tr n ậ Anxm, xóa hàng th k c a ma tr n.
Góc học tập khoa CNTT - ĐHXD
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
write('Nhap hang can xoa :');readln(k);
for j:=1 to m do
for i:=k to n-1 do
a[i,j]:=a[i+1,j];
for i:=1 to n-1 do
for j:=1 to m do
writeln('a[',i,',',j,']= ',a[i,j]:4:1);
readln;
end.
ấ ủ ậ ầ
var n,m,i,j,max,k : integer;
x:array[1..10,1..10] of integer;
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('x[',i,',',j,']= ');
readln(x[i,j]);
end;
k:=1; max:=x[1,1];
for i:=1 to n do
for j:=1 to m do
if x[i,j]>max then
begin
max:=x[i,j];
k:=i;
end;
for j:=1 to m do
for i:=k to n-1 do
x[i,j]:=x[i+1,j];
for i:=1 to n-1 do
begin
writeln;
for j:=1 to m do
write(x[i,j],' ') ;
end;
readln;
end.
26https://www.facebook.com/groups/CNTT.NUCE/
ứ ấ Bài 9 : Cho ma tr n ậ Anxm tìm giá tr l n nh t c a ma tr n, xóa hàng đ u tiên
ị ớ
ị ớ
ch a giá tr l n nh t đó.
Góc học tập khoa CNTT - ĐHXD
ộ ầ ấ ủ ậ
var i,j,m,n,k,max:integer;
a:array[1..10,1..10] of integer;
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
k:=1; max:=a[1,1];
for j:=1 to m do
for i:=1 to n do
if a[i,j]>max then
begin
max:=a[i,j];
k:=j;
end;
for i:=1 to n do
for j:=k to m-1 do
a[i,j]:=a[i,j+1];
for i:=1 to n do
begin
writeln;
for j:=1 to m-1 do
write(a[i,j],' ');
end;
readln;
end.
ứ ấ Bài 10: Cho ma tr n ậ Anxm tìm giá tr l n nh t c a ma tr n, xóa c t đ u tiên
ị ớ
ị ớ
ch a giá tr l n nh t đó.
ị ỏ
var i,j,k,n,m:integer;
a : array[1..50,1..50] of real;
y : array[1..50,1..50] of real;
b:array[1..100] of real;
min:real;
begin
write('Nhap so hang: ');readln(n);
27https://www.facebook.com/groups/CNTT.NUCE/
ầ ử
ỏ
ị ấ ủ ứ ậ ấ ố Bài 11: Cho ma tr n ậ Anxm và vecto B[b1,b2,…,bn] (có n ph n t ) tìm giá tr nh
ộ
nh t c a ma tr n, chèn vecto B vào c t cu i cùng ch a giá tr nh nh t đó
Góc học tập khoa CNTT - ĐHXD
write('Nhap so cot : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
min:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if min>a[i,j] then
min:=a[i,j];
writeln('Gia tri nho nhat la : ',min:4:1);
for j:=1 to m do
for i:=1 to n do
if min=a[i,j] then
k:=j;
writeln('vi tri cuoi cung o cot :',k);
writeln('Nhap ma tran vecto B');
for i:=1 to n do
begin
write('b[',i,']= ');
readln(b[i]);
end;
for i:=1 to n do
for j:=1 to m+1 do
if j
write(y[i,j]:4:1,' ');
end;
readln;
end.
28https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
ầ ử
var i,j,k,n,m:integer;
a : array[1..50,1..50] of real;
y : array[1..50,1..50] of real;
b:array[1..100] of real;
begin
write('Nhap so hang: ');readln(n);
write('Nhap so cot : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
write('Nhap vi tri hang can chen : ');
readln(k);
If (1<=k) and (k<=n+1) then
begin
writeln('Nhap ma tran vecto B');
for i:=1 to m do
begin
write('b[',i,']= ');
readln(b[i]);
end;
for j:=1 to m do
for i:=1 to n+1 do
if i
write(y[i,j]:4:1,' ');
end;
end
else
writeln('K ko co thuoc hang can chen ');
readln;
end.
29https://www.facebook.com/groups/CNTT.NUCE/
Bài 12: Cho ma tr n ậ Anxm và vecto B[b1,b2,…,bm] (có m ph n t ). Chèn vecto B
vào hàng th kứ
Góc học tập khoa CNTT - ĐHXD
ầ ử ươ ng trong tam giác trên và tích
var i,j,n,k:integer;
a:array[1..50,1..50] of real;
tong,tich:real;
begin
write('Nhap so hang ma tran NxN : ');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
tong:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i,j]>=0 then
tong:=tong+a[i,j];
tich:=1;
for i:=2 to n do
for j:=1 to i-1 do
if a[i,j]<0 then
k:=k+1;
if k=0 then
tich:=0
else
for i:=2 to n do
for j:=1 to i-1 do
if a[i,j]<0 then
tich:=tich*a[i,j];
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write(a[i,j]:4:1,' ');
end;
writeln;
writeln('tich cac pt am tam giac duoi la : ',tich:4:1);
writeln('tong cac pt tam giac tren la : ',tong:4:1);
if tong>tich then
writeln(' Tong lon hon tich')
else if tong=tich then
writeln(' Tong bang tich ')
30https://www.facebook.com/groups/CNTT.NUCE/
ầ ử Bài 13: Cho ma tr n ậ Anxm tìm t ng ph n t
ổ
ướ
âm trong tam giác d
các ph n t d
ổ
i. So sánh t ng và tích
Góc học tập khoa CNTT - ĐHXD
else
writeln('Tong be hon tich');
readln;
end.
ể ả ả Bài 14 : Ki u b n ghi Cho b ng sau :
ể STT H tênọ Đi m danh
31https://www.facebook.com/groups/CNTT.NUCE/
1 ….. m
Góc học tập khoa CNTT - ĐHXD
1…n
1. Đ m s bu i đi h c, ngh h c có phép, ngh h c không phép
ỉ ọ ỉ ọ ế ố ọ ổ
2. Đ a ra nh ng sinh viên không đ
ỉ ọ
ượ ữ ế ề ượ c thi bi ệ
t đi u ki n không đ c thi là
ổ ư
ố
s bu i ngh h c không phép >= 20%m
uses crt;
type sinhvien=record
ten:string[20];
dd:array[1..20] of char;
dh,cp,kp:integer;
tt:string[15];
end;
var m,n,i,j:integer;
sv:array[1..100] of sinhvien;
Begin
clrscr;
write('Nhap so hoc sinh: ');
readln(n);
write('Nhap so buoi hoc: ');
readln(m);
writeln('Nhap thong tin di hoc cua tung sinh vien:');
for i:=1 to n do
with sv[i] do
begin
writeln('Hoc sinh thu ',i);
write('Ho ten: ');
32https://www.facebook.com/groups/CNTT.NUCE/
ả Gi i : (Dino)
Góc học tập khoa CNTT - ĐHXD
readln(ten);
dh:=0;
kp:=0;
cp:=0;
for j:=1 to m do
begin
write('Buoi ',j,': ');
readln(dd[j]);
if dd[j]='k' then kp:=kp+1
else if dd[j]='p' then cp:=cp+1
else dh:=dh+1;
end;
end;
writeln('Danh sach thong tin di hoc cua sinh vien la: ');
writeln('STT':4,'Ho ten':20,'Di hoc':8,'Khong phep':12,'Co
phep':9,'Trang thai':18);
for i:=1 to n do
with sv[i] do
begin
write(i:4,ten:20,dh:8,kp:12,cp:9);
if kp/m>0.2 then write('Khong duoc thi':18)
else write('Duoc thi':18);
writeln;
end;
readln;
End.
ủ ọ
ả
ả
ế
ườ ộ ớ
ướ ệ
c t p văn b n TEN.TXT ghi h tên sinh viên c a m t l p,
Bài 15 : Cho tr
ườ
ỗ
ọ
trong đó h tên m i ng
i chi m 1 dòng và t p văn b n DIEMDANH.TXT ghi
ỗ
ủ
ả ể
ế
k t qu đi m danh c a m i ng ệ
ắ
i theo quy t c :
ấ ắ ặ ắ + Có m t đánh d u “c”; v ng có lý do “v”; v ng không lý do “k”
ủ ể ấ ỗ ượ + Đánh d u đi m danh c a m i sinh viên đ ế
c ghi liên ti p trên 1 dòng
ẽ ơ ồ ế ươ ậ
V s đ thu t toán và vi t ch ể
ng trình pascal đ
ố ố ổ ọ ố ố ớ ừ
ổ ắ
1. Th ng kê s bu i đi h c, s bu i v ng (có và không lý do) đ i v i t ng
sinh viên.
ữ ậ ọ ố ổ ỉ ặ
2. L p danh sách nh ng sinh viên đi h c chăm ch nh t (có s bu i có m t
ấ ế ấ
ư ế
t co bao nhiêu sinh viên nh th . cao nh t) và hãy cho bi
3. K t qu ghi vào t p ketqua.txt theo quy cách sau
33https://www.facebook.com/groups/CNTT.NUCE/
ệ ế ả
Góc học tập khoa CNTT - ĐHXD
M i sinh viên chi m 1 dòng g m các thông tin
ế ỗ ồ
ấ ặ ấ ọ ố
ố
ổ
ổ ắ ổ ắ ặ ấ ặ ố ấ
STT(2 d u cách)h tên sv(2 d u cách)s bu i có m t(2 d u cách)s
bu i v ng m t có lý do(2 d u cách)s bu i v ng m t không lý do
Các dòng ti p theo : H tên sinh viên chăm ch nh t (h tên m i sinh
ế ấ ọ ọ ỗ ỉ
ế viên vi t trên 1 dòng)
ố ố ọ ỉ ấ
Dòng cu i cùng : s sinh viên đi h c chăm ch nh t
type sinhvien=record
ht:string[30];
diemdanh:array[1..10] of char;
dh:integer;
nh:integer;
cp:integer;
end;
var sv:array[1..20] of sinhvien;
sv1:array[1..20] of sinhvien;
i,j,m,n,k,t,max:integer;
f1,f2,f3:Text;
begin
assign(f1,'ten.txt');
reset(f1);
i:=0;
while not eof(f1) do
begin
i:=i+1;
readln(f1,sv[i].ht);
end;
n:=i;
close(f1);
assign(f2,'diemdanh.txt');
reset(f2);
i:=0;
while not eof(f2) do
begin
i:=i+1;
j:=0;
while not eoln(f2) do
begin
j:=j+1;
read(f2,sv[i].diemdanh[j]);
end;
34https://www.facebook.com/groups/CNTT.NUCE/
Gi i :ả
Góc học tập khoa CNTT - ĐHXD
readln(f2);
end;
m:=j;
close(f2);
for i:=1 to n do
begin
sv[i].dh:=0;
sv[i].cp:=0;
sv[i].nh:=0;
for j:=1 to m do
if sv[i].diemdanh[j]='c' then
sv[i].dh:=sv[i].dh+1
else if sv[i].diemdanh[j]='v' then
sv[i].cp:=sv[i].cp+1
else
sv[i].nh:=sv[i].nh+1;
end;
max:=sv[1].dh;
for i:=1 to n do
if sv[i].dh>max then
max:=sv[i].dh;
for i:=1 to n do
if sv[i].dh=max then
begin
t:=t+1;
sv1[t]:=sv[i];
end;
write('Thong ke so buoi di hoc cua sinh vien');
for i:=1 to n do
begin
writeln;
write(i,' ',sv[i].ht:10,' ');
for j:=1 to m do
write(sv[i].diemdanh[j],' ');
write(sv[i].dh,' ',sv[i].nh,' ',sv[i].cp);
end;
writeln;
write('Co ',t,' sinh vien di hoc cham chi nhat : ');
for i:=1 to t do
begin
writeln;
write(i,' ',sv1[i].ht:10);
end;
35https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
assign(f3,'ketqua.txt');
rewrite(f3);
for i:=1 to n do
begin
write(f3,i,' ',sv[i].ht:10,' ');
write(f3,sv[i].dh:1,' ',sv[i].cp:1,' ',sv[i].nh:1);
writeln(f3);
end;
for k:=1 to t do
writeln(f3,sv1[k].ht);
write(f3,'so sv di hoc cham chi nhat la : ',t);
close(f3);
readln;
end.
ả ủ ộ ủ ọ
ườ ủ ộ ủ ệ ộ ọ
ệ ộ ng đi n các h tiêu th trong tháng, trong đó s l
ụ ủ ệ ộ
c t p văn b n TEN.TXT ghi h tên các ch h c a m t
ả
ng, trong đó m i dòng ghi h tên c a m t ch h và t p văn b n
ố ượ
ụ
ng
ố ượ
ng đi n các tháng ghi cách nhau
ệ
ấ ướ ệ
Bài 16 : Cho tr
ỗ
ph
ố ượ
SODIEN.TXT ghi s l
ỗ ộ
đi n tiêu th c a m i h ghi trên 1 dòng, s l
1 d u cách
ẽ ơ ồ ế ươ ể ậ
V s đ thu t toán và vi t ch ng trình pascal đ :
1. Tính s l
ố ượ ỗ ộ ủ ệ ng đi n trung bình hàng tháng c a m i h
2. L p danh sách các h trong ph
ậ ộ ườ ố ệ ụ ng có s đi n tiêu th trung bình hàng
tháng là ít nh tấ
ệ ế ả ả K t qu ghi vào t p văn b n KETQUA.TXT theo quy cách sau :
M i h gia đình chi m 1 dòng g m các thông tin sau:
ỗ ộ ế ồ
ủ ộ ấ ọ ố ượ ệ ng đi n trung bình
ấ
STT(2 d u cách)H tên ch h (2 d u cách)S l
hàng tháng c a hủ ộ
Dòng ti p theo : S đi n tiêu th trung bình ít nh t trong ph
ố ệ ụ ế ấ ườ ng
ủ ộ ế ố ượ ụ ệ ng đi n tiêu th trung
ọ ỗ ọ
Các dòng ti p theo : H tên các ch h có s l
ủ ộ ế
ấ
bình hàng tháng ít nh t, h tên m i ch h vi t trên 1 dòng
type chuho=record
ht:string[30];
36https://www.facebook.com/groups/CNTT.NUCE/
Gi i :ả
Góc học tập khoa CNTT - ĐHXD
sodien:array[1..12] of real;
tb:real;
end;
var ch:array[1..50] of chuho;
ch1:array[1..50] of chuho;
i,j,m,n,t,k:integer;
min,tong:real;
f1,f2,f3:text;
begin
assign(f1,'ten.txt');
reset(f1);
i:=0;
while not eof(f1) do
begin
i:=i+1;
readln(f1,ch[i].ht);
end;
n:=i;
close(f1);
assign(f2,'sodien.txt');
reset(f2);
i:=0;
while not eof(f2) do
begin
i:=i+1;
j:=0;
while not eoln(f2) do
begin
j:=j+1;
read(f2,ch[i].sodien[j]);
end;
readln(f2);
end;
m:=j;
close(f2);
for i:=1 to n do
begin
tong:=0;
for j:=1 to m do
tong:=tong+ch[i].sodien[j];
ch[i].tb:=tong/m;
end;
min:=ch[1].tb;
for i:=1 to n do
37https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
if ch[i].tb
t:=0;
for i:=1 to n do
if ch[i].tb=min then
begin
t:=t+1;
ch1[t]:=ch[i];
end;
assign(f3,'ketquatiendien.txt');
rewrite(f3);
for i:=1 to n do
begin
write(f3,i,' ',ch[i].ht:10,' ');
write(f3,ch[i].tb:3:1);
writeln(f3);
end;
writeln(f3,'so dien tieu thu it nhat trong phuong la :
',min:3:1);
writeln(f3,'Ten cac chu ho co luong dien tieu thu it nhat la
:');
for k:=1 to t do
writeln(f3,k,' ',ch1[k].ht:10);
close(f3);
readln;
end.
ế ươ ự ệ ậ t ch ệ
ng trình Pascal th c hi n các công vi c
ẽ ơ ồ
Bài 17 : V s đ thu t toán và vi
cho bài toán sau :
38https://www.facebook.com/groups/CNTT.NUCE/
ộ ớ Cho m t danh sách l p :
Góc học tập khoa CNTT - ĐHXD
ả ọ ậ ế TT H tênọ K t qu h c t p Phân lo iạ
ả ọ ậ ế ậ ộ
1. M t ch ỉ
ng trình con nh p danh sách, ch nh p tt, k t qu h c t p, còn
ươ
ạ ậ
ứ phân lo i tính theo công th c :
ả ọ ậ ạ ằ ế ế Phân lo i b ng A n u k t qu h c t p >=8
ả ọ ậ ạ ằ ế ế Phân lo i b ng B n u k t qu h c t p >=6
ả ọ ậ ạ ằ ế ế Phân lo i b ng C n u k t qu h c t p >=5
ả ọ ậ ạ ằ ế ế Phân lo i b ng D n u k t qu h c t p >=4
2. Ghi danh sách ra t pệ
39https://www.facebook.com/groups/CNTT.NUCE/
ả ọ ậ ạ ằ ế ế Phân lo i b ng E n u k t qu h c t p < 4
Góc học tập khoa CNTT - ĐHXD
3. M t p, đ c d li u vào b nh trong
ọ ữ ệ ở ệ ớ ộ
ươ ế ạ ắ ộ ộ
4. M t ch ng trình con s p x p l ạ
ầ
i danh sách tăng d n theo c t phân lo i
5. Hi n l
ệ ạ ắ ế
i danh sách sau khi s p x p
i :ả
procedure nhap;
var i,m: integer;
f: file of sinhVien;
ds: array[1..100] of sinhVien;
begin
{= Nhap danh sach sinh vien =}
write('Nhap so sinh vien: ');
readln(m);
writeln('Nhap thong tin sinh vien:');
for i:=1 to m do
with ds[i] do
begin
writeln('* Sinh vien thu ',i);
write('Ho ten: ');
readln(hoTen);
write('Ket qua hoc tap: ');
readln(ketQua);
if ketQua>=8 then loai:='A'
else if ketQua>=6 then loai:='B'
else if ketQua>=5 then loai:='C'
else if ketQua>=4 then loai:='D'
else loai:='E';
end;
{= Ghi danh sach ra tep DANHSACH.INP =}
assign(f,'DANHSACH.inp');
rewrite(f);
for i:=1 to m do
write(f,ds[i]);
close(f);
end;
40https://www.facebook.com/groups/CNTT.NUCE/
Gi
program bailam;
uses crt;
type sinhVien=record
hoTen: string[50];
ketQua: real;
loai: char;
end;
var sv: array[1..100] of sinhVien;
n: integer;
Góc học tập khoa CNTT - ĐHXD
procedure doc;
var i: integer;
f: file of sinhVien;
begin
{= Doc du lieu tu tep DANHSACH.INP =}
assign(f,'DANHSACH.inp');
reset(f);
i:=0;
while not eof(f) do
begin
i:=i+1;
read(f,sv[i]);
end;
n:=i;
end;
procedure sapXep;
var i,j: integer;
tg: sinhVien;
begin
{= Sap xep danh sach =}
for i:=1 to n-1 do
for j:=i+1 to n do
if sv[i].loai > sv[j].loai then
begin
tg:=sv[i];
sv[i]:=sv[j];
sv[j]:=tg;
end;
end;
procedure hienThi;
var i: integer;
begin
for i:=1 to n do
with sv[i] do
writeln(i,' ',hoTen:30,' ',ketQua:6:2,' ',loai:3);
end;
begin
clrscr;
nhap;
doc;
sapXep;
hienThi;
readln
41https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
end.
ậ ươ ử ụ t ch ng trình có s d ng
ươ ẽ ơ ồ
ệ Bài 18: Cho ma tr n ậ Anxm, v s đ thu t toán và vi
ế
ch
ệ ậ ể ự
ng trình con nh p m ng A, ghi ra t p
ọ ữ ệ ớ
ả
ộ
ế ừ ủ ứ ự ậ ng trình con đ th c hi n :
ộ
ươ
M t ch
ở ạ ệ
i t p, đ c d li u vào b nh trong
M l
ắ
ươ
ộ
M t ch ng trình con s p x p t ng hàng c a ma tr n A theo th t
tăng d nầ
ươ ệ ế ậ ắ
ng trình con hi n ma tr n đã s p x p ra màn hình và ghi ra
ộ
M t ch
t p.ệ
var a,b:array[1..10,1..10] of real;
i,j,m,n,k,t,l:integer;
f1,f2,f3:text;
tg:real;
procedure nhap;
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
assign(f1,'abc.txt');
rewrite(f1);
for i:=1 to n do
begin
for j:=1 to m do
if j
42https://www.facebook.com/groups/CNTT.NUCE/
Gi i :ả
Góc học tập khoa CNTT - ĐHXD
end;
end;
procedure doc;
begin
assign(f2,'abc.txt');
reset(f2);
i:=0;
while not eof(f2) do
begin
i:=i+1;
j:=0;
while not eoln(f2) do
begin
j:=j+1;
read(f2,b[i,j])
end;
readln(f2)
end;
t:=i;k:=j;
close(f2);
writeln;
write('Ma tran doc vao la ');
for i:=1 to t do
begin
writeln;
for j:=1 to k do
write(b[i,j]:4:1,' ');
end;
end;
procedure sapxep;
begin
for i:=1 to t do
for j:=1 to k-1 do
for l:=j+1 to k do
if b[i,j]>b[i,l] then
begin
tg:=b[i,j];
b[i,j]:=b[i,l];
b[i,l]:=tg;
end;
end;
procedure hienra;
begin
43https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
writeln;
writeln('Ma tran sau khi sap xep la :');
for i:=1 to t do
begin
for j:=1 to k do
write(b[i,j]:4:1);
writeln;
end;
assign(f3,'Kq.txt');
rewrite(f3);
for i:=1 to t do
begin
for j:=1 to k do
write(f3,b[i,j]:4:1);
writeln(f3);
end;
close(f3);
end;
begin
nhap;
doc;
sapxep;
hienra;
readln;
end.
ả ế ệ
ộ ớ
ủ ượ
ủ ộ ớ ọ
ộ ệ
ỗ ế ể
ả
ỗ ủ ỗ ộ
ủ
ươ ế ả
ọ ỳ ủ
Bài 19: K t qu thi h c k c a m t l p sinh viên đ
c cho trong 2 t p văn b n:
ứ ọ
m t t p hoten.txt ch a h và tên c a các sinh viên c a m t l p trong đó h tên
ệ
ộ
m i sinh viên chi m m t dòng và t p văn b n diem.txt ghi đi m trung bình
ể
(DTB) c a m i sinh viên, trong đó đi m c a m i sinh viên ghi trên m t dòng.
Vi t ch
t
ể
ng trình đ :
ế
ạ ủ ừ
ế
Tìm x p lo i c a t ng sinh viên bi
ạ ẽ ế
ạ
ạ
ẽ ế
ẽ ế
ạ ẽ ế ế
ế
ế
ế N u DTB>=9, sinh viên s x p lo i “xuat sac”
N u 8<=DTB<9, sinh viên s x p lo i “Gioi”
N u 7<=DTB<8, sinh viên s x p lo i “Kha”
N u DTB<7, sinh viên s x p lo i “Trung binh”
Tìm h c b ng c a t ng sinh viên bi
ọ ổ ủ ừ ế t
ẽ ượ ọ ổ c h c b ng 240000
ẽ ượ ọ ổ
ẽ ượ ọ ổ
44https://www.facebook.com/groups/CNTT.NUCE/
ế
ế
ế
ế ẽ c h c b ng 180000
c h c b ng 120000
ượ ọ ổ N u DTB>=9, sinh viên s đ
N u 8<=DTB<9, sinh viên s đ
N u 7<=DTB<8, sinh viên s đ
N u DTB<7, sinh viên s không đ c h c b ng
Góc học tập khoa CNTT - ĐHXD
S p x p l
ậ ự ả i b ng trên theo tr t t ư
ể
gi m d n c a đi m trung bình. Đ a
ế ạ ả
ả ầ ủ
ướ ạ i d ng sau
Ỳ Ủ Ớ Ọ
ọ
ọ ổ ế ể ấ ạ
ắ
ế
k t qu ra màn hình và ra file ketqua.txt d
Ả
Ế
+ dòng 1 : K T QU THI H C K C A L P
ấ
ấ
ỗ
ở
đi m i dòng ghi: STT, 2 d u cách, H tên, 2 d u cách,
+ dòng 2 tr
ủ ừ
ấ
đi m trung bình, 2 d u cách, X p lo i, 2 d u cách, H c b ng c a t ng
sinh viên
i:ả
{===Lay du lieu tu tep====}
assign(f,'hoten.txt');
reset(f);
n:=0;
while (not eof(f)) do
begin
inc(n);
readln(f,sv[n].ht);
end;
close(f);
assign(f,'diem.txt');
reset(f);
for i:=1 to n do
readln(f,sv[i].dtb);
close(f);
{=== Xep Loai va Tinh Hoc Bong ===}
for i:=1 to n do
with sv[i] do
if dtb>=9 then
begin
xepLoai:='Xuat Sac';
hocBong:=240000;
45https://www.facebook.com/groups/CNTT.NUCE/
Gi
program bailam;
uses crt;
type sinhvien=record
ht: string[50];
dtb: real;
xepLoai: string[20];
hocBong: longint;
end;
var sv: array[0..100] of sinhvien;
tg: sinhvien;
d, i, j, m, n: integer;
f: text;
begin
clrscr;
Góc học tập khoa CNTT - ĐHXD
end
else if dtb>=8 then
begin
xepLoai:='Gioi';
hocBong:=180000;
end
else if dtb>=7 then
begin
xepLoai:='Kha';
hocBong:=120000;
end
else
begin
xepLoai:='Trung Binh';
hocBong:=0;
end;
{=== Sap Xep ===}
for i:=1 to n-1 do
for j:=i+1 to n do
if sv[i].dtb
{=== In Ket Qua Ra File ===}
assign(f,'ketqua.txt');
rewrite(f);
writeln(f,'KET QUA THI HOC KY CUA LOP:');
for i:=1 to n do
with sv[i] do
writeln(f,i:3,' ',ht:20,' ',dtb:6:1,xepLoai:15,' ',hocBong);
close(f);
{===Dua ket qua ra man hinh===}
writeln('KET QUA THI HOC KY CUA LOP:');
for i:=1 to n do
with sv[i] do
writeln(i:3,' ',ht:20,' ',dtb:6:1,xepLoai:15,' ',hocBong);
readln
end.
ế ươ ủ ườ ệ t ch ng trình con tính chu vi, di n tích c a đ ữ
ng tròn, hình ch
46https://www.facebook.com/groups/CNTT.NUCE/
ậ Bài 20: Vi
nh t, tam giác
Góc học tập khoa CNTT - ĐHXD
var r,s,cv,dai,rong,s1,cv1,s2,cv2,t1,t2,t3:real;
procedure tamgiac(x1,x2,x3:real;var CVtg,Stg:real);
begin
CVtg:=x1+x2+x3;
Stg:=sqrt(CVtg/2*(CVtg/2-x1)*(CVtg/2-x2)*(CVtg/2-x3));
writeln('Chu vi tam giac la : ',CVtg:6:1);
writeln('Dien tich tam giac la : ',Stg:6:1);
end;
procedure hcn(a:real;b:real;var Scn,CVcn:real);
begin
Scn:=a*b;
CVcn:=a+b;
writeln('Dien tich chu nhat la : ',Scn:6:1);
writeln('Chu vi chu nhat la : ',CVcn:6:1);
end;
procedure DT(bk:real;var DT,Chv:real);
begin
Chv:=3.14*bk*2;
dt:=3.14*bk*bk;
writeln('Chu vi duong tron la : ',Chv:6:1);
writeln('Dien tich duong tron la : ',DT:6:1);
end;
begin
write('Nhap ban kinh duong tron : ');readln(r);
DT(r,s,cv);
write('Nhap chieu rong hcn : ');readln(rong);
write('Nhap chieu dai hcn : ');readln(dai);
hcn(dai,rong,s1,cv1);
write('Nhap canh thu 1 : ');readln(t1);
write('Nhap canh thu 2 : ');readln(t2);
write('Nhap canh thu 3 : ');readln(t3);
tamgiac(t1,t2,t3,cv2,s2);
readln;
end.
ố ượ ầ ỏ
ộ
ư ả ả ố
ẻ ố ư ứ
ả
ươ ế ầ ằ
ng trình b ng ngôn ng ể
t ch
ậ
ầ ự ạ ộ
ề
ấ
c cung c p m t ph n m m mô ph ng ho t đ ng
Bài 21: Ngân hàng mu n đ
ọ
ố
ầ
ủ
c a máy ATM, các thông tin c n qu n lý nh sau : S PIN, s tài kho n, h và
tên, CMTND, ngày làm th , s d . Hãy khai báo ki u b n ghi (Record) ch a các
ữ
ậ ơ ồ
thành ph n nêu trên. L p s đ thu t toán và vi
ệ
ậ
l p trình pascal th c hi n các yêu c u sau :
Ch
47https://www.facebook.com/groups/CNTT.NUCE/
ươ ể ươ ề
ng trình đi u khi n (Ch ng trình chính)
Góc học tập khoa CNTT - ĐHXD
ươ ể ậ ừ ộ
M t ch ữ ệ
ng trình con đ nh p d li u thông tin khách hàng t bàn
phím vào máy
ươ ị ế ể ả ộ
M t ch ả
ượ ớ ố
ươ ậ ừ
ừ ề ấ
c nh p t
lên màn hình v i s PIN đ
ể
ng trình con đ rút ti n ra t ố ư
ng trình con l y thông tin s d tài kho n hi n th k t qu
bàn phím
ả
tài kho n theo quy trình :
ầ
ậ ố ề ầ ầ
ừ ề ố ư ằ ộ
M t ch
1. Yêu c u nh p s PIN
ế ố ề
2. N u đúng s PIN, thì yêu c u nh p s ti n c n rút. N u s ti n
ố ư
ti n trong s d đúng
ậ ố
ế
ố
ỏ ơ
ặ
ầ
c n rút nh h n ho c b ng s d thì tr
ố ề ầ
ằ
b ng s ti n c n rút.
3. Thông báo giao d ch thành công
ị
i :ả
procedure laythongtin;
begin
48https://www.facebook.com/groups/CNTT.NUCE/
Gi
type atm=record
sopin:integer;
sotk:integer;
hoten:string[20];
cmtnd:string[10];
ngaylamthe:string[20];
sodu:real;
end;
var kh:array[1..50] of atm;
i,j,n,PIN,k,PIN1,t,dem,dem1:integer;
sotien:real;
procedure nhap;
begin
write('Nhap so khach hang : ');readln(n);
for i:=1 to n do
begin
write('Nhap so pin cua KH thu ',i,' :
');readln(kh[i].sopin);
write('Nhap so tai khoan cua KH thu ',i,' :
');readln(kh[i].sotk);
write('Nhap ho ten cua khach hang thu ',i,' :
');readln(kh[i].hoten);
write('Nhap so cmtnd cua KH thu ',i,' :
');readln(kh[i].cmtnd);
write('Nhap ngay lam the cua KH thu ',i,' :
');readln(kh[i].ngaylamthe);
write('Nhap so du tai khoan cua KH thu ',i,' :
');readln(kh[i].sodu);
end;
end;
Góc học tập khoa CNTT - ĐHXD
writeln;
writeln('Chuong trinh con lay tong tin khach hang tu so PIN');
write('Nhap so pin tai khoan : ');readln(PIN);
dem:=0;
for i:=1 to n do
if PIN=kh[i].sopin then
begin
k:=i;
dem:=dem+1;
end;
if dem<>0 then
writeln('So du cua tai khoan la : ',kh[k].sodu:8:1)
else
writeln('Khong co tai khoan nao co so PIN nhu vay');
end;
procedure ruttien;
begin
writeln('Chuong trinh con rut tien');
write('Nhap so pin tai khoan : ');readln(PIN1);
dem1:=0;
for i:=1 to n do
if PIN1=kh[i].sopin then
begin
t:=i;
dem1:=dem1+1;
end;
if dem1<>0 then
begin
write('Nhap so tien can rut : ');readln(sotien);
if sotien<=kh[t].sodu then
begin
kh[t].sodu:=kh[t].sodu-sotien;
writeln('So tien con lai cua quy khach la :
',kh[t].sodu:8:1);
writeln('Giao dich thanh cong');
end
else
writeln('So tien lon hon so du trong tai khoan');
writeln('Giao dich ko thanh cong');
end
else
writeln('Khong co so PIN nay');
end;
begin
nhap;
49https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
laythongtin;
ruttien;
readln;
end.
ậ ơ ồ ươ ế ằ t ch ng trình b ng ngôn ng l p trình
ề ố ự ằ ậ
ả ể ổ ữ ậ
ươ ế t các ch ng trình con
Bài 22: L p s đ thu t toán và vi
Pascal đ tính t ng m ng hai chi u s th c b ng cách vi
sau :
ả ề ừ bàn phím
ạ ậ
ộ ồ N i dung ch ậ ố ệ
Nh p s li u cho m ng hai chi u t
ấ ế
ề
ả ả
Xu t k t qu m ng hai chi u ra màn hình theo d ng ma tr n
ề
ả
ổ
Tính t ng m ng hai chi u
ng trình chính g m :
ứ ấ ồ ậ ố ệ ứ ả
ứ ấ ồ ả
ứ ả ả
ấ ế
ả ả ả
ả ấ ế
ươ
ậ ố ệ
1.Nh p s li u cho m ng th nh t r i nh p s li u cho m ng th hai
ấ ế
2.Xu t k t qu m ng th nh t r i xu t k t qu m ng th hai (ra màn hình)
3.Tính t ng 2 m ng trên r i xu t k t qu ra màn hình
ồ
ổ
ả
i : (Dino)
50https://www.facebook.com/groups/CNTT.NUCE/
Gi
uses crt;
type mang=array[1..100,1..100] of integer;
var a,b,t:mang;
i,j,m,n,m1,n1:integer;
Procedure nhap(var c:mang);
Begin
for i:=1 to m do
for j:=1 to n do
begin
write('PT[',i,',',j,']= ');
readln(c[i,j]);
end;
end;
Procedure xuat(var c:mang);
Begin
for i:=1 to m do
begin
for j:=1 to n do write(c[i,j]:4);
writeln;
end;
end;
Procedure tong;
Begin
for i:=1 to m do
for j:=1 to n do
t[i,j]:=a[i,j]+b[i,j];
End;
Begin
Góc học tập khoa CNTT - ĐHXD
clrscr;
write('Nhap so hang ma tran: ');
readln(m);
write('Nhap so cot ma tran: ');
readln(n);
writeln('Nhap ma tran thu nhat: ');
nhap(a);
writeln('Nhap ma tran thu hai: ');
nhap(b);
writeln('Ma tran thu nhat la: ');
xuat(a);
writeln('Ma tran thu hai la: ');
xuat(b);
tong;
writeln('Tong cua hai ma tran la: ');
xuat(t);
readln;
End.
ủ ộ ử ụ ủ ộ ế ỗ t các thông tin :
ị ố ọ ệ
ồ ệ ỉ
ậ ợ t ch
ươ
ệ ậ
ả ữ ậ
Bài 23: Cho danh sách các ch h s d ng đi n, m i ch h bi
ạ
ạ
ấ
ả
ạ ợ
Mã s , h tên, đ a ch , đi n tho i, lo i h p đ ng (SH:sinh ho t, SX:s n xu t,
ế
ồ
ng trình
KD: kinh doanh), ngày ký h p đ ng. Hãy l p thu t toán và vi
ầ
ể ự
ấ
ằ
b ng ngôn ng l p trình pascal (dùng c u trúc b n ghi) đ th c hi n các yêu c u
sau đây :
bàn phím
ồ ng ng v i m i lo i h p đ ng : SH, SX và KD. sách t
ậ ữ ệ
ố ộ ủ
ươ ứ
ả ư ế ừ
Nh p d li u đã cho vào máy t
ồ
ạ ợ
Tìm s h c a m i lo i h p đ ng và tách danh sách trên thành ba danh
ỗ
ạ ợ
c ra màn hình. ỗ
ớ
ượ
Đ a k t qu tìm đ
ả i : (Dino)
51https://www.facebook.com/groups/CNTT.NUCE/
Gi
uses crt;
type hodan=record
maso:string[15];
ten,diachi:string[20];
dt,hd,ngay:string[15];
end;
var ho:array[1..100] of hodan;
m,i,demsh,demsx,demkd:integer;
Begin
Clrscr;
write('Nhap so ho dan: ');
readln(m);
writeln('Nhap thong tin cac ho dan: ');
demsh:=0; demsx:=0; demkd:=0;
for i:=1 to m do
with ho[i] do
Góc học tập khoa CNTT - ĐHXD
begin
writeln('Ho thu ',i);
write('Ma so: ');
readln(maso);
write('Ho ten: ');
readln(ten);
write('Dia chi');
readln(diachi);
write('Dien thoai: ');
readln(dt);
write('Loai hop dong: ');
readln(hd);
write('Ngay dang ky: ');
readln(ngay);
if hd='kd' then demkd:=demkd+1
else
if hd='sx' then demsx:=demsx+1
else
if hd='sh' then demsh:=demsh+1;
end;
writeln('So ho hop dong kinh doanh la: ',demkd);
writeln('So ho hop dong san xuat la: ',demsx);
writeln('So ho hop dong sinh hoat la: ',demsh);
writeln('Hop dong':10,'Ten chu ho':20,'Dia
chi':20,'SDT':12);
write('Sinh hoat':10);
for i:=1 to m do
with ho[i] do
if hd='sh' then
begin
write(ten:20,diachi:20,dt:12);
writeln;
end;
writeln('_______________________________________________________
_______');
write('Kinh doanh':10);
for i:=1 to m do
with ho[i] do
if hd='kd' then
begin
write(ten:20,diachi:20,dt:12);
writeln;
end;
52https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
writeln('_______________________________________________________
_______');
write('San xuat':10);
for i:=1 to m do
with ho[i] do
if hd='sx' then
begin
write(ten:20,diachi:20,dt:12);
writeln;
end;
readln;
End.
53https://www.facebook.com/groups/CNTT.NUCE/
ổ ố ọ
ả
Bài 24: Cho b ng N môn h c
Tên môn h cọ TT Lý thuy tế Bài t pậ T ng s
Góc học tập khoa CNTT - ĐHXD
ế ươ ử ụ ể ả ả t ch ng trình pascal có s d ng ki u m ng các b n
ẽ ơ ồ
ể ự
ế ờ ậ
V s đ thu t toán và vi
ệ
ghi đ th c hi n :
ả ậ lý thuy t, gi
Nh p m ng (TT, tên môn h c, gi
ố ờ ằ
ệ
ọ ữ ệ
ậ
bài t p) t
ậ bàn phím,
ộ ổ ờ
ọ
ố ế
ế ộ
ố ế
t lý thuy t c ng s ti ừ
t bài t p, ghi n i b ng s ti
ớ
ộ ộ ộ
tính t ng s gi
ả
dung b ng ra t p
ộ
ở ạ ệ
i t p, đ c d li u vào b nh trong
M l
ờ
ế ổ
ờ
ổ
lý thuy t, t ng c t gi
Tính t ng c t gi
ậ
ố ờ
ủ ổ
Tính ph n trăm c a t ng s gi ố
ờ ổ
ổ
ậ
t ng s
bài t p, t ng c t gi
ớ
ế
ố ờ
ổ
lý thuy t so v i
bài t p, t ng s gi
Hi n các k t qu ra màn hình và đ a ra t p
ầ
ổ
t ng toàn b s gi
ả ộ ố ờ
ế ư ệ
uses crt;
type monhoc = record
stt:integer;
ten:string[30];
lt:integer;
th:integer;
ts:integer;
end;
var mon:array[1..100] of monhoc;
m,i, tonglt,tongth,tong:integer;
f1:file of monhoc;
f2:text;
ptlt,ptth:real;
54https://www.facebook.com/groups/CNTT.NUCE/
ả ệ
i : (Dino) Gi
Góc học tập khoa CNTT - ĐHXD
Begin
Clrscr;
write('Nhap so mon hoc: ');
readln(m);
writeln('Nhap thong tin tung mon hoc: ');
assign(f1,'dulieu1.txt');
rewrite(f1);
for i:=1 to m do
begin
with mon[i] do
begin
writeln('Mon thu: ',i);
write('Ten mon hoc: ');
readln(ten);
write('So gio ly thuyet: ');
readln(lt);
write('So gio thuc hanh: ');
readln(th);
ts:=lt+th;
end;
write(f1,mon[i]);
end;
Reset(f1);
for i:=1 to m do read(f1,mon[i]);
tonglt:=0 ;
tongth:=0;
For i:=1 to m do
begin
tonglt:=tonglt+mon[i].lt;
tongth:=tongth+mon[i].th;
end;
tong:=tonglt+tongth;
ptlt:=(tonglt/tong)*100 ;
ptth:=(tongth/tong)*100;
assign(f2,'dulieu2.txt');
rewrite(f2);
writeln('Tong cot so gio ly thuyet la: ',tonglt:3);
writeln('Tong cot so gio thuc hanh la: ',tongth:3);
writeln('Tong cot gio tong so la: ',tong:3);
writeln('So phan tram ly thuyet:',ptlt:3:1,'%');
writeln('So phan tram thuc hanh:',ptth:3:1,'%');
writeln(f2,'Tong cot so gio ly thuyet la: ',tonglt:3);
writeln(f2,'Tong cot so gio thuc hanh la: ',tongth:3);
writeln(f2,'Tong cot gio tong so la: ',tong:3);
writeln(f2,'So phan tram ly thuyet:',ptlt:3:1,'%');
writeln(f2,'So phan tram thuc hanh:',ptth:3:1,'%');
close(f1); close(f2);
55https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
readln;
End.
ộ ử ớ
ố ượ ể ạ ả
ầ ả ế ng. Hãy khai báo
ươ
ng trình t ch
ấ ả
ậ
ệ ữ ậ ự ả
Bài 25: M t c a hàng sách qu n lý sách v i các thông tin sau :
, th lo i, năm xu t b n, s l
Mã sách, tên sách, tên tác gi
ậ ơ ồ
ể
ki u b n ghi các thành ph n nêu trên. L p s đ thu t toán và vi
ằ
b ng ngôn ng l p trình pascal th c hi n các công vi c sau :
Nh p d li u thông tin n quy n sách t
ừ ớ ệ
ể ậ
bàn phím vào máy v i n nh p
ậ
ữ ệ
bàn phím.
ữ ế ố ượ ỏ ơ ớ ậ
ng nh h n m v i m nh p
ừ
t
In ra danh sách nh ng quy n sách có s l
ừ
t bàn phím
Ghi lên file SACH.TXT danh sách toàn b s sách c a c a hàng theo
ủ ử ộ ố
ứ ự ả ề ố ượ ầ
gi m d n v s l ng
uses crt;
type quyensach = record
masach:string[20];
ten:string[30];
tacgia:string[25];
theloai:string[20];
namxb,sl:integer;
end;
var sach:array[1..100] of quyensach;
m,n,i,j,dem:integer;
temp:quyensach;
f:text;
Begin
clrscr;
Write('Nhap so quyen sach: ');
readln(n);
writeln('Nhap thong tin tung quyen sach: ');
For i:=1 to n do
with sach[i] do
begin
writeln('Sach thu ',i);
write('Ma sach: ');
readln(masach);
write('Ten sach: ');
readln(ten);
write('Tac gia: ');
readln(tacgia);
write('Nam xuat ban: ');
readln(namxb);
56https://www.facebook.com/groups/CNTT.NUCE/
ả th t
i : (Dino) Gi
Góc học tập khoa CNTT - ĐHXD
write('So luong: ');
readln(sl);
end;
write('Nhap so m: ');
readln(m);
writeln('Danh sach nhung quyen sach co so luong be hon ',m);
writeln('STT':4,'Ten sach':20);
for i:=1 to n do
if sach[i].sl
End.
ồ ư ồ ơ ầ
ọ ể
ứ ế ầ ả
i tính. Hãy khai báo ki u b n ghi
ằ
ươ
ng trình b ng t ch
ậ ơ ồ
ệ
ể
ươ
ươ ể ậ ừ Bài 26: H s thông tin sinh viên g m nh ng thành ph n sau :
ớ
Mã sinh viên, h và tên, năm sinh, quê quán, gi
ậ
ch a các thành ph n nêu trên. L p s đ thu t toán và vi
ầ
ự
ngôn ng l p trình pascal th c hi n các yêu c u sau :
ươ
ề
ng trình đi u khi n (ch
ng trình chính)
ữ ệ
ng trình con đ nh p d li u thông tin sinh viên t bàn phím
ư ủ ữ ậ
ộ
M t ch
ộ
M t ch
vào máy
ộ
M t ch
ậ ừ c nh p t
ế
ể
bàn phím
ạ ồ ơ ư ng trình con đ tìm ki m đ a ra thông tin c a sinh viên có mã
ượ
ng trình con t o m t file l u thông tin h s sinh viên theo
ầ ủ ộ
gi m d n c a năm sinh ươ
sinh viên đ
ươ
ộ
M t ch
ứ ự ả
th t
uses crt;
type sinhvien=record
msv:string[10];
57https://www.facebook.com/groups/CNTT.NUCE/
Gi i :ả
Góc học tập khoa CNTT - ĐHXD
ten,que:string[25];
ns:integer;
gt:string[5];
end;
var sv:array[1..100] of sinhvien;
m,i,j:integer;
f:text;
temp:sinhvien;
procedure nhap;
begin
Clrscr;
write('Nhap so sinh vien: ');
readln(m);
writeln('Nhap thong tin sinh vien');
for i:=1 to m do
with sv[i] do
begin
writeln('Sinh vien thu ',i);
write('Ma SV: ');
readln(msv);
write('Ho ten: ');
readln(ten);
write('Nam sinh: ');
readln(ns);
write('Que quan: ');
readln(que);
write('Gioi tinh: ');
readln(gt);
end;
end;
Procedure tracuu;
var kt:boolean;
temp1:string[10];
x:integer;
begin
write('Nhap Ma sv can tra cuu: ');
readln(temp1);
kt:=false;
for i:=1 to m do
if sv[i].msv=temp1 then
begin
kt:=true;
x:=i;
end;
if kt=true then
with sv[x] do
58https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
begin
writeln('Thong tin hoc sinh co ma sv la
',temp1);
writeln('Ho ten: ',ten);
writeln('Nam sinh: ',ns);
writeln('Gioi tinh: ',gt);
writeln('Que quan: ',que);
end
else writeln('Ma sv ban vua nhap khong co');
end;
procedure ghitep;
begin
assign(f,'abc.txt');
rewrite(f);
for i:=1 to m-1 do
for j:=i+1 to m do
if sv[i].ns>sv[j].ns then
begin
temp:=sv[i];
sv[i]:=sv[j];
sv[j]:=temp;
end;
writeln(f,'STT':4,'Ho ten':25,'Nam sinh':10);
{Minh chi hien thi tung nay,ai thich hien thi them thi them
vao nhe}
for i:=1 to m do
with sv[i] do
writeln(f,i:4,ten:25,ns:10);
close(f);
end;
Begin
Nhap;
tracuu;
ghitep;
readln;
End.
ả ả
ấ ế ộ
c danh sách tên các đ i bóng tham gia mùa gi
ữ ộ ượ
ể ể
ướ
ộ
ả ắ
ầ ử ằ ng chéo chính gán b ng 0, các ph n t thu c đ ế
i và k t qu thi
ậ
c ghi trong ma tr n vuông
ư
ứ
ượ ổ
ch c nh
c t
ầ ử aij khác có ý
ắ ộ
59https://www.facebook.com/groups/CNTT.NUCE/
ộ ộ Bài 27: Cho tr
ả
ữ
ấ
đ u gi a các đ i. K t qu thi đ u gi a các đ i đ
ể
ế
ồ
g m k t qu th ng (3 đi m), hòa (1 đi m), thua (0 đi m) đ
ộ ườ
sau : Các ph n t
nghĩa :
aij= 3 đ i i th ng đ i j
ộ
aij= 1 đ i i hòa đ i j
Góc học tập khoa CNTT - ĐHXD
ộ
ể ự
ủ
ể
ế ắ
aij= 0 đ i i thua đ i j
ộ
ươ
ế
t ch
Hãy vi
ộ
M t ch
ộ
M t ch
ộ
M t ch
ộ
c a các đ i sau mùa gi ả
i
ầ
ươ
ươ
ươ
ứ ự ả
theo th t
ươ ệ ả ộ ươ ệ
ầ
ng trình đ th c hi n các yêu c u sau :
ậ ữ ệ ừ
ng trình con nh p d li u t
bàn phím
ỗ ộ
ng trình con tính đi m c a m i đ i
ứ ự ủ
ng trình con s p x p theo th t
gi m d n.
ng trình con ghi k t qu vào t p và m t ch ng trình con
ộ
M t ch
ệ ế
ạ ị
ả i
ố ể ấ hi n ra màn hình theo đ nh d ng sau :
Dòng 1 : KET QUA BONG DA
Dòng 2 : S đ i bóng tham gia mùa gi
Các dòng ti p theo m i dòng ghi : STT, hai d u cách, s đi m.
ươ ươ ọ ố ộ
ế
ỗ
ng trình chính g i các ch ng trình con ộ
M t ch
i :ả
60https://www.facebook.com/groups/CNTT.NUCE/
Gi
Uses crt;
Var i,j,m,Temp1:integer;
f1:text;
Temp:string[25];
Doi:array[1..20] of string[25];
S:array[1..20] of integer;
A:array[1..20,1..20] of integer;
Procedure Nhap;
Begin
Write('Nhap so doi: ');
Readln(m);
For i:=1 to m do
Begin
Write('Ten doi ',i,': ');
Readln(Doi[i]);
End;
Writeln('Nhap ket qua tung tran dau theo ma tran vuong: ');
For i:=1 to m do
For j:=1 to m do
Begin
Write('A[',i,j,']= ');
Readln(A[i,j]);
End;
End;
Procedure Tinhdiem;
Begin
Fillchar(S,Sizeof(s),0); {Gan tat ca phan tu S = 0}
For i:=1 to m do
For j:=1 to m do
If i<>j then {Khong tinh duong cheo chinh}
Begin
Góc học tập khoa CNTT - ĐHXD
If A[i,j]=3 then S[i]:=S[i]+3
Else
If A[i,j]=1 then
Begin
S[i]:=S[i]+1; {Vi 2 doi hoa nhau nen
so diem ca 2 cung se tang len 1}
S[j]:=S[j]+1;
End
Else S[j]:=S[j]+3; {A[i,j]=0 --> Doi J duoc 3
diem, I dc 0 diem}
End;
End;
Procedure Sapxep;
Begin
For i:=1 to m-1 do
For j:=i+1 to m do
If S[i]
61https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
Writeln;
End;
End;
BEGIN
Clrscr;
Nhap;
Tinhdiem;
Sapxep;
Ghitep;
Inra;
Readln;
END.
62https://www.facebook.com/groups/CNTT.NUCE/
Cách 2 : Dino
uses crt; var i,k,m,n:integer; a:array[1..100] of integer; Begin clrscr; write('Nhap so phan tu day: '); readln(n); For i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end;
21https://www.facebook.com/groups/CNTT.NUCE/
Góc học tập khoa CNTT - ĐHXD
write('Nhap vi tri k: '); readln(k); write('Nhap so m: '); readln(m); for i:=n downto k do a[i+1]:=a[i]; a[k]:=m; writeln('Day sau khi chen la: '); for i:=1 to n+1 do write(a[i]:4); readln; End.
ể ả ả Bài 6 : Ki u m ng Cho b ng sau :
STT H tênọ Đi mể
22https://www.facebook.com/groups/CNTT.NUCE/
1 ….. m
Góc học tập khoa CNTT - ĐHXD
1..n
1. Tính đi m trung bình c a t ng sinh viên
ủ ừ ể
ữ ể ấ 2. Tìm ra nh ng sinh viên có đi m trung bình cao nh t
3. S p x p l
ế ạ ả ậ ự ắ ầ ủ ể i b ng trên theo tr t t tăng d n c a đi m trung bình
var n,m,i,j,k :integer; ht:array[1..20] of string[20]; diem:array[1..20,1..10] of real; tong,tb:array[1..20] of real; tg,tg2,s,max:real; tg1:string[20]; begin write('Nhap n : ');readln(n); write('Nhap m : ');readln(m); for i:=1 to n do begin write('HTSV ',i,' la '); readln(ht[i]); for j:=1 to m do begin write('DT mon ',j,' la '); readln(diem[i,j]); end; end; for i:=1 to n do begin
23https://www.facebook.com/groups/CNTT.NUCE/
Gi i :ả
Góc học tập khoa CNTT - ĐHXD
tong[i]:=0; for j:=1 to m do tong[i]:=tong[i]+diem[i,j]; tb[i]:=tong[i]/m; end; max:=tb[1]; for i:=1 to n do if tb[i]>max then max:=tb[i]; write('Danh sach cac hoc sinh co TB max bang ',max:6:1,' la :'); for i:=1 to n do if tb[i]=max then write(ht[i],', '); for i:=1 to n-1 do for k:=i+1 to n do if tb[i]>tb[k] then begin tg:=tb[i]; tb[i]:=tb[k]; tb[k]:=tg; tg1:=ht[i]; ht[i]:=ht[k]; ht[k]:=tg1; for j:=1 to m do begin tg2:=diem[i,j]; diem[i,j]:=diem[k,j]; diem[k,j]:=tg2; end; end; writeln('Danh sach sau khi sap xep la :'); for i:=1 to n do begin writeln; write(ht[i]); for j:=1 to m do write(' ',diem[i,j]:4:1,' '); end; readln; end.
var i,m,n,j : integer; a:array[1..10,1..10] of real; b1:array[1..10] of real;
24https://www.facebook.com/groups/CNTT.NUCE/
ộ ủ ừ ừ ổ Bài 7 : Cho ma tr n ậ Anxm, tính t ng t ng hàng, t ng c t c a ma tr n ậ
Góc học tập khoa CNTT - ĐHXD
b2:array[1..10] of real; begin write('Nhap so hang : ');readln(n); write('Nhap so cot : ');readln(m); for i:=1 to n do for j:=1 to m do begin write('a[',i,',',j,']= '); readln(a[i,j]); end; for i:=1 to n do b1[i]:=0; for i:=1 to m do b2[i]:=0; for i:=1 to n do for j:=1 to m do begin b1[i]:=b1[i]+a[i,j]; b2[j]:=b2[j]+a[i,j]; end; for i:=1 to n do begin writeln; for j:=1 to m do write(a[i,j]:4:1,' '); end; writeln; writeln('Tong tung hang la : '); for i:=1 to n do writeln('Hang ',i,'= ',b1[i]:4:1); writeln('Tong tung cot la : '); for j:=1 to m do writeln('Cot ',j,'= ',b2[j]:4:1); readln; end.
var i,m,n,k,j:integer; a:array[1..100,1..100] of real; begin write('Nhap so hang :');readln(n); write('Nhap so cot :');readln(m); for i:=1 to n do for j:=1 to m do begin
25https://www.facebook.com/groups/CNTT.NUCE/
ứ ủ ậ Bài 8 : Cho ma tr n ậ Anxm, xóa hàng th k c a ma tr n.
Góc học tập khoa CNTT - ĐHXD
write('a[',i,',',j,']= '); readln(a[i,j]); end; write('Nhap hang can xoa :');readln(k); for j:=1 to m do for i:=k to n-1 do a[i,j]:=a[i+1,j]; for i:=1 to n-1 do for j:=1 to m do writeln('a[',i,',',j,']= ',a[i,j]:4:1); readln; end.
ấ ủ ậ ầ
var n,m,i,j,max,k : integer; x:array[1..10,1..10] of integer; begin write('Nhap n : ');readln(n); write('Nhap m : ');readln(m); for i:=1 to n do for j:=1 to m do begin write('x[',i,',',j,']= '); readln(x[i,j]); end; k:=1; max:=x[1,1]; for i:=1 to n do for j:=1 to m do if x[i,j]>max then begin max:=x[i,j]; k:=i; end; for j:=1 to m do for i:=k to n-1 do x[i,j]:=x[i+1,j]; for i:=1 to n-1 do begin writeln; for j:=1 to m do write(x[i,j],' ') ; end; readln; end.
26https://www.facebook.com/groups/CNTT.NUCE/
ứ ấ Bài 9 : Cho ma tr n ậ Anxm tìm giá tr l n nh t c a ma tr n, xóa hàng đ u tiên ị ớ ị ớ ch a giá tr l n nh t đó.
Góc học tập khoa CNTT - ĐHXD
ộ ầ ấ ủ ậ
var i,j,m,n,k,max:integer; a:array[1..10,1..10] of integer; begin write('Nhap n : ');readln(n); write('Nhap m : ');readln(m); for i:=1 to n do for j:=1 to m do begin write('a[',i,',',j,']= '); readln(a[i,j]); end; k:=1; max:=a[1,1]; for j:=1 to m do for i:=1 to n do if a[i,j]>max then begin max:=a[i,j]; k:=j; end; for i:=1 to n do for j:=k to m-1 do a[i,j]:=a[i,j+1]; for i:=1 to n do begin writeln; for j:=1 to m-1 do write(a[i,j],' '); end; readln; end.
ứ ấ Bài 10: Cho ma tr n ậ Anxm tìm giá tr l n nh t c a ma tr n, xóa c t đ u tiên ị ớ ị ớ ch a giá tr l n nh t đó.
ị ỏ
var i,j,k,n,m:integer; a : array[1..50,1..50] of real; y : array[1..50,1..50] of real; b:array[1..100] of real; min:real; begin write('Nhap so hang: ');readln(n);
27https://www.facebook.com/groups/CNTT.NUCE/
ầ ử ỏ ị ấ ủ ứ ậ ấ ố Bài 11: Cho ma tr n ậ Anxm và vecto B[b1,b2,…,bn] (có n ph n t ) tìm giá tr nh ộ nh t c a ma tr n, chèn vecto B vào c t cu i cùng ch a giá tr nh nh t đó
Góc học tập khoa CNTT - ĐHXD
write('Nhap so cot : ');readln(m); for i:=1 to n do for j:=1 to m do begin write('a[',i,',',j,']= '); readln(a[i,j]); end; min:=a[1,1];
for i:=1 to n do for j:=1 to m do if min>a[i,j] then min:=a[i,j]; writeln('Gia tri nho nhat la : ',min:4:1); for j:=1 to m do for i:=1 to n do if min=a[i,j] then k:=j;
writeln('vi tri cuoi cung o cot :',k);
writeln('Nhap ma tran vecto B');
for i:=1 to n do
begin
write('b[',i,']= ');
readln(b[i]);
end;
for i:=1 to n do
for j:=1 to m+1 do
if j write(y[i,j]:4:1,' ');
end;
readln;
end. 28https://www.facebook.com/groups/CNTT.NUCE/ ầ ử var i,j,k,n,m:integer;
a : array[1..50,1..50] of real;
y : array[1..50,1..50] of real;
b:array[1..100] of real;
begin
write('Nhap so hang: ');readln(n);
write('Nhap so cot : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
write('Nhap vi tri hang can chen : ');
readln(k);
If (1<=k) and (k<=n+1) then
begin
writeln('Nhap ma tran vecto B');
for i:=1 to m do
begin
write('b[',i,']= ');
readln(b[i]);
end;
for j:=1 to m do
for i:=1 to n+1 do
if i write(y[i,j]:4:1,' ');
end;
end
else
writeln('K ko co thuoc hang can chen '); readln;
end. 29https://www.facebook.com/groups/CNTT.NUCE/ Bài 12: Cho ma tr n ậ Anxm và vecto B[b1,b2,…,bm] (có m ph n t ). Chèn vecto B
vào hàng th kứ ầ ử ươ ng trong tam giác trên và tích var i,j,n,k:integer;
a:array[1..50,1..50] of real;
tong,tich:real;
begin
write('Nhap so hang ma tran NxN : ');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
tong:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i,j]>=0 then
tong:=tong+a[i,j];
tich:=1;
for i:=2 to n do
for j:=1 to i-1 do
if a[i,j]<0 then
k:=k+1;
if k=0 then
tich:=0
else
for i:=2 to n do
for j:=1 to i-1 do
if a[i,j]<0 then
tich:=tich*a[i,j];
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write(a[i,j]:4:1,' ');
end;
writeln;
writeln('tich cac pt am tam giac duoi la : ',tich:4:1);
writeln('tong cac pt tam giac tren la : ',tong:4:1);
if tong>tich then
writeln(' Tong lon hon tich')
else if tong=tich then
writeln(' Tong bang tich ') 30https://www.facebook.com/groups/CNTT.NUCE/ ầ ử Bài 13: Cho ma tr n ậ Anxm tìm t ng ph n t
ổ
ướ
âm trong tam giác d
các ph n t d
ổ
i. So sánh t ng và tích else
writeln('Tong be hon tich');
readln;
end. ể ả ả Bài 14 : Ki u b n ghi Cho b ng sau : ể STT H tênọ Đi m danh 31https://www.facebook.com/groups/CNTT.NUCE/ 1 ….. m 1…n 1. Đ m s bu i đi h c, ngh h c có phép, ngh h c không phép ỉ ọ ỉ ọ ế ố ọ ổ 2. Đ a ra nh ng sinh viên không đ
ỉ ọ ượ ữ ế ề ượ c thi bi ệ
t đi u ki n không đ c thi là ổ ư
ố
s bu i ngh h c không phép >= 20%m uses crt;
type sinhvien=record
ten:string[20];
dd:array[1..20] of char;
dh,cp,kp:integer;
tt:string[15];
end;
var m,n,i,j:integer;
sv:array[1..100] of sinhvien;
Begin
clrscr;
write('Nhap so hoc sinh: ');
readln(n);
write('Nhap so buoi hoc: ');
readln(m);
writeln('Nhap thong tin di hoc cua tung sinh vien:');
for i:=1 to n do
with sv[i] do
begin
writeln('Hoc sinh thu ',i);
write('Ho ten: '); 32https://www.facebook.com/groups/CNTT.NUCE/ ả Gi i : (Dino) readln(ten);
dh:=0;
kp:=0;
cp:=0;
for j:=1 to m do
begin
write('Buoi ',j,': ');
readln(dd[j]);
if dd[j]='k' then kp:=kp+1
else if dd[j]='p' then cp:=cp+1
else dh:=dh+1;
end;
end;
writeln('Danh sach thong tin di hoc cua sinh vien la: ');
writeln('STT':4,'Ho ten':20,'Di hoc':8,'Khong phep':12,'Co
phep':9,'Trang thai':18);
for i:=1 to n do
with sv[i] do
begin
write(i:4,ten:20,dh:8,kp:12,cp:9);
if kp/m>0.2 then write('Khong duoc thi':18)
else write('Duoc thi':18);
writeln;
end;
readln;
End. ủ ọ ả ả
ế
ườ ộ ớ
ướ ệ
c t p văn b n TEN.TXT ghi h tên sinh viên c a m t l p,
Bài 15 : Cho tr
ườ
ỗ
ọ
trong đó h tên m i ng
i chi m 1 dòng và t p văn b n DIEMDANH.TXT ghi
ỗ
ủ
ả ể
ế
k t qu đi m danh c a m i ng ệ
ắ
i theo quy t c : ấ ắ ặ ắ + Có m t đánh d u “c”; v ng có lý do “v”; v ng không lý do “k” ủ ể ấ ỗ ượ + Đánh d u đi m danh c a m i sinh viên đ ế
c ghi liên ti p trên 1 dòng ẽ ơ ồ ế ươ ậ
V s đ thu t toán và vi t ch ể
ng trình pascal đ ố ố ổ ọ ố ố ớ ừ
ổ ắ
1. Th ng kê s bu i đi h c, s bu i v ng (có và không lý do) đ i v i t ng sinh viên. ữ ậ ọ ố ổ ỉ ặ
2. L p danh sách nh ng sinh viên đi h c chăm ch nh t (có s bu i có m t ấ ế ấ
ư ế
t co bao nhiêu sinh viên nh th . cao nh t) và hãy cho bi 3. K t qu ghi vào t p ketqua.txt theo quy cách sau 33https://www.facebook.com/groups/CNTT.NUCE/ ệ ế ả M i sinh viên chi m 1 dòng g m các thông tin ế ỗ ồ ấ ặ ấ ọ ố ố
ổ
ổ ắ ổ ắ ặ ấ ặ ố ấ
STT(2 d u cách)h tên sv(2 d u cách)s bu i có m t(2 d u cách)s
bu i v ng m t có lý do(2 d u cách)s bu i v ng m t không lý do Các dòng ti p theo : H tên sinh viên chăm ch nh t (h tên m i sinh ế ấ ọ ọ ỗ ỉ ế viên vi t trên 1 dòng) ố ố ọ ỉ ấ
Dòng cu i cùng : s sinh viên đi h c chăm ch nh t type sinhvien=record
ht:string[30];
diemdanh:array[1..10] of char;
dh:integer;
nh:integer;
cp:integer;
end;
var sv:array[1..20] of sinhvien;
sv1:array[1..20] of sinhvien;
i,j,m,n,k,t,max:integer;
f1,f2,f3:Text;
begin
assign(f1,'ten.txt');
reset(f1);
i:=0;
while not eof(f1) do
begin
i:=i+1;
readln(f1,sv[i].ht);
end;
n:=i;
close(f1); assign(f2,'diemdanh.txt');
reset(f2);
i:=0;
while not eof(f2) do
begin
i:=i+1;
j:=0;
while not eoln(f2) do
begin
j:=j+1;
read(f2,sv[i].diemdanh[j]);
end; 34https://www.facebook.com/groups/CNTT.NUCE/ Gi i :ả readln(f2);
end;
m:=j;
close(f2); for i:=1 to n do
begin
sv[i].dh:=0;
sv[i].cp:=0;
sv[i].nh:=0;
for j:=1 to m do
if sv[i].diemdanh[j]='c' then
sv[i].dh:=sv[i].dh+1
else if sv[i].diemdanh[j]='v' then
sv[i].cp:=sv[i].cp+1
else
sv[i].nh:=sv[i].nh+1;
end; max:=sv[1].dh;
for i:=1 to n do
if sv[i].dh>max then
max:=sv[i].dh;
for i:=1 to n do
if sv[i].dh=max then
begin
t:=t+1;
sv1[t]:=sv[i];
end; write('Thong ke so buoi di hoc cua sinh vien');
for i:=1 to n do
begin
writeln;
write(i,' ',sv[i].ht:10,' ');
for j:=1 to m do
write(sv[i].diemdanh[j],' ');
write(sv[i].dh,' ',sv[i].nh,' ',sv[i].cp);
end; writeln;
write('Co ',t,' sinh vien di hoc cham chi nhat : ');
for i:=1 to t do
begin
writeln;
write(i,' ',sv1[i].ht:10);
end; 35https://www.facebook.com/groups/CNTT.NUCE/ assign(f3,'ketqua.txt');
rewrite(f3);
for i:=1 to n do
begin
write(f3,i,' ',sv[i].ht:10,' ');
write(f3,sv[i].dh:1,' ',sv[i].cp:1,' ',sv[i].nh:1);
writeln(f3);
end;
for k:=1 to t do
writeln(f3,sv1[k].ht);
write(f3,'so sv di hoc cham chi nhat la : ',t);
close(f3);
readln;
end. ả ủ ộ ủ ọ ườ ủ ộ ủ ệ ộ ọ ệ ộ ng đi n các h tiêu th trong tháng, trong đó s l ụ ủ ệ ộ
c t p văn b n TEN.TXT ghi h tên các ch h c a m t
ả
ng, trong đó m i dòng ghi h tên c a m t ch h và t p văn b n
ố ượ
ụ
ng
ố ượ
ng đi n các tháng ghi cách nhau ệ
ấ ướ ệ
Bài 16 : Cho tr
ỗ
ph
ố ượ
SODIEN.TXT ghi s l
ỗ ộ
đi n tiêu th c a m i h ghi trên 1 dòng, s l
1 d u cách ẽ ơ ồ ế ươ ể ậ
V s đ thu t toán và vi t ch ng trình pascal đ : 1. Tính s l ố ượ ỗ ộ ủ ệ ng đi n trung bình hàng tháng c a m i h 2. L p danh sách các h trong ph ậ ộ ườ ố ệ ụ ng có s đi n tiêu th trung bình hàng tháng là ít nh tấ ệ ế ả ả K t qu ghi vào t p văn b n KETQUA.TXT theo quy cách sau : M i h gia đình chi m 1 dòng g m các thông tin sau: ỗ ộ ế ồ ủ ộ ấ ọ ố ượ ệ ng đi n trung bình ấ
STT(2 d u cách)H tên ch h (2 d u cách)S l
hàng tháng c a hủ ộ Dòng ti p theo : S đi n tiêu th trung bình ít nh t trong ph ố ệ ụ ế ấ ườ ng ủ ộ ế ố ượ ụ ệ ng đi n tiêu th trung ọ ỗ ọ
Các dòng ti p theo : H tên các ch h có s l
ủ ộ ế
ấ
bình hàng tháng ít nh t, h tên m i ch h vi t trên 1 dòng type chuho=record
ht:string[30]; 36https://www.facebook.com/groups/CNTT.NUCE/ Gi i :ả sodien:array[1..12] of real;
tb:real;
end;
var ch:array[1..50] of chuho;
ch1:array[1..50] of chuho;
i,j,m,n,t,k:integer;
min,tong:real;
f1,f2,f3:text;
begin
assign(f1,'ten.txt');
reset(f1);
i:=0;
while not eof(f1) do
begin
i:=i+1;
readln(f1,ch[i].ht);
end;
n:=i;
close(f1); assign(f2,'sodien.txt');
reset(f2);
i:=0;
while not eof(f2) do
begin
i:=i+1;
j:=0;
while not eoln(f2) do
begin
j:=j+1;
read(f2,ch[i].sodien[j]);
end;
readln(f2);
end;
m:=j;
close(f2); for i:=1 to n do
begin
tong:=0;
for j:=1 to m do
tong:=tong+ch[i].sodien[j];
ch[i].tb:=tong/m;
end; min:=ch[1].tb;
for i:=1 to n do 37https://www.facebook.com/groups/CNTT.NUCE/ if ch[i].tb t:=0;
for i:=1 to n do
if ch[i].tb=min then
begin
t:=t+1;
ch1[t]:=ch[i];
end; assign(f3,'ketquatiendien.txt');
rewrite(f3);
for i:=1 to n do
begin
write(f3,i,' ',ch[i].ht:10,' ');
write(f3,ch[i].tb:3:1);
writeln(f3);
end;
writeln(f3,'so dien tieu thu it nhat trong phuong la :
',min:3:1);
writeln(f3,'Ten cac chu ho co luong dien tieu thu it nhat la
:');
for k:=1 to t do
writeln(f3,k,' ',ch1[k].ht:10);
close(f3);
readln;
end. ế ươ ự ệ ậ t ch ệ
ng trình Pascal th c hi n các công vi c ẽ ơ ồ
Bài 17 : V s đ thu t toán và vi
cho bài toán sau : 38https://www.facebook.com/groups/CNTT.NUCE/ ộ ớ Cho m t danh sách l p : ả ọ ậ ế TT H tênọ K t qu h c t p Phân lo iạ ả ọ ậ ế ậ ộ
1. M t ch ỉ
ng trình con nh p danh sách, ch nh p tt, k t qu h c t p, còn ươ
ạ ậ
ứ phân lo i tính theo công th c : ả ọ ậ ạ ằ ế ế Phân lo i b ng A n u k t qu h c t p >=8 ả ọ ậ ạ ằ ế ế Phân lo i b ng B n u k t qu h c t p >=6 ả ọ ậ ạ ằ ế ế Phân lo i b ng C n u k t qu h c t p >=5 ả ọ ậ ạ ằ ế ế Phân lo i b ng D n u k t qu h c t p >=4 2. Ghi danh sách ra t pệ 39https://www.facebook.com/groups/CNTT.NUCE/ ả ọ ậ ạ ằ ế ế Phân lo i b ng E n u k t qu h c t p < 4 3. M t p, đ c d li u vào b nh trong ọ ữ ệ ở ệ ớ ộ ươ ế ạ ắ ộ ộ
4. M t ch ng trình con s p x p l ạ
ầ
i danh sách tăng d n theo c t phân lo i 5. Hi n l ệ ạ ắ ế
i danh sách sau khi s p x p i :ả procedure nhap;
var i,m: integer;
f: file of sinhVien;
ds: array[1..100] of sinhVien;
begin
{= Nhap danh sach sinh vien =}
write('Nhap so sinh vien: ');
readln(m);
writeln('Nhap thong tin sinh vien:');
for i:=1 to m do
with ds[i] do
begin
writeln('* Sinh vien thu ',i);
write('Ho ten: ');
readln(hoTen);
write('Ket qua hoc tap: ');
readln(ketQua);
if ketQua>=8 then loai:='A'
else if ketQua>=6 then loai:='B'
else if ketQua>=5 then loai:='C'
else if ketQua>=4 then loai:='D'
else loai:='E';
end;
{= Ghi danh sach ra tep DANHSACH.INP =}
assign(f,'DANHSACH.inp');
rewrite(f);
for i:=1 to m do
write(f,ds[i]);
close(f);
end; 40https://www.facebook.com/groups/CNTT.NUCE/ Gi
program bailam;
uses crt;
type sinhVien=record
hoTen: string[50];
ketQua: real;
loai: char;
end;
var sv: array[1..100] of sinhVien;
n: integer; procedure doc;
var i: integer;
f: file of sinhVien;
begin
{= Doc du lieu tu tep DANHSACH.INP =}
assign(f,'DANHSACH.inp');
reset(f);
i:=0;
while not eof(f) do
begin
i:=i+1;
read(f,sv[i]);
end;
n:=i;
end; procedure sapXep;
var i,j: integer;
tg: sinhVien;
begin
{= Sap xep danh sach =}
for i:=1 to n-1 do
for j:=i+1 to n do
if sv[i].loai > sv[j].loai then
begin
tg:=sv[i];
sv[i]:=sv[j];
sv[j]:=tg;
end;
end; procedure hienThi;
var i: integer;
begin
for i:=1 to n do
with sv[i] do
writeln(i,' ',hoTen:30,' ',ketQua:6:2,' ',loai:3);
end; begin
clrscr;
nhap;
doc;
sapXep;
hienThi;
readln 41https://www.facebook.com/groups/CNTT.NUCE/ end. ậ ươ ử ụ t ch ng trình có s d ng ươ ẽ ơ ồ
ệ Bài 18: Cho ma tr n ậ Anxm, v s đ thu t toán và vi
ế
ch ệ ậ ể ự
ng trình con nh p m ng A, ghi ra t p ọ ữ ệ ớ ả
ộ
ế ừ ủ ứ ự ậ ng trình con đ th c hi n :
ộ
ươ
M t ch
ở ạ ệ
i t p, đ c d li u vào b nh trong
M l
ắ
ươ
ộ
M t ch ng trình con s p x p t ng hàng c a ma tr n A theo th t tăng d nầ ươ ệ ế ậ ắ
ng trình con hi n ma tr n đã s p x p ra màn hình và ghi ra ộ
M t ch
t p.ệ var a,b:array[1..10,1..10] of real;
i,j,m,n,k,t,l:integer;
f1,f2,f3:text;
tg:real;
procedure nhap;
begin
write('Nhap n : ');readln(n);
write('Nhap m : ');readln(m);
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end; assign(f1,'abc.txt');
rewrite(f1);
for i:=1 to n do
begin
for j:=1 to m do
if j 42https://www.facebook.com/groups/CNTT.NUCE/ Gi i :ả end;
end; procedure doc;
begin
assign(f2,'abc.txt');
reset(f2);
i:=0;
while not eof(f2) do
begin
i:=i+1;
j:=0;
while not eoln(f2) do
begin
j:=j+1;
read(f2,b[i,j])
end;
readln(f2)
end;
t:=i;k:=j;
close(f2);
writeln;
write('Ma tran doc vao la ');
for i:=1 to t do
begin
writeln;
for j:=1 to k do
write(b[i,j]:4:1,' ');
end;
end; procedure sapxep;
begin
for i:=1 to t do
for j:=1 to k-1 do
for l:=j+1 to k do
if b[i,j]>b[i,l] then
begin
tg:=b[i,j];
b[i,j]:=b[i,l];
b[i,l]:=tg;
end;
end; procedure hienra;
begin 43https://www.facebook.com/groups/CNTT.NUCE/ writeln;
writeln('Ma tran sau khi sap xep la :');
for i:=1 to t do
begin
for j:=1 to k do
write(b[i,j]:4:1);
writeln;
end; assign(f3,'Kq.txt');
rewrite(f3);
for i:=1 to t do
begin
for j:=1 to k do
write(f3,b[i,j]:4:1);
writeln(f3);
end;
close(f3);
end; begin
nhap;
doc;
sapxep;
hienra;
readln;
end. ả ế ệ ộ ớ
ủ ượ
ủ ộ ớ ọ ộ ệ
ỗ ế ể ả
ỗ ủ ỗ ộ ủ
ươ ế ả
ọ ỳ ủ
Bài 19: K t qu thi h c k c a m t l p sinh viên đ
c cho trong 2 t p văn b n:
ứ ọ
m t t p hoten.txt ch a h và tên c a các sinh viên c a m t l p trong đó h tên
ệ
ộ
m i sinh viên chi m m t dòng và t p văn b n diem.txt ghi đi m trung bình
ể
(DTB) c a m i sinh viên, trong đó đi m c a m i sinh viên ghi trên m t dòng.
Vi t ch t ể
ng trình đ :
ế
ạ ủ ừ
ế
Tìm x p lo i c a t ng sinh viên bi
ạ ẽ ế ạ
ạ ẽ ế
ẽ ế
ạ ẽ ế ế
ế
ế
ế N u DTB>=9, sinh viên s x p lo i “xuat sac”
N u 8<=DTB<9, sinh viên s x p lo i “Gioi”
N u 7<=DTB<8, sinh viên s x p lo i “Kha”
N u DTB<7, sinh viên s x p lo i “Trung binh” Tìm h c b ng c a t ng sinh viên bi ọ ổ ủ ừ ế t ẽ ượ ọ ổ c h c b ng 240000 ẽ ượ ọ ổ
ẽ ượ ọ ổ 44https://www.facebook.com/groups/CNTT.NUCE/ ế
ế
ế
ế ẽ c h c b ng 180000
c h c b ng 120000
ượ ọ ổ N u DTB>=9, sinh viên s đ
N u 8<=DTB<9, sinh viên s đ
N u 7<=DTB<8, sinh viên s đ
N u DTB<7, sinh viên s không đ c h c b ng S p x p l ậ ự ả i b ng trên theo tr t t ư
ể
gi m d n c a đi m trung bình. Đ a ế ạ ả
ả ầ ủ
ướ ạ i d ng sau Ỳ Ủ Ớ Ọ ọ
ọ ổ ế ể ấ ạ ắ
ế
k t qu ra màn hình và ra file ketqua.txt d
Ả
Ế
+ dòng 1 : K T QU THI H C K C A L P
ấ
ấ
ỗ
ở
đi m i dòng ghi: STT, 2 d u cách, H tên, 2 d u cách,
+ dòng 2 tr
ủ ừ
ấ
đi m trung bình, 2 d u cách, X p lo i, 2 d u cách, H c b ng c a t ng
sinh viên i:ả {===Lay du lieu tu tep====}
assign(f,'hoten.txt');
reset(f);
n:=0;
while (not eof(f)) do
begin
inc(n);
readln(f,sv[n].ht);
end;
close(f);
assign(f,'diem.txt');
reset(f);
for i:=1 to n do
readln(f,sv[i].dtb);
close(f); {=== Xep Loai va Tinh Hoc Bong ===}
for i:=1 to n do
with sv[i] do
if dtb>=9 then
begin
xepLoai:='Xuat Sac';
hocBong:=240000; 45https://www.facebook.com/groups/CNTT.NUCE/ Gi
program bailam;
uses crt;
type sinhvien=record
ht: string[50];
dtb: real;
xepLoai: string[20];
hocBong: longint;
end;
var sv: array[0..100] of sinhvien;
tg: sinhvien;
d, i, j, m, n: integer;
f: text;
begin
clrscr; end
else if dtb>=8 then
begin
xepLoai:='Gioi';
hocBong:=180000;
end
else if dtb>=7 then
begin
xepLoai:='Kha';
hocBong:=120000;
end
else
begin
xepLoai:='Trung Binh';
hocBong:=0;
end; {=== Sap Xep ===}
for i:=1 to n-1 do
for j:=i+1 to n do
if sv[i].dtb {=== In Ket Qua Ra File ===}
assign(f,'ketqua.txt');
rewrite(f);
writeln(f,'KET QUA THI HOC KY CUA LOP:');
for i:=1 to n do
with sv[i] do
writeln(f,i:3,' ',ht:20,' ',dtb:6:1,xepLoai:15,' ',hocBong);
close(f); {===Dua ket qua ra man hinh===}
writeln('KET QUA THI HOC KY CUA LOP:');
for i:=1 to n do
with sv[i] do
writeln(i:3,' ',ht:20,' ',dtb:6:1,xepLoai:15,' ',hocBong);
readln
end. ế ươ ủ ườ ệ t ch ng trình con tính chu vi, di n tích c a đ ữ
ng tròn, hình ch 46https://www.facebook.com/groups/CNTT.NUCE/ ậ Bài 20: Vi
nh t, tam giác var r,s,cv,dai,rong,s1,cv1,s2,cv2,t1,t2,t3:real;
procedure tamgiac(x1,x2,x3:real;var CVtg,Stg:real);
begin
CVtg:=x1+x2+x3;
Stg:=sqrt(CVtg/2*(CVtg/2-x1)*(CVtg/2-x2)*(CVtg/2-x3));
writeln('Chu vi tam giac la : ',CVtg:6:1);
writeln('Dien tich tam giac la : ',Stg:6:1);
end; procedure hcn(a:real;b:real;var Scn,CVcn:real);
begin
Scn:=a*b;
CVcn:=a+b;
writeln('Dien tich chu nhat la : ',Scn:6:1);
writeln('Chu vi chu nhat la : ',CVcn:6:1);
end; procedure DT(bk:real;var DT,Chv:real);
begin
Chv:=3.14*bk*2;
dt:=3.14*bk*bk;
writeln('Chu vi duong tron la : ',Chv:6:1);
writeln('Dien tich duong tron la : ',DT:6:1);
end; begin
write('Nhap ban kinh duong tron : ');readln(r);
DT(r,s,cv);
write('Nhap chieu rong hcn : ');readln(rong);
write('Nhap chieu dai hcn : ');readln(dai);
hcn(dai,rong,s1,cv1);
write('Nhap canh thu 1 : ');readln(t1);
write('Nhap canh thu 2 : ');readln(t2);
write('Nhap canh thu 3 : ');readln(t3);
tamgiac(t1,t2,t3,cv2,s2);
readln;
end. ố ượ ầ ỏ ộ
ư ả ả ố ẻ ố ư ứ ả
ươ ế ầ ằ
ng trình b ng ngôn ng ể
t ch ậ
ầ ự ạ ộ
ề
ấ
c cung c p m t ph n m m mô ph ng ho t đ ng
Bài 21: Ngân hàng mu n đ
ọ
ố
ầ
ủ
c a máy ATM, các thông tin c n qu n lý nh sau : S PIN, s tài kho n, h và
tên, CMTND, ngày làm th , s d . Hãy khai báo ki u b n ghi (Record) ch a các
ữ
ậ ơ ồ
thành ph n nêu trên. L p s đ thu t toán và vi
ệ
ậ
l p trình pascal th c hi n các yêu c u sau : Ch 47https://www.facebook.com/groups/CNTT.NUCE/ ươ ể ươ ề
ng trình đi u khi n (Ch ng trình chính) ươ ể ậ ừ ộ
M t ch ữ ệ
ng trình con đ nh p d li u thông tin khách hàng t bàn phím vào máy ươ ị ế ể ả ộ
M t ch ả ượ ớ ố ươ ậ ừ
ừ ề ấ
c nh p t
lên màn hình v i s PIN đ
ể
ng trình con đ rút ti n ra t ố ư
ng trình con l y thông tin s d tài kho n hi n th k t qu
bàn phím
ả
tài kho n theo quy trình : ầ ậ ố ề ầ ầ ừ ề ố ư ằ ộ
M t ch
1. Yêu c u nh p s PIN
ế ố ề
2. N u đúng s PIN, thì yêu c u nh p s ti n c n rút. N u s ti n
ố ư
ti n trong s d đúng ậ ố
ế
ố
ỏ ơ
ặ
ầ
c n rút nh h n ho c b ng s d thì tr
ố ề ầ
ằ
b ng s ti n c n rút. 3. Thông báo giao d ch thành công ị i :ả procedure laythongtin;
begin 48https://www.facebook.com/groups/CNTT.NUCE/ Gi
type atm=record
sopin:integer;
sotk:integer;
hoten:string[20];
cmtnd:string[10];
ngaylamthe:string[20];
sodu:real;
end;
var kh:array[1..50] of atm;
i,j,n,PIN,k,PIN1,t,dem,dem1:integer;
sotien:real;
procedure nhap;
begin
write('Nhap so khach hang : ');readln(n);
for i:=1 to n do
begin
write('Nhap so pin cua KH thu ',i,' :
');readln(kh[i].sopin);
write('Nhap so tai khoan cua KH thu ',i,' :
');readln(kh[i].sotk);
write('Nhap ho ten cua khach hang thu ',i,' :
');readln(kh[i].hoten);
write('Nhap so cmtnd cua KH thu ',i,' :
');readln(kh[i].cmtnd);
write('Nhap ngay lam the cua KH thu ',i,' :
');readln(kh[i].ngaylamthe);
write('Nhap so du tai khoan cua KH thu ',i,' :
');readln(kh[i].sodu);
end;
end; writeln;
writeln('Chuong trinh con lay tong tin khach hang tu so PIN');
write('Nhap so pin tai khoan : ');readln(PIN);
dem:=0;
for i:=1 to n do
if PIN=kh[i].sopin then
begin
k:=i;
dem:=dem+1;
end;
if dem<>0 then
writeln('So du cua tai khoan la : ',kh[k].sodu:8:1)
else
writeln('Khong co tai khoan nao co so PIN nhu vay');
end; procedure ruttien;
begin
writeln('Chuong trinh con rut tien');
write('Nhap so pin tai khoan : ');readln(PIN1);
dem1:=0;
for i:=1 to n do
if PIN1=kh[i].sopin then
begin
t:=i;
dem1:=dem1+1;
end;
if dem1<>0 then
begin
write('Nhap so tien can rut : ');readln(sotien);
if sotien<=kh[t].sodu then
begin
kh[t].sodu:=kh[t].sodu-sotien;
writeln('So tien con lai cua quy khach la :
',kh[t].sodu:8:1);
writeln('Giao dich thanh cong');
end
else
writeln('So tien lon hon so du trong tai khoan');
writeln('Giao dich ko thanh cong');
end
else
writeln('Khong co so PIN nay');
end; begin
nhap; 49https://www.facebook.com/groups/CNTT.NUCE/ laythongtin;
ruttien;
readln;
end. ậ ơ ồ ươ ế ằ t ch ng trình b ng ngôn ng l p trình ề ố ự ằ ậ
ả ể ổ ữ ậ
ươ ế t các ch ng trình con Bài 22: L p s đ thu t toán và vi
Pascal đ tính t ng m ng hai chi u s th c b ng cách vi
sau : ả ề ừ bàn phím ạ ậ ộ ồ N i dung ch ậ ố ệ
Nh p s li u cho m ng hai chi u t
ấ ế
ề
ả ả
Xu t k t qu m ng hai chi u ra màn hình theo d ng ma tr n
ề
ả
ổ
Tính t ng m ng hai chi u
ng trình chính g m : ứ ấ ồ ậ ố ệ ứ ả ứ ấ ồ ả
ứ ả ả ấ ế
ả ả ả
ả ấ ế ươ
ậ ố ệ
1.Nh p s li u cho m ng th nh t r i nh p s li u cho m ng th hai
ấ ế
2.Xu t k t qu m ng th nh t r i xu t k t qu m ng th hai (ra màn hình)
3.Tính t ng 2 m ng trên r i xu t k t qu ra màn hình
ồ
ổ
ả
i : (Dino) 50https://www.facebook.com/groups/CNTT.NUCE/ Gi
uses crt;
type mang=array[1..100,1..100] of integer;
var a,b,t:mang;
i,j,m,n,m1,n1:integer;
Procedure nhap(var c:mang);
Begin
for i:=1 to m do
for j:=1 to n do
begin
write('PT[',i,',',j,']= ');
readln(c[i,j]);
end;
end;
Procedure xuat(var c:mang);
Begin
for i:=1 to m do
begin
for j:=1 to n do write(c[i,j]:4);
writeln;
end;
end;
Procedure tong;
Begin
for i:=1 to m do
for j:=1 to n do
t[i,j]:=a[i,j]+b[i,j];
End;
Begin clrscr;
write('Nhap so hang ma tran: ');
readln(m);
write('Nhap so cot ma tran: ');
readln(n);
writeln('Nhap ma tran thu nhat: ');
nhap(a);
writeln('Nhap ma tran thu hai: ');
nhap(b);
writeln('Ma tran thu nhat la: ');
xuat(a);
writeln('Ma tran thu hai la: ');
xuat(b);
tong;
writeln('Tong cua hai ma tran la: ');
xuat(t);
readln;
End. ủ ộ ử ụ ủ ộ ế ỗ t các thông tin : ị ố ọ ệ
ồ ệ ỉ ậ ợ t ch ươ
ệ ậ
ả ữ ậ Bài 23: Cho danh sách các ch h s d ng đi n, m i ch h bi
ạ
ạ
ấ
ả
ạ ợ
Mã s , h tên, đ a ch , đi n tho i, lo i h p đ ng (SH:sinh ho t, SX:s n xu t,
ế
ồ
ng trình
KD: kinh doanh), ngày ký h p đ ng. Hãy l p thu t toán và vi
ầ
ể ự
ấ
ằ
b ng ngôn ng l p trình pascal (dùng c u trúc b n ghi) đ th c hi n các yêu c u
sau đây : bàn phím ồ ng ng v i m i lo i h p đ ng : SH, SX và KD. sách t ậ ữ ệ
ố ộ ủ
ươ ứ
ả ư ế ừ
Nh p d li u đã cho vào máy t
ồ
ạ ợ
Tìm s h c a m i lo i h p đ ng và tách danh sách trên thành ba danh
ỗ
ạ ợ
c ra màn hình. ỗ
ớ
ượ
Đ a k t qu tìm đ ả i : (Dino) 51https://www.facebook.com/groups/CNTT.NUCE/ Gi
uses crt;
type hodan=record
maso:string[15];
ten,diachi:string[20];
dt,hd,ngay:string[15];
end;
var ho:array[1..100] of hodan;
m,i,demsh,demsx,demkd:integer;
Begin
Clrscr;
write('Nhap so ho dan: ');
readln(m);
writeln('Nhap thong tin cac ho dan: ');
demsh:=0; demsx:=0; demkd:=0;
for i:=1 to m do
with ho[i] do begin
writeln('Ho thu ',i);
write('Ma so: ');
readln(maso);
write('Ho ten: ');
readln(ten);
write('Dia chi');
readln(diachi);
write('Dien thoai: ');
readln(dt);
write('Loai hop dong: ');
readln(hd);
write('Ngay dang ky: ');
readln(ngay);
if hd='kd' then demkd:=demkd+1
else
if hd='sx' then demsx:=demsx+1
else
if hd='sh' then demsh:=demsh+1;
end;
writeln('So ho hop dong kinh doanh la: ',demkd); writeln('So ho hop dong san xuat la: ',demsx);
writeln('So ho hop dong sinh hoat la: ',demsh);
writeln('Hop dong':10,'Ten chu ho':20,'Dia
chi':20,'SDT':12);
write('Sinh hoat':10);
for i:=1 to m do
with ho[i] do
if hd='sh' then
begin
write(ten:20,diachi:20,dt:12);
writeln;
end;
writeln('_______________________________________________________
_______');
write('Kinh doanh':10);
for i:=1 to m do
with ho[i] do
if hd='kd' then
begin
write(ten:20,diachi:20,dt:12);
writeln;
end; 52https://www.facebook.com/groups/CNTT.NUCE/ writeln('_______________________________________________________
_______');
write('San xuat':10);
for i:=1 to m do
with ho[i] do
if hd='sx' then
begin
write(ten:20,diachi:20,dt:12);
writeln;
end;
readln;
End. 53https://www.facebook.com/groups/CNTT.NUCE/ ổ ố ọ
ả
Bài 24: Cho b ng N môn h c
Tên môn h cọ TT Lý thuy tế Bài t pậ T ng s ế ươ ử ụ ể ả ả t ch ng trình pascal có s d ng ki u m ng các b n ẽ ơ ồ
ể ự ế ờ ậ
V s đ thu t toán và vi
ệ
ghi đ th c hi n :
ả ậ lý thuy t, gi Nh p m ng (TT, tên môn h c, gi
ố ờ ằ
ệ
ọ ữ ệ ậ
bài t p) t
ậ bàn phím,
ộ ổ ờ
ọ
ố ế
ế ộ
ố ế
t lý thuy t c ng s ti ừ
t bài t p, ghi n i b ng s ti ớ
ộ ộ ộ tính t ng s gi
ả
dung b ng ra t p
ộ
ở ạ ệ
i t p, đ c d li u vào b nh trong
M l
ờ
ế ổ
ờ
ổ
lý thuy t, t ng c t gi
Tính t ng c t gi
ậ
ố ờ
ủ ổ
Tính ph n trăm c a t ng s gi ố
ờ ổ
ổ
ậ
t ng s
bài t p, t ng c t gi
ớ
ế
ố ờ
ổ
lý thuy t so v i
bài t p, t ng s gi Hi n các k t qu ra màn hình và đ a ra t p ầ
ổ
t ng toàn b s gi
ả ộ ố ờ
ế ư ệ uses crt;
type monhoc = record
stt:integer;
ten:string[30];
lt:integer;
th:integer;
ts:integer;
end;
var mon:array[1..100] of monhoc;
m,i, tonglt,tongth,tong:integer;
f1:file of monhoc;
f2:text;
ptlt,ptth:real; 54https://www.facebook.com/groups/CNTT.NUCE/ ả ệ
i : (Dino) Gi Begin
Clrscr;
write('Nhap so mon hoc: ');
readln(m);
writeln('Nhap thong tin tung mon hoc: ');
assign(f1,'dulieu1.txt');
rewrite(f1);
for i:=1 to m do
begin
with mon[i] do
begin
writeln('Mon thu: ',i);
write('Ten mon hoc: ');
readln(ten);
write('So gio ly thuyet: ');
readln(lt);
write('So gio thuc hanh: ');
readln(th);
ts:=lt+th;
end;
write(f1,mon[i]);
end;
Reset(f1);
for i:=1 to m do read(f1,mon[i]);
tonglt:=0 ;
tongth:=0;
For i:=1 to m do
begin
tonglt:=tonglt+mon[i].lt;
tongth:=tongth+mon[i].th;
end;
tong:=tonglt+tongth;
ptlt:=(tonglt/tong)*100 ;
ptth:=(tongth/tong)*100;
assign(f2,'dulieu2.txt');
rewrite(f2);
writeln('Tong cot so gio ly thuyet la: ',tonglt:3);
writeln('Tong cot so gio thuc hanh la: ',tongth:3);
writeln('Tong cot gio tong so la: ',tong:3);
writeln('So phan tram ly thuyet:',ptlt:3:1,'%');
writeln('So phan tram thuc hanh:',ptth:3:1,'%');
writeln(f2,'Tong cot so gio ly thuyet la: ',tonglt:3);
writeln(f2,'Tong cot so gio thuc hanh la: ',tongth:3);
writeln(f2,'Tong cot gio tong so la: ',tong:3);
writeln(f2,'So phan tram ly thuyet:',ptlt:3:1,'%');
writeln(f2,'So phan tram thuc hanh:',ptth:3:1,'%');
close(f1); close(f2); 55https://www.facebook.com/groups/CNTT.NUCE/ readln;
End. ộ ử ớ ố ượ ể ạ ả ầ ả ế ng. Hãy khai báo
ươ
ng trình t ch ấ ả
ậ
ệ ữ ậ ự ả
Bài 25: M t c a hàng sách qu n lý sách v i các thông tin sau :
, th lo i, năm xu t b n, s l
Mã sách, tên sách, tên tác gi
ậ ơ ồ
ể
ki u b n ghi các thành ph n nêu trên. L p s đ thu t toán và vi
ằ
b ng ngôn ng l p trình pascal th c hi n các công vi c sau : Nh p d li u thông tin n quy n sách t ừ ớ ệ
ể ậ
bàn phím vào máy v i n nh p ậ
ữ ệ
bàn phím. ữ ế ố ượ ỏ ơ ớ ậ
ng nh h n m v i m nh p ừ
t
In ra danh sách nh ng quy n sách có s l
ừ
t bàn phím Ghi lên file SACH.TXT danh sách toàn b s sách c a c a hàng theo ủ ử ộ ố ứ ự ả ề ố ượ ầ
gi m d n v s l ng uses crt;
type quyensach = record
masach:string[20];
ten:string[30];
tacgia:string[25];
theloai:string[20];
namxb,sl:integer;
end;
var sach:array[1..100] of quyensach;
m,n,i,j,dem:integer;
temp:quyensach;
f:text;
Begin
clrscr;
Write('Nhap so quyen sach: ');
readln(n);
writeln('Nhap thong tin tung quyen sach: ');
For i:=1 to n do
with sach[i] do
begin
writeln('Sach thu ',i);
write('Ma sach: ');
readln(masach);
write('Ten sach: ');
readln(ten);
write('Tac gia: ');
readln(tacgia);
write('Nam xuat ban: ');
readln(namxb); 56https://www.facebook.com/groups/CNTT.NUCE/ ả th t
i : (Dino) Gi write('So luong: ');
readln(sl);
end;
write('Nhap so m: ');
readln(m);
writeln('Danh sach nhung quyen sach co so luong be hon ',m);
writeln('STT':4,'Ten sach':20);
for i:=1 to n do
if sach[i].sl End. ồ ư ồ ơ ầ ọ ể ứ ế ầ ả
i tính. Hãy khai báo ki u b n ghi
ằ
ươ
ng trình b ng t ch ậ ơ ồ
ệ ể ươ
ươ ể ậ ừ Bài 26: H s thông tin sinh viên g m nh ng thành ph n sau :
ớ
Mã sinh viên, h và tên, năm sinh, quê quán, gi
ậ
ch a các thành ph n nêu trên. L p s đ thu t toán và vi
ầ
ự
ngôn ng l p trình pascal th c hi n các yêu c u sau :
ươ
ề
ng trình đi u khi n (ch
ng trình chính)
ữ ệ
ng trình con đ nh p d li u thông tin sinh viên t bàn phím ư ủ ữ ậ
ộ
M t ch
ộ
M t ch
vào máy
ộ
M t ch ậ ừ c nh p t ế
ể
bàn phím
ạ ồ ơ ư ng trình con đ tìm ki m đ a ra thông tin c a sinh viên có mã
ượ
ng trình con t o m t file l u thông tin h s sinh viên theo ầ ủ ộ
gi m d n c a năm sinh ươ
sinh viên đ
ươ
ộ
M t ch
ứ ự ả
th t uses crt;
type sinhvien=record
msv:string[10]; 57https://www.facebook.com/groups/CNTT.NUCE/ Gi i :ả ten,que:string[25];
ns:integer;
gt:string[5];
end;
var sv:array[1..100] of sinhvien;
m,i,j:integer;
f:text;
temp:sinhvien;
procedure nhap;
begin
Clrscr;
write('Nhap so sinh vien: ');
readln(m);
writeln('Nhap thong tin sinh vien');
for i:=1 to m do
with sv[i] do
begin
writeln('Sinh vien thu ',i);
write('Ma SV: ');
readln(msv);
write('Ho ten: ');
readln(ten);
write('Nam sinh: ');
readln(ns);
write('Que quan: ');
readln(que);
write('Gioi tinh: ');
readln(gt); end;
end;
Procedure tracuu;
var kt:boolean;
temp1:string[10];
x:integer;
begin
write('Nhap Ma sv can tra cuu: ');
readln(temp1);
kt:=false;
for i:=1 to m do
if sv[i].msv=temp1 then
begin
kt:=true;
x:=i;
end;
if kt=true then
with sv[x] do 58https://www.facebook.com/groups/CNTT.NUCE/ begin
writeln('Thong tin hoc sinh co ma sv la
',temp1);
writeln('Ho ten: ',ten);
writeln('Nam sinh: ',ns);
writeln('Gioi tinh: ',gt);
writeln('Que quan: ',que);
end
else writeln('Ma sv ban vua nhap khong co');
end;
procedure ghitep;
begin
assign(f,'abc.txt');
rewrite(f);
for i:=1 to m-1 do
for j:=i+1 to m do
if sv[i].ns>sv[j].ns then
begin
temp:=sv[i];
sv[i]:=sv[j];
sv[j]:=temp;
end;
writeln(f,'STT':4,'Ho ten':25,'Nam sinh':10);
{Minh chi hien thi tung nay,ai thich hien thi them thi them
vao nhe}
for i:=1 to m do
with sv[i] do
writeln(f,i:4,ten:25,ns:10);
close(f);
end;
Begin
Nhap;
tracuu;
ghitep;
readln;
End. ả ả ấ ế ộ
c danh sách tên các đ i bóng tham gia mùa gi
ữ ộ ượ ể ể ướ
ộ
ả ắ
ầ ử ằ ng chéo chính gán b ng 0, các ph n t thu c đ ế
i và k t qu thi
ậ
c ghi trong ma tr n vuông
ư
ứ
ượ ổ
ch c nh
c t
ầ ử aij khác có ý ắ ộ 59https://www.facebook.com/groups/CNTT.NUCE/ ộ ộ Bài 27: Cho tr
ả
ữ
ấ
đ u gi a các đ i. K t qu thi đ u gi a các đ i đ
ể
ế
ồ
g m k t qu th ng (3 đi m), hòa (1 đi m), thua (0 đi m) đ
ộ ườ
sau : Các ph n t
nghĩa :
aij= 3 đ i i th ng đ i j
ộ
aij= 1 đ i i hòa đ i j ộ ể ự ủ ể
ế ắ ộ
c a các đ i sau mùa gi ả
i ầ ươ
ươ
ươ
ứ ự ả
theo th t
ươ ệ ả ộ ươ ệ
ầ
ng trình đ th c hi n các yêu c u sau :
ậ ữ ệ ừ
ng trình con nh p d li u t
bàn phím
ỗ ộ
ng trình con tính đi m c a m i đ i
ứ ự ủ
ng trình con s p x p theo th t
gi m d n.
ng trình con ghi k t qu vào t p và m t ch ng trình con ộ
M t ch
ệ ế
ạ ị ả i ố ể ấ hi n ra màn hình theo đ nh d ng sau :
Dòng 1 : KET QUA BONG DA
Dòng 2 : S đ i bóng tham gia mùa gi
Các dòng ti p theo m i dòng ghi : STT, hai d u cách, s đi m. ươ ươ ọ ố ộ
ế
ỗ
ng trình chính g i các ch ng trình con ộ
M t ch i :ả 60https://www.facebook.com/groups/CNTT.NUCE/ Gi
Uses crt;
Var i,j,m,Temp1:integer;
f1:text;
Temp:string[25];
Doi:array[1..20] of string[25];
S:array[1..20] of integer;
A:array[1..20,1..20] of integer;
Procedure Nhap;
Begin
Write('Nhap so doi: ');
Readln(m);
For i:=1 to m do
Begin
Write('Ten doi ',i,': ');
Readln(Doi[i]);
End;
Writeln('Nhap ket qua tung tran dau theo ma tran vuong: ');
For i:=1 to m do
For j:=1 to m do
Begin
Write('A[',i,j,']= ');
Readln(A[i,j]);
End;
End;
Procedure Tinhdiem;
Begin
Fillchar(S,Sizeof(s),0); {Gan tat ca phan tu S = 0}
For i:=1 to m do
For j:=1 to m do
If i<>j then {Khong tinh duong cheo chinh}
Begin If A[i,j]=3 then S[i]:=S[i]+3
Else
If A[i,j]=1 then
Begin
S[i]:=S[i]+1; {Vi 2 doi hoa nhau nen
so diem ca 2 cung se tang len 1}
S[j]:=S[j]+1;
End
Else S[j]:=S[j]+3; {A[i,j]=0 --> Doi J duoc 3
diem, I dc 0 diem}
End;
End;
Procedure Sapxep;
Begin
For i:=1 to m-1 do
For j:=i+1 to m do
If S[i] 61https://www.facebook.com/groups/CNTT.NUCE/ Writeln;
End;
End;
BEGIN
Clrscr;
Nhap;
Tinhdiem;
Sapxep;
Ghitep;
Inra;
Readln;
END. 62https://www.facebook.com/groups/CNTT.NUCE/Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD
aij= 0 đ i i thua đ i j
ộ
ươ
ế
t ch
Hãy vi
ộ
M t ch
ộ
M t ch
ộ
M t ch
Góc học tập khoa CNTT - ĐHXD
Góc học tập khoa CNTT - ĐHXD