TỔNG HỢP KIẾN THỨC TIN HỌC ĐẠI CƯƠNG – ĐHXD
LẠI CAO NOEL – 58XD5
I, Tổng hợp các lí thuyết cần nhớ
Các câu lệnh ghi , đọc xuất dữ liệu ( trên màn hình , trên tệp )
Cho các tập hợp A,B,C . Các phép toán trong pascal
Trình bày các làm việc của câu lệnh If ..then… và If…then…else
So sánh sự giống và khác nhau giữa 2 vòng lặp for..to..do…. và while…do…
Các khai báo một trường bản ghi , Cho ví dụ
Các thao tác xử lí với tệp . Cho ví dụ
Trình bày cấu trúc của máy tính
Cho một sơ đồ khối ( vòng lặp ). Viết đoạn code cho sơ đồ đó
Cho 1 phép toán . Viết phép toán đó trong pascal ( bình phương : spr( ) , căn bậc
hai : sqrt( ) )
10. Chuyển các hệ đếm với nhau : Dùng máy tính Mode 4
1.
2.
3.
4.
5.
6.
7.
8.
9.
II, Một số câu lệnh hay dùng
1. Write/writeln( ) ; { ghi dữ liệu ra màn hình hoặc têp }
2. Read/readln(n) ; { nhập dữ liệu từ bàn phím hoặc đọc dữ liệu từ tệp }
3. Câu điều kiện
If điều kiện then câu lệnh ; { khi điều kiện đúng thì thực hiện câu lệnh , điều
kiện sai thì chuyển sang câu lệnh tiếp theo }
If điều kiện then câu lệnh 1 else câu lệnh 2 ; { khi điều kiện đúng thì thực
hiện câu lệnh 1 , khi điều kiện sai thì thực hiện câu lệnh 2 }
Lưu ý : nếu điều kiện là 1 biểu thức thì không có dấu “ : “
4. Vòng lặp for i:= giá trị đầu to giá trị cuối do câu lệnh;
For i:=giá trị cuối downto giá trị đầu do câu lệnh ;
5. Đoạn Begin … end; khi trong câu lệnh trong vòng lặp hay câu điều kiện có từ
2 câu lệnh thực hiện trở lên thì ta đặt các câu lệnh đó trong Begin…. End ;
III , Các cách khai báo , xử lí thuật toán đối với dãy số và ma trận
1. Khai báo các biến
• Biến dãy số : x : array[1..1000] of integer;
• Biến ma trận : x : array[1..1000,1..1000] of integer;
• Biến trung bình :real;
• Biến min, max,đếm số lượng , tổng , trung gian : integer ( giống kiểu dữ
liệu của phần tử dãy số hoặc ma trận )
Ví dụ :
Cho dãy số x1,x2….xn . Tính tổng dãy số , tìm trung bình cộng dãy số
Var n,i,s : integer;
Tb : real;
x:array[1..1000] of integer;
2. Xử lí một số yêu cầu
Lưu ý : phần tử của dãy số x[ chỉ số ]
Phần tử của ma trận x[ chỉ số hàng , chỉ số cột ]
•
•
•
•
•
•
•
Tính tổng dãy số , tính trung bình cộng dãy số
S:=0;
For i:=1 to n do s:=s+x[i];
Tb:= s/n;
Tìm min,max của dãy số
Min := x[1];
Max :=x[1];
For i:=1 to n do
If Max < x[i] then max := x[i];
For i:=1 to n do
If min > x[i] then min := x[i];
Sắp xếp dãy số theo thứ tự tang dần
For i:=1 to n-1 do
For j:=i+1 to n do
If x[i] > x[j] then
Begin
Tg:=x[i];
X[i]:=x[j];
X[j]:=tg;
End;
Xóa một phần tử của ma trận tại vị trí k cho sẵn
For i:= k to n-1 do x[i]:=x[i+1];
Khi đó ma trận còn n-1 phần tử ( khi in ra biến đếm chạy từ 1 đến n-1)
Chèn số p vào ma trận tại vị trí k cho sẵn
For i:= n downto k do x[i+1]:=x[i];
X[k]:=p;
So sánh tổng phần tử âm với tích phần tử dương
S:=0; p:=1;
For i:=1 to n do
Begin
If x[i] <0 then s:=s+x[i];
If x[i]> 0 then p:=p*x[i];
End;
Một số cách chạy vòng lặp dành cho ma trận
Ma trận tam giác trên
For i:=1 to n do
For j:=I to n do
Ma trận tam giác dưới
For i:= 1 to n do
For j:= 1 to i dp
Đường chéo chính
For i:= 1 to n do
Các phần tử sẽ là x[i,i]
Lưu ý : Ma trận thực chất là gồm nhiều dãy số gọp vào , thế nên sẽ có 2 vòng lặp lồng
nhau .
•
Cho ma trân Amxn . So sánh số phần tử âm ở hàng chẵn với số phần tử
dương ở hàng lẻ . Sắp xếp từng hàng theo thứ tự giảm dần
Var m,n,i,j,k : integer;
d1,d2 : integer;
tg : integer;
A:array[1..1000,1..1000] of integer;
Begin
{ nhap ma tran }
Write(‘ nhap m,n ‘);
Readln( m,n );
For i:=1 to m do
{ chay theo hang doc }
For j:=1 to n do
{ chay theo hang ngang }
Readln( A[i,j] ); { doc du lieu choc ac phan tu tu ban phim }
{ dem so phan tu am hang chan va so phan tu duong hang le }
d1:=0 ; d2:=0;
for i :=1 to m do
{ cho bien dem so luong cac phan tu ban dau = 0}
if i mod 2 = 0 then { kiem tra xem i co chan khong }
begin
for j:=1 to n do
if A[i,j] < 0 then d1:=d1+1;
{ d1 dem so phan tu am hang
chan }
end
else
{ khi I le }
begin
for j:=1 to n do
if A[i,j] > 0 then d2:=d2+1;
{ d2 dem so phan tu duong hang
le }
end;
{ sap xep hang theo thu tu tang dan }
For i:=1 to m do
For j:=1 to n-1 do
For k:= j +1 to n do
If A[i,j] > A [i,k] then
Begin
tg:= A[i,j];
A[i,j]:=A[i,k]; { doi cho 2 phan tu chon nhau }
A[i,k] := tg;
End;
{ in ma tran }
For i:=1 to m do
For j:=1 to n do
Begin
Write(A[i,j] :7);
If j=n then writeln;
End;
End.
{ in ra man hinh phan tu voi 7 cho trong }
{ in het 1 hang thi xuong dong }