- Có hai loại chương trình dịch : Thông dịch và biên dịch - Các thành phần của ngôn ngữ lập trình : Bảng chữ cái, cú pháp và ngữ nghĩa - Mọi đối tượng trong chương trình đều phải được đặ
Trang 1Chương I
MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
TÓM TẮT LÍ THUYẾT
- Cần có chương trình dịch để chuyển chương trình nguồn thành chương trình đích
- Có hai loại chương trình dịch : Thông dịch và biên dịch
- Các thành phần của ngôn ngữ lập trình : Bảng chữ cái, cú pháp và ngữ nghĩa
- Mọi đối tượng trong chương trình đều phải được đặt tên:
+ 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 + 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
+ Tên do người lập trình đặt: Cần khai báo trước khi sử dụng
- Hằng : Đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình
- Biến : Đại lượng được đặt tên, giá trị biến có thể thay đổi trong quá trình thực hiện chương trình
C1.1
Những phát biểu sai:
• Output của mọi chương trình đều là chương trình trên ngôn ngữ máy
• Chương trình viết bằng hợp ngữ không phải là Input hay Output của bất cứ chương trình dịch nào
• Chương trình dịch là thành phần chính của một ngôn ngữ lập trình bậc cao
C1.2
Phát biểu đúng :
• Chương trình là dãy các lệnh được tổ chức theo các qui tắc được xác định bởi một ngôn ngữ lập trình cụ thể
C1.3
Trong chế độ biên dịch , một chương trình đã được dịch thông suốt, hệ thống không báo
lỗi Không thể khẳng định rằng ta đã có một chương trình đúng vì chương trình có thể vẫn chứa lỗi ngữ nghĩa
C1.4
Trong chế độ thông dịch , giả sử hai phần ba số câu lệnh trong chương trình đã được
thực hiện Không thể khẳng định chương trình không còn chứa lỗi cú pháp vì cú pháp của những câu lệnh chưa thực hiện chưa được kiểm tra
C1.5
Sau khi chương trình đã được dịch thông suốt, không còn lỗi cú pháp, chúng ta cần phải tiếp tục hiệu chỉnh, tìm và sửa lỗi trong chương trình nguồn để kiểm tra lỗi ngữ nghĩa
C1.6
Chúng ta cần kiểm tra tính đúng đắn của chương trình bằng nhiều bộ dữ liệu thử nghiệm khác nhau Vì chương trình có thể có nhiều nhánh và có nhiều dạng lỗi ngữ nghĩa khác nhau
C1.7
a) Độ dài đúng bằng 3 : 8 : AAA, AAB, ABA, ABB, BAA, BAB, BBA, BBB
b) Độ dài không quá 3: 14:A, B, AA, AB, BA, BB, + CÂU A
C1.8
Trong một chương trình còn có lỗi cú pháp thì chương trình biên dịch phát hiện lỗi nhanh hơn vì chương trình biên dịch kiểm tra lỗi cú pháp trứơc khi dịch Chương trình thông
Trang 2Học Tốt TIN HỌC 11
dịch vừa dịch vừa thực hiện từng câu lệnh Do đó lỗi cú pháp chỉ được phát hiện khi thực hiện tới câu lệnh đó
C1.9
Những biểu diễn hằng :
C1.10
Những biểu diễn tên :
C1.11
Từ khoá = Tên dành riêng trong PASCAL
C1.12
Nêu 5 từ khoá :
- End : Kết thúc chương trình
- Begin : Bắt đầu thân chương trình
- Var : Dùng để khai báo biến
- Const : Dùng để khai báo hằng
- Array : Khai báo mảng
- Type : Dùng để khai báo một kiểu dữ liệu mới
C1.13
Nêu 6 tên chuẩn :
- Integer : kiểu dữ liệu nguyên
- Real : kiểu dữ liệu thực
- Char : Kiểu dữ liệu là kí tự
- Boolean : Kiểu dữ liệu logic
- Sqr : hàm tính bình phương
- Sqrt: hàm tính căn bậc hai
C1.14
Nêu 4 tên đặt sai :
- 12babon : Tên không được bắt đầu bằng số
- Mong duoi hoa : Tên không được có khoảng trắng
- Hoa&Qua : Tên không được có kí tự lạ
- Begin : Tên trùng với tên chuẩn.(từ khoá)
C1.15
Dòng thông tin chú thích có thể chứa kí tự ngoài bảng chữ cái vì khi dịch chương trình thì chương trình dịch sẽ loại bỏ chú thích
C1.16
Phát biểu đúng:
B)Tên do người lập trình đặt không được trùng với từ khóa nhưng được trùng với tên
chuẩn
C ) Mọi đối tượng có giá trị thay đổi trong chương trình đều gọi là biến.
C1.17
C) Chương trình trên ngôn ngữ máy chứa nhiều câu lệnh hơn chương trình ở ngôn ngữ
bậc cao ban đầu
C1.18
Trang 3Chương trình trên ngôn ngữ bậc cao được viết bằng mã ASCII.
C1.19
Hợp ngữ chưa thích hợp với đa số ngưới lập trình : khó hiểu , khó sử dụng , do sử dụng câu lệnh và thao tác chủ yếu trên các thanh ghi của máy tính
C1.20
Ngôn ngữ lập trình bậc cao ít phụ thuộc vào các loại máy cụ thể nhờ có trình biên dịch Khi chương trình được viết bằng ngôn ngữ bậc cao , để máy tính hiểu và thực hiện được thì cần phải có trình biên dịch chuyển sang ngôn ngữ máy Và ngôn ngữ bậc cao thì gần với ngôn ngữ tự nhiên hơn
Chương II
CHƯƠNG TRÌNH ĐƠN GIẢN
TÓM TẮT LÍ THUYẾT
- Dữ liệu của bài toán được biểu diễn thông qua biến trong chương trình theo các qui tắc của ngôn ngữ lập trình cụ thể
- Kiểu dữ liệu của mọi ngôn ngữ lập trình chỉ cho phép mô tả các đại lượng hữu hạn và rời rạc
- Một chương trình thường có hai phần : Phần khai báo và phần thân chương trình Phần khai báo có thể có hoặc không
- Kiểu dữ liệu chuẩn : Kiểu nguyên, kiểu thực, kiểu kí tự , kiểu logic
- Các biến đều phải được khai báo và mỗi biến chỉ khai báo một lần
- Các phép toán : Số học, quan hệ và logic
- Có 3 loại biểu thức : Số học, quan hệ , logic
- Các ngôn ngữ lập trình có : + Lệnh gán dùng để gán giá trị của biểu thức cho biến + Các thủ tục chuẩn dùng để đưa dữ liệu vào và ra
C2.1
Chương trình không có phần khai báo khi nội dung chương trình thực hiện đưa ra một thông báo hay một chương trình rỗng
C2.2
Nếu khai báo thừa biến hoặc hằng chương trình dịch không báo sai
C2.3
Đáp ứng được nhiều nhu cầu sử dụng khác nhau Có thể xây dựng chương trình tối ưu khi chọn kiểu dữ liệu hợp lí
C2.4
Tối thiểu phải có ba loại biểu thức: số học, quan hệ và logic Mỗi loại biểu thức có những phép tính riêng
C2.5
Các đặc trưng cần phải nắm : Bộ nhớ dành cho một biến, phạm vi giá trị cần biểu diễn Kiểu nguyên : bộ nhớ 2 byte, phạm vi biểu diễn hơn 65000
C2.6
Trong một biểu thức bất kì, ngôn ngữ lập trình dùng duy nhất một loại ngoặc tròn để xác định trình tự thực hiện các phép tính
C2.7
Bất kì chương trình nào cũng chứa câu lệnh vào ra (trừ chương trình rỗng)
C2.8
Trang 4Học Tốt TIN HỌC 11
- Với chương trình biên dịch :thực hiện các bước sau cho đến khi không còn lỗi + Dịch chương trình
+ Tìm hiểu kĩ các thông báo lỗi + Sửa các lỗi đã được thông báo
- Với chương trình thông dịch : thực hiện chương trình với các bộ dữ liệu thử nghiệm khác nhau, đảm bảo sao cho mọi câu lệnh trong chương trình được thực hiện ít nhất một lần
C2.9
Một số công cụ phục vụ hiệu chỉnh chương trình khi thực hiện tìm và sửa lỗi: Chạy chương trình Ctrl + F9, Dịch chương trình : Alt + F9, Chạy từng bước : F8 , Theo dõi giá trị của các tham số : Ctrl + F7
C2.10
A) (x + y)/(x-z)
B) Exp(y)+
C) sqrt(x+sqrt(x+sqrt(x)))
C2.11
A) (a+ sin(x))/sqrt(sqr(a)+sqr(x)+1)
B) 2*exp(-x+y)/(sqr(x)+sqr(y))
C) Sqr (sin(x))/(y+0.5)
D) Exp(ln(-8)/3)/(1+exp(x))
C2.12
A) (P(P−A)(P−B)(P−C)
B)
1 2
2 + +
−
Y X
Y X
C)
2
3 sin 2
3 cos π +X πX
C2.13
A) sqr(X)+sqr(Y) <= sqr(R)
B) (u >= α)and (u <=β)
C) (N > 0)and (N <=100)
D) Abs(sin(PI*X/2)) < 1/2
C2.14
Tổng cộng : 44 byte
Integer : 2 byte x 4 biến = 8 byte
Real : 6 byte x 4 biến = 24 byte
Extended: 10 byte x 1 biến = 10 byte
Word : 2 byte x 1 biến = 2 byte
C2.15
Biến I khai báo 2 lần (không phân biệt hoa thường trong PASCAL) Ngoài ra biến PI khai báo sai PI là một hằng số do đó khai báo như sau :const PI=3.1416
C2.16
Khai báo không có tính nhất quán
Var C22,P,A,B1,Q : real;
N,K,L : integer;
C2.17
Trang 5A)
b
a
4
cos sin
B) + +1
c
b
3 lg(u + v +z
c c
ab1 =
M) ln(y(− x))
D)
2
abc
N)
x
y y
3
−
G)
b
a
xyz
O) 2(x1 −x2)+2(y1−y2)
C2.18
B) Biểu thức trên kiểm tra phương trình bậc hai ax2 + bx +c =0 có hai nghiệm thực phân biệt hay không
C2.19
Biểu thức logic : (n div 1000 >0 ) and (n div 10000 =0)
B ) kiểm tra xem n có 4 chữ số có nghĩa hay không.
C2.20
Biểu thức kiểm tra n là một số dương chẵn :
(n >0 ) and ( n mod 2 = 0)
C2.21
C2.22
program C2B22;
uses crt;
var a,b,c,d,x,y:real;
Begin
clrscr;
write('a,b,c,d,x: ');
readln(a,b,c,d,x);
y:=((a*x+b)*x+c)*x+d;
writeln('Ket qua:', y:10:3);
End.
C2.23
A) a+ b > c
C2.24
D) (x*x+y*y≥ 25)and (abs(x)≤5) and (abs (y)≤5)
C2.25
Kc:= 30* t – 10 * t = t *(30-10)= 20 * t
program C2B25;
uses crt;
var t,d:integer;
Begin
clrscr;
write('t = ');
readln(t);
d:=20*t;
Trang 6Học Tốt TIN HỌC 11
readln
End.
C2.26
C2.27
C2.28
C) y = x4 + 2x3 + 3x2 +4x + 5
C2.29
C2.30
C2.31
C2.32
program C2B32;
uses crt;
var xa,xb,ya,yb,xc,yc:real;
p,s,ha,hb,hc:real;
a,b,c:real;
Begin
clrscr;
write('toa do diem A : ');
readln(xa,ya);
write('toa do diem B : ');
readln(xb,yb);
write('Toa do diem C : ');
readln(xc,yc);
a:= sqrt(sqr(xb-xc)+sqr(yb-yc));
b:= sqrt(sqr(xa-xc)+sqr(ya-yc));
c:= sqrt(sqr(xb-xa)+sqr(yb-ya));
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
ha:=2*s/a;
hb:=2*s/b;
hc:=2*s/c;
writeln('Dien tich cua tam giac :',s:6:2);
writeln('ha=',ha:6:2, '; hb = ', hb:6:2, '; hc= ', hc:6:2);
readln
end.
C2.33
program C2B33;
uses crt;
var a,b:real;
result:real;
Begin
clrscr;
write('a,b = ');
readln(a,b);
result :=(sqr(a)+sqr(b))/2;
writeln('Trung binh cong cua cac binh phuong :', result:5:2);
result:=(abs(a) + abs(b))/2;
writeln('Trung binh cong cua cac gia tri tuyet doi: ', result:5:2); readln
end.
Trang 7program C2B34;
uses crt;
Var m,n:integer;
l:longint;
Begin
clrscr;
m:=0;
n:=0;
While (m=0) or (n=0) do
begin
write('M, N= ');
readln(m,n);
if(m=0) or (n=0) then
writeln('Hai so phai khac khong Moiban nhap lai');
end;
writeln(m, ' + ',n, ' = ', m+n);
writeln(m, ' - ',n, ' = ', m-n);
l:=m*n;
writeln(m,' * ',n, ' = ' ,l);
writeln(m,' DIV',n, ' = ',m div n);
readln
End.
C2.35
program C2B35;
uses crt;
var l,w,h:shortint;
s,v:longint;
Begin
clrscr;
writeln('Moi ban nhap chieu dai, chieu rong, chieu cao cua hinh
hop:');
readln(l,w,h);
s:=2*l*w+2*w*h+2*h*l;
v:=l*w*h;
writeln('Dien tich toan phan:',s);
writeln('The tich = ', v);
readln
End.
C2.36
program C2B36;
uses crt;
Var r1,r2:real;
s,sngt,snt:real;
Begin
clrscr;
write('Ban kinh cua vong tron nho va vong tron lon:');
readln(r2,r1);
sngt:=r1*r1*PI;
snt:=r2*r2*PI;
s:=sngt-snt;
writeln('Dien tich hinh vanh khuyen can tinh:', s:7:3);
readln
end.
C2.37
program C2B37;
Trang 8Học Tốt TIN HỌC 11
var a:real;
h,rngt,rnt:real;
s,sngt,snt:real;
Begin
clrscr;
write('moi ban nhap canh cua tam giac deu, a= ');
readln(a);
h:=a*sin(PI/3);
rnt:=h/3;
rngt:=2*rnt;
sngt:=rngt*rngt*PI;
snt:=rnt*rnt*PI;
s:=sngt-snt;
writeln('Dien tich vanh khuyen can tinh:',s:7:2);
readln
End.
C2.38
program C2B38;
uses crt;
var a,b,alpha:real;
c,S,P:real;
Begin
clrscr;
write('Moi ban nhap kich thuoc day nho, day lon va goa alpha:');
readln(b,a,alpha);
c:=(a-b)/(2*cos(alpha));
P:=a+b+2*c;
S:=(a+b)*c*sin(alpha)/2;
writeln('Chu vi hinh thang P =', p:8:4);
writeln('Dine tich hinh thang S = ', s:8:4);
readln
End.
C2.39
program C2B39;
uses crt;
Var n:integer;
result:byte;
p,q:byte;
Begin
clrscr;
write('Moi ban nhap mot so co 4 chu so:');
readln(n);
result:=0;
q:=n mod 10;
result:=result+q;
n:= n div 10;
q:=n mod 10;
result:=result+q;
n:=n div 10;
q:=n mod 10;
result:=result+q;
n:=n div 10;
result:=result + n;
writeln('Tong cac chu so cua N la : ', result);
readln
End.