Một số kỹ thuật Pascal cơ bản
2 posters
Trang 1 trong tổng số 1 trang
Một số kỹ thuật Pascal cơ bả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.
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.
linhtv- Tổng số bài gửi : 16
Join date : 01/06/2009
Age : 46
Đến từ : Ninh Thuận
Re: Một số kỹ thuật Pascal cơ bản
A cho e hoi viet ham nay trog pascal thj viết vao cho nao?
Okiyas13- Tổng số bài gửi : 2
Join date : 18/09/2011
Similar topics
» Một số bài tập mẫu Pascal
» Bài tập Pascal - Vòng lặp For-do
» Pascal Tutorials
» Bài tập Pascal - Cau lệnh If
» Nguồn gốc Pascal và trình biên dịch
» Bài tập Pascal - Vòng lặp For-do
» Pascal Tutorials
» Bài tập Pascal - Cau lệnh If
» Nguồn gốc Pascal và trình biên dịch
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|