1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng pascal bồi dưỡng học sinh giỏi

53 348 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 473,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khái niệm: Thuật toán là một dãy hữu hạn các thao tác, được sắp xếp theo một trình tự xác định, sao cho từ Input của bài toán ta xác định được Output cần tìm.. Tính phổ dụng: Thuật toán

Trang 1

CHƯƠNG I THUẬT TOÁN

I Khái niệm thuật toán

1 Khái niệm: Thuật toán là một dãy hữu hạn các thao tác, được sắp xếp theo một trình

tự xác định, sao cho từ Input của bài toán ta xác định được Output cần tìm.

2 Ví dụ: Một hộp kín chứa hữu hạn các viên bi có kích thước khác nhau Hãy tìm

thuật toán tìm ra viên bi lớn nhất, biết rằng mỗi lần chỉ được bốc một viên

Thuật toán được trình bày như sau:

Bước 1: Bốc một viên bất kỳ

Bước 2: Kiểm tra xem hộp đã rỗng chưa?

Nếu đúng chuyển qua bước 4

Nếu sai chuyển qua bước 3

Bước 3: Bốc tiếp một viên bi khác, so sánh hai viên và giữ lại viên lớn rồi chuyễnqua bước 2

Bước 4: Viên bi hiện tại là viên bi lớn nhất, kết thúc

II Các tính chất của thuật toán.

1 Tính phổ dụng: Thuật toán không chỉ để giải quyết một bài toán riêng lẽ mà được

dùng để giải quyết một lớp các bài toán (có thể la vô hạn), các bài toán cùng loại

2 Tính hữu hạn: Thuật toán phải được kết thúc sau một số hữu hạn bước thực hiện

các thao tác.Một thuật toán không có tính hữu hạn là không khả thi

3 Tính xác định: Thuật toán đòi hỏi mỗi bước thao tác phải rõ ràng và xác định một

cách đơn trị bước tiếp theo

4 Tính hiệu quả: Thể hiện ở các yêu cầu sau:

- Tính đúng đắn

- Tính tối ưu: Tiết kiệm thời gian thực hiện, tiết kiệm bộ nhớ

III Các đại lượng của thuật toán.

1 Đại lượng vào: Là những đại lượng cho trước làm cơ sở cho việc hình thành nên

bài toán

2 Đại lượng ra: Thường là kết quả sau khi đã thực hiện xong thuật toán và đó cũng

chính là yêu cầu của bài toán

3 Đại lượng trung gian: Là các đại lượng tham gia vào quá trình để giải bài toán

nhưng không phải là đại lượng vào mà cũng chẳng phải là đại lượng ra

Ví dụ: Bài toán giải phương trình bậc hai: ax2 + bx + c = 0 (a ≠ 0)

Đại lượng vào là các hệ số a,b,c

Đại lượng ra là: hoặc là nghiệm kép, hoặc là hai nghiệm phân biệt nhưng cũng cókhi là một câu thông báo vô nghiệm

Đại lượng trung gian: delta = b2 – 4ac

1

Trang 2

4 Hằng, biến, kiểu:

Để biểu diễn các đại lượng nêu trên của thuật toán ta sử dụng các hằng, biến và phải

có kiểu dữ liệu nhất định

- Hăng: Là đại lượng không thay đổi trong quá trình thực hiện thuật toán.

- Biến: Là đại lượng có thể thay đổi giá trị trong quá trình thực hiện thuật

toán

- Kiểu: Là tập hợp các giá trị (miền trị) mà các đại lượng cóthể nhận, đồng

thời với việc quy định các phép toán tác động trên đó

IV Biểu diễn của thuật toán

1 Các dạng biểu diễn của thuật toán: Có thể biểu diễn thuật toán bằng 3 dạng sau:

- Liệt kê các bước (như ở ví dụ 1)

- Cấu trúc theo ngôn ngữ quy ước của thuật toán

- Sơ đồ khối

2 Biểu diễn thuật toán bằng sơ đồ khối: Đây là dạng biểu diễn có cấu trúc trực

quan, rõ ràng

a Các kí hiệu dùng để biểu diễn thuật toán:

Dùng để chỉ sự bắt đầu và kết thúc của thuật toán

Dùng để chỉ việc nhập dữ liệu và ghi dữ liệu ra màn hình

Dùng để biểu diễn các thao tác của thuật toán

Dùng để kiểm tra điều kiện

Dùng để hướng đi của thuật toán

Ngoài ra ta còn sử dụng ký hiệu := để biểu diễn cho việc gán giá trị cho các biến

Trang 3

Ví dụ 2: Sơ đồ thuật toán để giải bài toán tính tổng:

T

Trang 4

BÀI TẬP CHƯƠNG I Bằng phương pháp dùng sơ đồ khối, trình bày thuật toán giải các bài toán sau đây:

1 Tính S = 1 + 2 + 3 + … + n.

2 Tính S = 1 – 2 + 3 - … + (-1)n-1n

3 Giải phương trình bậc 2: ax2 + bx + c = 0 (a ≠ 0)

4 Tìm ước chung lớn nhất của hai số nguyên dương

5 Tìm bội chung nhỏ nhất của hai số nguyên dương

6 Kiểm tra một số nguyên dương có phải là một số nguyên tố hay không

BeginNhâp nS:=0; i:=1

Trang 5

CHƯƠNG II

CÁC KIẾN THỨC CHUNG VỀ NGÔN NGỮ LẬP TRÌNH PASCAL

Pascal là một ngôn ngữ lập trình bậc cao do Niklaus Wirth, giáo sư điện toán trườngĐại học kỹ thuật Zurich (Thụy Sĩ) đề xuất năm 1970 Ông lấy tên Pascal để kỷ niệm nhàtoán học và nhà triết học người Pháp nổi tiếng Blaise Pascal

I Các tập tin cần thiết khi lập trình với Turbo Pascal

Để lập trình được với Turbo Pascal, tối thiểu cần 2 file sau:

TURBO.EXE: Dùng để soạn thảo và dịch chương trình.

TURBO.TPL: Thư viện chứa các đơn vị chuẩn để chạy với TURBO.EXE.

Ngoài ra, muốn lập trình đồ hoạ thì phải cần thêm các tập tin:

GRAPH.TPU: Thư viện đồ hoạ.

*.BGI: Các file điều khiển các loại màn hình tương ứng khi dùng đồ hoạ.

*.CHR: Các file chứa các font chữ đồ họa.

II Các bước cơ bản khi lập một chương trình Pascal

1 Các bước lập trình tổng quát:

Bước 1: Phân tích bài toán; Xác định dữ liệu vào, dữ liệu ra làm cơ sở cho việc hình

thành giải thuật

Bước 2: Xây dựng thuật toán: Trên cơ sở xác định dữ liệu vào, ra; các giả thiết của

bài toán, các mối liên hệ giữa chúng và những kiến thức liên quan ta cần đưa ra thuậttoán tương ứng

Bước 3: Tổ chức dữ liệu và lập chương trình theo thuật toán đã đè ra.

2 Các bước lập trình và thực hiện (với Turbo Pascal):

Bước 1: Khởi động Turbo Pascal (Turbo exe)

Bước 2: Soạn thảo chương trình.

Bước 3: Biên dịch (Nhấn tổ hợp phím ALT – F9).

+ Nếu thành công thì chuyễn qua bước 4

+ Nếu không thành công chuyễn qua bước 2

Bước 4: Chạy thử chương trình.

+ Nếu tốt chuyễn qua bước 5

+ Nếu chưa tốt thì quay về bước 2

Bước 5: Ghi vào đĩa, dịch thành file *.exe.

Bước 6: Kết thúc.

III Một số phím chức năng thường dùng

F2: Lưu chương trình đang soạn thảo vào đĩa

5

Trang 6

F3: Mở file mới hoặc file đã tồn tại trên đĩa để soạn thảo.

Alt-F3: Đóng file đang soạn thảo.

Alt-F5: Xem kết quả chạy chương trình.

F8: Chạy từng câu lệnh một trong chương trình

Alt-X: Thoát khỏi Turbo Pascal

Alt-<Số thứ tự của file đang mở>: Dịch chuyển qua lại giữa các file đang mở.

F10: Vào hệ thống Menu của Pascal

IV.Các thao tác cơ bản khi soạn thảo chương trình

IV.1 Các phím thông dụng

Insert: Chuyển qua lại giữa chế độ đè và chế độ chèn.

Home: Đưa con trỏ về đầu dòng.

End: Đưa con trỏ về cuối dòng.

Page Up: Đưa con trỏ lên một trang màn hình.

Page Down: Đưa con trỏ xuống một trang màn hình.

Del: Xoá ký tự ngay tại vị trí con trỏ.

Back Space (): Xóa ký tự bên trái con trỏ.

Ctrl-PgUp: Đưa con trỏ về đầu văn bản.

Ctrl-PgDn: Đưa con trỏ về cuối văn bản.

Ctrl-Y: Xóa dòng tại vị trí con trỏ.

IV.2 Các thao tác trên khối văn bản

Chọn khối văn bản: Shift + <Các phím ←↑→↓>

Ctrl-KY: Xoá khối văn bản đang chọn

Ctrl-Insert: Đưa khối văn bản đang chọn vào Clipboard

Shift-Insert: Dán khối văn từ Clipboard xuống vị trí con trỏ.

V Các khái niệm và các thành phần cơ bản

1 Bộ ký tự (Dùng để soạn thảo chương trình)

Bao gồm các loại ký tự sau đây:

 Các chữ cái: a z; A Z (Khi soạn thảo chương trình, Turbo Pascal khôngphân biệt chữ hoa hay chữ thường)

Trang 7

b Từ khoá: Là từ dành riêng của Pascal với chức năng và cú pháp được quy định

sẵn Vì vậy khi sử dụng phải theo đúng quy định và không được sử dụng các từ khoá vào các công việc khác

Ví dụ: Begin, end, if, then, const, var, function,…

3 Tên và tên chuẩn

a Tên: Là một từ bao gồm tối đa 255 ký tự, chỉ được lấy trong các chử cái, chử số và

dấu gạch nối, nhưng không được bắt đầu bằng số Tên dùng để đặt cho các đối tượng trong chương trình như hằng, biến, hàm, thủ tục, kiểu dữ liệu,…

b.Tên chuẩn: Là tên mà Turbo Pascal đã định sẵn để chỉ các hàm, hằng, biến, thủ tục

thư viện của nó

VI Cấu trúc chung của một chương trình Pascal

{ Phần tiêu đề }

PROGRAM Tên_chương_trình;

{ Phần khai báo và định nghĩa}

USES ;

CONST .;

TYPE ;

VAR .;

PROCEDURE .;

FUNCTION ;

{ Phần thân chương trình } BEGIN

END.

1 Phần tiêu đề:

Từ khoá để khai báo là Program tiếp đến là tên của chương trình do người dùng tự đặt Phần này không bắt buộc phải có

2 Phần khai báo và định nghĩa:

Uses: Dùng để khai báo các Unit (đơn vị chương trình) của Turbo Pascal Nếu có

nhiều Unit thì sử dụng dấu phẩy “,” để ngăn cách

Const: Dùng để khai báo các hằng.

Cú pháp: Tên_hằng = Giá trị

Type: Dùng để định nghĩa các kiểu dữ liệu của người dùng.

Cú pháp: Tên_kiểu = định nghĩa cụ thể cho từng kiểu

Var: Khai báo biến.

Cú pháp: Tên_biến: Kiểu_dữ liệu;

(Hoặc khai báo trực tiếp không thông qua kiểu.)

Nếu có nhiều biến cùng kiểu thì sử dụng dấu phẩy “,” để ngăn cách

Procedure: Định nghĩa chương trình con dạng thủ tục.

Function: Định nghĩa chương trình con dạng hàm

7

Trang 8

3 Phần thân chương trình: Được bắt đầu bằng từ khoá “Begin” và kết thúc bởi từ khoá

“End” Giữa cặp từ khoá này có các câu lệnh của chương trình

Trang 9

CHƯƠNG III

CÁC KIỂU DỮ LIỆU ĐƠN GIẢN

I Tổng quan về các kiểu dữ liệu trong Turbo Pascal

Các kiểu dữ liệu trong Turbo Pascal được chia làm hai loại:

- Các kiểu dữ liệu đơn gian

- Các kiểu dữ liệu co cấu trúc

1 Các kiểu dữ liệu đơn giản gồm:

 Kiểu do người dung định nghĩa:

- Kiểu đoạn con

- Kiểu liệt kê

2 Các kiểu dữ liệu có cấu trúc:

 Miền trị: Chỉ có hai giá trị là True và False

 Các phép toán: AND, OR, NOT, XOR.(Xem bảng dưới đây)

Các phép toán: phép so sánh (=, <, >)

Trong Pascal, khi so sánh các giá trị boolean ta tuân theo qui tắc: FALSE < TRUE.Giả sử A và B là hai giá trị kiểu Boolean Kết quả của các phép toán được thể hiện quabảng dưới đây:

9

Trang 10

2 Kiểu số nguyên

2.1 Các kiểu số nguyên

• Có 5 kiểu số nguyên:

Miền trị của các kiểu đó như sau:

+, -, *, / (phép chia cho ra kết quả là số thực).

Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV 5 = 6).

Phép chia lấy số dư: MOD (Ví dụ: 34 MOD 5 = 4).

2.2.2 Các phép toán xử lý bit:

Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán:

• NOT, AND, OR, XOR

Trang 11

Chú ý: Các kiểu số thực Single, Double và Extended yêu cầu phải sử dụng chung với bộ

đồng xử lý số hoặc phải biên dich chương trình với chỉ thị {$N+} để liên kết bộ giả lập

Nếu một số < -max hoặc > max thì sẽ không biểu diễn được và xem như là tràn số

Nếu một số <-min nhỏ hơn 0 hoặc lớn hơn 0 nhỏ hơn min thì được xem như là 0

(2) Chế độ mặc định của TurboPascal là chỉ cho phép làm việc với kiểu số thựcREAL Muốn sử dụng các kiểu khác ta vào bảng chọn OPTION -> COMPILER->NUMERIC PROCESING rồi đánh dấu [x] vào mục 8087/80287

(3) Trong máy tính số thực được biểu diễn dưới hai dạng:

- Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:

• Đặt ký tự trong cặp dấu nháy đơn Ví dụ 'A', '0'

• Dùng hàm CHR(n) (trong đó n là mã ASCII của ký tự cần biểu diễn) Ví dụCHR(65) biễu diễn ký tự 'A'

• Dùng ký hiệu #n (trong đó n là mã ASCII của ký tự cần biểu diễn) Ví dụ #65

- Phép so sánh: Muốn so sánh hai ký tự ta so sánh các mã ASCII tương ứng của chúng,

ký hiệu nào có mã ASCII lớn hơn được xem là lớn hơn Ví dụ: ‘a’ > ’A’ Vì 97 > 65

Chú ý: Một kiểu dữ liệu được gọi là vô hướng đếm được nếu miền trị của nó là một tập

hợp đếm được và trên đó tồn tại quan hệ thứ tự Ví dụ: Kiểu Byte; kiểu Integer; kiểuChar; kiểu Boolean…

11

Trang 12

III Kiểu liệt kê và kiểu đoạn con

1 Kiểu liệt kê:

a Định nghĩa kiểu và khai báo biến:

 Định nghĩa kiểu:

Type ten_kieu = (Danh sách các giá trị);

Giải thích:

Ten_ kieu ký hiệu cho tên kiểu do người dung tự đặt

Danh sách các giá trị là tập hợp các giá trị được phân cách bởi dấu phẩy “,”

 Khai báo biến:

Var ten_bien : ten_kieu;

Giải thích:

ten_bien ký hiệu cho tên biến do người dùng tự đặt

ten_kieu đã được khai báo;

Ví dụ:

Type ngay = (sun, mon, tue, wed, thu, fri, sat);

Cviec = (dihoc, dilam, thuchanh, nghi);

Var hqua, hnay: ngay;

Viec: cviec;

Cũng có thể khai báo biến kiểu liệt kê trực tiếp mà không cần khai báo kiểu

Ví dụ: var gioitinh: (nam, nu);

Mau: (xanh, do, tim, vang);

b Các tác động lên dữ liệu kiểu liệt kê:

• Có thể thực hiện phép gán giá trị cho biến

Phép so sánh: Giá trị liệt kê trong danh sách đi trước được xem là bé hơn giá trị

sau

Trang 13

c Chú ý:

- Không thể nhập, xuất với dữ liệu kiểu liệt kê

- Giá trị kiểu liệt kê thường được dùng để làm chỉ số cho lệnh lặp for, các trườnghợp chọn lựa trong lệnh Case, hoặc chỉ số cho mảng

2 Kiểu đoạn con:

a Định nghĩa kiểu và khai báo biến:

 Định nghĩa kiểu:

Type ten_kieu = hang duoi hang tren;

Giải thích:

Ten_ kieu ký hiệu cho tên kiểu do người dung tự đặt

Hang_duoi tức là ký hiệu giá trị hằng cận dưới, hang tren tức là ký hiệu giá trị

hằng cận trên tất nhiên là hang tren >= hang duoi và phải có cùng kiểu vô hướng

