Bài Tập Pascal | Phạm Vĩnh Toàn

Bỏ qua nội dung

 Viết hàm tính giai thừacủa một số nguyên

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;

Viết hàm kiểm tra số N có phải là số nguyên tố hay không?

Hướng dẫn:

Dữ liệu trả về: boolean.

function ngto(n : integer): boolean; {hàm kiểm tra nguyên tố}

  var i : integer;

  begin

              ngto := false;

              if n < 2 then exit;

              for i := 2 to round(sqrt(n)) do

                          if n mod i = 0 then exit;

              ngto := true;

  end;

Viết hàm tìm ước chung lớn nhất của hai số a,b

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;

Tìm phần tử nhỏ nhất,lớn nhất của một mảng (cần chỉ ra cả vị trí của phần tử).

HƯỚNG DẪN:

Giả sử phần tử min cần tìm là phần tử k. Ban đầu ta cho k=1. Sau đó cho i chạy từ 2 đến n, nếu a[k] > a[i] thì rõ ràng a[i] bé hơn, ta gán k bằng i. Sau khi duyệt toàn bộ dãy thì k sẽ là chỉ số của phần tử min. (Cách tìm min này đơn giản vì từ vị trí ta cũng suy ra được giá trị).

Mã:

procedure timmin;

  var i, k : integer;

  begin

              k := 1;

              for i := 2 to n do

                          if a[k] > a[i] then k := i;

              writeln(‘Phan tu nho nhat la a[‘,k,’]=’,a[k]);

  end;

Tìm max cũng tương tự, chỉ thay dấu so sánh.

procedure timmax;

Mã:

var i, k : integer;

  begin

              k := 1;

              for i := 2 to n do

                          if a[k] < a[i] then k := i;

              writeln(‘Phan tu lon nhat la a[‘,k,’]=’,a[k]);

  end;

Nhập vào một xâu x khác rỗng và thông báo xâu đó có phải là xâu đối xứng hay không?

HƯỚNG DẪN:

Xâu đối xứng nếu nó bằng chính xâu đảo của nó. Vậy cách đơn giản nhất là ta sẽ xây dựng xâu đảo của x và kiểm tra xem nó có bằng x không. Để xây dựng xâu đảo của x, cách đơn giản nhất là cộng các kí tự của x theo thứ tự ngược (từ cuối về đầu).

Chương trình:

Mã:

var x : string;

  (************************************************)

  function doixung(x : string) : boolean; {hàm kiểm tra xâu đối xứng}

  var y : string;

      i : integer;

  begin

       y := ”;

  {xây dựng y là xâu đảo của x, bằng cách cộng dần các kí tự của x vào y theo thứ tự ngược}

       for i := length(x) downto 1 do y := y + x[i];

  {so sánh x và xâu đảo của nó}

       if x=y then doixung := true else doixung := false;

  end;

  BEGIN

       write(‘Nhap vao 1 xau:’);

       readln(x);

       if doixung(x) then

          writeln(‘Xau doi xung!’)

       else

          writeln(‘Xau khong doi xung!’);

       readln;

  END.

Một số nguyên gọi là palindrom nếu nó đọc từ trái sang cũng bằng đọc từ phải sang. Ví dụ 121 là một số palindrom. Nhập một dãy n phần tử nguyên dương từ bàn phím, 5<= n<=20 và các phần tử có 2 đến 4 chữ số. In ra các số là palindrom trong dãy.

HƯỚNG DẪN:

Một số là palindrom thì xâu tương ứng của nó là xâu đối xứng. Ta sẽ xây dựng một hàm kiểm tra một số có phải là palindrom không bằng cách chuyển số đó thành xâu và kiểm tra xâu đó có đối xứng không?

Chương trình:

Mã:

