Hãy cho biết sự giống và khác nhau của hai dạng câu lệnh if-then.
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 ghép là gì? Tại sao lại phải có câu lệnh ghép?
Câu lệnh ghép là một câu lệnh được hợp thành từ nhiều câu lệnh thành phần (đơn hoặc kép). Câu lệnh ghép nhằm thực hiện thao tác gồm nhiều thao tác thành phần. Mỗi thao tác thành phần tương ứng với một câu lệnh đơn hoặc câu lệnh ghép khác. Về mặt ngôn ngữ lập trình, câu lệnh ghép là một trong các yếu tố để tạo khả năng chương trình có cấu trúc.
Câu lệnh ghép trong Pascal.
Begin
<các câu lệnh>
End;
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.
Có thể thay thế đoạn chương trình chứa câu lệnh for-đo (dạng lặp tiến) for <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
bằng đoạn chương trình chứa câu lệnh while-do như sau:
i:= <giá trị đầu>;
while <i< = <giá trị cuối> do
begin
<câu lệnh>;
<tăng i một đơn vị>,
end;
Như vậy, chương trình tính Tong_la viết bằng lệnh for-do
program Tong__la;
uses crt;
var S:real,
a, N: integer;
begin
clrscr;
write('Hay nhap gia tri a vao!'); readln(a);
S:= 1.0/a;
for N:=1 to 100 do
S: = S+1.0/ (a+N);
writeln('Tong S la:', S:8:4);
readln;
End.
được viết lại bằng lệnh while-do như sau:
Program Tong_la;
uses crt;
var S:real;
a, N: integer;
Begin
clrscr;
write('Hay nhap gia tri a vao!'); 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.
Viết câu lệnh rẽ nhánh tính :
Câu lệnh rẽ nhánh như sau:
a)
If (sqr(x)+sqr(y))<=1 Then z:=sqr(x)+sqr(y)
else if y>=x then z:=x+y
else z:=0.5;
b)
If sqr(x-a)+sqr(y-b)<=sqr(r) Then z:=abs(x)+abs(y)
Else z:=x+y;
Trả lời bởi Nguyễn Lê Phước Thịnha) Lập trình tính : \(\sum\limits^{50}_{n=1}\frac{n}{n+1}\)
b) \(e\left(n\right)=1+\frac{1}{1!}+\frac{1}{2!}+...+\frac{1}{n!}\)1+..., cho đến khi \(\frac{1}{n!}\)<2x10-6
Đưa giá trị e(n) ra màn hình
a)
program Tong_5a;
uses crt;
var y: real;
n: byte;
Begin
clrscr
y:=0;
for n :=1 to 50 do
y:=y + n / ( n +1 ) ;
writeln('Tong y la: y:0:18);
readln;
End.
Nếu biến y khai báo theo kiểu extended thì chương trình tính tổng y sẽ là như sau:
($e+, N+}
program Tong_5a;
uses crt;
var y:real;
n:byte;
Begin
clrscr;
y:= 0;
for n:= 1 to 50 do
y:= y + n/(n+1);
writeln('Tong y la:', y:0:18);
readln;
End.
b)
program Tong_5b;
uses crt;
var n:longint;
e, sh:real;
Begin
clrscr;
sh:=1/2;
n:= 2;
e:= 2 + sh;
while sh>= 2*1E-16 do
begin
inc(n);
sh:=sh*(1/n);
e:= e + sh;
end;
writeln('Gia tri e(n)la: ',e:10:6);
readln;
End.
Nhập từ bàn phím tuổi của cha và con (hiện tại tuổi cha lớn hơn hai lần tuổi con và tuổi cha hơn tuổi con ít nhất là 25 ). Đưa ra màn hình câu trả lời cho câu hỏi “Bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con ?”.
program bai7;
uses crt;
var tcha,tcon,nam:integer;
begin
clrscr;
write('nhap vao tuoi cha va tuoi con '); readln(tcha,tcon);
nam:=0;
while(tcha<>tcon*2) do
begin
tcha:=tcha+1;
tcon:=tcon+1;
nam:=nam+1;
end;
writeln('sau ',nam,' nam nua thi tuoi cha gap 2 lan tuoi con');
readln;
end.
Trả lời bởi Nguyễn Lê Phước ThịnhMỗi người gửi tiết kiệm không kì hạn với số tiền A đồng với lãi suất 0.3% mỗi tháng. Hỏi sau bao nhiêu tháng, người đó rút hết tiền thì sẽ nhận được số tiền ít nhất là B đồng? Biết rằng việc gửi tiết kiệm không kì hạn thì lãi không được cộng vào vốn.
program Gui_tiet_kiem;
uses crt;
const laisuat = 0.003;
var tiengui, tienrutve, luu: real;
thang : integer;
Begin
clrscr;
write ('Nhap vao so tien gui:'),
readln(tiengui);
luu:= tiengui;
write('So tien co khi rut ve: ’);
readln(tienrutve);
thang : = 0 ;
while Tiengui < tienrutve> do begin
tiengui:= tiengui + tiengui* laisuat ; thang:= thang + 1 ;
end;
write('Gui',luu: 0 : 0, ' dong, sau thang, thang');
writeln('se nhan duoc so tien',tienrutve:0 : 0,' dong');
readln
End .