đếm được

 Khai báo biến:

Var ten_bien : ten_kieu; ( Tên kiểu đã được khai báo)

SIN(x): Trả về sin(x) theo radian

COS(x): Trả về cos(x) theo radian

ARCTAN(x): Trả về arctang(x) theo radian

LN(x): Trả về ln(x)

EXP(x): Trả về ex

TRUNC(x): Trả về số nguyên gần với x nhất nhưng bé hơn x

INT(x): Trả về phần nguyên của x

FRAC(x): Trả về phần thập phân của x

ROUND(x): Làm tròn số nguyên x

PRED(n): Trả về giá trị đứng trước n

SUCC(n): Trả về giá trị đứng sau n

ODD(n): Cho giá trị TRUE nếu n là số lẻ

INC(n): Tăng n thêm 1 đơn vị (n:=n+1) I:= i+1 hoac i:= inc(i)

DEC(n): Giảm n đi 1 đơn vị (n:=n-1) I:=i-1 hoac i:= dec(i)

13

Trang 14

2.Các hàm trên kiểu ký tự:

- UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch Ví dụ: UPCASE('a') = 'A'.

- ORD(ch): Trả về số thứ tự trong bảng mã ASCII của ký tự ch Ví dụ ORD('A')=65.

- CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có số thứ tự là n Ví dụ:

CHR(65)='A'

- PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ: PRED('B')='A'.

- SUCC(ch): cho ký tự đứng sau ký tự ch Ví dụ: SUCC('A')='B'.

Chú ý: Một kiểu dữ liệu gọi là vô hướng đếm được nếu miền trị của nó là một tập

hợp đếm được và trên đó tồn tại quan hệ thứ tự Ví dụ: Kiểu Byte, Kiểu Integer; KiểuChar, Kiểu Boolean…

BÀI TẬP CHƯƠNG III

Trang 15

1 Tìm công thức để đổi một ký tự là chữ hoa thành chữ thường

+ +

Trang 16

BIỂU THỨC VÀ CÂU LỆNH ĐƠN GIẢN

I Biểu thức

1 Hằng: Hằng là một đại lượng có giá trị không thay đổi trong suốt chương trình Có

các loại hằng: hằng số, hằng ký tự, hằng xâu, hằng logic… Từ khoá để khai báo hằng làCONST

Logic = ODD(5); {Logic =TRUE}

Chú ý: Chỉ các hàm chuẩn dưới đây mới được cho phép sử dụng trong một biểu thức

hằng:

2 Biến: Biến là một đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực

hiện chương trình Biến dùng để lưu trữ dữ liệu, biến được khai báo sau từ khoá VAR.Việc khai báo các biến là nhằm cung cấp các vùng nhỡ để lưu trữ dữ liệu trong quá trìnhthực hiện chương trình

3 Cú pháp:

VAR <Tên biến>[,<Tên biến 2>,…] : <Kiểu dữ liệu>;

Ví dụ:

VAR x, y: Real; {Khai báo hai biến x, y có kiểu là Real}

a, b: Integer; {Khai báo hai biến a, b có kiểu integer}

Chú ý: Ta có thể vừa khai báo biến, vừa gán giá trị khởi đầu cho biến bằng cách sử

4 Toán tử: Là các phép toán tác động lên dữ liệu (hay còn gọi là toán hạng).

Ví dụ: Các phép +, -, *, /, and, or, not…

5 Toán hạng: Là một trong các đại lượng sau:

Trang 17

(2) Nếu có nhiều phép toán cùng cấp ưu tiên thì các phép toán được thực hiện tuần tự

từ trái qua phải

(3) Mỗi biểu thức cho kết quả bằng số được gọi là biểu thức số học, cho kết quả làkiểu logic thì được gọi là biểu thức logic

- Câu lệnh ghép: BEGIN END;

- Các cấu trúc điều khiển: IF , CASE , FOR , REPEAT , WHILE

2 Câu lệnh đơn giản:

a Lệnh gán:

Cú pháp: <Tên biến>:=<Biểu thức>;

• Ý nghĩa: Lệnh sẽ thực hiện việc gán giá trị của Biểu thức cho Tên biến

b Thủ tục ghi dữ liệu lên màn hình:

Để xuất dữ liệu ra màn hình, ta sử dụng ba dạng sau:

(1) WRITE(<tham số 1> [, <tham số 2>, ]);

