Find Freedom Through Forgiveness From God!
1. Hãy cho biết sự giống và khác nhau của hai dạng câu lệnh if-then
Câu lệnh if-then có 2 dạng: dạng thiếu và dạng đủ. Việc giống và khác nhau giữa 2 dạng này xoay quanh cú pháp và ngữ nghĩa.

Về cú pháp: 2 dạng này giống nhau là đều có điều kiện (là một biểu thức logic) nằm sau if và một câu lệnh (có thể là câu lệnh ghép) nằm sau then. Khác nhau, chỉ có dạng đủ mới có else và sau else còn có câu lệnh khác (có thể là câu lệnh ghép). Như vậy, dạng thiếu dùng 1 điều kiện, 1 câu lệnh; dạng đủ dùng 1 điều kiện, 2 câu lệnh. Ngoài ra, dấu chấm phẩy “;” kết thúc câu lệnh if-then nằm sau câu lệnh sau else của dạng đủ và nằm sau câu lệnh sau then của dạng thiếu.

Về ngữ nghĩa: 2 dạng này giống nhau là đều kiểm tra điều kiện và thực hiện câu lệnh sau then nếu điều kiện đúng (true). Khác nhau, ở dạng đủ, nếu điều kiện sai thì thực hiện câu lệnh nằm sau else.

2. Câu lệnh ghép là gì? Tại sao phải có câu lệnh ghép?
Câu lệnh ghép tập hợp 2 hay nhiều câu lệnh nằm giữa cặp begin … end; câu lệnh ghép hay còn gọi là khối lệnh (block).

Câu lệnh ghép dùng để gộp các câu lệnh đơn lại nhằm thể hiện nhiều thao tác với nhiều biến, giúp không phải dùng đi dùng lại nhiều lần các câu lệnh rẽ nhánh, lệnh lặp.

3. Có thể dùng câu lệnh while-do để thay cho câu lệnh for-do được không? Nếu được, hãy thực hiện điều đó với chương trình Tong_1a.
Hoàn toàn có thể dùng câu lệnh while-do để thay thế cho câu lệnh for-do, ví dụ sau đây thể hiện điều đó:
Mã:
program Tong_1a;
uses crt;
var S:real;
a,N:integer;
begin
clrscr;
write('Hay nhap gia tri a: ');
readln(a);
S:=1.0/a;
N:=1;
while (N<100) do
begin
S:=S+1.0/(a+N);
N:=N+1;
end;
writeln('Tong S la: ',S:8:4);
readln;
end.

4. Viết câu lệnh rẽ nhánh tính:
a.
Mã:
program za;
uses crt;
var x,y,x2,y2,z:real;
begin
clrscr;
write('x,y: ');
readln(x,y);
x2:=x*x;
y2:=y*y;
if(x2+y2<=1)then
z:=x2+y2;
if(x2+y2>1)and(y>=x)then
z:=x+y;
if(x2+y2>1)and(y<x)then
z:=0.5;
write('z = ',z:8:3);
readln;
end.

b. Dùng công thức tính khoảng cách d từ điểm (x,y) đến tâm (a,b), rồi so sánh d với bán kính r, nếu d=r thì điểm (x,y) thuộc đường tròn tâm (a,b) bán kính r, ngược lại thì không
Mã:
program zb;
uses crt;
var x,y,r,a,b,d,z:real;
begin
clrscr;
write('Nhap diem (x,y): ');
readln(x,y);
write('Nhap tam (a,b): ');
readln(a,b);
write('Nhap ban kinh r (r>0): ');
readln(r);
d:=sqrt(sqr(x-a)+sqr(y-b));
if(d=r)then
z:=abs(x)+abs(y)
else
z:=x+y;
write('z= ',z:8:2);
readln;
end.

5. Lập trình tính:
a.
Mã:
program Cau5aTrang51;
uses crt;
var Y:real;
n:integer;
begin
clrscr;
Y:=0;
for n:=1 to 50 do
Y:=Y+(n/(n+1));
write('Y= ',Y:8:2);
readln
end.

