Làm bài tập tin ngồi tra cứu trên mạng thấy cái này cũng hay hay mà có ích...đôi lúc học nhiều quá quên mấy cái cơ bản,nên post lên đây cho mấy bạn học tin có khi cũng cần dùng đến...
1. Kỹ thuật dừng màn hình:
Muốn dừng màn hinh lại để có thể xem kết quả sau khi chương trình đã chạy xong,hãy thêm vào trước cái END cuối cùng của chương trình một câu lệnh Readln;
2. Cách in ra ma trận a với m dòng,n cột dưới dạng bảng
Code:
For i:=1 to M do
Begin
For j:=1 to N do
Write(A[i,j],' ');
Writeln;
End;
3.Hoán đổi vị trí của hai số a,b,sử dụng một biến tg làm trung gian
Code:
Procedure Swap(Var a,b:integer);
Var tg:integer;
Begin
g:=a; a:=b; b:=tg;
End;
4.Hàm kiểm tra số nguyên tố,trả về true nếu số n là số nguyên tố
Code:
Function nt(n:integer):boolean;
Var i:integer;
Begin
if n<=1 then
begin
nt:=false; Exit;
end;
for i:=2 to (n div 2) do
if (n mod i)=0 then
begin
nt:=false; Exit;
end;
nt:=true;
End;
5. Hàm tính giai thừa(loại cơ bản,áp dụng cho số nguyên dương n<=15)
Code:
Function gt(n:byte):Longint;
Var s:Longint; i:byte;
Begin
s:=1;
For i:=2 to n do
s:=s*i;
gt:=s;
End;
6.Sắp xếp mảng a với n phần tử theo thứ tự tăng dần,sử dụng thuật toán Bubble Sort
Code:
Procedure BubbleSort(Var a:mang,n:integer);{Mang là kiểu array khai báo bằng từ khóa Type}
Var i,j:integer;
Begin
for j:=1 to n-1 do
for i:=n downto j+1 do
if a[i]
Swap(a[i],a[i-1];{Thủ tục Swap ở trên})
End;
7. HÀM TÍNH TỔNG CÁC CHỮ SỐ CỦA MỘT SỐ NGUYÊN
Ý tưởng là ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng. Hàm tính tổng chữ số nhận vào 1 số nguyên n và trả lại kết quả là tổng các chữ số của nó:
Code:
Function TONGCS(N:Integer): Integer;
Var S : integer;
Begin
S := 0;
While N <> 0 Do
Begin
S := S + N Mod 10;
N := N div 10;
End;
TONGCS := S; End;
8. HÀM TÍNH UCLN
Ý tưởng của thuật toán Euclide là UCLN của 2 số a,b cũng là UCLN của 2 số b và a mod b, vậy ta sẽ đổi a là b, b là a mod b cho đến khi b bằng 0. Khi đó UCLN là a.
Hàm UCLN nhận vào 2 số nguyên a,b và trả lại kết quả là UCLN của 2 số đó.
Code:
function UCLN(a,b: integer): integer;
var r : integer;
begin
while b<>0 do
begin
r := a mod b;
a := b;
b := r;
end;
UCLN := a;
end;
Chú ý: Dựa trên thuật toán tính UCLN ta có thể kiểm tra được 2 số nguyên tố cùng nhau hay không. Ngoài ra cũng có thể dùng để tối giản phân số bằng cách chia cả tử và mẫu cho UCLN.
1. Kỹ thuật dừng màn hình:
Muốn dừng màn hinh lại để có thể xem kết quả sau khi chương trình đã chạy xong,hãy thêm vào trước cái END cuối cùng của chương trình một câu lệnh Readln;
2. Cách in ra ma trận a với m dòng,n cột dưới dạng bảng
Code:
For i:=1 to M do
Begin
For j:=1 to N do
Write(A[i,j],' ');
Writeln;
End;
3.Hoán đổi vị trí của hai số a,b,sử dụng một biến tg làm trung gian
Code:
Procedure Swap(Var a,b:integer);
Var tg:integer;
Begin
g:=a; a:=b; b:=tg;
End;
4.Hàm kiểm tra số nguyên tố,trả về true nếu số n là số nguyên tố
Code:
Function nt(n:integer):boolean;
Var i:integer;
Begin
if n<=1 then
begin
nt:=false; Exit;
end;
for i:=2 to (n div 2) do
if (n mod i)=0 then
begin
nt:=false; Exit;
end;
nt:=true;
End;
5. Hàm tính giai thừa(loại cơ bản,áp dụng cho số nguyên dương n<=15)
Code:
Function gt(n:byte):Longint;
Var s:Longint; i:byte;
Begin
s:=1;
For i:=2 to n do
s:=s*i;
gt:=s;
End;
6.Sắp xếp mảng a với n phần tử theo thứ tự tăng dần,sử dụng thuật toán Bubble Sort
Code:
Procedure BubbleSort(Var a:mang,n:integer);{Mang là kiểu array khai báo bằng từ khóa Type}
Var i,j:integer;
Begin
for j:=1 to n-1 do
for i:=n downto j+1 do
if a[i]
Swap(a[i],a[i-1];{Thủ tục Swap ở trên})
End;
7. HÀM TÍNH TỔNG CÁC CHỮ SỐ CỦA MỘT SỐ NGUYÊN
Ý tưởng là ta chia số đó cho 10 lấy dư (mod) thì được chữ số hàng đơn vị, và lấy số đó div 10 thì sẽ được phần còn lại. Do đó sẽ chia liên tục cho đến khi không chia được nữa (số đó bằng 0), mỗi lần chia thì được một chữ số và ta cộng dồn chữ số đó vào tổng. Hàm tính tổng chữ số nhận vào 1 số nguyên n và trả lại kết quả là tổng các chữ số của nó:
Code:
Function TONGCS(N:Integer): Integer;
Var S : integer;
Begin
S := 0;
While N <> 0 Do
Begin
S := S + N Mod 10;
N := N div 10;
End;
TONGCS := S; End;
8. HÀM TÍNH UCLN
Ý tưởng của thuật toán Euclide là UCLN của 2 số a,b cũng là UCLN của 2 số b và a mod b, vậy ta sẽ đổi a là b, b là a mod b cho đến khi b bằng 0. Khi đó UCLN là a.
Hàm UCLN nhận vào 2 số nguyên a,b và trả lại kết quả là UCLN của 2 số đó.
Code:
function UCLN(a,b: integer): integer;
var r : integer;
begin
while b<>0 do
begin
r := a mod b;
a := b;
b := r;
end;
UCLN := a;
end;
Chú ý: Dựa trên thuật toán tính UCLN ta có thể kiểm tra được 2 số nguyên tố cùng nhau hay không. Ngoài ra cũng có thể dùng để tối giản phân số bằng cách chia cả tử và mẫu cho UCLN.