Giới thiệu về lập trình : 1.Chương trình :Dãy lệnh đã được mã hóa đưa vào cho máy tính điện tử 2.Lập trình viết chương trình cho máy tính điện tử 3.Turbo pascal là một ngôn ngữ lập trình
Trang 1Bài 1 :Mở đầu (t1-2)
I Giới thiệu về lập trình :
1.Chương trình :Dãy lệnh đã được mã hóa đưa vào cho máy tính điện tử
2.Lập trình viết chương trình cho máy tính điện tử
3.Turbo pascal là một ngôn ngữ lập trình được dùng phổ biến nhất hiện nay trong việc giảng dạy tin học ở bậc trung học phổ thông và trung học cơ sở Pascal có đặc điểm : ngữ pháp ,ngữ nghĩa đơn giản và có tính logic ; cấu trúc chương trinh rõ ràng dễ hiểu 4.Cấu trúc của một chương trình pascal :
[program tên chương trình ;]
(*Phần khai báo *)
[const ] : (* khai bao các hằng số trong chương trình *)
[uses] : (*khai báo các thư viện trong chương trình *)
[type] :(*định nghĩa các kiểu dữ liệu*)
[procedure và function ](* khai báo các hàm và thủ tục dùng trong chương trình *) [var] :( khai báo các biến dùng trong chương trình*)
<begin> :
[các lệnh kết thúc bằng ;]
<end.> (*ket thuc chương trình *)
II.Ví dụ về các chương trình Pascal đơn giản
1.Xuất dòng văn bản ra màn hình
lệnh này cho phép xuất ra màn hình hay máy in các dữ liệu ,kết quả và các thông báo cần thiết
cú pháp write (<biểu thức >);
hay writeln (<biểu thức >);
-Lệnh write xuất ra màn hình giá trị của biểu thức tại vị trí con trỏ hiện hành Sau lệnh này con trỏ sẽ ở cuối giá trị được xuất trên màn hình
-Lệnh writeln xuất lên màn hình giá trị của biểu thức tại vị trí con trỏ hiện hành sau đó con trỏ sẽ được đưa về dòng mới
có ba loại :
-Xuất chuổi thông báo : thông báo sẽ được đặt trong ‘ ‘
Vidụ : write(‘TRUONG DINH TIEN HOANG’)
-Xuất giá trị của biên trong biểu thức số thì không cần (‘ ‘)
Ví dụ write ( R )
Hoặc Write ( a*b*c/4);
-Xuất hổn hợp bao gồm hai cách xuất trên giữa hai cách xuất phải có dâu (,)
ví dụ write (‘bán kính đường tròn là :’,R);
định dạng lúc xuất
các định dạng như sau :
biến thực : m:n
m : là tổng số ô trông tối thiểu để in giá trị biến thực khi m =0 thì số ô trống là tuỳ ý
n : là số số lẻ mà biến thực cần có ( ở phẩn thập phân )
Trang 2ví dụ a:=1.692845
Lệnh nhập :
Lệnh này cho phép chương trình nhận sô liệu và ghi vào biến tương ứng được đưa ra Cú pháp : readln (biến )
Nhập nhiều biến :
Readln (biến 1 ,biến 2 ,….biến n);
Ví dụ a,b :real
Trang 31.Khởi động và kết thúc chương trình
-Khởi động :
+ Nhấp vào biểu tượng turbo pascal
+ Từ dấu nhắc Dos
2.Giói thiệu màn hình giao diện của TP
3) Sọan thảo trong môi trương TP
Thông thường màn hình vi tính được chia thành 25 dòng mỗi dòng viết được 80 ký tự Để chọn menu nhấn phím F10 di chuyển điểm sáng đến menu thích ứng nhấn ENTER a) Menu File :
+Chọn nhanh bằng phím Alt+F :dùng để quản lý tập tin : lưu ,mở
Trang 4-GOTO CURSOR :dùng để chạy chương trình đến vị trí của câu lệnh mà con trỏ đang đứng
-USER SCREEN (ALT+F5) :thoát khỏi màn hình soạn thảo để xem màn hình kết quả vừa thực hiện
d)Menu COMPILE : dùng để biên dịch chương trình từ ngôn ngữ PASCAL sang ngôn ngữ máy
+compile : biên dịch ra máy nhưng không chạy chương trình
+Find error : Tìm lỗi của chương trình sau khi viết xong
e)Menu Debug : dùng để gỡ rối ,tìm lỗi của chương trình
f)Menu Break/Watch :Dùng để quan sát giá trị các biên khi chạy chương trình tới các điểm dừng tùy ý chọn nhăm gỡ rối chương trình
-Để sữa chữa con văn bản ta có thể dùng các phím mũi tên ,end,home hoặc chuột để
di chuyển con trỏ , đến vị trí cần sữa sau đó có thể dùng phím delete ,Back space để xóa và thêm chữ vào
4)Quản lý tài liệu :
+Lưu : File –save
+Lưu với tên mới : File –save as
+Mở file đã lưu : file –open ->chọn tên file cần mở
5.Biên dịch và chạy chương trình : sau khi viết xong chương trình để biên dịch
ta nhấn phím Alt+F9
IV.Phương pháp lập trình
Đối với các bài tóan đơn giản thì ta có thể viết ngay chương trình ,còn đối với các bài toán khó ,phức tạp thông thường thực hiện qua các bước sau :
1.Tìm cách giải các bài toán bằng ngôn ngữ tự nhiên ,tìm giải thuật phù hợp
2.Vẽ lưu đồ bài tóan
3.Thể hiện ngôn ngữ lập trình trên giấy
4.Soạn chương trình trên môi trường phần mềm ngôn ngữ
5.Cho chạy thử ,sửa lỗi và hòan chỉnh chương trình
Trang 6Bài 2 :Các thủ tục cơ bản của TP (t3-4)
I Giới thiệu về lập trình :
(Thông qua bài tập mẫu , giới thiệu cac thủ tục xuất ,nhập ,khai báo ,phép gán ,các phép toán số học )
Bài toán 1 : cho biết bán kính hãy tính diện tích và chu vi hình tròn
Dữ liệu nhập vào (giả thiết ) : Bán kính hình tròn
Dữ liệu xuất ra (kết luận ) : diện tích và chu vi hình tròn
(1) program Dien_tich_Hinh_tron;
(2) Const p=3.14;
(3) Var r,dt :real;
(4) Begin
(5) Write(‘Hay nhap ban kinh hinh tron ‘);
(6) Readln(r); { lênh nay để lưu gia trị nhập vao biên r }
(7) Dt:=r*r*p; {lệnh này dùng để gán cho biến dt giá trị r*r*p }
(8) Cv=2*r*p; { lệnh này dùng để gán cho biến Cv giá trị r*r*p }
(9) Writeln(‘Dien tich cua hình tròn là ‘,dt);
(10) Readln; { lệnh này dùng để chờ bàn phím ấn Enter }
1.Nguyên tắc cơ bản :
-khai báo tên chương trình giữa các ký tự không được có các khỏang trắng
-khai báo các hằng số : các biến có giá trị không thay đổi trong tòan bộ chương trình
ví dụ : const pi=3.14; { khai báo hằng số Pi có giá trị không đổi 3.14 }
-Biến muốn sử dụng phải khai báo ví dụ var r:real;
khi khai báo biến không được đặt tên biến trùng với từ khóa
+Từ khóa : là các từ riêng của PASCAL ,có ngữ nghĩa
* Từ khóa chung :
PROGRAM,BEGIN,END,PROCEDURE ,FUNCTION
*Từ khóa dùng để khai báo :
CONST,VAR ,TYPE,ARRAY,STRING,RECORD ,SET,FILE OF ,LABEL …
-Thân chương trình : bắt đầu bằng Begin và kết thúc bởi end
+Kết thúc một câu lệnh ,phát biểu phải có dấu chấm phẩy (;) kết thúc chương trinh phải có dấu chấm (.) ,các câu lệnh có thể viết chung trên một dòng
+Nên viết thụt đầu dòng theo cấu trúc phân cấp để tiện theo dõi và sữa lỗi chương trình
2.Biến và khai báo biến :
2.1 Công dụng và cách đặt tên biến:
cách đặt tên biến và chương trình cũng giống như cách đặt tên thư mục và file nhưng đối với tên biến không được đặt kí tự đầu tiên là số
công dụng của biến :
Trang 7-thực hiện các phép toán chuyển đổi từ các số liệu nhập để cho ra kết quả
-Xuất các kết quả ra cho người dùng chương trình Ngoài ra các biến còn được dùng để lưu trữ các số liệu nhập,các số liệu trung gian trong quá trình xử lý kết quả
2.2 Khai báo biến :
muốn khai báo biến ta đặt vào phần var của chương trình với câu trúc như sau :
<tên biến > :<kiểu >;1.1 Biến là một ô nhớ nằm trong bộ nhớ chính ,nội dung có thể thay đổi được Mổi biến có một tên cho phép người lập trình có thể dọc ghi nội dung của ô nhớ thpông qua tên biến mà không cần biết địa chỉ chính xác của biến
-các tên biến cùng kiểu ta có thể liệt kê liền gần nhau ,cách nhau bằng dấu phẩy
-kiểu ta sẽ định nghĩa như ở phần sau
2.3KIỂU DỮ LIỆU :
A)Kiểu số :
Gồm hai loại : nguyên và thực
Nguyên bao gồm
Loại kích thước fạm vi lưu trữ
b)Kiểu luận lý :
kí hiệu Boolean : baogồm hai giá trị TRUE và FALSE
c)Kiểu kí tự và chuổi
-kiểu kí tự là biến có kích thước 1 byte gồm các kí tự có trong bảng mã ASSCII kí hiệu là Char
-kiểu string là tập hợp 1 chuổi các kí tự có tối đa 255 kí tự
3.Hằng và khai báo biến
hằng là các đại lượng khôngthay đổi giá trị
khai báo hằng :các hằng được khai báo bằng một tên đặt trong phần khai báo const ở đầu chương trình
cách viết
ten_hang=giá_trị_của_hằng;
ví dụ :
PI=3.14; (* Hằng số thực *)
a=5; (* Hằng so ánguyên *)
ch=’Z’; (* Hằng Kí tự Z *)
các hằng giữ nguyên giá trị của nó trong suốt chương trình
4)Câu lệnh xuất
1.Xuất dòng văn bản ra màn hình
lệnh này cho phép xuất ra màn hình hay máy in các dữ liệu ,kết quả và các thông báo
Trang 8cần thiết
cú pháp write (<biểu thức >);
hay writeln (<biểu thức >);
-Lệnh write xuất ra màn hình giá trị của biểu thức tại vị trí con trỏ hiện hành Sau lệnh này con trỏ sẽ ở cuối giá trị được xuất trên màn hình
-Lệnh writeln xuất lên màn hình giá trị của biểu thức tại vị trí con trỏ hiện hành sau đó con trỏ sẽ được đưa về dòng mới
có ba loại :
-Xuất chuổi thông báo : thông báo sẽ được đặt trong ‘ ‘
Vidụ : write(‘TRUONG DINH TIEN HOANG’)
-Xuất giá trị của biên trong biểu thức số thì không cần (‘ ‘)
Ví dụ write ( R )
Hoặc Write ( a*b*c/4);
-Xuất hổn hợp bao gồm hai cách xuất trên giữa hai cách xuất phải có dâu (,)
ví dụ write (‘bán kính đường tròn là :’,R);
định dạng lúc xuất
các định dạng như sau :
biến thực : m:n
m : là tổng số ô trông tối thiểu để in giá trị biến thực khi m =0 thì số ô trống là tuỳ ý
n : là số số lẻ mà biến thực cần có ( ở phẩn thập phân )
ví dụ write (a*b*c /4/s:0:2)
ví dụ a:=1.692845
5.Lệnh nhập :
Lệnh này cho phép chương trình nhận sô liệu và ghi vào biến tương ứng được đưa ra
-Nhập có tham số :
Cú pháp : readln (biến )
Nhập nhiều biến :
Readln (biến 1 ,biến 2 ,….biến n);
Ví dụ a,b :real
C1 : readln(a);
readln (b);
C2 : readln(a,b);
-Nhập không có có tham số :
Cú pháp : readln
6)Các phép tính số học cơ bản + - * /
Trang 9a)Phép toán kiểu số :bao gồm các phép toán +,-,*
đối với phép toán chia phân thành hai loại
-Nguyên : mod ,div
-Thực
mod là phép toán lấy phần dư nguyên của phép chia
div :là phép toán lấy phần thương nguyên của phép chia
ví dụ : 9 mod 5=4
9 div 5 =1
7.Phát biểu gán
Dùng theo cấu trúc sau :
biến :=giá trị cần gán ;
ví dụ : a byte gán a:=5;
muốn gán a:=266;không được vì a chỉ nhận giá trị đến 255
chú ý : kiểu số không được gán cho các kiểu khác và ngược lại
VÍ DỤ A:=’PASCAL’ không được
S:=a không được vì s là string
8.Chú thích trong chương trình :
có thể đặt trong cặp dấu { nội dung ghi chú }
hoặc (* nội dung ghi chú *)
II Bài toán 2 :
-cho biết hai cạnh của hình chữ nhật hãy tính diện tich và chu vi hình chữ nhật đó-giáo viên hướng dẫn và gọi một học sinh lên bảng để viết ,sau đó phân tích và sữa lại cho hòan chỉnh
write('Nhap chieu dai hinh chu nhat ');readln(dai);
write('Nhap chieu rong hinh chu nhat ');readln(rong);
s:=dai*rong;
cv:=(dai+rong)*2;
writeln('Dien tich hinh chu nhat la ',s);
writeln('Chu vi hinh chu nhat la ',cv);
readln;
end.
-Nếu còn thời gian thì làm thêm một số bài toán đơn giản khác
ví dụ : nhập cạnh đáy và đường cao tính diện tích tam giác
Trang 10clrscr;
write('Nhap canh day tam giac ');readln(day);
write('Nhap chieu cao tam giac ');readln(cao);
Trang 11Bài 3 :Bài tập –Kiểm tra 15 phút (t5-6)
Một số hàm và thủ tục để trình bày
Uses crt;
Clrscr;(xoá màn hình )
Gotoxy (x,y) : chuyển cusor về cột x dòng y
Màn hình gồm 80 cột và 26 dòng
Gotoxy(70,22) chuyển cusor về cột 70,dòng 22
Xuất ra hoá đơn tiền diện được biểu diễn như sau :
CTY ĐIỆN LỰC CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
BRVT Độc lập –tự do –hạnh phúc
HOÁ ĐƠN TIỀN ĐIỆN
Họ và tên chủ hộ :
gotoxy(35,5);write('HOA DON TIEN DIEN');
gotoxy(1,7);write('HO TEN CHU HO : ');REDLN(HT);
gotoxy(1,8);write('DIA CHI : ');READLN(DC);
gotoxy(1,11);write('SO KW TIEU THU: ',STT:10:2,' KW');
gotoxy(1,12);write(STT,' KW GIA 550 DONG' );
gotoxy(1,13);write('SO TIEN PHAI TRA: ',STT*550:0:2,' dong'); END
Trang 12IF(STT<=250) THEN
BEGIN
gotoxy(1,11);write('SO KW TIEU THU: ',STT:10:2,' KW');
gotoxy(1,12);write(150,' KW GIA 550 DONG' );
gotoxy(1,13);write(STT-150,' KW GIA 850 DONG' );
gotoxy(1,14);write('SO TIEN PHAI TRA: ',150*550+(STT-150)*850:0:2,' dong'); END
ELSE
BEGIN
gotoxy(1,11);write('SO KW TIEU THU: ',STT:10:2,' KW');
gotoxy(1,12);write(150,' KW GIA 550 DONG' );
gotoxy(1,13);write(100,' KW GIA 850 DONG' );
gotoxy(1,14);write(STT-250:0:0,' KW GIA 1100 DONG' );
gotoxy(1,15);write('SO TIEN PHAI TRA:
-Giải 1 số bài tập về tính toán đơn giản
bài 1 : Nhập cạnh tính chu vi diện tích hình vuông
writeln('Dien tich hinh vuong la ',s);
writeln('Chu vi hinh vuong la ',cv);
Trang 13write('Nhap so thu hai ');readln(b); (* b phai khac 0 *) writeln('Tich 2 so la ',a*b);
writeln('Dien tich hinh Tron la ',s:6:2);
writeln('Chu vi hinh tron la ',cv:6:2);
Trang 14Bài 4 : Điều khiển rẽ nhánh chương trình IF (T7-8)
1 Bài toán 1 :
-Viết chương trình giải phương trinh bậc nhất ax+b=0
-Giải phương trình bằng ngôn ngữ tự nhiên
+ Nếu a<>0 : phương trình có nghiệm x=-b/a ;
+ Nếu a=0 và b=0 : phương trình có vô số nghiệm (vô định )
+ Nếu a=0 và b<>0 : phương trình có vô nghiệm
if a<>0 then write(‘Phuong trinh co nghiem x=’,-b/a:5:2);
if (a=0) and (b=0) then write(‘Phuong trinh co vo so nghiem ’);
if (a=0) and (b<>0) then write(‘Phuong trinh co vo nghiem ’);
readln;
end
1- Cấu trúc phát biểu IF
Dạng 1 :
Cú pháp IF <khối điều kiện > then < khối lệnh S1>
Else <khối lệnh S2>;
Ý nghĩa : nếu khối điều kiện là đúng thì thực hiện khối lệnh S1 Sai thì thực hiện khối lệnh S2;
Lưu đồ
Trang 15Dạng 2 :
Cú pháp IF <khối điều kiện > then < khối lệnh S>;
Ý nghĩa : nếu khối điều kiện là đúng thì thực hiện khối lệnh S
Sự khác nhau ở hai dạng
Dạng 1 : lúc nào cũng thực hiện lệnh dù điều kiện đúng hay sai
Khi diều kiện đúng thì thực hiện khối lệnh 1
Khi diều kiện sai thì thực hiện khối lệnh 2
Dạng 2 : chỉ thực hiện lệnh khi kiểm tra điều kiện là đúng
II Bài toán 2 :
-Viết chương trình tương tự :
ví dụ : viết chương trình tính tiền của một mặt hàng biết sô lượng và đơn giá biết rằng mua một hàng với số lượng >20 thì giảm 5% tổng giá trị
+nếu mua hàng số lượng <=20 ví dụ số luợng =19 thì tổng tiền là 19x 2000đ
+nếu mua hàng số lượng > 20 ví dụ số luợng =21 thì tổng tiền là 21x2000đx 95%
Trang 162.Kiểu Interger : kiểu nguyên
Integer có kích thước 2 byte phạm vi lưu trữ từ -32768=>32767
Phép toán :bao gồm các phép toán +,-,*
đối với phép toán chia phân thành hai loại
-Nguyên : mod ,div
-Thực
mod là phép toán lấy phần dư nguyên của phép chia
div :là phép toán lấy phần thương nguyên của phép chia
ví dụ : 9 mod 5=4
9 div 5 =1
1) Aùp dụng các phép toán MOD, DIV
Tính thời gian của việc nào đó là X giây hãy chuyển đổi và viết ra trên màn hình số thời gian trên dưới dạng bao nhiêu giờ ,bao nhiêu phút,bao nhiêu giây
Trang 17write(‘Nhap vao so a : ‘);readln(a);
if a mod 2=0 then write(‘Day la so chan ‘)
else
write(‘day la so le ‘);
readln;
end
3.Kiểu real và các phép tính
kiểu real là kiểu số thực chứa phần thập phân,Tất cả phép toán liên quan đến số có phần thập phân phải sử dụng kiểu này
write(‘Nhap so do 3 canh a,b,c ‘);readln(a,b,c);
if (a+b>c) and (b+c>a) and (c+a>b) then
begin
p:=(a+b+c)/2;s:= sqrt(p*(p-a)*(p-b)*(p-c);
writeln(‘Day la so do 3 canh cua tam giac ‘);
writeln(‘Dien tich cua tam giac la ‘,s:6:2);
Trang 18Bài 5 : Điều kiện rẽ nhánh chương trình –Case (t9-10)
-Nhập vào 1 số a (0<=a<=9) viết số vừanhập bằng chữ ra màn hình
nếu viết bằng cấu trúc if
if so=1 then write(‘Mot ‘);
if so=2 then write(‘Hai ‘);
if so=3 then write(‘Ba ‘);
if so=4 then write(‘Bon ‘);
if so=5 then write(‘Nam ‘);
if so=6 then write(‘Sau ‘);
if so=7 then write(‘Bay ‘);
if so=8 then write(‘Tam ‘);
if so=9 then write(‘Chin ‘);
Gía trị 1: khối lệnh S1;
Gía trị 2: khối lệnh S2;
Gía trị n: khối lệnh Sn;
Else khối lệnh A;
End;
Yù nghĩa:
nếu biến bằng giá trị 1 thì thực hiện khối lệnh S1;
nếu biến bằng giá trị 2 thì thực hiện khối lệnh S2;
nếu biến bằng giá trị n thì thực hiện khối lệnh Sn;
nếu biến <> giá trị 1,2,3, n thì thực hiện khối lệnh A;
cuối phaỉ có End;
chú ý biến chỉ có thể là nguyên hay kí tự
Giải lại bài tóan trên với cấu trúc case …of
program xuatchu;
uses crt;
var so:byte;
begin
Trang 19Nếu có 1 con thì tiền thương bằng 2 lần tiền lương
Nếu có 2 con thì tiền thưởng bằng 2,5 lần tiền lương
Nếu có 3 con thì tiền thưởng bằng 0,5 lần tiền lương
Nếu có 4 con thì tiền thưởng bằng 0 lần tiền lương
Trang 21Bài 6 : bài tập (t11-t12 )
Giải môt số bài tập có áp dụng if ,Case
Bt1 : Nhập vào điểm cuối khóa xuất ra thông báo xếp loại
Var diem :byte;
True : writeln(a,’ nho hon ‘,b);
false : writeln(a,’ Lon hon hay bang ‘,b);
end
Readln;
End
Trang 222 Viết chương trình tính diện tích các hình , cho hiển thị lên màn hình menu chọn
Nếu nhâp vào 1,2,3 thì yêu cầu nhập vào tương ứng kích thước rồi in ra diện tích
Bài 7 : bài tập (t13-t14 )
Phần lý thuyết :
Bài 1 :
Câu a) Số lớn nhất và nhỏ nhất của byte ?integer ?
Trả lời :
-số lớn nhất của byte là 255 nhỏ nhất là 0
-số lớn nhất của integer là +32767 nhỏ nhất là -32768
Câu b)Có bao nhiêu kết quả của phép chia ? Sự khác nhau ?
Trả lời :
-chia lấy kết quả số thực /
-chia lấy phần nguyên DIV
-chia lấy phần dư MOD
Câu c) Vẽ lưu đồ của câu trúc if …then …else
Trang 24Bài 8 Oân tập học kỳ 1 (t17-18)
-Oân tâp nội dung từ đầu năm
thực hành :
Làm 1 số bài tập kết hợp rẽ nhánh
Bài 1 Viết một chương trình thực hiện công việc sau :
- Nhập vào điểm của một người (biến kiểu integer) từ bàn phím
Viết ra màn hình thông báo cho các trường hợp :
- Nếu điểm nhỏ hơn 5 thì “Dưới trung bình”
- Nếu điểm lớn hơn hoặc bằng 5 và nhỏ hơn 7 thì “trung binh”
- Nếu điểm lớn hơn hoặc bằng 7 thì “Khá”
Thực hiện với trường hợp phân tích chi tiết hơn : Kém , Yếu Trung bình , Khá , Giỏi
Bài 2
Cho biết số lờn nhất trong hai số bất kỳ a , b
Cho biết số lớn nhất trong ba số bất kỳ a , b
Bài 9 Thi học kỳ (t17-18)
Lý thuyết 1 :
1)Nhập vào 2 số xuất ra số lớn nhất
a)vẽ lưu đồ
b)Viết chương trình đầy đủ
thực hành
Lý thuyết 2 :
1)Nhập vào 2 số xuất ra số bé nhất
a)vẽ lưu đồ
b)Viết chương trình đầy đủ
2) Đề số 2:
Viết chương trình nhập vào 4 số xuất ra
+Trung bình cộng của 4 số
+Số bé nhất trong 4 số