b.
Mã:
program Cau5bTrang51;
uses crt;
var e,u:real;
n:integer;
begin
clrscr;
n:=1;
u:=1/n;
e:=1;
while not(u<2.0E-6)do
begin
e:=e+u;
n:=n*(n+1);
u:=1/n;
end;
write('e(n)= ',e:8:2);
readln;
end.

6. Lập trình để giải bài toán cổ.
Nếu giải bài toán này bằng hệ phương trình bậc nhất 2 ẩn số thì không hay bằng cách dùng vòng lặp while . Hiển nhiên căn cứ vào gà có 2 chân, chó có 4 chân, có đến 36 con, phải có 2 loài gộp chung thì mới ra 100 chân, vì vậy ta dùng 2 biến, cho một biến ga tự chạy tăng dần và biến cho = 36 – ga, nếu thỏa điền kiện ga*2+cho*3=100 thì dừng vòng lặp.
Mã:
program GaCho;
uses crt;
var ga,cho:integer;
begin
clrscr;
ga:=1;
cho:=36-ga;
while ga*2+cho*4<>100 do
begin
ga:=ga+1;
cho:=36-ga;
end;
writeln('Ga : ',ga:3);
write('Cho: ',cho:3);
readln;
end.

7. Lập trình:
Ta chú ý vào điều kiện Input, dùng vòng lặp while để tìm số năm.
Mã:
program Tuoi;
uses crt;
var tcha,tcon,dem:integer;
begin
clrscr;
while not((tcha>tcon*2)and(tcha-tcon>=25)) do
begin
write('Nhap tuoi cha, tuoi con : ');
readln(tcha,tcon);
end;
dem:=0;
while not(tcha=tcon*2) do
begin
tcha:=tcha+1;
tcon:=tcon+1;
dem:=dem+1;
end;
write('Tuoi cha gap doi tuoi con sau ',dem,' nam');
readln;
end.

8. Lập trình
Mã:
program Lai;
uses crt;
var A,B:real;
dem:integer;
begin
clrscr;
write('Nhap so tien A: ');
readln(A);
write('Nhap so tien tong cong B: ');
readln(B);
dem:=0;
while B>A+dem*A*0.003 do
begin
dem:=dem+1;
end;
write('Ban nhan duoc ',B:8:3,' sau ',dem,' thang');
readln;
end.

Chúc các bạn thành công nhé!

1. Hãy cho biết sự khác nhau giữa hằng có đặt tên và biến.
- 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, để tiện dùng thì người lập trình đặt cho hằng một cái tên gọi là hằng có đặt tên.

- 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.

Xem chi tiết tại trang 12 và trang 19 SGK.

2. Tại sao phải khai báo biến?
- Ta phải khai báo biến để chương trình biết để lưu trữ và xử lí. Khi khai báo biến thì gồm có phần tên và kiểu dữ liệu, tên biến dùng để gọi nó ra khi cần, kiểu dữ liệu của biến để báo cho chương trình cấp phát bộ nhớ cho biến. Xem chi tiết tại bài 5 trang 22-23 SGK.

3. Trong Pascal, nếu một biến chỉ nhận giá trị nguyên trong phạm vi từ 10 đến 25532 thì biến đó có thể được khai báo bằng các kiểu dữ liệu nào?
Đó là các kiểu integer, word, longint.

4. Biến P có thể nhận các giá trị 5; 10; 15; 20; 30; 60; 90 và biến X có thể nhận các giá trị 0,1; 0,2; 0,3; 0,4; 0,5. Khai báo nào trong các khai báo sau là đúng?
a) var X,P:byte;
b) var P,X:real;
c) var P:real;
X:byte;
d) var X:real;
P:byte;

- Khai báo đúng là d

