Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 25.01.2018
Сообщений: 27

Напишите рекурсивную функцию, которая считает сумму элементов переданного ей динамического массива

25.01.2018, 22:54. Показов 5355. Ответов 1

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
type IntArr = array of integer;
procedure print(a: IntArr);
var i: integer;
begin
  for i:=0 to Length(a)-1 do
    write(a[i],' ');
end;
var a:intarr;
s:integer;
begin
s:=0;
randomize;
for var i:=1 to 9 do begin
a[i]:=random(10);
print(a[9]);
end;
for var i:=1 to 9 do begin
s:=s+a[i];
writeln(s);
end;
end.
Подскажите, что не так в программе, почему она не хочет работать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2018, 22:54
Ответы с готовыми решениями:

Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел
!!!!!

Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел
Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел. помогите сделать с помощью функции или процедуры !...

Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел
Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел. помогите сделать с помощью функции или процедуры !...

1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
26.01.2018, 06:10
Нет начальной установки размера массива!
Он же динамический.
Поэтому, перед первым обращением к нему, размер его ещё не определён.
А ещё, у динамического массива индексация начинается с 0… Заполнять вы его пытаетесь с 1 элемента, забыв про нулевой ;–(

Ну и вообще, ваша программа написана изначально неверно!

1. Создание и заполнение динамического массива одной строкой:

Pascal
1
2
3
begin
  var a := ArrRandomInteger(ReadInteger('Размер массива: n ='),0,9);
end.
2. Добавляем вывод массива:

Pascal
1
2
3
4
begin
  var a := ArrRandomInteger(ReadInteger('Размер массива: n ='),0,9);
  Write('Создан массив: a = '); a.Println;
end.
3. Теперь добавим вызов рекурсивной функции:

Pascal
1
2
3
4
5
begin
  var a := ArrRandomInteger(ReadInteger('Размер массива: n ='),0,9);
  Write('Создан массив: a = '); a.Println;
  WriteLn('Рекурсивная функция суммы: сумма = ', rSum(a));
end.
4. Ну и добавим саму функцию:

Pascal
1
2
function rSum(a : array of Integer; index : Integer := 0) : Integer :=
  (index < a.Length ? a[index] + rSum(a, index+1) : 0);
Хотя, для динамического числового массива определена уже функция суммы…
Вот готовая программа:

Pascal
1
2
3
4
5
6
7
8
9
function rSum(a : array of Integer; index : Integer := 0) : Integer :=
  (index < a.Length ? a[index] + rSum(a, index+1) : 0);
 
begin
  var a := ArrRandomInteger(ReadInteger('Размер массива: n ='),0,9);
  Write('Создан массив: a = '); a.Println;
  WriteLn('Рекурсивная функция суммы: сумма = ', rSum(a));
  WriteLn('Встроенная функция суммы:  сумма = ', a.Sum);
end.
P.S. Следующий раз создавайте тему в соответствующем подразделе форума.
Ибо, паскалей много. И они отличаются друг от друга.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2018, 06:10
Помогаю со студенческими работами здесь

Напишите функцию, которая определяет сумму цифр переданного ей числа
Напишите функцию, которая определяет сумму цифр переданного ей числа. Пример: Введите натуральное число: 123 Сумма цифр...

Напишите функцию, которая определяет сумму цифр переданного ей числа
Например Ввод 123 Вывод 3+2+1=6 и только так

Напишите рекурсивную функцию, возвращающую сумму положительных элементов массива
Выдает ошибку и выводит 0 #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; int k = 0; int s = 0; const int SIZE = 3;...

Напишите программу, которая определяет минимальное значение элементов одномерного массива, используя рекурсивную функцию
Напишите программу, которая определяет минимальное значение элементов одномерного массива, используя рекурсивную функции, которая ...

Составить рекурсивную функцию, которая вычисляет сумму элементов массива, стоящих на нечетных позициях
Составить рекурсивную функцию, которая вычисляет сумму элементов массива, стоящих на нечетных позициях.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru