Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 16.11.2010, 13:00   #1 (permalink)
Наташок
Member
 
Регистрация: 05.10.2010
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Задача на рекурсию

{Дан массив х, состоящий из 10 вещественных чисел и целочисленная переменная к,
необходимо элементы массива х циклически сдвинуть на к позиций влево.}
пишем на языке паскаль.....
обязательно нужно решить эту задачу с использованием рекурсии..))))помогите!!____)))))
Наташок вне форума   Ответить с цитированием

Старый 16.11.2010, 13:00
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Потратьте немного времени на прочтение подобных обсуждений

Задача по С + +
Задача по С++
Задача
Помогите с задачей на рекурсию.

Старый 16.11.2010, 13:14   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

алгоритм следующий:
1) описываем 2 массива, первый - эталонный, второй - результирующий, заводим промежуточные переменные для обмена значениями элементов массива и переменную к
2) в цикле for заполняем эталонный массив значениями
3) запрашиваем значение к
4) в цикле for обращаемся к каждому эталонного элементу, присваиваем его значение промежуточной переменной, вычисляем индекс элемента для сдвига (например, abs(i-k) mod 10) и присваиваем текущему элементу результирующего массива значение элемента эталонного массива с вычисленным индексом.
5) в цикле for выводим значения результирующего массива.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 16.11.2010, 13:25   #3 (permalink)
Наташок
Member
 
Регистрация: 05.10.2010
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

не понимаю...зачем здесь два массива описывать?можно ведь просто описать один, ввести его значение....так?а потом?
Наташок вне форума   Ответить с цитированием
Старый 16.11.2010, 13:34   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Извиняюсь, алгоритм малость не подходит к вашему заданию. Вам нужно использовать рекурсивную функцию, которой в приведённом мной алгоритме нет.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 16.11.2010, 13:41   #5 (permalink)
Наташок
Member
 
Регистрация: 05.10.2010
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ок.вызываем функцию рекурсии...а дальше?
Наташок вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 16.11.2010, 13:53   #6 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

вычисляем индекс и заменяем элемент.

Тут проблема в том, что значение K может многократно превышать число элементов массива и при обмене значениями может быть ситуация повторного обмена значениями. Поэтому нужно предусмотреть такой цикл обращения к массиву, чтобы при сдвиге не затрагивать уже замененные элементы.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 16.11.2010, 14:18   #7 (permalink)
Наташок
Member
 
Регистрация: 05.10.2010
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ай, ничего у меня не получается!!!!если кто знает напишите программу....(((
Наташок вне форума   Ответить с цитированием
Старый 16.11.2010, 23:46   #8 (permalink)
Дашка Шалахан
Новичок
 
Регистрация: 11.11.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Даааа...я знаю..=)
Дашка Шалахан вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:40.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.