ly thuyet va bai tap pascal có giai chi tiet

26 191 1
ly thuyet va bai tap pascal có giai chi tiet

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hướng dẫn ơn tập Lập trình Pascal CÁC THUẬT TOÁN VỀ SỐ THUẬT TOÁN KIỂM TRA SỐ NGUYÊN TỐ Thuật toán ta dựa ý tưởng: n >1 không chia hết cho số nguyên tất số từ đến n n số nguyên tố Do ta kiểm tra tất số nguyên từ đến round(sqrt(n)), n khơng chia hết cho số n số nguyên tố Nếu thấy biểu thức round(sqrt(n)) khó viết ta kiểm tra từ đến n div Hàm kiểm tra nguyên tố nhận vào số nguyên n trả lại kết true (đúng) n nguyên tố trả lại false n không số nguyên tố function ngto(n:integer):boolean; var i:integer; begin ngto:=false; if n ln} ngto:=true; end; Chú ý: Dựa hàm kiểm tra nguyên tố, ta tìm số nguyên tố từ đến n cách cho i chạy từ đến n gọi hàm kiểm tra nguyên tố với giá trị i THUẬT TỐN TÍNH TỔNG CÁC CHỮ SỐ CỦA MỘT SỐ NGUYÊN Ý tưởng ta chia số cho 10 lấy dư (mod) chữ số hàng đơn vị, lấy số div 10 phần lại Do chia liên tục khơng chia (số 0), lần chia chữ số ta cộng dồn chữ số vào tổng Hàm tính tổng chữ số nhận vào số nguyên n trả lại kết tổng chữ số nó: function tongcs(n:integer): integer; var s : integer; begin s := 0; while n begin s := s + n mod 10; n := n div 10; end; Hướng dẫn ơn tập Lập trình Pascal tongcs := s; end; Chú ý: Tính tích chữ số tương tự, cần ý ban đầu gán s thực phép nhân s với n mod 10 THUẬT TỐN EUCLIDE TÍNH UCLN Ý tưởng thuật toán Euclide UCLN số a,b UCLN số b a mod b, ta đổi a b, b a mod b b Khi UCLN a Hàm UCLN nhận vào số nguyên a,b trả lại kết UCLN số function UCLN(a,b: integer): integer; var r : integer; begin while b0 begin r := a mod b; a := b; b := r; end; UCLN := a; end; Chú ý: Dựa thuật tốn tính UCLN ta kiểm tra số nguyên tố hay khơng Ngồi dùng để tối giản phân số cách chia tử mẫu cho UCLN THUẬT TỐN TÍNH TỔNG CÁC ƯỚC SỐ CỦA MỘT SỐ NGUYÊN Để tính tổng ước số số n, ta cho i chạy từ đến n div 2, n chia hết cho số ta cộng số vào tổng (Chú ý cách tính chưa xét n ước số n) function tongus(n : integer): integer; var i,s : integer; begin s := 0; for i := to n div if n mod i = then s := s + i; tongus := s; end; Chú ý: Dựa thuật tốn tính tổng ước số, ta kiểm tra số nguyên số hồn thiện khơng: số ngun gọi số hồn thiện tổng ước số Hướng dẫn ơn tập Lập trình Pascal CÁC THUẬT TỐN VỀ VỊNG LẶP THUẬT TỐN TÍNH GIAI THỪA MỘT SỐ NGUYÊN Giai thừa n! tích số từ đến n Vậy hàm giai thừa viết sau: function giaithua(n : integer) : longint; var i : integer; s : longint; begin s := 1; for i := to n s := s * i; giaithua := s; end; THUẬT TỐN TÍNH HÀM MŨ Trong Pascal ta tính ab cơng thức exp(b*ln(a)) Tuy nhiên a số dương khơng thể áp dụng Ta tính hàm mũ an cơng thức lặp sau: function hammu(a : real; n : integer): real; var s : real; i : integer; begin s := 1; for i := to n s := s * a; hammu := s; end; THUẬT TỐN TÍNH CƠNG THỨC CHUỖI Thuật tốn tính hàm ex: ex = 1+ x + Đặt: sn = + x + x x3 xn + + + 2! 3! n! x x3 xn + + + 2! 3! n! rn = xn n! , ta công thức truy hồi: s = 1, r0 =  ri-1.x  ri = i  si = si-1 + ri Khi đó, ta tính cơng thức chuỗi sau: function expn(x: real; n : integer): real; var s,r : real; i : integer; begin s := 1; r := 1; Hướng dẫn ôn tập Lập trình Pascal for i := to n begin r := r * x / i; s := s + r; end; expn := s; end; CÁC BÀI TẬP VỀ MẢNG CHIỀU CHIỀU BÀI TẬP Nhập vào số n (5= 3000000 then begin writeln('Ten:',ten); writeln('Tuoi:',tuoi); writeln('Thu nhap:',thunhap :0 :3); end; end; (*********************************************) BEGIN nhap; in30; sxep; in3M; readln; END 26 ... Lập trình Pascal CÁC THUẬT TỐN VỀ VỊNG LẶP THUẬT TỐN TÍNH GIAI THỪA MỘT SỐ NGUYÊN Giai thừa n! tích số từ đến n Vậy hàm giai thừa viết sau: function giaithua(n : integer) : longint; var i : integer;... integer); var i,j,tg : integer; begin Hướng dẫn ơn tập Lập trình Pascal for i := to m-1 {mỗi cột có m phần tử, bảng có m dòng} for j := i+1 to m if a[i,k] > a[j,k] then begin {các phần tử cột k có dạng... array[1 10] of integer; {n

Ngày đăng: 26/08/2018, 14:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan