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

Рекурсия Найти номер последнего вхождения максимального значения в последовательность длины n

20.12.2016, 08:31. Показов 1347. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Рекурсия Найти номер последнего вхождения максимального значения в последовательность длины n(сделать подпрограммой ничего не передавая подпрограмме, кроме массива, n=const - число элементов массива)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
program ;
  const n=7;
  type t_arr=array[1..n] of integer;
 
  procedure read_arr( var a:t_arr);
    var i:integer;
    begin
      writeln('Введите последовательность');
      for i:=1 to n do
       read(a[i]);
    end;
 
  procedure iter(a:t_arr; var imin:word);
    var i:word;
    begin
      imin:=1;
      for i:=2 to n do
       if a[imin]>=a[i] then imin:=i;
    end;
 
  procedure rec(a:t_arr; i,imin:word);
  begin
    if i<n then
    begin
      inc(i);
      rec(a,i,imin);
      if a[i]<a[imin] then
      begin
        imin:=i;
      end;
    end
    else
      imin:=a[i];
  end;
 
  var a:t_arr;
      i,imin:word;
  begin
    read_arr(a);
    iter(a,imin);
    writeln('‚ Результат итеративной подпрограммы* ',imin);
    i:=0;
    rec(a,i,imin);
    writeln('Результат рекурсивной подпрограммы* ',imin);
  end.
Составил такую программу, сказали переделать рекурсию так, чтобы ей ничего не передавать в основной программе. Я не знаю, как это сделать?

Добавлено через 43 минуты
Прошу прощения, последнего минимального значения
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2016, 08:31
Ответы с готовыми решениями:

Рекурсия: найти номер последнего вхождения минимального значения в последовательность длины n
Найти номер последнего вхождения минимального значения в последовательность длины n. Нужно было решить используя рекурсию , правильно ли...

Рекурсия: найти номер первого вхождения минимального значения в последовательность длины n
Помогите переписать итеративную подпрограмму в рекурсивную. Задание: Найти номер первого вхождения минимального значения в...

Дана последовательность из n действительных чисел найти номер последнего максимального элемента
Дана последовательность из n действительных чисел найти номер последнего максимального элемента. Замечание. Задачи из данного пункта...

6
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
20.12.2016, 09:01
Сделайте массив, счетчик и результат глобальными переменными.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const n=7;
var a:array[1..n] of integer;
    k,kmin:word;
procedure read_arr;
var i:integer;
begin
writeln('Введите последовательность');
for i:=1 to n do
readln(a[i]);
end;
 
procedure iter;
var i,imin:word;
begin
imin:=1;
for i:=2 to n do
if a[i]<=a[imin] then imin:=i;
writeln('Результат итеративной подпрограммы=',imin);
end;
 
procedure rec;
begin
if k<n then
 begin
  inc(k);
  rec;
  if a[k]<=a[kmin] then kmin:=k;
 end
else  kmin:=a[k];
end;
begin
 read_arr;
 iter;
 rec;
 writeln('Результат рекурсивной подпрограммы=',kmin);
end.
1
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 41
20.12.2016, 09:34  [ТС]
Puporev, а почему в ТР рекурсия не работает,выводит всегда 7?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
20.12.2016, 09:49
Ну значит рекурсия написана неверно.
0
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 41
20.12.2016, 09:52  [ТС]
Puporev, Вроде бы верно, можете проверить?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
20.12.2016, 10:25
У Вас в строках 32,33 написано
Pascal
1
2
else
      imin:=a[i];
По моему номер элемента не может быть равен значению какого-то элемента.

Добавлено через 11 минут
А вообще я пас, извините что встрял.
0
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 41
20.12.2016, 10:28  [ТС]
Puporev, Да, действительно ошибся, но даже после этого не работает, почему-то не работает, подпрограмма не проверяет условие

Pascal
1
 if a[k]<a[kmin] then kmin:=k;
Добавлено через 1 минуту
Puporev, ну попробуйте доделать, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2016, 10:28
Помогаю со студенческими работами здесь

Найти номер последнего максимального значения среди нечетных (по значению) элементов
Немогу никак сделать:wall::wall:(((( Help Please Задан целочисленный одномерный массив a из n элементов. Найти номер последнего...

Найти номер последнего максимального значения среди отрицательных элементов, кратных трём
Найти номер последнего максимального значения среди отрицательных элементов, кратных трём и расположенных правее первого элемента,...

Найти номер последнего вхождения данного числа в последовательность,или вывести сообщение,что такого числа нет
Нужна помощь в написании программы для создания и обработки массива вот условие: Дана последовательность из n вещественных...

Найти индексы первого и последнего вхождения заданного целого числа N в последовательность
Найти индексы первого и последнего вхождения заданного целого числа N в последовательность целых чисел, которая сохраняется в динамическом...

Найти номер последнего максимального элемента
Дана последовательность из n действительных чисел, количество элементов которой вводится пользователем. Протестировать программу и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru