tính chu vi và diện tích hình vuông biết độ dài cạnh a là số nguyên 0<a<246 yêu cầu : khai báo biến cần dùng trong chương trình.biến a nhận dữ liệu nào là hợp lí nhất.tính xem khai báo trên dung hết bao nhiêu byte bộ nhớ. Tin học 11
2 câu trả lời
Ta cần khai báo biến a, còn biến của chu vi và diện tích thì không nhất thiết phải khai báo, ta có thể tính trong phần in mà không cần khai báo và chương trình là:
uses crt;
var a:byte;
begin
clrscr;
write('Nhap do dai canh a: '); readln(a);
writeln('Chu vi la: ',a*4);
writeln('Dien tich la: ',a*a);
readln;
end.
Ta khai báo a:byte là hợp lí vì byte là dữ liệu nhỏ nhất mà thỏa mãn điều kiện 0<a<246. Và byte chỉ tốn 1 byte bộ nhớ.
Còn nếu cần khai báo thêm biến của chu vi(cv) và diện tích(dt) thì có chương trình như sau:
uses crt;
var a:byte;
cv,dt:word;
begin
clrscr;
write('Nhap do dai canh a: '); readln(a);
cv:=a*4;
dt:=a*a;
writeln('Chu vi la: ',cv);
writeln('Dien tich la: ',dt);
readln;
end.
Với chương trình trên ta sử dụng hết tất cả 5 byte bộ nhớ, 1 byte cho a; 2 byte cho cv và 2 byte cho diện tích.
Ta dùng word không dùng integer vì số lớn nhất a có thể là 243, dt là 243*243=59049 nên integer không chứa nổi, dùng word là vừa đủ để chứa.
Vậy nếu chỉ cần khai báo biến a thì dùng tất cả 1 byte
nếu cần khai báo thêm biến của chu vi và diện tích thì tốn tất cả 5 byte.
program warrio ;
uses crt;
var a,b,h:real;
begin
clrscr;
write('Nhap do dai canh a:'); readln(a);
write('Nhap do dai canh b:'); readln(b);
write('Nhap do dai duong cao h:'); readln(h);
writeln('Chu vi cua hinh binh hanh la: '(a+b)*2:4:2);
writeln('Dien tich cua hinh binh hanh la: ',a*h:4:2);
readln;
end.