Các thuật toán hay trong pascal thi tin học trẻ

Chia sẻ bởi Nguyễn Hồng Nam | Ngày 14/10/2018 | 82

Chia sẻ tài liệu: các thuật toán hay trong pascal thi tin học trẻ thuộc Tin học 8

Nội dung tài liệu:


Bai_tap_Pascal
Bai tap Pascal
CÁC THUẬT TOÁN VỀ SỐ
THUẬT TOÁN KIỂM TRA SỐ NGUYÊN TỐ
toán ta  trên ý : n >1 không chia cho nguyên nào trong các 2 thì n là nguyên . Do đó ta tra các nguyên 2 có round(sqrt(n)), n không chia cho nào trong đó thì n là nguyên .
round(sqrt(n)) khó thì ta có tra 2 n div 2.
Hàm tra nguyên vào nguyên n và là true (đúng) n là nguyên và false n không là nguyên .
function ngto(n:integer):boolean;
var i:integer;
begin
    ngto:=false;
    if n<2 then exit;
    for i:=2 to trunc(sqrt(n)) do
        if n mod i=0 then exit; {n chia cho i thì n không là nguyên => thoát luôn}
    ngto:=true;
end;
Chú ý: trên hàm tra nguyên , ta có tìm các nguyên 1 n cách cho i 1 n và hàm tra nguyên giá i.
THUẬT TOÁN TÍNH TỔNG CÁC CHỮ SỐ CỦA MỘT SỐ NGUYÊN
Ý là ta chia đó cho 10 (mod) thì hàng , và đó div 10 thì còn . Do đó chia liên cho khi không chia (đó 0), chia thì và ta đó vào .
Hàm tính vào 1 nguyên n và là các nó:
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;
Chú ý: Tính tích các cũng , chú ý ban gán s là 1 và phép nhân s n mod 10.
THUẬT TOÁN EUCLIDE TÍNH UCLN
Ý toán Euclide là UCLN 2 a,b cũng là UCLN 2 b và a mod b, ta a là b, b là a mod b cho khi b 0. Khi đó UCLN là a.
Hàm UCLN vào 2 nguyên a,b và là UCLN 2 đó.
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ú ý: trên toán tính UCLN ta có tra 2 nguyên cùng nhau hay không. Ngoài ra cũng có dùng phân cách chia và cho UCLN.
THUẬT TOÁN TÍNH TỔNG CÁC ƯỚC SỐ CỦA MỘT SỐ NGUYÊN
tính các n, ta cho i 1 n div 2, n chia cho nào thì ta đó vào . (Chú ý cách tính này xét n cũng là n).
function tongus(n : integer): integer;
var i,s : integer;
begin
            s := 0;
            for i := 1 to n div 2 do
                        if n mod i = 0 then s := s + i;
            tongus := s;
end;
Chú ý: trên toán tính , ta có tra 1 nguyên có là hoàn không: nguyên là hoàn nó các nó.
CÁC THUẬT TOÁN VỀ VÒNG LẶP
THUẬT TOÁN TÍNH GIAI THỪA MỘT SỐ NGUYÊN
Giai n! là tích các 1 n. hàm giai sau:
function giaithua(n : integer) : longint;
var i : integer; s : longint;
begin
            s := 1;
            for i := 2 to n do s := s * i;
            giaithua := s;
end;
THUẬT TOÁN TÍNH HÀM MŨ
Trong Pascal ta có tính ab công exp(b*ln(a)). Tuy nhiên a không là thì không áp .
Ta có tính hàm
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Hồng Nam
Dung lượng: 197,00KB| Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)