uses crt;

  var  n : integer;

       a : array[1..20] of integer;

  {Thủ tục nhập dữ liệu}

  procedure nhap;

  var i : integer;

  begin

       clrscr;

       repeat

             write(‘n= ‘); readln(n);

             if (n<=20) and (n>=5) then break; {nếu đã thoả mãn thì thoát khỏi vòng lặp}

             writeln(‘Yeu cau 5<=n<=20. Nhap lai!’);

       until false;

       for i := 1 to n do

            repeat

                  write(‘A[‘,i,’]=’); readln(a[i]);

                  if (a[i]<=9999) and (a[i]>=10) then break; {a[i] có 2 đến 4 chữ số}

                  writeln(‘Yeu cau cac phan tu co 2 den 4 chu so. Nhap lai!’);

            until false;

  end;

  {Hàm kiểm tra bằng các kiểm tra xâu đối xứng}

  function palindrom(k : integer): boolean;

  var x,y : string;

      i : integer;

  begin

       str(k,x);       {chuyển k thành xâu x}

       y := ”;

       for i := length(x) downto 1 do y := y + x[i];

  {nếu x là đối xứng thì k là palindrom}

       if x=y then palindrom := true else palindrom := false;

  end;

  {In kết quả:}

  procedure palin;

  var i : integer;

  begin

       writeln(‘Cac so la palindrom trong day:’);

       for i := 1 to n do

           if palindrom(a[i]) then writeln(a[i]);

       readln;

  end;

  (* Chương trình chính *)

  BEGIN

       nhap;

       palin;

  END.

Partager :

  • X
  • Facebook
Thích Đang tải... Điều hướng bài viết < Previous Một Số Lưu Ý Về Chương Trình con [Pascal]Next > Cài đặt SQL Server trong mạng nội bộ

Bình luận về bài viết này Hủy trả lời

Δ

Tìm kiếm cho: Bài & Trang được đáng chú ý
  • Đề cương ôn tập kiểm tra HKI
  • Cấu trúc rẽ nhánh
  • Công Cụ SPSS
  • Cài đặt SQL Server trong mạng nội bộ
  • Bài Tập Pascal
  • Một Số Lưu Ý Về Chương Trình con [Pascal]
  • Yêu cầu soạn thảo văn bản
  • Yêu cầu + hướng dẫn Đề tài soạn thảo văn bản (Tiết 1)
  • Đăng ký đề tài soạn thảo văn bản
  • Lập Trình Pascal bằng tiếng việt được không ?
Bài viết mới
  • Đề cương ôn tập kiểm tra HKI
  • Cấu trúc rẽ nhánh
  • Công Cụ SPSS
  • Cài đặt SQL Server trong mạng nội bộ
  • Bài Tập Pascal
Bình luận mới nhất
Hình đại diện của garbacagarbaca trong Lập Trình Pascal bằng tiếng vi…
Hình đại diện của Phạm Vĩnh ToànPhạm Vĩnh Toàn trong Cài đặt SQL Server trong mạng…
Hình đại diện của phuphu trong Cài đặt SQL Server trong mạng…
Hình đại diện của phuphu trong Cài đặt SQL Server trong mạng…
Hình đại diện của văn vinhvăn vinh trong Lập Trình Pascal bằng tiếng vi…
Thư viện
  • Tháng Mười Một 2016
  • Tháng Năm 2016
  • Tháng Ba 2016
  • Tháng Hai 2016
  • Tháng Một 2016
Chuyên mục
  • Book (1)
  • Development (5)
    • pascal (3)
    • SQL (1)
  • Page Wall (9)
  • store (2)
  • Teaching (10)
    • Class 10 (5)
    • Class 11 (4)
  • Teachnology (1)
Meta
  • Tạo tài khoản
  • Đăng nhập
  • RSS bài viết
  • RSS bình luận
  • WordPress.com
  • Bình luận
  • Đăng lại
  • Theo dõi Đã theo dõi
    • Phạm Vĩnh Toàn
    • Theo dõi ngay
    • Đã có tài khoản WordPress.com? Đăng nhập.
    • Phạm Vĩnh Toàn
    • Theo dõi Đã theo dõi
    • Đăng ký
    • Đăng nhập
    • URL rút gọn
    • Báo cáo nội dung
    • Xem toàn bộ bài viết
    • Quản lý theo dõi
    • Ẩn menu
%d Tạo trang giống vầy với WordPress.comHãy bắt đầu

Từ khóa » Viết Chương Trình Kiểm Tra Số đối Xứng Pascal