1. Trang chủ
  2. » Giáo án - Bài giảng

Chương II. §1. Đa giác. Đa giác đều

85 238 1

Đ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 85
Dung lượng 0,94 MB

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

Nội dung

Chương II. §1. Đa giác. Đa giác đều tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các l...

Trang 1

BÀI GIẢNG

NGÔN 16/07/201200

:42:49NGỮ LẬP TRÌNH

Khoa Toán – ĐHSP Hà Nội 2

Trang 2

NNLT

Pascal

lệnh

Trang 3

• Sự ra đời và phát triển

• Các đặc trưng cơ bản

• Các phần tử cơ bản của Ngôn ngữ

• Cấu trúc tổng quát của một chương trình

Chương 1.

Tổng quan về NNLT Pascal

Trang 4

Chương 2.

Các kiểu dữ liệu

• Khái niệm chung

• Kiểu số nguyên (Integer)

• Kiểu số thực (Real)

• Kiểu logic (Boolean )

• Kiểu ký tự (Char)

• Kiểu tự định nghĩa

Trang 6

Chương 4.

Cấu trúc lệnh rẽ nhánh

• Khái niệm về cấu trúc rẽ nhánh

• Cấu trúc “If … Then …;”

(Cấu trúc rẽ nhánh không đầy đủ)

• Cấu trúc “If … Then … Else …;”

(Cấu trúc rẽ nhánh đầy đủ)

• Cấu trúc “Case … Of …;”

(Rẽ nhiều nhánh)

Trang 7

Chương 5.

Cấu trúc lệnh lặp

• Khái niệm về cấu trúc lệnh lặp

• Cấu trúc: “For … To … Do …;” & “For

… DownTo … Do …;”

(Lặp với số lần lặp xác định)

• Cấu trúc “While … Do …;”

(Lặp với số lần lặp không xác định, kiểm tra điều kiện trước)

• Cấu trúc “Repeat … Until …;”

(Lặp với số lần lặp không xác định, kiểm tra điều kiện sau)

Trang 9

Chương 7.

Dữ liệu kiểu xâu ký tự (Chuỗi,

STRING)

• Khái niệm chuỗi (Xâu ký tự)

• Khai báo xâu ký tự

• Các phép toán và thao tác trên xâu ký tự

• Các hàm và các thủ tục trên xâu ký tự

Trang 10

Chương 8.

Dữ liệu kiểu bản ghi (RECORD)

• Khái niệm bản ghi

• Khai báo nhập, xuất dữ liệu trên bản ghi

• Các thao tác cơ bản trên bản ghi

• Câu lệnh “With”

• Sử dụng mảng bản ghi

Trang 11

• Có sự thành công rực rỡ trong giảng dạy lập

trình và tư duy lập trình với tư tưởng “Lập trình

có cấu trúc”.

Chương 1 Tổng quan về NNLT Pascal

Trang 12

Chương 1 Tổng quan về NNLT Pascal

Trang 13

Các phần tử cơ bản của ngôn ngữ

Chương 1 Tổng quan về NNLT Pascal

Trang 14

• Từ khoá (Keyword)

– Là những từ dành riêng, được dùng với ý nghĩa xác định trước

– Bao gồm:

• Program, Begin, End, Procedure, Function;

• Const, Type, Var, Array, String, Record, Set, File

of, Label;

• If, Then, Else, Case of;

• For, To, DownTo, Do, While, Repeat, Until;

• With, Goto, Exit;

• And, Or, Not, In, Div, Mod

Các phần tử cơ bản của ngôn ngữ

Chương 1 Tổng quan về NNLT Pascal

Trang 15

• Tên

– Là tên được dùng (có thể do Turbo Pascal hoặc người lập trình) để đặt cho các biến, hằng, hàm,… – Quy tắc đặt tên

• Tên phải được bắt đầu bằng chữ cái

• Không chứa dấu cách và các ký tự đặc biệt

• Tên chuẩn: Là các tên do Turbo Pascal đặt trước cho các đối tượng được dùng thường

xuyên.

