Viết chương trình giải phương trình bậc hai với yêu cầu sử dụng các chương trình con để giải quyết các trường hợp xãy ra của delta.

Cấu trúc chung của một chương trình có sử dụng ctc

PROGRAM  Tên_chương_trình;

USES CRT;

CONST  ............;

VAR       ............;

PROCEDURE  THUTUC[(Các tham số)];

[Khai báo Const, Var]

BEGIN

          ..............

END;

FUNCTION  HAM[(Các tham số)]:;

[Khai báo Const, Var]

BEGIN

          ..............

          HAM:=;

END;

BEGIN {Chương trình chính}

          ...................

          THUTUC[(...)];

          ...................

          A:= HAM[(...)];

          ...................

END.

Chương trình con (CTC) là một đoạn chương trình thực hiện trọn vẹn hay một chức năng nào đó.   Trong Turbo Pascal, có 2 dạng CTC:

  • Thủ tục (PROCEDURE): Dùng để thực hiện một hay nhiều nhiệm vụ nào đó.
  • Hàm (FUNCTION): Trả về một giá trị nào đó (có kiểu vô hướng, kiểu string). Hàm có thể sử dụng trong các biểu thức.

Ngoài ra, trong Pascal còn cho phép các CTC lồng vào nhau.

Trong quá trình xây dựng CTC, khi nào thì nên dùng thủ tục/hàm?

Dùng hàm

Dùng thủ tục

- Kết quả của bài toán trả về 1 giá trị duy nhất (kiểu vô hướng, kiểu string).

- Lời gọi CTC cần nằm trong các biểu thức tính toán.

- Kết quả của bài toán không trả về giá trị nào hoặc trả về nhiều giá trị hoặc trả về  kiểu dữ liệu có cấu trúc (Array, Record, File).

- Lời gọi CTC không nằm trong các biểu thức tính toán.

Program Giai_PT_bac_hai; uses crt; var a,b,c,delta:real; {----------------------} Procedure delta_duong; begin write('Phuong trinh co hai nghiem x1=',(-b+sqrt(delta))/(2*a),'x2=',(-b+sqrt(delta))/(2*a)); end; {---------------------} Procedure delta_khong; begin write('Phuong trinh co nghiem kep x=',-b/(2*a):3:1); end; {--------------------} Procedure delta_am; begin writeln('Phuong trinh vo nghiem'); end; {Chuong trinh chinh} Begin clrscr; write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); write('Nhap c: ');readln(c); delta:=b*b-4*a*c; if delta>0 then delta_duong else if delta = 0 then delta_khong else delta_am; readln end.

Nhận xét: Chương trình con cho phép chia nhỏ công việc nhằm đơn giản hoá. Ngoài ra một công việc nào đó lặp lại nhiều lần trong chương trình nên dùng CTC vì khi đó mã chương trình sẽ gọn, dễ theo dõi, gỡ rối hơn.