Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.09 MB, 38 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Giải
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>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 </b>
các phần tử <0
Giải
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;
for i:=1 to k do
writeln('y[',i,'] = ',y[i]:4:1);
Writeln('Day ca phan tu <0 la :');
for i:=1 to l do
writeln('z[',i,'] = ',z[i]:4:1);
readln;
end.
<b>Bài 3 : Cho dãy x1,x2…xn. Sắp xếp dãy số sao cho phần tử >=0 về đầu, phần tử <0 về cuối, </b>
trật tự các phần tử không thay đổi
Giải
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>Bài 4 : Cho dãy x1,x2…xn. Xóa phần tử xk </b>
Giải
var i,n,k : integer;
x,y : array[1..100] of real;
write('Nhap n : ');readln(n);
for i:=1 to n do
begin
readln(x[i]);
end;
write('Nhap vi tri k :');readln(k);
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>Bài 5 : Cho dãy x1,x2…xn. Chèn M vào vị trí k </b>
<b>Cách 1 : </b>
var i,n,k,m : integer;
x,y : array[1..100] of real;
begin
write('Nhap n : ');readln(n);
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<k then
y[i]:=x[i]
else if i=k then
y[i]:=m
else
y[i]:=x[i-1];
for i:=1 to n+1 do
writeln('y[',i,']= ',y[i]:4:1);
readln;
end.
<b>Cách 2 : Dino </b>
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
readln(a[i]);
end;
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>Bài 6 : Kiểu mảng - Cho bảng sau : </b>
STT Họ tên Điểm
1 ….. m
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
<b>Giải : </b>
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
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 :');
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(' ',diem[i,j]:4:1,' ');
end;
readln;
end.
<b>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 </b>
Giải
var i,m,n,j : integer;
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
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.
<b>Bài 8 : Cho ma trận Anxm, xóa hàng thứ k của ma trận. </b>
Giải
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
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.
<b>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 </b>
nhất đó.
Giải
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.
nhất đó.
Giải
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
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;
<b>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 </b>
trận, chèn vecto B vào cột cuối cùng chứa giá trị nhỏ nhất đó
Giải
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);
write('Nhap so cot : ');readln(m);
for i:=1 to n 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
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<k+1 then
y[i,j]:=a[i,j]
else if j=k+1 then
y[i,j]:=b[i]
else
y[i,j]:=a[i,j-1];
for i:=1 to n do
begin
writeln;
for j:=1 to m+1 do
write(y[i,j]:4:1,' ');
end;
readln;
end.
<b>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 </b>
thứ k
Giải
var i,j,k,n,m:integer;
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]);
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<k then
y[i,j]:=a[i,j]
else if i=k then
y[i,j]:=b[j]
else
y[i,j]:=a[i-1,j];
for i:=1 to n+1 do
begin
writeln;
for j:=1 to m do
write(y[i,j]:4:1,' ');
end;
end
else
writeln('K ko co thuoc hang can chen ');
readln;
end.
<b>Bài 13: Cho ma trận Anxm tìm tổng phần tử dương trong tam giác trên và tích các phần tử </b>
âm trong tam giác dưới. So sánh tổng và tích
Giải
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 ')
else
writeln('Tong be hon tich');
readln;
end.
STT Họ tên Điểm danh
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ỉ
Giải: (Dino)
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: ');
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: ');
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.
<b>Bài 15 : Cho trước tệp văn bản TEN.TXT ghi họ tên sinh viên của một lớp, trong đó họ tên </b>
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 tố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 cao nhất) và
hãy cho biết co bao nhiêu sinh viên như thế.
3. Kết quả ghi vào tệp ketqua.txt theo quy cách sau
- 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
Giải :
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
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;
readln(f2);
end;
m:=j;
close(f2);
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
sv1[t]:=sv[i];
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;
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.
<b>Bài 16 : Cho trước tệp văn bản TEN.TXT ghi họ tên các chủ hộ của một phường, trong đó </b>
mỗi dịng ghi họ tên của một chủ hộ và tệp văn bản SODIEN.TXT ghi số lượng điện các hộ
tiêu thụ trong tháng, trong đó số lượng điện tiêu thụ của mỗi hộ ghi trên 1 dòng, số lượng
điện các tháng ghi cách nhau 1 dấu cách
Vẽ sơ đồ thuật tố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ộ
Kết quả ghi vào tệp văn bản KETQUA.TXT theo quy cách sau :
STT(2 dấu cách)Họ tên chủ hộ(2 dấu cách)Số lượng điện trung bình 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
- Các dịng tiếp theo : Họ tên các chủ hộ có số lượng điện tiêu thụ trung bình hàng
tháng ít nhất, họ tên mỗi chủ hộ viết trên 1 dòng
Giải :
type chuho=record
ht:string[30];
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;
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
if ch[i].tb<min then
min:=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.
<b>Bài 17 : Vẽ sơ đồ thuật toán và viết chương trình Pascal thực hiện các cơng việc cho bài toán </b>
sau :
Cho một danh sách lớp :
TT Họ tên Kết quả học tập Phân loại
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
Phân loại bằng E nếu kết quả học tập < 4
2. Ghi danh sách ra tệp
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
Giải :
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 nhap;
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');
for i:=1 to m do
write(f,ds[i]);
close(f);
end;
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;
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;
sapXep;
hienThi;
readln
end.
<b>Bài 18: Cho ma trận Anxm, vẽ sơ đồ thuật tốn và viết chương trình có sử dụng chương trình </b>
con để thực hiện :
- Một chương trình con nhập mảng A, ghi ra tệp
- Mở lại tệp, đọc dữ liệu vào bộ nhớ trong
- 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
- Một chương trình con hiện ma trận đã sắp xếp ra màn hình và ghi ra tệp.
Giải :
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
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<m then
write(f1,a[i,j]:4:1,' ')
else
write(f1,a[i,j]:4:1);
writeln(f1);
end;
close(f1);
writeln('Ma tran ghi ra la ');
for i:=1 to n do
begin
for j:=1 to m do
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);
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
writeln;
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;
<b>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 </b>
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ương trình để:
- Tìm xếp loại của từng sinh viên biết
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
Nếu DTB>=9, sinh viên sẽ được học bổng 240000
Nếu 8<=DTB<9, sinh viên sẽ được học bổng 180000
Nếu 7<=DTB<8, sinh viên sẽ được học bổng 120000
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 kết quả ra
màn hình và ra file ketqua.txt dưới dạng sau
+ dịng 1 : KẾT QUẢ THI HỌC KỲ CỦA LỚP
+ dòng 2 trở đi mỗi dòng ghi: STT, 2 dấu cách, Họ tên, 2 dấu cách, đ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
Giải:
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;
{===Lay du lieu tu tep====}
assign(f,'hoten.txt');
reset(f);
n:=0;
while (not eof(f)) do
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;
end
else if dtb>=8 then
begin
xepLoai:='Gioi';
hocBong:=180000;
end
else if dtb>=7 then
begin
xepLoai:='Kha';
hocBong:=120000;
end
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<sv[j].dtb then
begin
tg:=sv[i];
sv[i]:=sv[j];
sv[j]:=tg;
end;
{=== 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.
<b>Bài 20: Viết chương trình con tính chu vi, diện tích của đường trịn, hình chữ nhật, tam giác </b>
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;
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);
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.
<b>Bài 21: Ngân hàng muốn được cung cấp một phần mềm mô phỏng hoạt động của máy ATM, </b>
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 tốn
và viết chương trình bằng ngơn ngữ lập trình pascal thực hiện các yêu cầu sau :
- Chươ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ương trình con lấy thơng tin số dư tài khoản hiển thị kết quả lên màn hình
với số PIN được nhập từ bàn phím
- Một chương trình con để rút tiền ra từ tài khoản theo quy trình :
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 cần rút nhỏ
Giải :
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;
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;
procedure laythongtin;
begin
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
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;
laythongtin;
ruttien;
readln;
end.
<b>Bài 22: Lập sơ đồ thuật toán và viết chương trình bằng ngơn ngữ lập trình Pascal để tính </b>
tổng mảng hai chiều số thực bằng cách viết các chương trình con sau :
- Nhập số liệu cho mảng hai chiều từ bàn phím
- 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
Nội dung chươ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
Giải : (Dino)
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);
for i:=1 to m do
begin
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.
<b>Bài 23: Cho danh sách các chủ hộ sử dụng điện, mỗi chủ hộ biết các thông tin : Mã số, họ </b>
tên, địa chỉ, điện thoại, loại hợp đồng (SH:sinh hoạt, SX:sản xuất, KD: kinh doanh), ngày ký
hợp đồng. Hãy lập thuật toán và viết chương trình 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 :
- Nhập dữ liệu đã cho vào máy từ bàn phím
- 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 sách tương
ứng với mỗi loại hợp đồng : SH, SX và KD.
- Đưa kết quả tìm được ra màn hình.
Giải : (Dino)
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;
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;
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.
<b>Bài 24: Cho bảng N môn học </b>
TT Tên môn học Lý thuyết Bài tập Tổng số
Vẽ sơ đồ thuật tốn và viết chương trình pascal có sử dụng kiểu mảng các bản ghi để thực
hiện :
- Nhập mảng (TT, tên môn học, giờ lý thuyết, giờ bài tập) từ bàn phím, tính tổng số
giờ bằng số tiết lý thuyết cộng số tiết bài tập, ghi nội dung bảng ra tệp
- Mở lại tệp, đọc dữ liệu vào bộ nhớ trong
- Tính tổng cột giờ lý thuyết, tổng cột giờ bài tập, tổng cột giờ tổng số
- Tính phần trăm của tổng số giờ bài tập, tổng số giờ lý thuyết so với tổng toàn bộ
số giờ
- Hiện các kết quả ra màn hình và đưa ra tệp
Giải : (Dino)
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;
Begin
Clrscr;
write('Nhap so mon hoc: ');
readln(m);
writeln('Nhap thong tin tung mon hoc: ');
assign(f1,'dulieu1.txt');
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: ');
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);
readln;
End.
<b>Bài 25: Một cửa hàng sách quản lý sách với các thông tin sau : </b>
Mã sách, tên sách, tên tác giả, thể loại, năm xuất bản, số lượng. Hãy khai báo kiểu bản ghi các
thành phần nêu trên. Lập sơ đồ thuật tốn và viết chương trình bằng ngơn ngữ lập trình
pascal thực hiện các công việc sau :
- Ghi lên file SACH.TXT danh sách toàn bộ số sách của cửa hàng theo thứ tự giảm
dần về số lượng
Giải : (Dino)
uses crt;
type quyensach = record
masach:string[20];
ten:string[30];
tacgia:string[25];
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);
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<m then writeln(i:4,sach[i].ten:20);
assign(f,'sach.txt');
rewrite(f);
for i:=1 to n-1 do
for j:=i+1 to n do
temp:=sach[i];
sach[i]:=sach[j];
sach[j]:=temp;
end;
writeln(f,'STT':4,'Ten sach':20,'So luong':10);
For i:=1 to n do
with sach[i] do
writeln(f,i:4,ten:20,sl:10);
readln;
close(f);
End.
<b>Bài 26: Hồ sơ thông tin sinh viên gồm nhưng thành phần sau : </b>
Mã sinh viên, họ và tên, năm sinh, quê quán, giới tính. Hãy khai báo kiểu bản ghi chứa các
thành phần nêu trên. Lập sơ đồ thuật tốn và viết chương trình bằng ngơn ngữ lập trình
pascal thực hiện các yêu cầu sau :
- Một chươ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 sinh viên từ bàn phím vào máy
- Một chương trình con để tìm kiếm đưa ra thơng tin của sinh viên có mã sinh viên
được nhập từ bàn phím
- Một chương trình con tạo một file lưu thông tin hồ sơ sinh viên theo thứ tự giảm
dần của năm sinh
Giải :
uses crt;
type sinhvien=record
msv:string[10];
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: ');
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
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
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.
<b>Bài 27: Cho trước danh sách tên các đội bóng tham gia mùa giải và kết quả thi đấu giữa các </b>
đội. Kết quả thi đấu giữa các đội được ghi trong ma trận vuông gồm kết quả thắng (3 điểm),
hòa (1 điểm), thua (0 điểm) được tổ chức như sau : Các phần tử thuộc đường chéo chính
gán bằng 0, các phần tử aij khác có ý nghĩa :
aij= 3 đội i thắng đội j
aij= 1 đội i hòa đội j
aij= 0 đội i thua đội j
Hãy viết chương trình để thực hiện các yêu cầu sau :
- Một chương trình con nhập dữ liệu từ bàn phím
- Một chương trình con tính điểm của mỗi đội
- Một chương trình con sắp xếp theo thứ tự của các đội sau mùa giải theo thứ tự
giảm dần.
- Một chương trình con ghi kết quả vào tệp và một chương trình con 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ải
Các dòng tiếp theo mỗi dòng ghi : STT, hai dấu cách, số điểm.
- Một chương trình chính gọi các chương trình con
Giải :
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
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]<S[j] then
Begin
Temp:=Doi[i];
Doi[i]:=Doi[j];
End;
Procedure Ghitep;
Begin
Assign(f1,'Ketquathidau.txt');
Rewrite(f1);
Writeln(f1,'KET QUA THI DAU');
Writeln(f1,'STT':4,'TEN DOI BONG':25,'SO DIEM':10);
For i:=1 to m do
Write(f1,i:4,Doi[i]:25,S[i]:10);
Writeln(f1);
End;
Close(f1);
End;
Procedure Inra;
Begin
Writeln('KET QUA THI DAU');
Writeln('STT':4,'TEN DOI BONG':25,'SO DIEM':10);
For i:=1 to m do
Begin
Write(i:4,Doi[i]:25,S[i]:10);
Writeln;
Website HOC247 cung cấp một môi trường học trực tuyến sinh động, nhiều tiện ích thơng minh,
nội dung bài giảng được biên soạn công phu và giảng dạy bởi những <b>giáo viên nhiều năm kinh </b>
<b>nghiệm, giỏi về kiến thức chuyên môn lẫn kỹ năng sư phạm đến từ các trường Đại học và các </b>
trường chuyên danh tiếng.
<b>I.</b> <b>Luyện Thi Online</b>
- <b>Luyên thi ĐH, THPT QG:</b> Đội ngũ <b>GV Giỏi, Kinh nghiệm</b> từ các Trường ĐH và THPT danh tiếng xây
dựng các khóa <b>luyện thi THPTQG </b>các mơn: Tốn, Ngữ Văn, Tiếng Anh, Vật Lý, Hóa Học và Sinh Học.
- <b>Luyện thi vào lớp 10 chun Tốn: </b>Ơn thi <b>HSG lớp 9</b> và <b>luyện thi vào lớp 10 chuyên Toán</b> các
trường <i>PTNK, Chuyên HCM (LHP-TĐN-NTH-GĐ), Chuyên Phan Bội Châu Nghệ An và các trường Chuyên </i>
khác cùng TS.Trần Nam Dũng, TS. Pham Sỹ Nam, TS. Trịnh Thanh Đèo và Thầy Nguyễn Đức Tấn.
<b>II.</b> <b>Khoá Học Nâng Cao và HSG </b>
- <b>Toán Nâng Cao THCS:</b> Cung cấp chương trình Tốn Nâng Cao, Toán Chuyên dành cho các em HS THCS
lớp 6, 7, 8, 9 u thích mơn Tốn phát triển tư duy, nâng cao thành tích học tập ở trường và đạt điểm tốt
ở các kỳ thi HSG.
- <b>Bồi dưỡng HSG Tốn:</b> Bồi dưỡng 5 phân mơn <b>Đại Số, Số Học, Giải Tích, Hình Học </b>và <b>Tổ Hợp</b> dành cho
học sinh các khối lớp 10, 11, 12. Đội ngũ Giảng Viên giàu kinh nghiệm: TS. Lê Bá Khánh Trình, TS. Trần
<i>Nam Dũng, TS. Pham Sỹ Nam, TS. Lưu Bá Thắng, Thầy Lê Phúc Lữ, Thầy Võ Quốc Bá Cẩn cùng đơi HLV đạt </i>
thành tích cao HSG Quốc Gia.
<b>III.</b> <b>Kênh học tập miễn phí</b>
- <b>HOC247 NET:</b> Website hoc miễn phí các bài học theo <b>chương trình SGK</b> từ lớp 1 đến lớp 12 tất cả các
môn học với nội dung bài giảng chi tiết, sửa bài tập SGK, luyện tập trắc nghiệm mễn phí, kho tư liệu tham
khảo phong phú và cộng đồng hỏi đáp sôi động nhất.
- <b>HOC247 TV:</b> Kênh <b>Youtube</b> cung cấp các Video bài giảng, chuyên đề, ôn tập, sửa bài tập, sửa đề thi miễn
phí từ lớp 1 đến lớp 12 tất cả các mơn Tốn- Lý - Hố, Sinh- Sử - Địa, Ngữ Văn, Tin Học và Tiếng Anh.
<i><b> Học mọi lúc, mọi nơi, mọi thiết bi – Tiết kiệm 90% </b></i>
<i><b>Học Toán Online cùng Chuyên Gia </b></i>