![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
topoR |
![]() ![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите решить задачу
![]() Вводится последовательность чисел. 0 - конец последовательности. НАйти 2 наименьших числа. -------------------- Всё, что не убивает нас, - делает нас сильнее...
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
В чем проблема? Изначально min_1, min_2 = максимально возможному значению, которое может быть введено... Если числа целые - то MaxInt, например...
А потом делаешь следующее: если очередное введенное с клавиатуры число (назовем его X) не 0, то сравниваешь его сначала с min_1 (это наименьшее из чисел), и если новое число строго меньше него, то min_2 := min_1; Если же min_1 < X < min_2, то min_2 := X; Внимание! Все эти сравнения производятся только, если X отличается от значений КАК min_1, ТАК и min_2 !!! Иначе ничего делать не надо, переходишь ко вводу следующего числа... Это алгоритм (сорри, если сумбурно, но я его составлял с готовой программы, поэтому...) Попробуй разобраться, в нем и хотя бы начни делать что-то... Не получится - приходи ![]() Сообщение отредактировано: volvo - 12.04.2007 1:18 |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Похоже в задании есть некоторая двусмысленность... Что есть 2 наименьших числа, например, в массиве
<2, 3, 6, 7, 2, 3> ? Это будут 2, 2 или 2, 3 ? Т.е., тебе надо найти 2 абсолютно минимальных числа, или 2 разных минимальных числа? Мой алгоритм - для нахождения 2-х разных... Чтобы найти 2 абсолютно минимальных - выкини из того, что я написал абзац со словом "Внимание!" |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Изначально min_1, min_2 = максимально возможному значению, которое может быть введено... Если числа целые - то MaxInt, например... volvo, а есть ли необходимость связываться с максимальным возможным значением? Иногда найти его не так просто.. Можно, мне кажется, просто в min_2 безусловно положить первое введенное. Если второе введенное меньше него, сделать переприсвоение (как описано), если нет - положить во второе. Далее по твоему алгоритму.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Можно, мне кажется, просто в min_2 безусловно положить первое введенное. ![]() |
topoR |
![]()
Сообщение
#6
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Блин, люди, я в паскале человек относительно новый. У меня вопрос появился, как вводить последовательность чисел, (которая вдобавок оканчивается на 0), чтобы в последствии сравнивать числа с min_1 и min_2?..С помощью array ?!
Только не смейтесь ![]() Сообщение отредактировано: topoR - 12.04.2007 2:06 -------------------- Всё, что не убивает нас, - делает нас сильнее...
|
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
![]() Да, я все это, конечно, понимаю.. Я бы не стал называть это узким местом.. Код, действительно, немного увеличится. Замедления можно избежать, если сделать заполнение первых двух отдельным блоком. Но мне кажется, оно того стОит.. Добавлено через 6 мин. как вводить последовательность чисел, чтобы в последствии сравнивать числа с min_1 и min_2?..С помощью array ?! Только не смейтесь Нет, вводи в цикле и сразу в этом же цикле делай сравнения. Типа так:
Я тут ввел еще и счетчик введенных чисел - думаю, может пригодиться.. А чего смеяться? Все начинали.. Напиши, что у тебя получается.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
topoR |
![]()
Сообщение
#8
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
. Не работает по-моему ![]() -------------------- Всё, что не убивает нас, - делает нас сильнее...
|
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Не работает по-моему ![]() Угу. Ты забыл расставить операторные скобки, begin и end. Без них после оператора IF выполняется (в случае выполнения условия) только один оператор. Короче, посмотри внимательно, что я добавил.. program Find2min; Еще - добавь пару пробелов при выводе результата, а также подумай, что будет, если последовательность будет состоять только из одного числа, а может и совсем пустая (сразу ввели 0). Еще совет: обрати внимание на форматирование программного текста в моем варианте. Если усвоишь, тебе это поможет. Кстати, тут как раз про begin и end (и не только), то есть про твою ошибку.. Успехов! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
topoR |
![]()
Сообщение
#10
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Программа работает, спасибо
![]() Сейчас подумаю над выходом из ситуации, когда почти сразу вводится ноль.. Сообщение отредактировано: topoR - 12.04.2007 3:07 -------------------- Всё, что не убивает нас, - делает нас сильнее...
|
topoR |
![]() ![]()
Сообщение
#11
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот еще одна задачка.. Такого же типа.
Дана последовательность чисел, также заканчивающаяся на ноль. Определить, сколько раз в последовательности числа меняют свой знак. Вроде бы с помощью массива решается элементарно. Однако их запретили использовать .. Решил без них.. Боюсь, что заставят перерешивать всвязи с отдельным вводом первого числа и всей последовательности в целом. Кто чем поможет? ![]() . -------------------- Всё, что не убивает нас, - делает нас сильнее...
|
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 17:34 |