5. Để diện tích S của hình vuông có cạnh A với giá trị nguyên nằm trong phạm vi từ 100 đến 200, cách khai báo S nào dưới đây là đúng và tốn ít bộ nhớ nhất?
a) var S:integer;
b) var S:real;
c) var S:word;
d) var S:longint;
e) var S:boolean;
- Khai báo a là đúng và tốn ít bộ nhớ nhất.

6. Biểu thức được viết như sau:
(1+z)*(x+y/z)/(a-(1/(1+x*x*x)))

7. Câu này quá dễ tự làm, tham khảo trang 25-26 SGK.

8. Hãy viết biểu thức lôgic cho kết quả true khi tọa độ (x,y) là điểm nằm trong vùng gạch chéo kể cả biên của các hình 2.a và 2.b SGK trang 36.
- Nhìn hình 2.a, ta thấy biên bên trái thuộc (nằm trên) đường thẳng có phương trình y=-x, biên bên phải thuộc (nằm trên) đường thẳng có phương trình y=x, vùng tam giác bên trái trục tung (Oy) có đặc điểm khi x chạy từ -1 đến 0 thì tương ứng y chạy từ 1 đến 0, vùng tam giác bên phải trục tung Oy có đặc điểm khi x chạy từ 0 đến 1 thì tương ứng y chạy từ 0 đến 1. Kết hợp lại là một vùng giá trị, như vậy ta phải dùng bất đẳng thức chứa x và y. Bất đẳng thức như sau:

Hình tam giác bên trái Oy: y≥-x ^ 0≤y≤1

Hình tam giác bên phải Oy: y≥x ^ 0≤y≤1

Ta có biểu thức lôgic trong Pascal như sau:

(y>=-x and y>=x and y>=0 and y<=1)

Ngoài ra còn nhiều cách viết khác, các bạn có thể tự viết ra.

9. Hãy viết chương trình nhập số a (a>0) rồi tính và đưa ra diện tích phần được gạch chéo trong hình 3 (trang 36 SGK), kết quả làm tròn đến 4 chữ số thập phân).
- Nó đưa cái hình thì có vẻ phức tạp nhưng thực ra rất đơn giản, bạn để ý rằng diện tích phần gạch chéo bằng ½ diện tích hình tròn tâm O bán kính a. Chúng ta chỉ cần tính diện tích hình tròn tâm O bán kính a là xong.

Đoạn code tham khảo như sau:

program Cau9trang36;

uses crt;

var a,S:real;

begin

clrscr;

write('Nhap so a (a>0) : ');

readln(a);

S:=Pi*a*a/2;

write('Dien tich phan gach cheo S= ',S:6:4);

readln;

end.


Chú ý: Pi là hàm chuẩn cho sẵn trả về giá trị của л = 3.1415… Tham khảo tại phần 4 Phụ lục B trang 130

Nếu không muốn dùng Pi thì bạn có thể khai báo một hằng với giá trị tương tự.

10. Lập trình tính và đưa ra màn hình vận tốc v khi chạm đất của một vật rơi từ độ cao h, biết rằng v=sqrt(2*g*h), trong đó g là gia tốc rơi tự do và g=9,8m/s2. Độ cao h (tính bằng m) được nhập vào từ bàn phím.
Câu này cũng không có gì khó, code tham khảo như sau:

program Cau10trang36;

uses crt;

var h,v:real;

const g=9.8;

begin

clrscr;

write('Nhap do cao h (h>0) : ');

readln(h);

v:=sqrt(2*g*h);

write('Van toc v = ',v:6:4);

readln;

end.

