Написать функцию сложения двух чисел - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Составьте текст программы, содержащий две функции: 1. функцию сложения двух чисел, используя только прибавление единицы, реализованную с помощью циклов; 2. функцию сложения двух чисел, используя только прибавление единицы, реализованную с помощью рекурсии;

Решение задачи: «Написать функцию сложения двух чисел»

textual
Листинг программы
//в цикле
function sloz_1(a,b:integer):integer;
var i,k,s:integer;
begin
if b>0 then k:=1
else k:=-1;
s:=a;
for i:=1 to abs(b) do
s:=s+k;
sloz_1:=s;
end;
//рекурсия
function Sloz_2(a,b:integer):integer;
begin
if a=0 then Sloz_2:=b
else if a>0 then Sloz_2:=Sloz_2(a-1,b+1)
else Sloz_2:=Sloz_2(a+1,b-1)
end;
 
var a,b:integer;
begin
write('a=');
readln(a);
write('b=');
readln(b);
writeln('Циклом a+b=',sloz_1(a,b));
writeln('Рекурсивно a+b=',sloz_2(a,b));
end.

Объяснение кода листинга программы

  1. В первой функции sloz_1 объявлены три переменные: a, b и s. Переменная s инициализируется значением a.
  2. Если значение b больше нуля, то переменной k присваивается значение 1. В противном случае, переменной k присваивается значение -1.
  3. В цикле for переменная s инициализируется значением a. Затем, для каждого значения i от 1 до абсолютного значения b, к переменной s прибавляется значение k.
  4. По завершении цикла, значение переменной s присваивается переменной sloz_1.
  5. Во второй функции sloz_2 объявлены две переменные: a и b.
  6. Если значение a равно 0, то переменной Sloz_2 присваивается значение b.
  7. Если значение a больше нуля, то функция вызывается рекурсивно, передавая в качестве аргументов a-1 и b+1.
  8. Если значение a меньше нуля, то функция вызывается рекурсивно, передавая в качестве аргументов a+1 и b-1.
  9. По завершении функции, значение переменной Sloz_2 присваивается переменной sloz_2.
  10. В основной части программы, с помощью функции readln считываются значения a и b с консоли.
  11. Затем, выводятся результаты вычисления суммы с помощью функций sloz_1 и sloz_2.
  12. Завершается программа выводом сообщения о том, что цикл и рекурсия завершились.

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы