IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Одномерный массив., поиск максимального элемента
Allise1
сообщение 9.11.2012 1:48
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский

Репутация: -  0  +


кто-нибудь может помочь?очень нужно!
Дан массив размера N.
Найти максимальный из его элементов, не являющихся ни локальным максимумом, ни локальным минимумом(локальный минимум-это элемент, который меньше любого из своих соседей).Если таких элементов в массиве нет, вывести об этом сообщение.
упорядочить положительные элементы второй половины массива по убыванию модулей обратных значений.
для отладки программы числа последовательности сформировать с помощью генератора случайных чисел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Krjuger
сообщение 15.11.2012 18:58
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Встречный вопрос, зачем выносить N:=10, если можно написать for i:=5 to 9 ?
Ответ:
Можно, но практика программирования показывает, что любые константы лучше в самом начале записывать.Есть несколько причин.
Во-первых,если преподаватель или заказчик, в общем если понадобиться изменить число элементов в массиве, вам придется ползать по всему коду программы и менять все эти числа, у вас код маленький, а представльте, если в нем тысяча строк.... или 10 тысяч...., велика вероятность где то забыть и будут неверные результаты, а потом лазий и ищи. По этой же причине середина массива у меня не число, а вычисляемая величина, достаточно изменить длинну массива и она сама вычислиться и станет правильной и не надо ползать по программе и искать.
Отсуда же следует некий подводный камень, допустим у вас 2 цикла
for i:=5 to 9
for i:=2 to 9
Первый работает с массивом а, второй с b, возможно так, что вы возьмете и машинально измените в обоих случаях 9 на 12, например.А по заданию вас попросили поменять длинну лиш массива а, опять таки у вас появитсья ошибка.А зачастую, когда код более сложный, просто так с ходу не сообразиш за что отвечают те или иные цифры, а вот если записать
for i:=5 to n
for i:=2 to m
Сразу видно что величины никак не зависят друг от друга.
Во-вторых, когда через какое то время возвращается к коду ооочень сложно понять, что это за магические цифры в циклах функциях и тд. А если есть переменные, с более менее вменяемыми названиями,то намного проще понять что происходит. Это повышает читаемость вашего кода другими людьми, да и вами самими по прошествии времени, в учебном процессе это мало актуально, а вот дальше весьма помогает.

Сообщение отредактировано: Krjuger - 15.11.2012 19:00
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Allise1
сообщение 18.11.2012 15:47
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский

Репутация: -  0  +


Цитата(Krjuger @ 15.11.2012 19:58) *

Встречный вопрос, зачем выносить N:=10, если можно написать for i:=5 to 9 ?
Ответ:
Можно, но практика программирования показывает, что любые константы лучше в самом начале записывать.Есть несколько причин.
Во-первых,если преподаватель или заказчик, в общем если понадобиться изменить число элементов в массиве, вам придется ползать по всему коду программы и менять все эти числа, у вас код маленький, а представльте, если в нем тысяча строк.... или 10 тысяч...., велика вероятность где то забыть и будут неверные результаты, а потом лазий и ищи. По этой же причине середина массива у меня не число, а вычисляемая величина, достаточно изменить длинну массива и она сама вычислиться и станет правильной и не надо ползать по программе и искать.
Отсуда же следует некий подводный камень, допустим у вас 2 цикла
for i:=5 to 9
for i:=2 to 9
Первый работает с массивом а, второй с b, возможно так, что вы возьмете и машинально измените в обоих случаях 9 на 12, например.А по заданию вас попросили поменять длинну лиш массива а, опять таки у вас появитсья ошибка.А зачастую, когда код более сложный, просто так с ходу не сообразиш за что отвечают те или иные цифры, а вот если записать
for i:=5 to n
for i:=2 to m
Сразу видно что величины никак не зависят друг от друга.
Во-вторых, когда через какое то время возвращается к коду ооочень сложно понять, что это за магические цифры в циклах функциях и тд. А если есть переменные, с более менее вменяемыми названиями,то намного проще понять что происходит. Это повышает читаемость вашего кода другими людьми, да и вами самими по прошествии времени, в учебном процессе это мало актуально, а вот дальше весьма помогает.


нам же нужно упорядочить по убыванию модулей обратных значений?
.почему мы не пишем 1/a[i]?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Allise1   Одномерный массив.   9.11.2012 1:48
Krjuger   Помочь можем, но именно помочь, а не сделать за ва...   9.11.2012 11:50
Гость   Помочь можем, но именно помочь, а не сделать за в...   10.11.2012 17:37
Allise1   var a: array [1..100] of integer; i,max,N: inte...   13.11.2012 19:28
Krjuger   Можно воспользоваться любой сортировкой, просто ч...   11.11.2012 0:21
Krjuger   Ну чтож начнем. Во-первых, зачем вам максимум и ми...   13.11.2012 20:45
Allise1   Ну чтож начнем. Во-первых, зачем вам максимум и м...   13.11.2012 22:41
Krjuger   max:=d[1]; for i:=2 to k do if (max<d[i]) the...   13.11.2012 23:17
Allise1   max:=d[1]; for i:=2 to k do if (max<d[i]) th...   14.11.2012 19:02
Krjuger   Господи, вы там что то у себя исправили, теперь ма...   14.11.2012 19:22
Allise1   Господи, вы там что то у себя исправили, теперь м...   14.11.2012 21:11
Krjuger   Находит, вы его просто не выводите на экран..........   14.11.2012 22:20
Allise1   Находит, вы его просто не выводите на экран.........   14.11.2012 22:34
Krjuger   Взял написал обычную сортировку пузырьком, в интер...   14.11.2012 22:44
Allise1   Взял написал обычную сортировку пузырьком, в инте...   14.11.2012 23:17
Krjuger   Потому что вы писали Операция div возвращает част...   14.11.2012 23:21
Allise1   [quote name='Krjuger' date='15.11.2012...   15.11.2012 17:21
Krjuger   Встречный вопрос, зачем выносить N:=10, если можно...   15.11.2012 18:58
Allise1   Встречный вопрос, зачем выносить N:=10, если можн...   18.11.2012 15:47
Krjuger   Возможно потому что в тот момент, когда я читал, у...   18.11.2012 22:30
Allise1   Возможно потому что в тот момент, когда я читал, ...   18.11.2012 22:40
Krjuger   Swap меняет местами для числа, девушка, ну хоть та...   18.11.2012 23:36
Гость   Swap меняет местами для числа, девушка, ну хоть т...   23.11.2012 19:41
Krjuger   Не подскажу, на форуме не доступны средства,чтобы ...   24.11.2012 16:27


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 7:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"