Написать функцию сложения двух чисел - 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.
Объяснение кода листинга программы
- В первой функции
sloz_1
объявлены три переменные:a
,b
иs
. Переменнаяs
инициализируется значениемa
. - Если значение
b
больше нуля, то переменнойk
присваивается значение 1. В противном случае, переменнойk
присваивается значение -1. - В цикле
for
переменнаяs
инициализируется значениемa
. Затем, для каждого значенияi
от 1 до абсолютного значенияb
, к переменнойs
прибавляется значениеk
. - По завершении цикла, значение переменной
s
присваивается переменнойsloz_1
. - Во второй функции
sloz_2
объявлены две переменные:a
иb
. - Если значение
a
равно 0, то переменнойSloz_2
присваивается значениеb
. - Если значение
a
больше нуля, то функция вызывается рекурсивно, передавая в качестве аргументовa-1
иb+1
. - Если значение
a
меньше нуля, то функция вызывается рекурсивно, передавая в качестве аргументовa+1
иb-1
. - По завершении функции, значение переменной
Sloz_2
присваивается переменнойsloz_2
. - В основной части программы, с помощью функции
readln
считываются значенияa
иb
с консоли. - Затем, выводятся результаты вычисления суммы с помощью функций
sloz_1
иsloz_2
. - Завершается программа выводом сообщения о том, что цикл и рекурсия завершились.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д