Để ôn luyện sâu kiến thức, các em cần tích cực giải các bài tập trong sách giáo khoa và sách bài tập từ đó tìm ra phương pháp giải hay cho các dạng bài tập SGK, chuẩn bị tốt cho các kì thi sắp tới. Dưới đây là hướng dẫn giải bài tập Tin học 11 SGK trang 50, 51 đầy đủ nhất từ đội ngũ chuyên gia giàu kinh nghiệm chia sẻ miễn phí, hỗ trợ các em ôn luyện hiệu quả. Mời các em học sinh cùng quý thầy cô tham khảo dưới đây.
Hãy cho biết sự giống và khác nhau của hai dạng câu lệnh if-then.
Trả lời:
Nhắc lại hai dạng câu lệnh if-then.
Dạng thiếu: if<điều kiện> then <câu lệnh>;
Dạng đầy đủ: if<điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
Sự giống nhau: Điều kiện được tính và kiểm tra. Nếu điều kiện đúng thì nhánh câu lệnh sau then (<câu lệnh > trong dạng thiếu và <câu lệnh 1> trong dạng đầy đủ)
Sự khác nhau:
+ Ở dạng thiếu thì nếu điều kiện sai thì nó sẽ thoát khỏi cấu trúc rẽ nhánh .Thực hiện câu lệnh tiếp theo của chương trình.
+ Ở dạng đầy đủ thì nếu điều kiện sai nó sẽ thực hiện nhánh câu lệnh sau else (<câu lệnh 2> trong dạng đầy đủ). Sau đó mới thoát khỏi rẽ nhánh rồi thực hiện các câu lệnh tiếp theo của chương trình.
Câu lệnh ghép là gì? Tại sao lại phải có câu lệnh ghép?
Trả lời:
- Câu lệnh ghép là: Gộp một dãy các câu lệnh lại với nhau Trong Pascal câu lệnh ghép có dạng:
Begin
<các câu lệnh>;
End;
- Lý do có câu lệnh ghép: Vì sau một số từ khóa (như then hoặc else) phải là một câu lệnh. Nhưng trong nhiều trường hợp, các thao tác sau những tên dành riêng phức tạp, đòi hỏi không phải chỉ một mà là nhiều câu lệnh để mô tả. Trong những trường hợp như vậy ta phải sử dụng câu lệnh ghép.
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.
Trả lời:
- Có thể sử dụng câu lệnh while-do để thay cho câu lệnh for-do được. Vì ta có thể sử dụng các câu lệnh giúp thoát khỏi vòng lặp, hoặc có thể sử dụng những câu lệnh để thoát lặp.
- Sửa chương trình tong_1a;
program Tongtien;
uses crt;
var S:real;
a,n: integer;
begin
clrscr;
writeln('hay nhap gia tri cua a ');
readln(a);
S:=1.0/a;
while N<=100 do
begin
S:=S+1.0/(a+N);
N:=N+1;
end;
writeln('Tong S la:',S:8:4);
readln;
end.
Kết quả:
Giống với kết quả của chương trình sử dụng for
Trả lời:
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:
a)
program bai5;
uses crt;
var n:integer;
y:real;
begin
clrscr;
y:=0;
for n:=1 to 50 do
y:=y+n/(n+1);
writeln('y=',y:8:4);
readln;
end.
Kết quả:
b)
program bai5;
uses crt;
var n,dem:integer;
e:real;
gt:longint;
begin
clrscr;
e:=1;
gt:=1;
dem:=1;
while 1.0/gt >2*0.000001 do
begin
e:=e+1.0/gt;
gt:=gt*dem;
dem:=dem+1;
end;
writeln('e=',e:8:4);
readln;
end.
Kết quả:
Lập trình để giải bài toán cổ sau:
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 mỗi loại có bao nhiêu con ?
Trả lời:
Ta có tổng 2 loại là 36 con . Như vậy số con gà sẽ nằm trong khoảng từ 0 đến 36. Số còn lại sẽ là chó.
Theo giả thiết đề bài ta có số gà*2+số chó *4 =100.
Như vậy ta sẽ có code như sau:
program bai6;
uses crt;
var ga,cho:integer;
begin
clrscr;
for ga:=0 to 36 do
if ga*2+(36-ga)*4=100
then
writeln('so ga la ',ga,' so cho la ',36-ga);
readln;
end.
Kết quả:
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 ?”.
Trả lời:
program bai7;
uses crt;
var tcha,tcon,nam:integer;
begin
clrscr;
writeln('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.
Kết quả:
Mỗ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.
Trả lời:
program bai7;
uses crt;
var A,B,C:real;
thang:integer;
begin
clrscr;
writeln('nhap vao so tien A va so tien B');
readln(A,B);
C:=A*0.3/100;
thang:=0;
while(A<B) do
begin
A:=A+C;
thang:=thang+1;
end;
writeln('co the rut tien sau ',thang,' thang');
readln;
end.
►►Tải free hướng dẫn giải bài tập 1, 2, 3, 4, 5, 6, 7, 8 Tin học 11 SGK trang 50, 51 file word, pdf tại đường link dưới đây:
Hy vọng tài liệu sẽ hữu ích cho các em học sinh và quý thầy cô giáo tham khảo và đối chiếu đáp án chính xác.
►Ngoài ra các em học sinh và thầy cô có thể tham khảo thêm nhiều tài liệu hữu ích hỗ trợ ôn luyện thi môn tin học như đề kiểm tra học kì, 1 tiết, 15 phút trên lớp, hướng dẫn giải sách giáo khoa, sách bài tập được cập nhật liên tục tại chuyên trang của chúng tôi.