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   :=  to  do

ị ố ị ầ ề ế ệ

2. For   := < Giá tr  cu i > downto < Giá tr  đ u >

ị ố ị ầ ề ệ

ế 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      ;ệ ứ Until ;

5https://www.facebook.com/groups/CNTT.NUCE/

ứ While  do      Begin            ;ệ       End;

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:=A­B=[1..7,18..23];

C:=B­A=[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:=A­B

 C:=B­A

ợ ệ ủ ệ ủ ệ 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

ể ả ả 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/