Tin học Một số thuật toán trong lập trình pascal

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Đây là những thuật toán cơ bản mà mình đã tổng hợp được để dành cho các bạn đam mê lập trình hoặc là muốn hiểu thêm về lập trình nha.Nó cũng có những thuật toán có thể có ích trong quá trình học ở nhà trường nữa..
 

Attachments

  • MotSoThuatToan.doc
    176.5 KB · Đọc: 160

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
Ngoài ra mình có có một số thuật toán cơ bản thường gặp muốn chia sẻ nữa:
-Các thuật toán về xâu ký tự:
+Xóa các ký thự trắng thừa(chuẩn hóa):
Mã:
While s[1]=#32 Do delete(s,1,1);

while s[length(s)]=#32 Do delete(s,length(s),1);

while pos(#32#32,s)<>0 Do delete(s,pos(#32#32,s),1);
+Chuyển các ký tự in hoa thành chữ thường:
Mã:
for i:=1 to length(s) do
 if s[i] in ['A'..'Z'] then s[i]:=chr(ord(s[i])+32);
+Kiểm tra xâu đối xứng:
Mã:
For i:=length(s) downto 1 do
    s1:=s1+s[i];
If s1=s then write('xau dx');
-Thuật toán về sx mảng tăng dần hoặc giảm dần:
Mã:
For i:=1 to n-1 do
 For j:=i+1 to n do
   If a[i]>a[j] then         Nếu sx giảm dần thì đổi thành dấu <
     begin
       tg:=a[i];
       a[i]:=a[j];
       a[j]:=tg;
     end;
-Các thuật toán về số học:
+Số đối xứng:

Mã:
dao:=0;
While n<>0 do
  begin
    dao:=dao*10+(n mod 10);
     n:=n div 10;
  end;
-Kiểm tra số nguyên tố:

Mã:
KT:=false;
    for i:=2 to n-1 do
        if n mod i=0 then
          begin
            kt:=false;
            break; {lệnh thoát khỏi vòng lặp)
          end;
   If kt=true then write(n,'la snt')
   else write(n,'ko la snt');
-Thuật toán đổi chỗ hai số mà không cần sử dụng biến trung gian:
Mã:
readln(a);
readln(b);
writeln('gia tri cua 2 so truoc khi doi cho:',a,';',b);
a:=a+b;
b:=a-b;
a:=a-b;
writeln('gia tri cua 2 so sau khi doi cho:',a,';',b);

Nếu có ai thắc mắc hay cần thêm thuật toán nào thì báo với mình để mình bổ sung với nha
 
Last edited:

nguyen tran thanh nha

Học sinh chăm học
Thành viên
10 Tháng sáu 2018
107
53
61
21
Bà Rịa - Vũng Tàu
thcs kim long
làm luôn kiểm tra số chính phương đi và cộng hai phân số( tử mẫu riêng biệt) cho ra tử số tối giản (tất nhiên mẫu tối giản thì bcnn )
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
làm luôn kiểm tra số chính phương đi và cộng hai phân số( tử mẫu riêng biệt) cho ra tử số tối giản (tất nhiên mẫu tối giản thì bcnn )

-Thuật toán Kt số chính phương:
Mã:
readln(n);
if  sqr(trunc(sqrt(n)))=n then write(n,'la so cp')
esle write(n,'ko la so cp');
-Cộng hai ps và cho ra ps tối giản;
Mã:
Var
a,b,c,d,x,y:integer;
begin
readln(a);readln(b);
readln(c);readln(d);
a:=a*d-c*d
b:=b*d
x:=a;y:=b;a:=abs(a);b:=abs(b);
While a<>b do
 if a>b then a:=a-b
else b:=b-a;
If a<>1 then
 begin
   x:=x div a;
   y:=y div a;
  write(x,' ',y);
 end
else write(x,' ',y);
readln
End.
 
Top Bottom