Ngôn ngữ lập trình
a. Lập trình là gì ?
Lập trình là các thao tác đưa ý nghĩ của con người theo một trình tự có hệ thống vào máy tính, yêu cầu máy tính thực hiện.
b. Ngôn ngữ lập trình
Là các phần mềm mà nhờ đó các kỹ thuật viên mô phỏng lại các thao tác trên ngôn ngữ đó thông qua các qui tắc qui ước mà ngôn ngữ đề ra. Ngôn ngữ lập trình có chức năng chuyển toàn bộ chương trình sang mã máy để máy tính có thể thực hiện và đưa ra kết quả.
51 trang |
Chia sẻ: quynhsim | Lượt xem: 816 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Giáo án môn tin học Phần Pascal - Chương I: Những kiến thức cơ bản, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
chương I
Những kiến thức cơ bản
1. Ngôn ngữ lập trình
a. Lập trình là gì ?
Lập trình là các thao tác đưa ý nghĩ của con người theo một trình tự có hệ thống vào máy tính, yêu cầu máy tính thực hiện.
b. Ngôn ngữ lập trình
Là các phần mềm mà nhờ đó các kỹ thuật viên mô phỏng lại các thao tác trên ngôn ngữ đó thông qua các qui tắc qui ước mà ngôn ngữ đề ra. Ngôn ngữ lập trình có chức năng chuyển toàn bộ chương trình sang mã máy để máy tính có thể thực hiện và đưa ra kết quả.
2. Bài toán tin học và cách giải quyết
a. Bài toán tin học là gì?
Bài toán trong Tin học không dùng để chỉ một bài toán cụ thể, mà chỉ một lớp các bài toán cụ thể thuộc cùng một loại. Một bài toán tin học được cấu tạo bởi hai yếu tố sau:
+ Thông tin vào (Input): Là các thông tin ta có.
+ Thông tin ra (Output): Là các thông tin cần tìm hoặc câu trả lời cần thiết
Ví dụ: Để giải bài toán tính diện tích tam giác bằng công thức S=a*h/2.
+ Thông tin vào: Là cạnh đáy a và đường cao h
+ Thông tin ra : Là diện tích tam giác S hoặc là dòng thông báo dữ liệu không hợp lệ.
b. Thuật toán (algorithm)
Thuật toán là một quá trình gồm một dãy hữu hạn các thao tác đơn giản được sắp xếp theo một trình tự xác định sao cho theo đó từ Input của bài toán ta sẽ tìm được Output hoặc khẳng định không có Output như bài toán đòi hỏi. Chỉ những quá trình như vậy mới có khả năng chuyển giao máy tính thực hiện được.
Ví dụ: Trở lại bài toán tính diện tích tam giác, thuật toán như sau:
+ Bước 1: Cho giá trị của cạnh đáy a và đường cao h
+ Bước 2: Kiểm tra
- Nếu a>0 và h>0 thì đi tính diện tích theo công thức S=a*h/2 và xuống bước 3
- Ngược lại thông báo dữ liệu không hợp lệ và quay về bước 1
+ Bước 3: In diện tích S.
c. Mô tả thuật toán qua sơ đồ
Để mô tả một cách trực quan hơn về thuật toán người ta dùng sơ đồ khối. Qua sơ đồ khối người lập trình có thể quan sát các bước của thuật toán cũng như dòng thông tin hình thành và biến đổi trong quá trình thuật toán làm việc.
Việc thể hiện thuật toán người ta qui ước dùng các khối sau để thể hiện.
- Thể hiện sự bắt đầu và kết thưc chương trình
- Thể hiện việc nhập, xuất dữ liệu.
- Chứa các công thức,câu lệnh tính toán
- Chứa các biểu thức điều kiện, và để rẽ nhánh chương trình.
- Dùng để gọi chương trình con
Dẫn hướng chương trình và nối các khối trong thuật toán với nhau
3. Cấu trúc của một chương trình pascal
Một chương trình Pascal bao gồm các thành phần sau:
Phần 1: Tên chương trình
Luôn bắt đầu bởi từ khoá Program
PROGRAM Tên_chương_trinh;
Phần 2: Khai báo
USES Tên_các_Unit; {Khai báo thư viện dùng trong chương trình}
CONST Các hằng;{Khai báo hằng sử dụng trong chương trình}
TYPE Các_kiểu_dữ_liêu_mới;{Khai báo kiểu dữ liệu mới}
VAR Các_biến;{Dùng để khai báo biến sử dụng trong chương trình}
PROCEDURE Các_thủ_tục;{Khai báo các thủ tục}
FUNCTION Các_hàm; {Khai báo các hàm}
Phần 3: Thân chương trình
BEGIN {Bắt đầu chương trình}
{ Các câu lệnh }
END. {Kết thúc chương trình}
4. Các bước soạn thảo và chạy một chương trình Pascal cơ bản
Bước 1: Khởi động Pascal
Tệp để chạy chương trình Pascal là tệp TURBO.EXE. Muốn khởi động Pascal ta phải chạy tệp này.
Giả sử trong ổ C: có thư mục TP trong thư mục TP có tệp Turbo.exe. Khởi động chương trình Pascal ta gõ lệnh như sau:
C:\TP\TURBO ¿
Bước 2: Soạn thảo chương trình
Sau khi chương trình Pascal khởi động, ta tiến hành soạn thảo chương trình theo cấu trúc như phần 3. Sau khi soạn thảo xong ta ấn phím F2 để ghi văn bản chương trình vào máy.
Nếu muốn mở chương trình đã có trong máy ta dùng phím F3.
Bước 3: Biên dịch và chạy chương trình
Khi hoàn tất chương trình ta ấn phím F9 để dịch chương trình, Pascal sẽ thông báo cho ta những lỗi cú pháp nếu trong chương trình có, tiến hành sửa chữa các lỗi cho chương trình hoàn chỉnh.
Khi chương trình đã được biên dịch xong ta ấn tổ hợp phím CTRL + F9 để chạy chương trình.
Bước 4: Thoát khỏi Pascal
Để thoát khỏi Pascal ta ấn tổ hợp phím ALT + X
chương II
các khái niệm cơ bản
I. Một số qui ước trong ngôn ngữ
1. Bộ kí tự
Turbo Pascal được xây dựng với bộ kí tự sau:
- Các chữ cái: 26 chữ cái hoa (A,B,......,Z)
26 chữ thường (a,b,......z)
- Các chữ số thập phân: 0,1,2,3,4,5,6,7,8,9
- Các dấu toán học thông dụng: + - * / > >= < <= = ( )....
- Dấu gạch nối _
- Các kí hiệu đặc biệt: ; . {} [ ] : % & @ $ # ^ ! ‘ “ ?
2. Từ khoá (Key word)
Từ khoá là các từ dành riêng cho Turbo Pascal, mỗi từ có một chức năng nhất định. Khi sử dụng phải dùng đúng với cú pháp.
Một số từ khoá:
BEGIN END PROCEDURE FUNCTION PROGRAM
CONST VAR TYPE IF THEN FOR vvv......
3. Tên hay danh hiệu (Indentifier)
Tên là một dãy kí tự được tạo thành từ các chữ cái, chữ số và dấu gạch nối. Tên thường dùng để đặt tên cho các đại lượng trong chương trình như tên biến, hằng, tên kiểu dữ liệu mới vv....
Kí tự đầu tiên của tên không được là chữ số.Tên có độ dài tuỳ ý nhưng chỉ có 63 kí tự đầu tiên là có ý nghĩa, tên không được trùng với tên của từ khoá.
* Tên chuẩn: là tên do Turbo Pascal định nghĩa trước dùng chỉ các hàm, hằng, biến, thủ tục thư viện của turbo Pascal.
* Tên do người lập trình đặt: Đặt tuỳ ý nhưng phải tuân thủ theo nguyên tắc của Pascal như tên biến, tên chương trình, tên kiểu dữ liệu mới.....
4. Dòng chú thích
Trong quá trình soạn thảo chương trình để làm sáng tỏ những đoạn chương trình, những dòng lệnh cụ thể hoặc một công việc nào đó, người lập trình thường đưa thêm vào chương trình dòng chú thích, lời giải thích để là sáng tỏ vấn đề cần nêu. Dòng chú thích được đặt trong hai dấu ngoặc sau {}
Ví dụ: PROGRAM TG; {Khai báo tên chương trình tính diện tích tam giác}
5. Dấu chấm phẩy
Dấu chấm phẩy “ ; ” thường nằm sau các câu lệnh nhằm ngăn cách giữa các câu lệnh với nhau, không lên hiểu dấu “ ; ” dùng để kết thúc một câu lệnh.
II. Các kiểu dữ liệu
1. Kiểu logic (Boolean)
- Chỉ có hai giá trị: TRUE (đúng), FALSE (sai).
- Quy ước: FALS < TRUE.
- Các phép toán: AND, OR, XOR, NOT.
- Tác dụng của các phép toán thể hiện qua bảng:
P
Q
NOT P
P AND Q
P OR Q
P XOR Q
TRUE
TRUE
FALSE
TRUE
TRUE
FALSE
TRUE
FALSE
FALSE
FALSE
TRUE
TRUE
FALSE
TRUE
TRUE
FALSE
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
FALSE
FALSE
Trong đó P và Q là hai giá trị kiểu Boolean.
2. Kiểu số nguyên
- Có năm kiểu số nguyên được tổng kết qua bảng sau:
Tên Miền giá trị Yêu cầu bộ nhớ
Shortint -128 đến 127 1 bytes
Integer -32768 đến 32767 2 bytes
Longint - 2147483648 đến 2147483647 4 bytes
Byte 0 đến 255 1 byte
Word 0 đến 65535 2 bytes
- Các phép tính:
+ cộng / chia
- trừ DIV chia lấy phần nguyên
* nhân MOD chia lấy số dư của hai số nguyên
Ví dụ: 5/2=2.50
5 DIV 2=2
5 MOD 2=1
Chú ý:
- Khi viết các số nguyên phải tuân theo các quy định: không có khoảng trống giữa các số, dấu + hay - (nếu có) phải đặt ngay trướcchữ số đầu tiên, không được sử dụng dấu chấm thập phân.
- Khi thực hiện các phép tính trên số nguyên, phải hết sức thận trọng xem các phép toán đó có cho kết quả vượt quá phạm vi biểu diễn của số nguyên hay không. Ví dụ khai báo a, b là dữ liệu kiểu Integer. Khi đó hai câu lệnh sau:
a:=80;
b:=(a*1245)Div 200;
cho kết quả sai vì a*1245 = 99600 vượt quá phạm vi của Integer.
3. Kiểu số thực
- Có năm kiểu số thực, được tổng kết qua bảng sau:
Tên Phạm vi biểu diễn Yêu cầu bộ nhớ
Single 1.5*10-45 đến 3.4*1038 4 bytes
Real 2.9*10-39 đến 1.7*1038 6 bytes
Double 5.0*10-324 đến 1.7*10308 8 bytes
Extended 3.4*10-4932 đến 1.1*104932 10 bytes
Comp -9.2*1018 đến 9.2*1018 8 bytes
Giải thích: Phạm vi biểu diễn của bốn kiểu đầu được hiểu như sau: máy có thể lưu trữ được một số kiểu Single có giá trị tuyệt đối trong khoảng từ 1.5*10-45 đến 3.4*1038. Số có trị tuyệt đối 3.4*1038 không biểu diễn được. Phạm vi biểu diễn của các kiểu còn lại được hiểu tương tự.
Các giá trị thực được biểu diễn theo hai cách: dạng dấu phẩy tĩnh và dạng dấu phẩy động.
- Cách viết số thực theo dạng dấu phẩy tĩnh: viết dạng thập phân bình thường.
Ví dụ: 2.25, 5.0, -25.56812, 0.0256
- Cách viết số thực theo dạng dấu phẩy động: số được tách thành hai phần là định trị và bậc. Phần định trị là một số nguyên hay số thực viết dưới dạng dấu phẩy tĩnh. Phần bậc là một số nguyên. Hai phần cách nhau bởi chữ E hay e.
Ví dụ:
123.456E-4 : biểu diễn số 0.0123456
0.12E+5 : biểu diễn số 12000.0
-52.4e2 : biểu diễn số –5240.0
Các ký tự biểu diễn một số thực phải viết liền nhau.
- Các phép toán đối với số thực: + (cộng), - (trừ), * (nhân), / (chia). Không tồn tại các phép toán DIV, MOD cho kiểu số thực.
Chú ý: Trong mode thông thường, Turbo Pascal chỉ làm việc với kiểu Real, khi đó nếu sử dụng các kiểu thực khác máy sẽ báo lỗi.
Ví dụ:
Var R: Double;
Begin
R:=12.12;
Write(R);
End.
Khi biên dịch máy sẽ báo lỗi: Error 116: Must be in 8087 Mode to compile this.
Muốn dùng các kiểu Single, Double, Extended, Comp có thể chọn một trong hai cách sau:
Cách 1: Dùng bộ coprocessor làm toán có số hiệu 80x87 (8087, 80287, 80387)
Cách 2: Dùng thư viện của Turbo Pascal để xử lý các số thực và bật phần mềm giả lập 80x87. Rõ ràng cách làm này sẽ chậm và hiệu quả thấp hơn so với cách dùng coprocessor nhưng có ưu điểm là ta có thể dùng cách này trên tất cả các may PC mà phần lớn chúng đều không có 80x87.
4. Kiểu kí tự (Char)
- Một giá trị kiểu Char chiếm 1 byte và biểu diễn được một ký tự thông qua bảng mã ASCII. Mã của một ký tự chính là số ký tự của nó trong bảng mã. ví dụ: mã (hay số thứ tự) của A là 65. Có tất cả 256 ký tự đánh số từ 0á255. Vậy có 256 giá trị kiểu Char. Trong bảng mã ASCII các ký tự từ 0á31 là các ký tự điều khiển không in ra được và dùng để điều khiển quá trình vào ra trên ácc thiết bị ngoại vi. Ví dụ: Khi máy nhận được ký tự có mã là 7 (Beep) nó sẽ phát ra 1 tiếng chuông.
- Để biểu diễn 1 ký tự có thể dùng 1 trong 3 cách: Đặt ký tự trong 2 dấu nháy đơn, dùng hàm Chr(n), dùng #n( trong đó n là mã của ký tự cần biểu diễn).
Ví dụ: Để biểu diễn ký tự A ta có thể dùng 3 cách: ‘A’, Chr(65), #65.
- Kiểu ký tự chỉ có phép toán so sánh, sự so sánh dựa vào mã của ký tự.
Ví dụ: ‘A’ < ’a’ (vì 65 < 97)
- Hàm Upcase(ch): cho ra ký tự hoa tương ứng với ký tự ch.
Ví dụ: Upcase(‘a’) = ‘A’ và Upcase(‘B’)= ‘B’
5. Kiểu xâu kí tự (String)
Một giá trị kiểu String là một ký tự bất kỳ đặt trong 2 dầu nháy đơn. Số ký tự của dãy không quá 255 ký tự. Xâu không có ký tự nào gọi là xâu rỗng.
Ví dụ: ‘Ho va Ten’ là xâu gồm 9 ký tự.
‘’ đây là xâu rỗng
III. Khai báo hằng, biến, biểu thức câu lệnh
1. Khai báo hằng
Hằng là đại lượng có giá trị xác định và không thay đổi trong suốt quá trình chương trình thực hiện. Hằng được khai báo bằng từ khoá CONST như sau:
CONST
Tên hằng = giá trị hằng;
Hay
CONST
Tên hằng = biểu thức hằng;
Ví dụ:
CONST
Max = 150; {hằng nguyên}
L = False; {hằng logic}
A = (5*4)/3; {hằng thực }
Ch = ‘Y’; {hằng ký tự}
Chúng ta sử dụng các hằng để chương trình được rõ ràng và dễ sửa đổi.
2. Khai báo biến
Biến (variable) là đại lượng mà trị của nó có thể thay đổi khi thực hiện chương trình. Biến là tên của một vùng bộ nhớ lưu trữ dữ liệu, mỗi biến phải thuộc về một kiểu dữ liệu nhất định. Vùng bộ nhớ của biến kiểu Integer chỉ chứa được các giá trị Integer.
Biến được khai báo bằng từ khoá VAR như sau:
VAR
Tên biến: Kiểu dữ liệu của biến;
Nhiều biến có cùng kiểu có thể được khai báo cùng nhau bằng cách viết tên các biến đặt cách nhau dấu phẩy.
Ví dụ:
VAR
x,y,z:Real; chọn:Char;Thoat:Boolean;
i,j:integer; ten:String[7];
Chú ý:
- Biến String khai báo tối đa là: String[255]. Một biến String được cấp một số byte bằng độ dài của nó cộng thêm 1. Byte đầu tiên dùng để ghi số ký tự đang được lưu trữ, mỗi byte còn lại chứa một ký tự.
- Có thể vừa khai báo vừa khởi đầu (gán giá trị) cho các biến theo cách sau:
Const x = 25.0;
Y:Real = -5.26;
Ho_ten:String[25]=’Lê Hung’;
Trong ví dụ trên chú ý phân biệt x và y: x là hằng thực, y là biến thực. Trong chương trình có thể thay đổi giá trị của y mà không thay đổi giá trị của x.
3. Biểu thức
Một biểu thức được tạo bởi các phép toán và các toán hạng dùng để thể hiện một công thức toán học. Toán hạng có thể là hằng, hàm, biến.
Ví dụ: Sau khi có khai báo:
Const Max = 120;
Var x: Integer;
Ta có thể viết biểu thức sau: 5+ Max * Exp(x);
trong đó + và * là hai phép toán, các hằng số 5, Max, Exp(x) là các toán hạng.
Chú ý: Một hằng, một biến, một hàm cũng được xem là biểu thức, đó là biểu thức đơn giản.
Các phép toán trong biểu thức được sắp xếp theo thứ tự ưu tiên sau:
- Các phép toán một ngôi được ưu tiên thứ nhất: dấu dương (+), dấu âm (-), phép phủ định (not).
- Các phép toán nhân chia: phép nhân (*), phép chia (/), lấy phần nguyên (div), lấy phần dư (mod), phép và (and).
- Các phép cộng trừ: cộng (+), trừ (-), phép hoặc (or) .
- Các phép so sánh: , >=, =, .
Chú ý:
- Biểu thức trong ngoặc nếu có sẽ được thực hiện trước khi xét đến các phép toán ở cạnh dấu ngoặc.
- Nếu cùng một thứ tự ưu tiên thì toán tử được thực hiện từ trái qua phải.
Ví dụ:
a) 3+5*3=18, (3+5)*3=24, 5/2*3=7.5
b) (5+2>4) and not (true or (5-3=8))
c) (-b+sqrt(d))/2*a có nghĩa là
4. Câu lệnh
Dưới phần khai báo dữ liệu là phần lệnh của chương trình. Phần này xác định các công việc mà chương trình phải thực hiện để xử lý các dữ liệu đã được khai báo. Câu lệnh được chia ra làm hai loại:
- Câu lệnh đơn giản:
Lệnh gán ( := )
Lệnh Nhập – Xuất ( READ, WRITE )
Gọi Thủ tục
Lệnh nhảy ( GOTO)
- Câu lệnh có cấu trúc:
Lệnh ghép ( BEGIN..END )
Lệnh lựa chọn (IF, CASE)
Lệnh lặp (FOR, REPEAT, WHILE)
5. Câu lệnh gán
Lệnh gán dùng để gán giá trị của một biểu thức cho mộ biến. Lệnh gán có dạng:
Biến:= biểu thức;
Sự thực hiện: đầu tiên máy tính trị của biểu thức vế phải sau đó nó gán giá trị tính được cho biến ở vế trái.
Chú ý:
- Vế trái của phép gán chỉ và chỉ có thể là biến mà thôi. Ví dụ viết x+y:=7 là sai vì vế trái phép gán là một biểu thức chứ không phải là biến.
- Kiểu của biểu thức phải trùng với kiểu của biến, trừ trường hợp một biến thực có thể nhận giá trị nguyên.
Ví dụ: Sau khi đã khai báo:
Var
c1, c2: char; i,j: integer; x,y: real;
thì có thể thực hiện các phép gán sau:
c1:= ‘B’; c2:=chr(7);
i:= (23+6)*2 mod 3;
j:= round(20/3);
x:=0.5; y:=1;
6. Lệnh in dữ liệu ra màn hình
Lệnh này cho phép chương trình in lên màn hình các dữ liệu, kết quả hay các thông báo cần thiết.
Cú pháp:
WRITE ( Biểu thức 1,...., Biểu thức thứ n ); (1)
WRITELN( Biểu thức 1,...., Biểu thức thứ n); (2)
WRITELN; (3)
Dạng (1): in lên màn hình giá trị các biểu thức tại vị trí hiện hành của con trỏ theo thứ tự viết trong lệnh và sau lệnh này con trỏ ở vị trí sau giá trị của biểu thức thứ n.
Dạng (2): in lên màn hình giá trị các biểu thức tại vị trí hiện hành của con trỏ theo thứ tự viết trong lệnh và sau đó đưa con trỏ về đầu dòng mới.
Dạng (3): đưa con trỏ về đầu dòng mới.
Ví dụ:
Var A,B: Byte;
BEGIN
A:=2; B:=4;
Write( ‘ Day la ket qua cua phep nhan A voi B:’,A*B);
Writeln(‘******’);
Write(‘ ---------------------------------------------- ‘);
END.
Kết quả trên màn hình sau khi chạy chương trình:
Day la ket qua cua phep nhan A voi B: 8 ******
-----------------------------------------------------------
Có hai dạng viết trong thủ tục WRITE và WRITELN là viết có quy cách và viết không có quy cách. Chúng sẽ được xét cụ thể với từng kiểu dữ liệu.
a)Ví dụ về dạng viết không quy cách:
USES Crt;
Var
I: Integer; R: Real; Ch: Char; B: Boolean;
BEGIN
I:= 123; R:=123.456; Ch:=’D’; B:=2<5;
Writeln(I); {1}
Writeln(R) {2}
Writeln(3.14) {3}
Writeln(20*2.5) {4}
Writeln;
Writeln(Ch); {5}
Writeln(B); {6}
Writeln(#7); {7}
END.
Cách viết không quy cách sẽ căn lề theo bên trái.
- Số nguyên được viết ra với số chỗ đúng bằng số chữ số gán vào, kể từ vị trí bên trái. Lệnh {1} in ra: 123.
- Số thực được viết ra với trình tự sau: một dấu cách, một số phần nguyên, dấu chấm, 10 chỗ phần thập phân, chữ E, dấu của phần mũ, hai số biểu diễn giá trị phần mũ. Các lệnh {2}, {3},{4} in ra các số 1.2345600000E+02, 3.1400000000E+00, 5.0000000000E+01.
- Kiểu ký tự in bình thường, một ký tự chiếm một chỗ. Lệnh {5} in ra: D.
- Kiểu Boolean được viết ra từ TRUE hay FALSE. Lệnh {6} in ra: TRUE.
- Lệnh {7}: chuông kêu.
b) Ví dụ về dạng viết có quy cách
Var
I: integer; R: Real; Ch: Char; B: Boolean;
BEGIN
I:=123; R:=123.456; Ch:=’D’; B:=2<5; Z:=543621.342;
Writeln(I:8); {1}
Writeln(-23564:8); {2}
Writeln(R:12:6); {3}
Writeln(35.123456789:12:6); {4}
Writeln(R:12); {5}
Writeln(Ch:5); {6}
Writeln(‘ABC’:5); {7}
Writeln(B:7); {8}
Writeln(Z:1:2); {9}
END.
Cách viết quy các sẽ căn theo lề phải, nếu thừa chỗ thì phần bên trái bỏ trắng.
- Lệnh {1}, {2} dành 8 ký tự trên màn hình để in các số nguyên.
- Lệnh{3},{4} dành 12 ký tự trên màn hình để in các số thực với 6 số lẻ phần thập phân, kết quả in 123.456000, 35.123457 ( phần thập phân > 6 chỗ nên được làm tròn).
- Lệnh {5} in giá trị của R với số chỗ 12 dưới dạng mũ: 1.23456E+02.
- Lệnh {6}, {7} dành 5 chỗ để in chữ D và xâu ký tự ABC.
- Lệnh {8} dành 7 ký tự để in TRUE.
- Trong lệnh in một số thực Write(Z:m:n) nếu m n , nếu độ dài của số lớn hơn m thì số bị cắt.
Chú ý: Vì dấu ‘ được dùng để đánh dấu ký tự, do đó khi muốn viết nó ta viết hai lần dấu ‘. Ví dụ: Write(‘ Dung quen toi!’);
Sẽ cho kết qua trên màn hình:
Dung quen toi!
7. Lệnh nhập dữ liệu
READLN(Biến 1,......., Biến thứ n); (1)
READLN; (2)
Dạng (1): Khi thực hiện lệnh này, máy tính sẽ dừng lại đợi người sử dụng dưa vào (từ bàn phím) đủ n dữ liệu cho n biến tương ứng.
Dạng (2): dùng để tạm dừng chương trình, muốn chạy tiếp thì nhấn Enter.
Chú ý:
- Các biến ở đây thuộc kiểu nguyên, thực, ký tự hay xâu ký tự. Do đó chỉ có thể nạp từ bàn phím các giá trị số và ký tự. Sẽ là một ý đồ sai nếu ta định nạp vào giá trị TRUE hay FALSE cho một biến Boolean.
- Dữ liệu gõ vào từ bàn phím tương ứng với biến 1, biến 2,., biến thứ n và được tách riêng bằng một hay vài dấu cách. Sau khi dữ liệu được vào ta ấn phím Enter để máy thực hiện lệnh. Các dữ liệu vào phải phù hợp với kiểu tương ứng.
8. Một số hàm cơ bản trong Turbo Pascal
SQRT(x): Hàm căn bậc hai của x
SQR(x): Hàm bình phương của một số nguyên hay thực
ABS(x): Hàm trị tuyệt đối của x
SIN(x): Tính giá trị sin(x) với x là radian
COS (x): Tính giá trị Cos(x) với x là radian
ARCTAN(x): Hàm tính giá trị Arctg(x)
LN(x): Hàm Lôga cơ số e=2.718
EXP(x): Hàm tính ex
TRUNC(x): Cắt bỏ phần lẻ thập phân của x nếu có
ROUND(x):Cho số nguyên gần x nhất
PRED(x): Cho giá trị đi trước x . Ví dụ: PRED(1) cho giá trị 0
SUCC(x): cho giá trị đi sau x. Ví dụ: SUCC(1) cho giá trị 2
ORD(ch): Cho số thứ tự của ký tự ch trong bảng mã.
CHR(n): Trả về ký tự có số thứ tự n trong bảng mã.
ODD(n): Cho kết quả true nếu n lẻ, False nếu ngược lại
chương II
cấu trúc điều kiện
I. Câu lệnh ghép
Lệnh ghép là một nhóm lệnh được đặt giữa hai từ khoá BEGIN và END; nhằm thực hiện một công việc cơ bản nào đó. Lệnh ghép thường xuất hiện trong các cấu trúc chương trình như câu lệnh điều kiện, cấu trúc lặp...Khi thực hiện kệnh ghép thực hiện tuần tự từng câu lệnh một theo thứ tự từ trên xuống.
Dạng tổng quát của lệnh ghép:
BEGIN
;
;
;
......................
;
END;
II. Câu lệnh điều kiện IF.....THEN
a. Câu lệnh điều kiện có hai dạng như sau:
Câu lệnh điều kiện thiếu:
IF THEN
;
Câu lệnh điều kiện đủ:
IF THEN
ELSE ;
b. Hoạt động:
Khi gặp lệnh này chương trình sẽ đi kiểm tra điều kiện logic, nếu điều kiện logic là đúng sẽ đi thực hiện và bỏ qua , nếu sai sẽ đi thực hiện và bỏ qua . Trong đó , có thể là một câu lệnh ghép.
c. Sơ đồ thuật toán cho câu lệnh điều kiện đủ:
Đ
S
Điều Kiện logic
Công việc 2
Công việc 1
d. Một số ví dụ
Ví dụ 1: Viết chương trình giải và biện luận phương trình bậc nhất ax+b=0
Bước 1: Phân tích bài toán
Để giả được phương trinh bậc nhất một ẩn trước hết ta cần những thông tin sau:
- Biết được hệ số a và b
- Sau đó kiểm tra điều kiện của phương trình
+ Nếu a= 0
Nếu b=0 thì phương trình vô số nghiệm
Ngược lại nếu b0 thì phương trình vô nghiệm
+ Ngược lại nếu a0 thì phương trình có nghiệm x=-b/a
Bước 2: Sơ đồ thuật toán
BEGIN
Nhập a,b
PT vô nghiệm
S
PT có nghiệm -b/a
PT vô số nghiệm
END.
a=0
S
b=0
Đ
Đ
Bước 3: Chương trình
Program PT_bac_nhat;
Var
a,b: real;
BEGIN
Write('Nhap vao he so a=');Readln(a);
Write('Nhap vao he so b=');Readln(b);
IF a=0 THEN
IF b=0 THEN
Writeln('Phuong trinh vo so nghiem')
ELSE Writeln('Phuong trinh vo nghiem)
ELSE Writeln('Phuong trinh co nghiem x=',-b/a:6:2);
Readln;
END.
Ví dụ 2: Tìm số lớn nhất trong ba số nhập vào từ bàn phím.
Bạn đọc tự thực hiện lại các bước 1 và bước 2.
Bước 3: Chương trình
Program so_lon_nhat;
Var
a,b,c,max:real;
BEGIN
Write('Nhap so a=');Readln(a);
Write('Nhap so b=');Readln(b);
Write('Nhap so c=');Readln(c);
Max:=a;
IF Max<b then max:=b;
IF Max<c then max:=c;
Writeln('So lon nhat trong ba so la:',max:6:2);
Readln;
END.
III. Câu lệnh lựa chọn
a. Cấu trúc lệnh
CASE OF
Tập hằng 1: ;
Tập hằng 2: ;
..............................................
Tập hằng n-1: ;
Tập hằng n: ;
ELSE
;
END;
- Tập hằng bao gồm các hằng cụ thể hoặc các đoạn hằng:
ví dụ như
3:;
1..10:;{tập hằng là một tập các số nguyên từ 1 đến 10}
‘a’..’z’: ;{tập hằng là tập các kí tự từ a đến z}
- Giá trị của biểu thức và giá trị trong các tập hằng phải có cùng kiểu và phải là kiểu vô hướng đếm được (như nguyên, logic, kí tự, liệt kê).
b. Hoạt động:
Khi gặp lệnh này chương trình sẽ lấy giá trị của biểu thức đem so sánh với giá trị chứa trong các tập hằng, nếu giá trị của biểu thức trùng với giá trị chứa trong một các tập hằng thì sẽ đi thực hiện công việc tương ứng với tập hằng đó và bỏ qua tất cả các công việc khác. Nếu trong trường hợp không có giá trị của tập hằng nào trùng với giá trị của biểu thức thì đi thực hiện , trong trường hợp không có ELSE thì chương trình thoát khỏi cấu trúc này và đi thực hiện các công việc tiếp theo sau cấu trúc.
c. Một số ví dụ:
Ví dụ 1: Nhập vào một số từ 1 đến 5 in ra màn hình số đó bằng chữ, ví dụ nhập vào số 2 in ra màn hình “số hai”
* Chương trình
Program Vidu;
Var
a: integer;
Begin
Write('Nhap vao so a=');readln(a);
CASE a OF
1:Writeln('so do la so mot');
2:Writeln('so do la so hai');
3:Writeln('so do la so ba');
4:Writeln('so do la so bon');
5:Writeln('so do la so nam');
end;
Readln;
End.
Ví dụ 2: Viết chương trình nhập vào một điểm kiểm tra của một học sinh từ bàn phím (điểm là số nguyên từ 0 đến 10), in ra màn hình kết quả xếp loại của học sinh đó.
* Chương trình
Program Vidu;
Var
a: integer;
Begin
Write('Nhap vao diem cua hoc sinh=');readln(a);
CASE a OF
0..4:Writeln('Ban xep loai yeu');
5,6:Writeln('Ban xep loai trung binh');
7,8:Writeln('Ban xep loai kha');
9,10:Writeln('Ban xep loai gioi');
end;
Readln;
End.
Bài tập
Bài 1: Lập trình nhập vào từ bàn phím 3 số, tìm số lớn nhất trong 3 số đó.
Bài 2: Lập trình giải phương trình bậc hai ax2 + bx +c = 0 với a, b, c nhập từ bàn phím.
Bài 3: Cho 3 số thực dương. Kiểm tra xem chúng có tạo nên 3 cạnh của một tam giác hay không? Nếu đúng, hãy tính diện tích tam giác.
Bài 4: Lập trình nhập vào từ bàn phím 4 số, tìm số lớn nhất trong 4 số đó.
Bài 5: Lập trình nhập vào từ bàn phím 3 số, in ba số đó ra màn hình theo thứ tự tăng dần.
Bài 6: Tìm |a| với a cho trứơc.
Bài 7: Tính số ngày của tháng, năm bất kỳ cho trước theo thuật giải :
- Nếu là tháng 4,6,9,11 thì số ngày là 30
- Nếu là tháng 1,3,5,7,8,10,12 thì số ngày là 31
- Nếu là tháng 2
+ Nếu số năm chia hết cho 4 thì tháng 2 có 29 ngày, còn lại tháng 2 có 28 ngày.
Bài 8: Lập trình giải biện luận bất phương trình bậc hai
ax2 + bx + c>0 với a,b,c được nhập từ bàn phím.
Bài 9: Lập trình giải biện luận hệ phương trình:
ax + by =c
dx + ey = f
Với a,b,c,d,e,f nhập từ bàn phím.
Bài 10: Cho ba số thực a,b,c. Kiểm tra xem bất đẳng thức sau xem có đúng không ?
a < b <c
Bài 11: Cho ba số thực a, b, c. Hãy thay mỗi số bằng hai lần chính nó nếu a ³ b ³ c, ngược lại thay bằng trị tuyệt đối của chúng.
Bài 12: Cho hai số thực x và y. Hãy tính Z với
Z = x-y nếu x>y
= y- x + 1 trong trường hợp còn lại
Bài 13: Cho hai số thực a và b. hãy thay a = 0 nếu a ³ b
Bài 14: Cho ba số thực x, y, z. hãy chỉ ra các số thuộc khoảng (3, 5)
Bài 15: Cho hai số thực x và y. hãy thay số bé trong chúng bằng trung bình cộng của chúng và số còn lại bởi tích của chúng.
Bài 16: Cho ba số thực x, y, z . hãy thay tất cả các số âm bằng bình phương của nó.
Bài 17: Cho ba số thực a, b, c đôi 1 khác nhau mà có tổng bé hơn một thì thay số bé nhất trong chúng bằng trung bình cộng của chúng, ngược lại số nhỏ hơn trong hai số a và b thay bằng trung bình cộng của hai số còn lại.
Bài 18: Với 4 số thực a,b,c,d. Nếu a Ê b Ê c Ê d thì thay mọi số bằng d; Nếu a >b>c>d thì các số không thay đổi , ngược lại thay mỗi số bằng
File đính kèm:
- Giao_trinh_Turbo_Pascal.doc