Bài 1: Khái niệm Lập trình và Ngôn ngữ Lập trình.
§ Lập trình là gì? Chương trình dịch là gì? Tại sao lại tồn tại chương trình dịch?
Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán.
Chương trình dịch là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính.
Chương trình viết bằng ngôn ngữ lập trình bậc cao phải chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được, vì thế chương trình dịch tồn tại để thực hiện việc chuyển đổi đó.
§ Chương trình dịch có mấy loại, kể ra, so sánh các loại đó?
Chương trình dịch có hai loại là thông dịch và biên dịch.
Đề cương ôn tin học 11 Turbo Pascal Lý thuyết. Bài 1: Khái niệm Lập trình và Ngôn ngữ Lập trình. Lập trình là gì? Chương trình dịch là gì? Tại sao lại tồn tại chương trình dịch? Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. Chương trình dịch là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính. Chương trình viết bằng ngôn ngữ lập trình bậc cao phải chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được, vì thế chương trình dịch tồn tại để thực hiện việc chuyển đổi đó. Chương trình dịch có mấy loại, kể ra, so sánh các loại đó? Chương trình dịch có hai loại là thông dịch và biên dịch. Thông dịch (interpreter) Biên dịch (compiler) Được thực hiện bằng cách lặp lại dãy bước sau: + Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn; + Chuyển đổi câu lệnh đó thành một hay nhiều câu lệnh tương ứng trong ngôn ngữ máy; + Thực hiện các câu lệnh vừa chuyển đổi được. Được thực hiện qua hai bước: + Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn. + Dịch toàn bộ chương trình nguồn thành chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết. Như vậy trong thông dịch, thực hiện câu lệnh luân phiên; không có chương trình đích lưu trữ, trong biên dịch thực hiện câu lệnh một lần; chương trình nguồn và chương trình đích có thể lưu trữ và dùng lại sau. Bài 2: Các thành phần của ngôn ngữ lập trình Các thành phần cơ bản gồm; bảng chữ cái, cú pháp và ngữ nghĩa. Bảng chữ cái: là tập các kí tự dùng để viết chương trình. - Các chữ cái thường và các chữ cái in hoa trong bảng chữ cái tiếng Anh - 10 chữ số thập phân Ả rập: 0 1 2 3 4 5 6 7 8 9 - Các kí tự đặc biệt: Cú pháp: là bộ quy tắt để viết chương trình, cho biết cách viết một chương trình hợp lệ. Ngữ nghĩa: xác định thao tác cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó Khái niệm tên, hằng, biến Tên: là một dãy liên tiếp không quá 127 kí tự bao gồm chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái gạch dưới. Trong Pascal không phân biệt chữ hoa, chữ thường. - Tên dành riêng: được dùng với ý nghĩa riêng, không được dùng với ý nghĩa khác. VD: program, uses, const, type, var, begin, end. - Tên chuẩn: tên dùng với ý nghĩa nhất định, khi cần dùng với ý nghĩa khác thì phải khai báo. VD: abs spr sqrt integer real longint byte break extended - Tên do người lập trình đặt: dùng với ý nghĩa riêng, xác định bằng cách khai báo trước khi sử dụng. Các tên này không được trùng với tên dành riêng. VD: 11B5 B5 VMD Tai_Handsome 11B5ThItOT Hằng : là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình. - Hằng số học là số nguyên hay số thực (dấu phẩy tĩnh hay dấu phẩy động) VD: 2 0 -5 1.8 -22.36 2.23E01 - Hằng logic: là giá trị đúng hoặc sai tương ứng với true hoặc false VD: TRUE FALSE - Hàng xâu: là dãy kí tự trong bộ mã ASCII. Khi viết, dãy kí tự được đặt trong cặp dấu nháy. VD: ‘Information’ ‘Lop 11B5’ Biến: là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình Bài 3 Cấu trúc chương trình [] [] Phần khai báo Khai báo tên chương trình (phần này khai báo hoặc không): program ; Khai báo thư viện: uses crt; Khai báo hằng: const = ; VD: const pi = 3.1416; Khai báo biến: var : ; - Trong đó kiểu dữ liệu là gồm: + Kiểu nguyên: byte(bộ nhớ lưu trữ giá trị:1 byte; phạm vi giá trị: 0 đến 255), integer (2 byte; -215 -> 215-1), word(2 byte; 0 -> 216-1), longint(4 byte; -231 -> 231-1) + Kiểu thực: real(6 byte; 0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-38 -> 1038), extended (10 byte; 0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-4932 -> 104932) + Kiểu kí tự: char ( 1byte; 256 kí tự trong bộ mã ASCII) + Kiểu logic: Boolean (1 byte; true hoặc false) VD: var x1, x1 : real; var X, Y, Z: real; C : char; N : word; I, J : byte; Phần thân: begin []; end. Các câu lệnh đã học Câu lệnh gán: := ; VD: x1 := (-b + sqpt(delta))/(2*a); Nhập dữ liệu từ bàn phím: Read (); hoặc readln (); VD: read(a,b,c); hoặc readln(a,b,c); Đưa dữ liệu ra màn hình: Write (); hoặc writeln (); VD: write(‘Chao ban, chuc ban dat ket qua tot trong ki thi nay’); hoặc writeln(‘Chao ban, chuc ban dat ket qua tot trong ki thi nay’); Ngưng và đưa kết quả ra màn hình: Readln; Câu lệnh if-then - Dạng thiếu: If then ; VD: if b>max then max := b; - Dạng đủ: If then else ; VD: if (a mod 3 = 0) then write(a,’ la so chia het cho 3’) else write(a,’ la so khong chia het cho 3’); Câu lệnh ghép Begin ; End. Câu lệnh lặp for-do - Dạng lặp tiến For := to do ; VD: S := 0; for i := 1 to 10 then S := S + 1; - Dạng lặp lùi: For := downto do ; VD: S := 0; for i := 10 downto 1 do S := S+1; Một số dạng bài tập. 1) Viết chương trình thực hiện, nhập vào các cạnh của tam giác, sau đó kiểm tra tính đúng đắn và tính chu vi và diện tích tam giác. Program giaitamgiac; Uses crt; Var a,b,c,p,k1,k2,k3 : real; Begin Clrscr; Writeln(‘Nhap vao ba canh cua tam giac: ‘); read(a,b,c); k1:= a+b; k2:= a+c; k3:= b+c; if (a<=0) or (b<=0) or (c<=0) or (k1<=c) or (k2<=b) or (k3<=a) then write(‘Cac cach tren khong hop thanh mot tam giac.’) else begin Writeln(‘Chu vi tam giac la: ‘, a+b+c:5:2); p := (a+b+c)/2 ; write(‘Dien tich tam giac la : ‘,sqrt(p*(p-a)*(p-b)*(p-c)) :5 :2) ; end; readln; end. 2) Viết chương trình nhập vào bán kính r, thực hiện tính chu vi và diện tích hình tròn. Program giaihinhtron; Uses crt; Const pi =3.1416; Var r : real; Begin Clrscr; Writeln(‘Nhap vao ban kinh hinh tron: ‘); read(r); If r<=0 then write(‘Ban da nhap sai ban kinh. Vui long nhap lai.’) else Writeln(‘Chu vi hinh tron la: ‘, 2*pi*r:5:2,’ dien tich hinh tron la : ‘,pi*r*r :5 :2); readln; end. 3) Viết chương trình nhập vào các giá trị a, b, c, sau đó giải phương trình a2x + bx + c = 0 Program giaipt; Uses crt; Var a,b,c,x1,x2,D : real; Begin Clrscr; Writeln(‘Nhap vao he so a, b, c cua phuong trinh: ‘); read(a,b,c); If a=0 then begin Writeln(‘Phuong trinh da cho tro thanh Phuong trinh bac nhat. ‘); If b=0 then If c=0 then write (‘Phuong trinh co vo so nghiem.’) Else write (‘Phuong trinh vo nghiem.’) Else write(‘Va phuong trinh da cho co nghiem x = ‘,– c/b:5:2); End Else begin D:=sqr (b) – 4*a*c; If D<0 then write(‘Phuong trinh da cho vo nghiem.’) Else if D=0 then write (‘Phuong trinh da cho co nghiem kep x1 = x2 =‘, –b/(2*a):5:2); Else Begin x1 := (–b+sqrt(D))/(2*a); x2 := –b/a –x1; write (‘Phuong trinh co hai nghiem phan biet x1= ‘,x1:5:2,’ va x2 = ‘, x2:5:2); end; end; readln; end. 4) Viết chương trình nhập vào số tự nhiên n và thực hiện tổng sau. S= 1/1!+1/2!+1/3!+.+1/n! Program tinhtong; Uses crt; Var n,i, : byte; p,S :real; begin write(‘Nhap n: ‘); read(n); S:=1; p:=1/2; S:=S+p; For i:=3 to n do Begin p:=1/i *p; S:=S+p; End; Write(‘S=’,S); End. 5) Viết chương trình nhập vào 5 số , tìm ra số lớn nhất. Program max; Var a1,a2,a3,a4,a5: real; Begin Write(‘Nhap vao nam so:’); Read(a1,a2,a3,a4,a5); Max:=a1 If max<a2 then max:=a2; If max<a3 then max:=a3; If max<a4 then max:=a4; If max<a5 then max:=a5; Write(‘ max la’,max:5:2); Readln; End. 6) Viết chương trình nhập vào số nguyên dương n thực hiện tính tổng các số lẻ hơn n và chia hết cho 3 Program tinhtong; Var n:byte; Begin Write(‘Nhap vao n: ’); Read(n); T:=0; For i:=(n-1) downto 3 do if (i mod 3 = 0) and (i mod 20)then T:=T+i; Write(‘tong la:’T); Readln; End. 7) Hãy cho biết giá trị T sau đoạn lệnh sau : T := 0 ; For i :=2 to 10 do If i mod 2 = 0 then T:= T+1; Đáp án T = 5 8) Hãy thêm vào dòng lệnh phù hợp để T đạt giá trị là 10 T:= 0; For i:=30 downto 1 do ............................................ Đáp án: Cách 1: if i mod 10 = 0 then T:=10; Cách 2: If i = 10 then T:=i; Cách 3: if i mod 3 = 0 then T:= T+1; 9) Hãy thực hiện từng bước để tính ra giá trị T và S trong đoạn lệnh sau đây. S := 1; T := 0; For i := 10 downto 2 do For j := 2 to i do Begin T := T+1; S := S+T; End; Đáp án: T = 45; S =1036. 10) Giải bài toán cổ “Vừa gà vừa chó Bó lại cho tròn Ba mươi sáu con Một trăm chân chẵn” Hỏi có bao nhiêu con mỗi loại?. Program toanco; Var ga,cho:byte; Begin For cho:=1 to 24 do {vi 100÷4 = 25, vay so cho co the la 1->24 con} Begin ga:=36 – cho ; if ga*2 + cho*4 = 100 then write(‘Vay co tong so ga la ‘, ga,’ con va tong so cho la ‘,cho,’ con’) end; readln; end. 11) Viết chương trình nhập vào ba số nguyên dương a, b, c. Kiểm tra xem chúng có phải là bộ số Pi-ta-go không. Sau đó xuất kết quả ra màn hình. Program Pi_ta_go; Var a, b, c: integer; a2,b2,c2: longint; begin write(‘Nhap a, b, c : ‘); readln(a,b,c); a2 := a*a; b2 := b*b; c2 := c*c; if (a2=b2+c2) or (b2=a2+c2) or (c2=a2+b2) then write (‘Ba so la bo so Pi-ta-go.’) else write (‘Ba so khong phai la bo so Pi-ta-go.’); readln; end. Bộ đề cương này và đề cương trước chỉ mới tóm tắt ý chính nên chỉ có khoảng 95% là tửu, để đạt điểm cao các bạn đọc thêm các phần trong sách giáo khoa và phần “câu hỏi và bài tập” Chúc bạn may mắn.
Tài liệu đính kèm: