Bài giảng Lập trình cho máy tính điện tử - Chương 4: Lập trình bằng Pascal

Thuật toán là một bảng hướng dẫn gồm hữu

hạn các mệnh lệnh, quy định chính xác các

thao tác hay phép toán mà máy tính điện tử cần

thực hiện một cách máy móc theo trình tự vạch

sẵn để giải quyết bài toán hay nhiệm vụ nào đó.

• Ví dụ để giải bài toán ax2 + bx + c = 0. Dù a, b, c

nhận giá trị như thế nào, có thể là các hằng số,

biểu thức hay đa thức thì người giải chỉ cần thực

hiện theo 3 bước sau:

1/ Tính giá trị delta

2/ Xét giá trị delta : nếu delta âm thì kết luận bài toán

vô nghiệm ngược lại bài toán có 02 nghiệm

3/ Tính nghiệm của bài toán theo công thức

Với 3 bước thao tác trên, người ta gọi đó là thuật

toán giải phương trình bậc 2.

pdf138 trang | Chuyên mục: Pascal | Chia sẻ: dkS00TYs | Lượt xem: 2395 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình cho máy tính điện tử - Chương 4: Lập trình bằng Pascal, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ình 
có nhiều cách khác nhau như nhập vào từ 
bàn phím, nhập vào từ một tệp tin dữ liệu 
hay nhập trực tiếp trong chương trình. Ở 
đây chúng ta xem xét việc nhập dữ liệu 
vào từ phàn phím.
• Để nhập dữ liệu vào từ bàn phím Pascal 
cung cấp các quy cách như sau:
Read( [,,…, ]); Readln(<biến 
1> [,,…, ]);
Readln;
• Khi nhập dữ liệu cho các biến thì giá trị của biến này 
phải cách dữ liệu của biến kia ít nhất một ký tự khoảng 
trống hoặc một ký tự Tab. Kết thúc việc nhập dữ liệu 
bằng phím Enter.
• Tương tự như Write và Writeln, Readln sẽ tự động 
chuyển con trỏ xuống đầu dòng dưới sau khi đã nhận 
xong các giá trị cho các biến. Với quy cách Readln; thì 
chương trình sẽ dừng lại cho đến khi người sử dụng ấn 
phím Enter.
• Kết hợp thủ tục xuất và thủ tục nhập dữ liệu
• Khi nhập dữ liệu để giúp cho người sử dụng không bị 
nhầm lẫn giá trị của biến này với biến khác thì trong quá 
trình lập trình thường sẽ đưa ra dòng thông báo về biến 
cần nhận giá trị trước khi thực hiện việc nhập dữ liệu 
cho biến đó. Và người ta quen gọi đó là thủ tục xuất –
nhập dữ liệu (xuất ra một thông báo về biến và nhập dữ 
liệu vào cho biến đó).
• Write(); 
Readln();
• Ví dụ: Nhập dữ liệu về tên, tuổi cho một sinh viên trong lớp
• Write(„Nhap ten sinh vien: „);
• Readln(TenSV);
• Write(„Nhap tuoi cua sinh vien: „);
• Readln(TuoiSV);
• Vậy khi thực hiện thủ tục Write(„Nhap ten sinh viên: „) sẽ đưa dãy ký 
tự này ra màn hình rồi dừng lại để người sử dụng nhập dữ liệu cho 
biến TenSV. Sau khi ấn Enter, con trỏ chuyển xuống đầu dòng dưới 
(vì thủ tục nhập dữ liệu là Readln), thực hiện tiếp thủ tục 
Write(„Nhap tuoi sinh vien: „) để đưa dãy ký tự này ra rồi dừng lại 
chờ người sử dụng nhập giá trị cho biến TuoiSV. Theo cách này, 
việc nhập dữ liệu trở nên dễ dàng rất nhiều cho người sử dụng, 
khác với việc viết là Readln(TenSV, TuoiSV);
Một số ví dụ chương trình
đơn giản nhất
c. Một số ví dụ đơn giản về lập trình tuần tự
• Ví dụ 1: cho biết họ tên sinh viên cùng các 
điểm thi tuyển sinh đại học ba môn Toán, Lý, 
Hóa của sinh viên đó. Viết chương trình để 
nhập dữ liệu, tính và in ra tổng điểm tuyển sinh 
và điểm trung bình các môn thi tuyển sinh của 
sinh viên đó.
Program Sinh_vien;
Var
• {Tinh toan}
• Tong := Toan + Ly + Hoa; T_binh := Tong/3 ;
• {In an}
• Writeln(„Tong diem thi tuyen sinh : „, Tong :5 :2) ;
• Writeln(„Diem thi tuyen trung binh: „, T_binh :5:2);
• Readln; End.
Ví dụ 2: cho biết chiều dài, chiều rộng của một hình chữ 
nhật. Viết chương trình nhập dữ liệu, tính và in ra chu vi 
và diện tích của hình chữ nhật đó.
• 4.4 Lập trình phân nhánh
• a. Câu lệnh phân nhánh
• Được dùng để giải quyết các bài toán khi bước kế tiếp 
được hay không được thi hành phụ thuộc vào kết quả 
của bước xử lý trước đó hay điều kiện của đầu bài đề 
ra. Pascal cung cấp cho người sử dụng hai câu lệnh để 
thực hiện công việc này đó là:
• IF … Then … Else … Case… of…
• Câu lệnh phân chương trình thành hai nhánh chính: Quy 
cách lệnh:
• 1/ IF THEN ;
• 2/ IF THEN ELSE
• ;
• Theo lệnh này, nếu nhận giá trị 
True thì máy sẽ thực hiện , còn nếu không thì 
hoặc kết thúc (tức không làm gì cả) đối với quy cách thứ 
nhất, hoặc máy sẽ đi thực hiện lệnh khác tức là 
 trong quy cách thứ 2. Như vậy quy cách thứ 
nhất thực ra là quy cách thứ hai thu gọn với là 
rỗng.
• Chú ý: trước Else không bao giờ có dấu chấm phẩy. 
Sau từ khóa
• Then và Else là một câu lệnh.
Ví dụ để chia a cho b với điều kiện b0 
viết như sau:
If b 0 Then t := a / b
Else
Writeln (' Mẫu số bằng 0 ! Không chia được ! ') ;
• Ví dụ 2: Cho biết tên công nhân, số lượng sản 
phẩm mà người công nhân đó sản xuất ra trong 
tháng, đơn giá tiền công mỗi sản phẩm và định 
mức sản xuất đối với người công nhân đó. Viết 
chương trình nhập dữ liệu, tính và in ra tiền 
lương sản phẩm của người công nhân đó trong 
tháng.
Biết rằng nếu số lượng sản phẩm của 
người công nhân sản xuất ra trong tháng 
cao hơn định mức thì người công nhân 
đó được thưởng thêm 2% tiền lương sản 
phẩm 
• b. Câu lệnh ghép
• Câu lệnh ghép hay còn gọi là câu lệnh phức hợp được sử dụng để 
giải quyết bài toán khi muốn thực hiện nhiều công việc được biểu 
diễn bởi nhiều câu lệnh khi mà theo quy tắc viết lệnh của Pascal chỉ 
cho phép viết một câu lệnh.
Quy cách: Begin
;
;
………………
; End;
Nằm giữa cặp từ khóa Begin… End là các câu lệnh cần thực hiện, cặp 
từ khóa Begin … End sẽ ghép các lệnh này thành một lệnh ghép và 
được hiểu như một lệnh duy nhất.
• Qua ví dụ này cho thấy vai trò của lệnh 
ghép. Giả sử nếu viết một lệnh như sau:
• If a < b Then
• Max := b ; Min := a ;
• thì lúc này phải hiểu là lệnh Max := b được 
thực hiện chỉ khi điều kiện a < b thỏa mãn, 
còn lệnh Min := a luôn được thực hiện 
trong mọi trường hợp.
Lệnh Goto và Nhãn Label 
Quy cách
LABEL ;
…….
GOTO ;
……..
: ;
Câu lệnh rẽ nhiều nhánh 
Quy cách 1:
CASE OF
,,...: ;
 .. : ;
…..
: ;
END;
;
- Quy cách 2:
CASE OF
,,...: ;
 .. : ;
…..
: 
ELSE
;
END;
4.5 Lập trình có chu trình 
Lập trình có chu trình (lặp)
• Chu trình được sử dụng để giải quyết bài toán 
khi có thao tác hay nhóm thao tác được thực 
hiện lặp đi lặp lại nhiều lần với các toán hạng 
như nhau chỉ khác nhau ở giá trị dữ liệu đầu 
vào. Pascal cung cấp cho người sử dụng ba câu 
lệnh để thực hiện công việc này.
• - FOR … TO … DO…
• - WHILE … DO…
• - REPEAT … UNTIL …
• a. Chu trình số học
Chu trình số học là chu trình mà có khả năng sẽ cho 
biết số lần thực hiện lặp lại các thao tác.
Quy cách 1:
For := To Do ;
Trong đó , và là các giá trị 
kiểu vô hướng đếm được.
Khi thực hiện, đầu tiên sẽ được gán cho 
rồi bắt đầu quá trình lặp bằng việc kiểm tra giá trị của có 
lớn hơn so với không, nếu không lớn hơn thì thực hiện 
 sau Do, sau đó tự động chuyển giá trị của sang 
giá trị kế tiếp, quá trình được lặp lại. Quá trình này kết thúc khi giá trị 
 vượt quá 
Sau từ khóa Do chỉ được viết một lệnh, 
trong bài toán trên do sau từ khóa Do
có tới ba lệnh nên phải sử dụng lệnh ghép.
Quy cách 2:
For := Downto Do 
;
Tương tự như quy cách 1 nhưng khi thực hiện, sau khi 
gán cho quá trình thực hiện lặp 
bắt đầu bằng việc kiểm tra giá trị của có nhỏ 
hơn so với hay không, nếu không nhỏ hơn 
thì thực hiện sau Do, sau đó tự động chuyển giá 
trị về giá trị kế trước đó, quá trình được lặp 
lại. Chu trình kết thúc khi giá trị
 nhỏ hơn .
• Chu trình logic While … Do…
• Quy cách:
• While Do ;
• Khi thực hiện máy sẽ kiểm tra giá trị của <Biểu 
thức logic>, nếu nhận giá trị True thì sẽ 
được thực hiện, sau đó quay lại kiểm tra giá trị 
của ,…, chu trình kết thúc khi 
 trả giá trị False.
Ví dụ: Cho a là một số nguyên dương nhập 
vào từ bàn phím và S = 1 + 2 + 3 + … Viết 
chương trình tìm giá trị i sao cho S là giá 
trị lớn nhất nhỏ hơn a.
Program Tim_so;
Var
A,I,s:integer;
Begin
Write(‘Nhap vao so nguyen duong a=‘);readln(a);
i:=0;s:=0;
While s<a do begin
S:=s+i;i:=i+1;end;
Writeln(‘ gia tri can tim la :’,i-1, ‘ Gia tri lon nhat la ‘, s, 
‘ nho hon ‘, a);
Readln;end.
• Lưu ý sau từ khóa Do chỉ được viết một 
lệnh và phải bao gồm cả thao tác làm thay 
đổi giá trị của . Vì nếu 
không có thao tác làm thay đổi giá trị 
 thì chu trình sẽ lặp vô 
hạn mà không thể kết thúc.
• Chu trình logic Repeat … Until…
• Quy cách: Repeat
• ;
• ;
………….
;
• Until ;
• Khi thực hiện, máy sẽ thi hành các lệnh nằm giữa 
Repeat … Until rồi kiểm tra giá trị của , 
nếu trả lại giá trị False thì chu trình được thực hiện lặp 
lại. Chu trình kết thúc khi trả lại giá trị 
True.
• Với chu trình logic Repeat … Until thì dù giá trị 
của trả lại là True hay False 
thì các lệnh nằm giữa Repeat … Until cũng 
được thực hiện ít nhất một lần. Và cũng giống 
như chu trình logic While … Do, giữa Repeat … 
Until cần có thao tác làm thay đổi giá trị của 
.
• Ví dụ: Viết lại chương trình tìm i sao cho S = 1 + 
2 + 3 +… có giá trị lớn nhất nhỏ hơn giá trị A 
nguyên dương nhập vào từ bàn phím với chu 
trình logic Repeat … Until.
Program Tim_so_2;
Var
Begin
A, i, S: Integer;
Write(„Nhap vao so nguyen, duong A = „);
Readln(A); S := 0;
i := 0;
Repeat
i := i + 1; S := S + i;
Until S > A;
Writeln(„So can tim la „, i - 1, „ de S co gia tri lon nhat 
nho hon „, A);
Readln; End.
4.6 Dữ liệu mảng
Dữ liệu mảng
a. Khái niệm
Dữ liệu mảng là dữ liệu có cấu trúc, là tập hợp hữu hạn 
các biến cùng kiểu dữ liệu. Số lượng các biến được xác 
định khi khai báo mảng, để thao tác được với dữ liệu 
cảu một biến trong mảng người ta dùng tên của biến 
mảng và chỉ số chỉ thứ tự của biến đó trong mảng. Chỉ 
số được đặt trong cặp „[ ]‟ (ngoặc vuông). Số lượng các 
chỉ số chỉ số chiều của mảng, các chỉ số ngăn cách nhau 
bởi dấu „,‟ (phẩy). Dữ liệu kiểu mảng được định nghĩa 
bởi từ khóa Array.
Dữ liệu kiểu mảng
b/ Mảng một chiều
Quy cách 1:
TYPE
=ARRAY[Kiểu chỉ số] OF <Kiểu 
phần tử>;
VAR
: ;
Type
C=Array[-30..50] Of Real;
Ten=Array[1..40] Of String;
Var
Dongia,Soluong:C;
Hotendem,Tengoi:Ten;
Var
Dongia,Soluong:Array[-30..50] Of Real;
Hotendem,Tengoi:Array[1..40] Of String;
Soluong[10]
Tengoi[30]
Quy cách 2:
VAR
: ARRAY[Kiểu chỉ số] OF 
;
* Truy cập đến các phần tử của mảng
Tên mảng[Chỉ số mảng]
Ví dụ 1: Cho dãy A gồm n phần tử ( a1, a2, . 
. ., an) , khi đó để gọi tên một phần tử bất 
kỳ nào đó trong dãy A thì sẽ là ai , và 
trong Pascal sẽ được ghi là a[i].
Chương 5
Mạng máy tính và Internet
1. Các cơ sở của mạng máy tính
2. Phân loại mạng theo phạm vi địa lý
3. Mạng cục bộ - LAN
4. Phần cứng của mạng
a.Card mạng và các dây cáp
b.Các máy chủ (Servers)
5. Phần mềm của mạng máy tính
a.Hệ điều hành mạng
b.Các chương trình ứng dụng riêng lẻ
c.Phần mềm dành cho nhóm công tác (GroupWare)
6. Mạng máy tính toàn cầu Internet
a.Sự hình thành Internet
b.Các thông tin trên Internet
c.Qui trình nối một máy tính vào mạng Internet
d.Các dịch vụ chủ yếu trên Internet
e.Các dịch vụ khác
f.Thương mại điện tử

File đính kèm:

  • pdfBài giảng Lập trình cho máy tính điện tử - Chương 4_Lập trình bằng Pascal.pdf
Tài liệu liên quan