Chú ý: Nên đặt tên mang tính gợi nhớ, gần với ý nghĩa của đối

Các phần tử cơ bản của ngôn ngữ

Chương 1 Tổng quan về NNLT Pascal

Trang 16

• Một số tên chuẩn trong Pascal:

– Boolean, Char, Integer, Word, Byte, LongInt, Real;– False, True, MaxInt;

– Abs, Cos, Sin, Odd, Round, Sqr, Sqrt;

– Read, Readln, Write, Writeln;

– …

• Ví dụ tên tự đặt:

– a, b, c, Delta, X1, X2 (trong bài toán gptb2); – Thu, Ngay, Thang (trong bài toán về ngày, tháng)

Các phần tử cơ bản của ngôn ngữ

Chương 1 Tổng quan về NNLT Pascal

Trang 17

Cấu trúc chương trình Pascal

Ví dụ:

Program Vi_du;

BEGIN writeln(‘Hello!’);

Writeln(‘How are you?’); END.

{Phần tiêu đề}

Program Ten_chuong_trinh;

{Phần khai báo}

Uses khai báo các unit;

Type khai báo kiểu;

Const khai báo hằng;

Var khai báo biến;

Procedure khai báo thủ tục;

Function khai báo hàm;

How are you?

• Không có phần khai báo

Mỗi lệnh kết thúc bởi “;”

Chương 1 Tổng quan về NNLT Pascal

Trang 18

Ví dụ: Chương trình tìm số lớn nhất trong 3 số nguyên a, b, c được

If Max < b then Max := b;

If Max < c then Max := c;

Writeln (‘Max = ‘,Max);

Trang 19

Khái niệm chung

• Dữ liệu: Là tất cả các thông tin được lưu trữ và

xử lý trên máy tính

• Kiểu dữ liệu: Là sự quy định chung về cấu trúc lưu trữ, miền giá trị, các phép toán và các thao tác trên các giá trị

• Hai nhóm kiểu dữ liệu:

– Kiểu dữ liệu cơ sở (Số nguyên, Số thực, Logic, Ký tự, Liệt kê, Đoạn con)

– Kiểu dữ liệu có cấu trúc (Mảng, Xâu ký tự, Bản ghi, Tập hợp, File, …)

Chương 2 Các kiểu dữ liệu

Trang 20

Các kiểu dữ liệu cơ sở

• Số nguyên (ShortInt, Byte, Integer, Word, LongInt)

– Qui định về giá trị riêng cho từng loại

Trang 21

Các kiểu dữ liệu cơ sở

• Số thực ( Real , Single, Double, Extended, Comp)

– Qui định về giá trị riêng cho từng loại (Khác với số nguyên)

• Real: quy định bởi 2 giá trị: 2.9*10 -39 và 1.7*10 38

• Trong đó: 1.7*10 38 là giá trị lớn nhất; 2.9*10 -39 là khoảng cách nhỏ nhất để phân biệt được 2 số thực khác nhau

• Quy cách viết số thực:

– Dấu phảy tĩnh: 3.14 – Dạng dấu phảy động: 3.14*10 0 =0.314*10 1 =31.4*10 -1

– Các phép toán: +, -, *, /– Các phép so sánh: < , >, <=, >=, =, <>

– Một số hàm toán học: abs(x), sqrt(x), ln(x), exp(x), round(x), trunc(x), frac(x), sqr(x),…

Chương 2 Các kiểu dữ liệu

Trang 22

Các kiểu dữ liệu cơ sở

– Giá trị logic đúng (TRUE) và sai (FALSE)

– Các phép toán AND, NOT, OR, XOR

Chương 2 Các kiểu dữ liệu

Trang 23

Các kiểu dữ liệu tự định nghĩa

• Liệt kê

Ví dụ:

• Type MAU = (Xanh, do, tim, vang);

Var Color: MAU;

• Var Day: (ThuHai, ThuBa, ThuTu, ThuNam, ThuSau,

– Kiểu liệt kê có thứ tự được xác định bởi thứ tự liệt kê các phần tử, kiểu đoạn con có thứ tự của kiểu dữ liệu tương ứng

Chương 2 Các kiểu dữ liệu

Trang 24

• Cú pháp: Const Ten_hang = giá trị; phụ

thuộc vào kiểu của giá trị

• Ví dụ: Const M = 100;

Const Pi = 3.1416;

Chương 3 Hằng, Biến, Kiểu, Biểu thức và Câu lệnh

Trang 25

Biến (Variable – Var )

• Khái niệm: là đại lượng có thể thay đổi giá trị tại các thời điểm khác nhau trong chương trình Truy cập tới giá trị của biến thông qua tên biến

• Khai báo biến

– Cú pháp:

• Var Ten_bien: Ten_kieu_du_lieu;

• Var Ten_bien: Sự mô tả kiểu dữ liệu;

– Ví dụ:

• Var x, y: Real; m,n: Integer;

• Var Day: (Mon,Tue,Wed,Thu,Fri,Sat,Sun);

Trang 26

Kiểu ( Type )

• Khái niệm:

– Là sự qui định chung về cấu trúc lưu trữ, miền giá trị và cách xử

lý đối với một loại dữ liệu

– Ngoài các kiểu dữ liệu chuẩn (đã được TP định nghĩa), có thể định nghĩa thêm các kiểu dữ liệu mới

• Khai báo kiểu

– Cú pháp:

Type Ten_kieu = Sự mô tả về kiểu;

– Ví dụ:

Type SoThuc = Real;

Type Color = (Xanh,Do,Tim,Vang);

Chương 3 Hằng, Biến, Kiểu, Biểu thức và Câu lệnh

Trang 28

Câu lệnh trong NNLT Pascal

• Khái niệm:

– Câu là đơn vị cú pháp trong mỗi ngôn ngữ Câu lệnh là đơn vị

cú pháp trong mỗi ngôn ngữ lập trình

– Mỗi câu lệnh biểu thị một (hay một loạt) thao tác của thuật toán

mà máy tính cần phải thực hiện

• Các loại câu lệnh trong Pascal:

– Câu lệnh đơn: Gọi thủ tục, Lệnh gán, lệnh Goto, Exit, Break,… – Câu lệnh có cấu trúc: Lệnh phức, Lệnh rẽ nhánh, Lệnh lặp

Trang 29

Lệnh gán

• Dùng để gán giá trị (có thể là của một hằng, một biến, hay một biểu thức, …) cho một biến

Chương 3 Hằng, Biến, Kiểu, Biểu thức và Câu lệnh

Trang 30

Lệnh gọi thủ tục

• Dùng để gọi thực hiện một thủ tục đã được định nghĩa trước đó (có thể là do TP hoặc người lập trình)

• Chú ý: Danh sách tham số có thể rỗng, có một hay có nhiều

tham số tùy theo việc thiết kế thủ tục đó Nếu có nhiều tham số thì các tham số được phân cách bởi dấu phảy.

Chương 3 Hằng, Biến, Kiểu, Biểu thức và Câu lệnh

Trang 31

Lệnh phức (Khối lệnh)

• Khái niệm:

– Một nhóm lệnh được đặt trong cặp từ khóa “Begin”, “End” được

xem là một câu lệnh phức (Khối lệnh) – Câu lệnh phức được sử dụng khi nhóm lệnh trong đó cần được thực hiện đồng thời

Writeln(‘Ptr co hai nghiem phan biet:’);

Writeln(‘X1 = ‘,X1);

Writeln(‘X2 = ‘,X2);

Chương 3 Hằng, Biến, Kiểu, Biểu thức và Câu lệnh

Trang 32

Khái niệm về cấu trúc rẽ nhánh

• Thao tác rẽ nhánh:

– Nhằm thực hiện khả năng dự đoán và đáp ứng của

máy tính trong quá trình thu thập và xử lý thông tin

– Người lập trình phải “dạy” cho máy tính thực hiện

thao tác này thông qua câu lệnh rẽ nhánh

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 33

Cấu trúc rẽ nhánh không đầy đủ

• Cú pháp

If <Điều kiện> Then <Việc>;

• Sơ đồ khối (Lưu đồ)

Trang 34

Cấu trúc rẽ nhánh không đầy đủ

Ví dụ: Tìm số lớn nhất trong 3 số nguyên a, b, c.

Program TimMax;

Var a, b, c, Max: Integer

BEGIN

Writeln(‘Chtrinh tim Max cua 3 so nguyen’);

Writeln(‘Nhap a,b,c:’); Readln(a,b,c);

Max := a;

If Max < b Then Max := b;

If Max < c Then Max := c;

Writeln(‘Ket qua: ’, Max);

END.

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 36

Writeln(‘Chtrinh tim Min cua 3 so nguyen’);

Writeln(‘Nhap a,b,c:’); Readln(a,b,c);

If a < b Then if a < c then Min := a

else Min := c Else if c < b then Min := c

else Min := b;

Writeln(‘Ket qua: ’, Min);

END.

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 37

Cấu trúc rẽ nhánh đầy đủ

Một số vấn đề cần lưu ý:

• Trước từ khóa “Else” không được để dấu chấm phảy (;)

• Có thể xảy ra tính huống các cặp “If/Else” “lồng nhau” Khi đó mỗi

“Else” được tính cho “If” gần nó nhất mà chưa thuộc vào “Else” nào khác.

• Nếu sau “Then” hoặc “Else” có nhiểu hơn một lệnh máy tính cần thực hiện (theo thuật toán) thì các lệnh đó phải được đặt trong cặp

“Begin/End”

• Có thể tạm coi rằng

– Cấu trúc Không đầy đủ là tình huống rẽ theo 1 nhánh (chỉ khi thỏa mãn

điều kiện)

– Cấu trúc Đầy đủ là tình huống rẽ theo 2 nhánh (1 nhánh khi điều kiện

đúng, 1 nhánh khi điều kiện sai)

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 38

Câu lệnh tuyển “Case Of”

[Else Việc n+1] ; End;

• Chú ý:

– Trong trường hợp có nhiều giá trị của biểu thức cùng tương ứng với một

thao tác thì có thể ghi các giá trị đó trên cùng một dòng

– Biểu thức ở đây chỉ có thể thuộc kiểu dữ liệu đếm được – <Việc i> có thể gồm nhiều hơn một tao tác, khi đó cần được biểu diễn

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 39

Câu lệnh tuyển “Case Of”

• Lưu đồ

Biểu thức Việc 1

Else

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 40

Câu lệnh tuyển “Case Of”

Ví dụ: Nhập tháng m[1;12] và năm N vào từ bàn phím và in ra số ngày của tháng m.

Chương 4 Cấu trúc lệnh rẽ nhánh

Program NgayCuaThang;

Var m: 1 12; N: 1000 3000;

BEGIN

Writeln(‘Chtrinh tinh so ngay cua thang’);

Writeln(‘Nhap Thang: ’); Readln(m);

Writeln(‘Nhap Nam: ’); Readln(N);

Case m of

1,3,5,7,8,10,12: Writeln(‘Co 31 ngay’);

4,6,9,11: Writeln(‘Co 30 ngay’) else If N mod 4 = 0 then Writeln(‘Co 29 ngay’) Else Writeln(‘Co 28 ngay’);

End;

Trang 41

Bài tập áp dụng (Lệnh rẽ nhánh)

• Viết chương trình giải hệ hai phương trình bậc nhất hai

ẩn x, y dạng

• Viết chương trình kiểm tra xem ba số thực a, b, c có

phải là số đo ba cạnh của một tam giác hay không

• Viết chương trình kiểm tra xem ba điểm phân biệt

Trang 42

Bài tập áp dụng (Lệnh rẽ nhánh)

• Viết chương trình nhập vào một tháng, cho biết tháng đó thuộc quý nào trong năm

• Viết chương trình tìm các giá trị nhỏ nhất, lớn nhất của

ba số/ của dãy n số nguyên (ko dùng mảng) được nhập

Chương 4 Cấu trúc lệnh rẽ nhánh

Trang 43

Khái niệm về cấu trúc lặp

• Một hoặc một nhóm thao tác nào đó cần thực hiện lặp lại nhiều lần trong thuật toán

sẽ được biểu diễn bởi cấu trúc lệnh lặp

• Khả năng tính toán nhanh sẽ cho phép

máy tính sử dụng thao tác lặp một cách

hiệu quả trong quá trình xử lý thông tin

Chương 5 Cấu trúc lệnh lặp

Trang 44

Lệnh lặp với số bước xác định

• Ví dụ 1: Tìm giá trị lớn nhất của dãy số

• Ví dụ 2: Tính tổng các số tự nhiên từ 1 đến n, với n được

nhập vào từ bàn phím

→ Cần phải thực hiện các hành động lặp

– Ví dụ 1 Các phép so sánh – Ví dụ 2 Các phép cộng dồn

• Câu lệnh lặp với số bước lặp xác định cho phép chúng ta

“dạy” cho máy tính các thao tác này.

Chương 5 Cấu trúc lệnh lặp

1, 2 , , n

Trang 45

• Cú pháp

For i:=<Gtrị đầu> To <Gtrị cuối> Do <Việc>;

For i:=<Gtrị đầu> DownTo <Gtrị cuối> Do <Việc>;

• Trong đó

– i: đóng vai trò là biến đếm, phải thuộc kiểu dữ liệu đếm

được.

– <Gtrị đầu>, <Gtrị cuối> là các giá trị để xác định quá

trình lặp, cùng kiểu với biến i

– <Việc>: có thể được biểu diễn bởi lệnh đơn, hoặc lệnh

có cấu trúc

Lệnh lặp với số bước xác định

Chương 5 Cấu trúc lệnh lặp

Trang 46

Lệnh lặp với số bước xác định

Chương 5 Cấu trúc lệnh lặp

Việc

i ≤ Gtrị cuối

Đ S

Tăng i lên 1

i := Gtrị đầu

Lưu đồ 1: For … To … Do …;

Trang 47

Lệnh lặp với số bước xác định

Chương 5 Cấu trúc lệnh lặp

Việc

i ≥ Gtrị cuối

Đ S

Giảm i bớt 1

i := Gtrị đầu

Lưu đồ 2: For … DownTo … Do …;

Trang 53

Chương 5 Cấu trúc lệnh lặp

Lặp với số bước không xác định

H.Động

Điều kiện

Đúng

Sai

H.Động

Điều kiện

Đúng Sai

Trang 54

• Kiểm tra điều kiện trước

– Cú pháp:

While <điều kiện lặp> do <H.Động>;

– Ví dụ 1: Cha năm nay 35, con lên 4 tuổi Hỏi sau bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con?

– Ví dụ 2: Cho 2 số tự nhiên a, b khác 0 Hãy tìm ước số chung lớn nhất của chúng.

Chương 5 Cấu trúc lệnh lặp

Lặp với số bước không xác định

Trang 55

Chương 5 Cấu trúc lệnh lặp

Lặp với số bước không xác định

• Kiểm tra điều kiện sau

– Cú pháp:

Repeat

<H.Động>

Until <điều kiện dừng>;

– Ví dụ 1: Cha năm nay 35, con lên 4 tuổi Hỏi sau bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con?

– Ví dụ 2: Cho 2 số tự nhiên a, b khác 0 Hãy tìm ước

số chung lớn nhất của chúng

Trang 56

– Ktra đ.kiện trước/sau khi lặp: Khác nhau

• Trước: Có thể không có bước lặp nào được thực hiện

• Sau: Luôn có ít nhất một bước lặp được thực hiện

– Các dạng lệnh lặp có thể thay thế nhau được

Trang 59

Bài tập áp dụng ( Câu lệnh lặp )

• Tính các tổng đơn giản

• Tính tổng, tìm Max, Min của dãy số nguyên (chưa có

mảng)

• Số nguyên tố, số hoàn hảo

• Bài toán Gà – Chó, trăm trâu trăm cỏ (vòng lặp lồng nhau )

• UCLN (Chia, Trừ liên tiếp), BCNN

• Tổng các chữ số của số tự nhiên

• Điều khiển lặp chương trình, kiểm soát dữ liệu vào.

Chương 5 Cấu trúc lệnh lặp

Trang 60

Chương 6 Dữ liệu kiểu Mảng (Array)

• Định nghĩa: Array là một dãy gồm nhiều phần tử cùng một kiểu

Hay nói cách khác một dữ liệu kiểu array là một dãy của nhiều dữ liệu thuộc cùng một kiểu.

– Các phần tử của một dãy phải có cùng kiểu gọi là kiểu cơ sở Kiểu cơ

sở có thể là một kiểu bất kỳ của Pascal.

– Các phần tử có mối quan hệ về vị trí trong dãy được xác định bằng chỉ số (index) Chính là thứ tự về vị trí của nó trong dãy

• Khai báo Kiểu mảng:

Type TenKieuday = Array[ KieuChiSo ] of KieuCoSo ;

– Số phần tử của dãy chính là số giá trị có thể có của kiểu chỉ

số

– KieuChiSo có giá trị từ giá trị nhỏ nhất đến giá trị lớn nhất

của kiểu chỉ số

Vi dụ : Type DaySoNguyen = Array [1 100] of Integer;

DaySoThuc = Array [‘A’ ’Z’] of Real;

Dãy nguyên có 100 phần tử kiểu integer;index từ 1 đến 100.

DỮ LIỆU KIỂU MẢNG

29/06/24

Trang 61

Chương 6 Dữ liệu kiểu Mảng (Array)

KieuCoSo ;

Var TenBienMang: TenKieuMang;

Vi dụ : Type DaySoNguyen = Array [1 100] of Integer;

DaySoThuc = Array [‘A’ ’Z’] of Real;

Var A: DaySoNguyen; B: DaySoThuc;

KieuCoSo ;

Ví dụ: Var A: Array [1 100] of Integer;

B: Array [‘A’ ’Z’] of Real;

• Ý nghĩa của hai cách khai báo là như nhau Tuy nhiên có một

số trường hợp phải dùng cách khai báo gián tiếp

DỮ LIỆU KIỂU MẢNG

Trang 63

Các thao tác trên Mảng

• Có thể sử dụng từng phần tử của dãy như là một biến của kiểu dữ liệu cơ sở

– Ví dụ: for i:= 1 to 100 do readln(a[i]);

Nhập xuất dữ liệu cho biến mảng: thực hiện thông qua việc nhập/xuất đối với

từng phần tử của mảng.

Ví dụ: For i:= 1 to 100 do Write(a[i]);

Chương 6 Dữ liệu kiểu Mảng (Array)

Trang 64

Một số đặc tính của kiểu array

• Số phần tử của kiểu array là cố định ngay từ khi khai báo Dù là ta dùng bao nhiêu phần tử thì

cũng chiếm đúng số bộ nhớ mà dãy đã khai báo.

• Do đó thông thường phải khai báo dư hơn số

Chương 6 Dữ liệu kiểu Mảng (Array)

Trang 65

Nhập – xuất dữ liệu mảng một chiều

Chương 6 Dữ liệu kiểu Mảng (Array)

Trang 66

Một số thao tác khác trên mảng

– Tìm kiếm – Sắp xếp – Chèn

– Xoá

Chương 6 Dữ liệu kiểu Mảng (Array)

Trang 67

Bài tập áp dụng ( Câu lệnh lặp )

• Tính tổng, Max, Min của dãy số (khi có mảng)

• Tìm kiếm theo mẫu, không theo mẫu (nâng cao) (số chẵn chục, chính phương,…)

• Sắp xếp tăng, vấn đề sinh ngẫu nhiên

• Ma trận (Cộng, nhân, chuyển vị, đchéo, …)

Chương 6 Dữ liệu dạng mảng

Ngày đăng: 18/11/2017, 13:39

TỪ KHÓA LIÊN QUAN

w