Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 20.11.2010, 18:31   #1 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Последовательность вещественных чисел

Помогите пожалуйста решить задачу:

Вводится последовательность вещественных чисел, оканчивающаяся нулём, и состоящая более чем из одного ненулевого элемента. Определить, номер числа, по абсолютной величине самого близкого к своему номеру. Если таких чисел несколько - вывести все номера этих эелементов.

Я её могу сделать, если бы не нужно было выводить все номера всех таких элементов. Пробовал через строки но там у меня такая муть получается...
Заранее очень благодарен!
iron-mik вне форума   Ответить с цитированием

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

Скорее всего тут можно найти ответ

Даны три вещественных числа...
Cоздать файл целых чисел
Массивы
Напишите функцию, преобразующую символы табуляции в последовательность из n пробелов
Программа перемножения длинных чисел на С++

Старый 20.11.2010, 18:54   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,858
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Язык, черт побери, какой?!!!
Ох, извините - ну сил уже нет задавать этот вопрос каждому второму обратившемуся! Ну неужели непонятно, что нужно прежде всего язык программирования указать?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 20.11.2010, 19:01   #3 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ой извиняюсь, Delphi...
iron-mik вне форума   Ответить с цитированием
Старый 20.11.2010, 19:27   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,941
Записей в дневнике: 57
Сказал(а) спасибо: 135
Поблагодарили 164 раз(а) в 69 сообщениях
Репутация: 67284
По умолчанию

Алгоритм:
Определяете массив с числом элементов заведомо большим, чем количество чисел в последовательности.
Заполняете массив значениями путем ввода последовательности чисел, причем признаком окончания ввода является 0.
Находите наименьшую разницу между абсолютным значением элемента массива и его номером
Выводите все элементы массива, для которых эта разница действительна.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 20.11.2010, 19:31   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,858
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Alex меня немного опередил с алгоритмом, но всё же приведу свои соображения:

1. Вводите массив искомых НОМЕРОВ, например, Num[i].
2. Пусть N - количество элементов, обладающих указанным свойством.
3. Начинаете с того, что вычисляете Min=|a1-1|, где a1 - первый введенный элемент, N:=1 и Num[N]:=1.
4. Если последующие разности превышают Min и встретился еще элемент с номером i, у которого значение разности равно Min, то N увеличиваете на 1 и Num[N]:=i и т.д. до конца.
5. Если встретился i-тый элемент ai, у которого значение модуля разности с его номером меньше Min, то Min:=|ai-i|, N:=1, Num[N]:=i и далее п.4.
6. В конце вывести массив Num от i=1 до N.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 20.11.2010, 19:42   #6 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Если бы всё было так просто... В том то и дело, что неизвестно сколько элементов будет в последовательности. И я не могу использовать массив и т.п.- Запрещено Преподом!
Я вот как уже сказал, пробовал использовать строки вместо массива, но там я окончательно запутался переводя из строк в числа и т.д.
iron-mik вне форума   Ответить с цитированием
Старый 20.11.2010, 19:51   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,858
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от iron-mik Посмотреть сообщение
Если бы всё было так просто... В том то и дело, что неизвестно сколько элементов будет в последовательности. И я не могу использовать массив и т.п.- Запрещено Преподом!
Я вот как уже сказал, пробовал использовать строки вместо массива, но там я окончательно запутался переводя из строк в числа и т.д.
Уж эти мне преподы!
Значит, массив нельзя? Но, может быть, можно файл? Тогда сбрасывайте номера в файл, а при изменении значения Min очищайте его командой rewrite. Или тоже нельзя?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 20.11.2010, 19:57   #8 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,941
Записей в дневнике: 57
Сказал(а) спасибо: 135
Поблагодарили 164 раз(а) в 69 сообщениях
Репутация: 67284
По умолчанию

А каким образом хранить последовательность в памяти, случаем, препод вам не объяснял? Куда вы числа должны сохранять, чтобы обработку сделать? В стек? Или в файл? Если в файл - способ выше описан.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 20.11.2010, 20:06   #9 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Уж эти мне преподы!
Значит, массив нельзя? Но, может быть, можно файл? Тогда сбрасывайте номера в файл, а при изменении значения Min очищайте его командой rewrite. Или тоже нельзя?
Эмм...Такого еще не знаю, не изучали еще -1 курс Насчёт этого не было конечно запретов, но скорее всего он естественно не разрешит. Хотя меня это заинтересовало, не подскажите где можно найти инфу на эту тему? Или если можете объясните пожалуйста по-подробнее.
iron-mik вне форума   Ответить с цитированием
Старый 20.11.2010, 20:08   #10 (permalink)
iron-mik
Новичок
 
Регистрация: 20.11.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
А каким образом хранить последовательность в памяти, случаем, препод вам не объяснял? Куда вы числа должны сохранять, чтобы обработку сделать? В стек? Или в файл? Если в файл - способ выше описан.
Нет не говорил Это уже моя проблема)
iron-mik вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

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

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




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

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