Bảng chữ cái: -Là tập các kí hiệu dùng để viết chương trình.. -Dựa vào cú pháp, người lập trình và chương trình dịch biết tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ,tổ hợp nào
Trang 1I Lí thuyết:
Câu 1: Mỗi ngôn ngữ lập trình bao gồm mấy thành phần? Nêu rõ?
-Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản: bảng chữ cái, cú pháp và ngữ nghĩa
a Bảng chữ cái:
-Là tập các kí hiệu dùng để viết chương trình
- Trong ngôn ngữ Pascal bảng chữ cái gồm:
+26 chữ cái thường và chữ cái in hoa trong bảng chữ cái tiếng Anh
+10 chữ số thập phân Ả Rập
+25 kí tự đặc biệt
b Cú pháp:
-Là bộ qui tắc dùng để viết chương trình cho ta biết cách viết một chương trình hợp lệ
-Dựa vào cú pháp, người lập trình và chương trình dịch biết tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ,tổ hợp nào không hợp lệ, nhờ đó có thể mô tả chính xác thuật toán để máy thực hiện
- Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập chương trình biết , chỉ có các chương trình không còn lỗi cú pháp mới có thể được dịch sang ngôn ngữ máy
c Ngữ nghĩa:
-Xác định ý nghĩa 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ó
- Lỗi ngữ nghĩa chỉ được phát hiện khi thực hiện chương trình trên dữ liệu cụ thể
Câu 2: Nêu quy tắc đặt tên của các đối tượng trong Turbo Pascal?
-Độ dài :<=127 kí tự
-Bao gồm: chữ cái, chữ số, dấu gạch dưới
-Bắt đầu phải bằng chữ cái hoặc dấu gạch dưới
Câu 3: Hằng là gì? Biến là gì? Cho biết sự khác nhau giữa hằng và biến, cách khai báo chúng?
-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
-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
-Sự khác nhau:
+Hằng: Giá trị của hằng không thể thay đổi trong quá trình thực hiện chương trình
+Biến: giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình
- Cách khai báo hằng:
const <tên hằng>=<giá trị của hằng>;
- Cách khai báo biến:
Var<tên biến>:<kiểu dữ liệu>;
Câu 4: Cấu trúc chương trình gồm mấy phần? Trình bày chi tiết các thành phần trong cấu trúc đó?
- Một chương trình viết bằng ngôn ngữ lập trình bậc cao thông thường gồm có: 2 phần là phần khai báo và phần thân chương trình, trong đó phần thân bắt buộc phải có.
-Phần khai báo:
+Khai báo tên chương trình:
Cú pháp: program <tên chương trình>;
+Khai báo thư viện:
Cú pháp: Uses <tên thư viện>;
+Khai báo hằng:
Cú pháp: Const <tên hằng> = <giá trị>;
+Khai báo biến:Tất cả biến dùng trong chương trình đều phải đặt tên và khai báo cho chương trình biết và xử lí Biến chỉ nhận một giá trị tại mỗi thời điểm được gọi là biến đơn
Cú pháp: Var<tên biến>:<kiểu dữ liệu>;
- Phần thân chương trình: Dãy lệnh trong phạm vị được xác định bởi cặp dấu hiệu mở đầu và kết thúc tạo thành thân chương trình
Trong Pascal:
Trang 2[<dãy lệnh>]
End.
Câu 5: Hãy nêu các kiểu dữ liệu chuẩn và giá trị bộ nhớ cần để lưu trữ trong Pascal?
kiểu nguyên
Câu 6: Biểu thức số học là gì? Cách viết biểu thức số học, hàm số học?
-Biểu thức số học có thể là một hằng số học một biến số học, một tập hữu hạn các hằng, các biến, các hàm số học liên hệ với nhau theo phép toán số học và có sự tham gia của căp dấu ngoặc tròn
-Cách viết biểu thức số học:
+Chỉ dùng cặp ngoặc tròn để xác định trình tự thực hiện phép toán trong trường hợp cần thiết
+Viết lần lượt từ trái qua phải
+Không được bỏ qua dấu (*) trong tích
-Cách viết hàm số học:
Cú pháp: <tên hàm>(<đối số>);
Câu 7: Biểu thức logic là gì? Hãy cho biết các giá trị trả về của biểu thức logic?
-Biểu thức logic đơn giản là biến hoặc hằng logic
-Biểu thức logic là các biểu thức logic đơn giản, các biểu thức quan hệ liên kết với nhau bởi phép toán logic Giá trị trả về của biểu thức logic là: true hoặc false
Câu 8: Nêu kí hiệu và cách viết câu lệnh gán?
-Kí hiệu: :=
-Lệnh gán: Cú pháp: <tên biến>:=<biểu thức>;
Trong đó: tên biến là tên của biến đơn, kiểu của giá trị biểu thức phải phù hợp với kiểu của biến
Câu 9: Trình bày thủ tục nhập dữ liệu từ bàn phím và in dữ liệu ra màn hình?
-Nhập dữ liệu từ bàn phím:
Cú pháp:
Read(<danh sách biến vào>);
Hoặc
Readln(<danh sách biến vào>);
Trong đó: danh sách biến vào là 1 hoặc nhiều biến (trừ biến kiểu boolean) Nếu nhiều biến thì cách nhau bởi dấu phẩy
-Đưa dữ liệu ra màn hình:
Cú pháp:
write(<danh sách kết quả>);
hoặc
writeln(<danh sách kết quả>);
Trong đó: danh sách kết quả có thể là biến đơn, biểu thức, hoặc hằng, hoặc tên hàm
Câu 10: Trình bày và nêu ý nghĩa của câu lệnh If-Then dạng thiếu và dạng đủ? Cho ví dụ?
-Câu lệnh if-then:
+Dạng thiếu:
if <điều kiện> then <câu lệnh>;
Trang 3Ý nghĩa: Điều kiện sẽ được tính và kiểm tra Nếu điều kiện đúng (có giá trị True) thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ được bỏ qua
+Dạng đủ:
if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Ý nghĩa: Điều kiện sẽ được tính và kiểm tra Nếu điều kiện đúng thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện
Trong đó:
+ Điều kiện: là biểu thức quan hệ hoặc biểu thức logic trả về 1 trong 2 giá trị True/False
+ Câu lệnh, câu lệnh 1, câu lệnh 2: là câu lệnh đơn hoặc câu lệnh ghép
-Ví dụ: Viết câu lệnh kiểm tra tính chẵn lẻ của một số nguyên cho trước
+Dạng thiếu:
If a mod 2 = 0 then write (a,‘la so chan’);
If a mod 2 <> 0 then write (a,‘la so le);
+Dạng đủ:
If a mod 2 = 0 then write (a,‘la so chan’) else write (a,‘la so le);
II Phần bài tập
1 Đổi biểu thức viết trong toán học sang biểu thức viết trong NNLT
a (x+y)/(2+x/y)
b (a+4)*(c+2+e)/(r/2/h-9*(a-1))
c (5*a*a+b)/(x-y)
d (2*sin(x)-cos(x)*cos(x))/(4*y+sqrt(2))
2 Viết cấu trúc rẽ nhánh cho 1 biểu thức cho trước
a If (x*x+y*y)<=1 then y:=x*x+y*y else y:=x+y;
b If x<y then y:= abs(y) –abs(x);
If x>y then y:= abs(y)+abs(x);
If x=y then y:=0;
3 Viết chương trình pascal hoàn chỉnh
Bài 1: viết chương trình giải phương trình bậc 1(ax+b=0)
Program giaiphuongtrinh;
Uses crt;
Var a,b,x:real;
Begin Clrscr;
Writeln(‘a, b: ‘);
Readln(a,b);
If (a=o)and(b=0) then writeln(‘phuong trinh vo so nghiem ‘);
If (a=o)anh(b<>0) then writeln(‘phuong trinh vo nghiem ‘);
If a<>0 then Begin x:=-b/a;
writeln(‘ x= ‘, x:6:2);
end;
readln end
Bài 2: viết chương trình giải phương trình bậc 2 (ax^2+bx+c=0)
Trang 4Program giaiphuongtrinh;
Uses crt;
Var a,b,c,D,x1,x2:real;
Begin
Clrscr;
Writeln(‘a, b, c: ‘);
Readln(a,b,c);
D:=b*b - 4*a*c;
If D<0 then writeln(‘phuong trinh vo nghiem ‘)
Else
Begin
x1:= (-b - sqrt(D))/2/a;
x2:= -b/a – x1;
writeln(‘x1= ‘, x1:6:2, ‘x2= ‘, x2:6:2);
end;
readln
end
Bài 3: tìm giá trị lớn nhất trong 3 số a,b,c
Program timsolonnhat;
Uses crt;
Var a,b,c,max:real;
Begin
Clrscr;
Writeln(‘a, b, c: ‘);
Readln(a,b,c);
max:=a;
if b>=max then max:=b;
if c>=max then max:=c;
writeln(‘gia tri lon nhat la: ‘, max:6:2);
readln
end
Bài 4: nhập vào tâm và bán kính của 1 đường tròn Sau đó nhập vào 1 điểm A(x,y) bất kì và kiểm tra nó có thuộc đường tròn hay không?
Program kiemtradiemthuocduongtron;
Uses crt;
Var a,b,R,x,y:real;
Begin
Clrscr;
Writeln(‘nhap toa do tam duong tron: ‘);
Readln(a,b);
Writeln(‘nhap ban kinh duong tron: ‘);
Readln(R);
Writeln(‘nhap toa do diem A: ‘);
Readln(x,y);
If sqr(R)=sqr(x-a)+sqr(y-b) then writeln(‘diem A thuoc duong tron ‘)
Else writeln(‘diem A khong thuoc duong tron ‘);
Readln
Trang 5Bài 5: viết chương trình tính tiền điện cho 1 hộ dân sử dụng điện, chỉ số đầu, chỉ số sau là các
số nguyên dương được nhập từ bàn phím.
(cách tính tiền điện: 100KW đầu tính giá 12/KW, 50KW tiếp theo tính giá 15/KW, số còn lại tính 20/KW (với 12, 15, 20 lần lượt là 1200đ, 1500đ, 2000đ) In ra màn hình số tiền hộ dân dùng điện phải trả.)
Program tinhtien;
Uses crt;
Var N:word;
T:longint;
Begin
Clrscr;
Writeln(‘nhap so dien: ‘);
Readln(N);
If N<=100 then T:=N*1200;
If ((100<N) and (N<=150)) then T:=100*1200 + (N-100)*1500;
If N>150 then T:= 100*1200 + 50*1500 + (N-150)*2000;
Writeln(‘so tien phai tra: ‘,T);
Readln
End
Bài 6: viết chương trình tính lương cho 1 người công nhân Ngày công và lương căn bản được nhập vào từ bàn phím Biết rằng: lương tháng=ngày công*lương căn bản; tạm ứng: nếu ngày công làm việc từ 20 ngày trở lên được tạm ứng 2/3*lương tháng, ngược lại thì không được tạm ứng; còn lại= lương tháng- tạm ứng.
Program tinhtien;
Uses crt;
Var nc,lcb,lt,tu,cl:real;
Begin
Clrscr;
Writeln(‘nhap ngay cong, nhap luong can ban: ‘);
Readln(nc,lcb);
lt:=nc*lcb;
if nc>=20 then tu:=2/3*lt
else tu:=0;
cl:=lt-tu;
writeln(‘luong cho 1 cong nhan: ‘,cl:6:2);
readln
end
Câu 7: viết chương trình nhập vào số tiền nguyên, thực hiện việc đổi tiền sao cho số tiền là ít nhất với các tờ tiền có mệnh giá 50, 20, 10, 5, 2, 1( tương ưng 50 ngàn, 20 ngàn, ) thông báo số tiền từng loại
Program doitien;
Uses crt;
Var N,a,b,c,d,e,f: word;
Trang 6Clrscr;
Writeln(‘nhap so tien: ‘);
Readln(N);
a:=N div 50;
b:=(N-50*a) div 20;
c:=(N-50*a-20*b) div 10;
d:=(N-50*a-20*b-10*c) div 5; e:=(N-50*a-20*b-10*c-5*d) div 2; f:= N-50*a-20*b-10*c-5*d-2*e; writeln(‘so to 50k: ‘,a);
writeln(‘so to 20k: ‘,b);
writeln(‘so to 10k: ‘,c);
writeln(‘so to 5k: ‘,d);
writeln(‘so to 2k: ‘,e);
writeln(‘so to 1k: ‘,f);
readln
end