Зробити в Паскалі для обчислення площі всієї поверхні (Sp=a*a*6) та об’єму куба (V=a3). В тексті програми необхідно викликати 1-шу при натиснення клавіші «1», або 2-гу при натиснення клавіші «2».
// Задача решается длинной арифметикой VAR a,b,c: String; i, s: LongInt;
Procedure Sum(var a, b: String); Var i, p, c1,c2: LongInt; Begin while (Length(a) < Length(b)) do a := '0' + a; while (Length(b) < Length(a)) do b := '0' + b;
p := 0; for i := Length(a) downto 1 do begin c1 := Ord(a[i]) - 48; c2 := Ord(b[i]) - 48;
a[i] := Chr(48 + (c1 + c2 + p)mod 10); p := (c1 + c2 + p) div 10; end;
if (p > 0) then a := Chr(p + 48) + a; End;
BEGIN a:= '2013'; b:= '2014';
for i := 3 to 2014 do begin Sum(a, b); c := a; a := b; b := c; end;
Writeln(c);
s := 0; for i := 1 to Length(c) do s := s + Ord(c[i]) - 48;
Я так понимаю, что рассматривается ситуация, когда текстовая информация имеется, а ее надо как-то проанализировать. Недостатки - сложно ставить пометки, мы привыкли делать пометки руками, и в электронном виде это все равно несколько неудобно. - самый большой недостаток, это то что нельзя выложить несколько листов и смотреть на них одновременно. Упираемся в размеры монитора и тд. - усталость глаз от долговременной работы с монитором
Опять таки ко всему можно при если часто приходится делать, но для одноразового случая лучше распечатать информацию
VAR
a,b,c: String;
i, s: LongInt;
Procedure Sum(var a, b: String);
Var i, p, c1,c2: LongInt;
Begin
while (Length(a) < Length(b)) do a := '0' + a;
while (Length(b) < Length(a)) do b := '0' + b;
p := 0;
for i := Length(a) downto 1 do begin
c1 := Ord(a[i]) - 48;
c2 := Ord(b[i]) - 48;
a[i] := Chr(48 + (c1 + c2 + p)mod 10);
p := (c1 + c2 + p) div 10;
end;
if (p > 0) then a := Chr(p + 48) + a;
End;
BEGIN
a:= '2013';
b:= '2014';
for i := 3 to 2014 do begin
Sum(a, b);
c := a; a := b; b := c;
end;
Writeln(c);
s := 0;
for i := 1 to Length(c) do
s := s + Ord(c[i]) - 48;
Writeln('Сумма цифр числа = ', s);
END.