(2) WRITELN(<tham số 1> [, <tham số 2>, ]);

(3) WRITELN;

Các thủ tục trên có chức năng như sau:

(1) Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ không xuống dòng.(2) Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ xuống đầu dòng tiếptheo

(3) Xuất ra màn hình một dòng trống

Các tham số có thể là các hằng, biến, biểu thức Nếu có nhiều tham số trong câu lệnhthì các tham số phải được phân cách nhau bởi dấu phẩy

17

Trang 18

Khi sử dụng lệnh WRITE/WRITELN, ta có hai cách viết: không qui cách và có qui

cách:

- Viết không qui cách: dữ liệu xuất ra sẽ được canh lề ở phía bên trái Nếu dữ liệu là số

thực thì sẽ được in ra dưới dạng biểu diễn khoa học

c Nhập dữ liệu từ bàn phím

Để nhập dữ liệu từ bàn phím vào các biến có kiểu dữ liệu chuẩn (trừ các biến kiểuBOOLEAN), ta sử dụng cú pháp sau đây:

Cú pháp:

(1) READ(<biến 1> [,<biến 2>, ,<biến n>]);

(2).READLN(<biến 1> [,<biến 2>, ,<biến n>]);

(3) READLN;

• Ý nghĩa:

(1): Cho phép lần lượt nhập dữ liệu cho các biến

(2): Tương tự dạng (a)chỉ khác ở chổ sau khi nhập xong dữ liệu con trỏ được đưa vềđầu dòng tiếp theo

(3): Chỉ làm thao tác tạm dừng chương trình, chờ gõ phím Enter để tiếp tục

Chú ý: Khi gặp câu lệnh READLN; (không có tham số), chương trình sẽ dừng lại chờ

người sử dụng nhấn phím ENTER mới chạy tiếp.

3 Các hàm và thủ tục thường dùng trong nhập xuất dữ liệu

Hàm KEYPRESSED: Hàm trả về giá trị TRUE nếu như có một phím bất kỳ được

nhấn, nếu không hàm cho giá trị là FALSE

Hàm READKEY: Hàm có chức năng đọc một ký tự từ bộ đệm bàn phím.

Thủ tục GOTOXY(X,Y:Integer): Di chuyển con trỏ đến cột X dòng Y.

Thủ tục CLRSCR: Xoá màn hình và đưa con trỏ về góc trên bên trái màn hình.

Thủ tục CLREOL: Xóa các ký tự từ vị trí con trỏ đến hết dòng.

Thủ tục DELLINE: Xoá dòng tại vị trí con trỏ và dồn các dòng ở phía dưới lên.

Trang 19

Thủ tục TEXTCOLOR(color:Byte): Thiết lập màu cho các ký tự Trong đó color

∈ [0,15]

Thủ tục TEXTBACKGROUND(color:Byte): Thiết lập màu nền cho màn hình.

4 Các ví dụ:

Ví dụ 1: Viết chương trình nhập vào độ dài hai cạnh của tam giác và góc giữa hai cạnh

đó, sau đó tính và in ra màn hình diện tích của tam giác

Write('Nhap vao do dai canh thu nhat: '); Readln(a);

Write('Nhap vao do dai canh thu hai: '); Readln(b);

Write('Nhap vao goc giua hai canh: '); Readln(goc);

Write('Nhap vao n= '); Readln(n);

Write('Nhap vao x= '); Readln(x);

Trang 20

Ví dụ 3: Viết chương trình nhập vào 2 số a, b Sau đó hoán đổi giá trị của 2 số đó:

a/ Cho phép dùng biến trung gian

Program Swap;

Var a,b,tam: Integer;

Begin

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

tam:=a; {tam lấy giá trị của a}

a:=b; {a lấy giá trị của b}

b:=tam; {b lấy lại giá trị của tam}

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

a:=a+b; {a lấy tổng giá trị của a+b}

b:=a-b; {b lấy giá trị của a}

a:=a-b; {a lấy lại giá trị của b}

C y B x

+

++

Bài tập 2: Viết chương trình tách một số n thành 2 số a, b sao cho tích P=a*b2 đạt cực đạivới n được nhập vào từ bàn phím

Trang 21

Bài tập 4: Viết chương trình nhập vào số nguyên dương n, in lên màn hình tổng sau:

S = 12+22+32+…+n2

(Biết công thức s = n*(n+1)*(2*n+1) div 6)

21

Trang 22

Trong đó: btdk ký hiệu cho biểu thức logic.

Dạng (1) gọi là dạng thiếu, dạng (2) gọi là dạng đủ

Trang 23

Writeln('So vua nhap vao la so chan')

Writeln('Phuong trinh co vo so nghiem')

Else { Trường hợp a=0 và b 0 }

Writeln('Phuong trinh vo nghiem')

Const n: CL n ; END;

CASE <BT> OF Const 1: CL 1 ; Const 2: CL 2 ;

Const n: CL n ; ELSE CL n+1 ; END;

 Trong đó:

 BT: Biểu thức kiểu vô hướng đếm được như kiểu nguyên, kiểu logic, kiểu ký tự,kiểu liệt kê

23

Trang 24

 Const i: Hằng thứ i, có thể là một giá trị hằng, các giá trị hằng (phân cách nhau bởidấu phẩy) hoặc các đoạn hằng (dùng hai dấu chấm để phân cách giữa giá trị đầu

và giá trị cuối)

 Giá trị của biểu thức và giá trị của tập hằng i (i=1¸n) phải có cùng kiểu

Khi gặp lệnh CASE, chương trình sẽ kiểm tra:

- Nếu giá trị của biểu thức BT nằm trong tập hằng const i thì máy sẽ thực hiện lệnh CLitương ứng

- Ngược lại:

+ Đối với dạng 1: Không làm gì cả

+ Đối với dạng 2: thực hiện lệnh CLn+1

 Các ví dụ:

Viết chương trình nhập vào tuổi của một người và cho biết người đó là thiếu niên, thanhniên, trung niên hay lão niên Biết rằng: nếu tuổi nhỏ hơn 18 là thiếu niên, từ 18 đến 39 làthanh niên, từ 40 đến 60 là trung niên và lớn hơn 60 là lão niên

1 17: Writeln(Nguoi nay la thieu nien');

18 39: Writeln(Nguoi nay la thanh nien');

40 60: Writeln(Nguoi nay la trung nien');

Else Writeln(Nguoi nay la lao nien');

FOR <biến đếm>:=<giá trị cuối> DOWNTO <giá trị đầu> DO CL;

 Sơ đồ thực hiện vòng lặp FOR:

Trang 25

 Ý nghĩa:

Dạng tiến: Câu lệnh sẽ được thực hiện bằng số lần mà Biến đếm được gán tăng dần

lần lượt từ giá trị của giá trị đầu đến giá trị của giá trị cuối.

Dạng lùi: Câu lệnh sẽ được thực hiện bằng số lần mà Biến đếm được gán giảm dần

lần lượt từ giá trị của giá trị cuối đến giá trị của giá trị đầu

Chú ý: Khi sử dụng câu lệnh lặp FOR cần chú ý các điểm sau:

 Không nên tuỳ tiện thay đổi giá trị của biến đếm bên trong vòng lặp FOR vì làm

như vậy có thể sẽ không kiểm soát được biến đếm.

 Giá trị Max và Min trong câu lệnh FOR sẽ được xác định ngay khi vào đầu vòng

lặp Do đó cho dù trong vòng lặp ta có thay đổi giá trị của nó thì số lần lặp cũng không thay đổi.

Trang 26

For i:=1 to N do S:=S+i;

Writeln('Ket qua la :',S);

Readln;

End.

Ví dụ 2: Viết chương trình nhập vào N số nguyên từ bàn phím Hãy tính và in ra màn

hình tổng của các số vừa được nhập vào

Ý tưởng:

Dùng phương pháp cộng dồn Cho vòng lặp FOR chạy từ 1 tới N, ứng với lần lặp thứ

i, ta nhập vào số nguyên X và đồng thời cộng dồn X vào biến S

Until <btlg>;

While <btlg> Do CL;

 Sơ đồ hoạt động:

Ngày đăng: 17/10/2014, 11:45

HÌNH ẢNH LIÊN QUAN

Ví dụ 2: Sơ đồ thuật toán để giải bài toán tính tổng: - bài giảng  pascal bồi dưỡng học sinh giỏi
d ụ 2: Sơ đồ thuật toán để giải bài toán tính tổng: (Trang 3)
Hình tổng của các số vừa được nhập vào. - bài giảng  pascal bồi dưỡng học sinh giỏi
Hình t ổng của các số vừa được nhập vào (Trang 26)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w