Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Последовательность вещественных чисел (http://www.tehnari.ru/f41/t42319/)

iron-mik 20.11.2010 18:31

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

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

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

Vladimir_S 20.11.2010 18:54

Язык, черт побери, какой?!!!
Ох, извините - ну сил уже нет задавать этот вопрос каждому второму обратившемуся! Ну неужели непонятно, что нужно прежде всего язык программирования указать?

iron-mik 20.11.2010 19:01

Ой извиняюсь, Delphi...

AlexZir 20.11.2010 19:27

Алгоритм:
Определяете массив с числом элементов заведомо большим, чем количество чисел в последовательности.
Заполняете массив значениями путем ввода последовательности чисел, причем признаком окончания ввода является 0.
Находите наименьшую разницу между абсолютным значением элемента массива и его номером
Выводите все элементы массива, для которых эта разница действительна.

Vladimir_S 20.11.2010 19:31

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.

iron-mik 20.11.2010 19:42

Если бы всё было так просто... :) В том то и дело, что неизвестно сколько элементов будет в последовательности. И я не могу использовать массив и т.п.- Запрещено Преподом!
Я вот как уже сказал, пробовал использовать строки вместо массива, но там я окончательно запутался переводя из строк в числа и т.д.

Vladimir_S 20.11.2010 19:51

Цитата:

Сообщение от iron-mik (Сообщение 420337)
Если бы всё было так просто... :) В том то и дело, что неизвестно сколько элементов будет в последовательности. И я не могу использовать массив и т.п.- Запрещено Преподом!
Я вот как уже сказал, пробовал использовать строки вместо массива, но там я окончательно запутался переводя из строк в числа и т.д.

Уж эти мне преподы!
Значит, массив нельзя? Но, может быть, можно файл? Тогда сбрасывайте номера в файл, а при изменении значения Min очищайте его командой rewrite. Или тоже нельзя?

AlexZir 20.11.2010 19:57

А каким образом хранить последовательность в памяти, случаем, препод вам не объяснял? Куда вы числа должны сохранять, чтобы обработку сделать? В стек? Или в файл? Если в файл - способ выше описан.

iron-mik 20.11.2010 20:06

Цитата:

Сообщение от Vladimir_S (Сообщение 420340)
Уж эти мне преподы!
Значит, массив нельзя? Но, может быть, можно файл? Тогда сбрасывайте номера в файл, а при изменении значения Min очищайте его командой rewrite. Или тоже нельзя?

Эмм...Такого еще не знаю, не изучали еще -1 курс :) Насчёт этого не было конечно запретов, но скорее всего он естественно не разрешит. Хотя меня это заинтересовало, не подскажите где можно найти инфу на эту тему? Или если можете объясните пожалуйста по-подробнее.

iron-mik 20.11.2010 20:08

Цитата:

Сообщение от AlexZir (Сообщение 420347)
А каким образом хранить последовательность в памяти, случаем, препод вам не объяснял? Куда вы числа должны сохранять, чтобы обработку сделать? В стек? Или в файл? Если в файл - способ выше описан.

Нет не говорил :) Это уже моя проблема)


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.