Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
danchik55566
0 / 0 / 0
Регистрация: 12.12.2018
Сообщений: 5
1

Рекурсивный спуск

05.01.2019, 15:04. Просмотров 1178. Ответов 4

Вводится с клавиатуры непустая последовательность из n положительных, вещественных чисел. Используя рекурсивную функцию, найти среднее арифметическое этих положительных чисел.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2019, 15:04
Ответы с готовыми решениями:

рекурсивный НОД
Даны натуральные числа n, m. Найти НОД(n,m), используя рекурсивную процедуру вычислентя Нод,...

Рекурсивный вывод массива
Написать программу, осуществляющую вывод массива на экран с помощью рекурсии.

факториал ( c рекурсивный функцией )
uses crt; function faktorial(n:integer):integer; begin if n=0 then faktorial:=1 else...

Разработать рекурсивный алгоритм: f(n)=1/(n+5)!
Напишите плизз весь код программки и модуля)) Разработать рекурсивный алгоритм и программу...

Рекурсивный сдвиг массива
Доброго времени суток!!! Помогите пожалуйста!!! Дан массив x, состоящий из 10 вещественных...

4
Puporev
Модератор
58935 / 44612 / 30788
Регистрация: 18.05.2008
Сообщений: 106,895
05.01.2019, 16:20 2
Если последовательность есть массив, то так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var a:array[1..100] of real;
function sred(k,n:integer):real;
begin
if k=0 then sred:=0
else sred:=sred(k-1,n)+a[k]/n;
end;
var n,i:byte;
begin
write('Введите размер последовательности n=');
readln(n);
writeln('Введите элементы последовательности вещественные числа');
for i:=1 to n do
readln(a[i]);
write('Среднее=',sred(n,n):0:2);
end.
0
Торович
218 / 216 / 217
Регистрация: 03.07.2012
Сообщений: 457
05.01.2019, 17:24 3
Как вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure Averg(n,n1 : integer; arg1 : real);
var a : real;
begin
  if n = 0 then readln
  else begin
    read(a);
    arg1 := arg1 + a;
    Averg(n-1,n1+1,arg1);
    if n = 1 then writeln(arg1/(n1+1):0:3);
  end;
end;
 
var
  n : integer;
  s : real;
begin
  write('n = '); readln(n);
  s := 0;
  Averg(n,0,s);
  readln;
end.
0
Puporev
Модератор
58935 / 44612 / 30788
Регистрация: 18.05.2008
Сообщений: 106,895
05.01.2019, 17:30 4
Это ближе к телу, строку 4 лучше написать так
Pascal
1
if n = 0 then arg1:=0
и потом ему вроде как нужно функцию.
0
Торович
218 / 216 / 217
Регистрация: 03.07.2012
Сообщений: 457
07.01.2019, 10:13 5
Лучший ответ Сообщение было отмечено Puporev как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
function Averg(n : integer) : real;
var a : real;
begin
  if n = 0 then Averg := 0
  else begin
    read(a);
    Averg := (Averg(n-1)*(n-1) + a)/n;
  end;
end;
0
07.01.2019, 10:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2019, 10:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Рекурсивный алгоритм поиска перестановок
Реализуйте рекурсивный алгоритм поиска перестановок

задание на рекурсивный расчет формулы
С экрана вводится строка, которая имеет записанную без ошибок формулу следующего вида:...

Необходимо разработать рекурсивный алгоритм.
Разработать рекурсивный алгоритм и программу решения задачи, в которой вычислить : f(n)=(1+n!)/n!....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.