1. Tại sao người ta phải xây dựng các ngôn ngữ lập trình bậc cao?
- Có nhiều nguyên nhân khiến người ta phải xây dựng các ngôn ngữ lập trình bậc cao. Nguyên nhân căn bản nhất đó là do ngôn ngữ lập trình bậc thấp (như ngôn ngữ máy, hợp ngữ …) không thuận lợi cho con người trong việc viết, đọc và hiểu chương trình. Các lệnh của ngôn ngữ lập trình bậc thấp rất khó học và khó dùng bởi vì nó không gần với ngôn ngữ tự nhiên; đồng thời, ngôn ngữ lập trình bậc thấp hoàn toàn phụ thuộc vào hệ thống phần cứng của máy tính. Nguyên nhân thứ hai là ngôn ngữ lập trình bậc cao có rất nhiều ưu điểm so với ngôn ngữ lập trình bậc thấp. Khắc phục được các nhược điểm của ngôn ngữ lập trình bậc thấp, ngôn ngữ lập trình bậc cao rất dễ viết, dễ đọc và dễ hiểu, thuận lợi cho con người học và sử dụng để lập trình. Ngôn ngữ lập trình bậc cao gần với ngôn ngữ tự nhiên, độc lập với phần cứng máy tính, và có tính tin cậy cao. Để mô tả (diễn đạt) một thuật toán, thay vì sử dụng hàng chục, hàng trăm câu lệnh bằng ngôn ngữ lập trình bậc thấp, ta chỉ cần dùng một vài dòng lệnh bằng ngôn ngữ lập trình bậc cao. Đó là ví dụ dễ hiểu nhất.

2. Chương trình dịch là gì? Tại sao cần phải có chương trình dịch?
- Chương trình dịch là chương trình có chức năng chuyển đổi chương trình nguồn được viết bằng ngôn ngữ lập trình bậc cao sang chương trình đích được thể hiện bằng ngôn ngữ máy và chương trình đích này có thể chạy (thực thi) trên máy tính được.

Cần phải có chương trình dịch bởi vì máy tính không hiểu được chương trình viết bằng ngôn ngữ lập trình bậc cao, mà máy tính không hiểu được thì chương trình đó không thể chạy được. Như vậy, ta cần có chương trình dịch để nó dịch sang ngôn ngữ máy để máy tính hiểu được và thực thi được.

3. Biên dịch và thông dịch khác nhau như thế nào?
- Về căn bản, chương trình biên dịch và chương trình thông dịch khác nhau về các bước thực thực hiện của nó. Xem chi tiết sách Tin học 11, trang 5.

4. Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn.
- Tên dành riêng được quy định bởi ngôn ngữ lập trình, nó được dùng với ý nghĩa riêng xác định, không được sử dụng với ý nghĩa khác.

- Tên chuẩn và ý nghĩa của nó được quy định bởi các thư viện của ngôn ngữ lập trình, có thể khai báo lại và sử dụng chúng với ý nghĩa khác.

Các bạn cứ tạm hiểu thư viện của ngôn ngữ lập trình là nơi chứa các chương trình con được tạo sẵn để hỗ trợ người lập trình tự do sử dụng chúng mà không cần phải lập trình lại.

5. Hãy tự viết ra ba tên đúng theo quy tắc của Pascal.
- ví dụ như: tong, _abc, kt

6. Hãy cho biết những biểu diễn nào dưới đây không phải là biểu diễn hằng trong Pascal và chỉ rõ lỗi trong từng trường hợp:
a) 150.0
- Đúng, đây là hằng số học

b) -22
Đúng, đây là hằng số học

c) 6,23
Sai, hằng số học trong Pascal không dùng dấu phẩy “,” mà dùng dấu chấm “.” để phân cách phần nguyên và phần thập phân

d) ‘43’
Đúng, đây là hằng xâu

e) A20
Sai, hằng xâu mà không dùng cặp dấu nháy đơn ‘ ‘, phải là ‘A20’.
A20 là một tên trong NNLT pascal nên có thể là biến...

f) 1.06E-15
Đúng. Hằng số thực

g) 4+6
Đúng, Vì giá trị luôn luôn không đổi (=10)

h) ‘C
Sai, hằng xâu thiếu dấu nháy đơn kết thúc xâu

i) ‘TRUE’
Đúng, đây là hằng xâu


Free mobile website builder