![]() |
|
Модераторы: Poseidon |
![]()
|
|
| STRIKER221 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 2.11.2006 Где: Belarus Репутация: нет Всего: нет |
Составьте программу на языке Paskal
Вводится число N>0, а потом последовательность целых положительных чисел, завершающихся нулём. Построить множество, состоящее из тех введённых чисел, которые нацело деляться на N. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 6 Всего: 78 |
Писал без проверки, но должно работать. -------------------- Ll 2 |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
Guedda,
ты к сожалению, слегка не прав: просили МНОЖЕСТВО, а это такая конструкция, в котором не могут быть дубликаты
Это сообщение отредактировал(а) Kuvaldis - 3.11.2006, 20:29 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| DFooz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 3.9.2006 Репутация: нет Всего: нет |
можно ещё чисто множества использовать
Можно минимум и максимум найти, при выводе такой цикл
Это сообщение отредактировал(а) DFooz - 3.11.2006, 14:08 |
||||
|
|||||
| Kuvaldis |
|
||||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
DFooz,
очень нехорошая ошибка, в понимании. В Паскале максимальная мощность множества может быть 256 символов (не больше). Это первое. Второе: в задаче не сказано, что числа однобайтовые и беззнаковые. Сказано лишь
а это может намного больше, чем 255 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||
|
|||||
| STRIKER221 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 2.11.2006 Где: Belarus Репутация: нет Всего: нет |
Попытался сделать как написано в:
Прога запустилась, но почему то не выводит результат...... Это сообщение отредактировал(а) STRIKER221 - 3.11.2006, 16:13 |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
STRIKER221,
Если не выводит, значит нужных чисел нет. Я исправил эту ситуацию, сделав в конце программы проверку. Смотри мой пост выше (с подправленным вариантом). Вставлена только проверка. -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| STRIKER221 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 2.11.2006 Где: Belarus Репутация: нет Всего: нет |
По-моему снова не работает. Попробуйте Вы. Ведь насколько я помню, число 2 кратно 8, 6, 12 и т.д
|
|||
|
||||
| Kuvaldis |
|
||||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
STRIKER221,
Разобрался с тонкостями (и глюками) Delphi
Если "к" равна 0, то цикл выполняться не будет. Delphi при повторном запуске в любом случае инициализировал переменную "i" значением 1. Кроме самого первого запуска среды. Это меня и сбило с толку. Глюк Delphi. Тогда идем тем же путем в решении задачи, только заменим данный блок на блок while ()
Здесь явно (!) инициализируем переменную i перед циклом. Теперь даже в Turbo Pascal работает Это сообщение отредактировал(а) Kuvaldis - 3.11.2006, 22:07 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||
|
|||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 12 Всего: 24 |
||||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
baronp,
идея алгоритма - если число делится на N, то просмотреть массив на несовпадение с остальными. Не совпадает в том случае, если (i > k) Где i - текущий индекс, к - количество найденных уже чисел. При нахождении первого нужного числа к равно 0. Соответственно, данный цикл выпониться не должен. for i := 1 to k do Если бы происходила в этом месте инициализация i числом 1, то следующий оператор if (i > k) then // если совпадений нет проходил бы по true и число записывалось бы в массив. ТАк бы было 100% в С++ Delphi же себя повел половинчато. ВО всех случаях, кроме 1 запуска только что открывшейся среды он инициализировал данную переменную. Проверил в Turbo Pascal. Он не инициализирует ни при каких обстоятельствах (т.е. если цикл не выполняется) -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 12 Всего: 24 |
||||
|
||||
| Kuvaldis |
|
||||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
baronp,
вот простейший пример
выведет 1, 2, 3 и после окончания цикла - 4 Т.е. на выходе значение i будет больше 3, если не было оператора Break; Прjверялось в Delphi 7 Это сообщение отредактировал(а) Kuvaldis - 3.11.2006, 23:37 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||
|
|||||
| likehood |
|
|||
|
666 ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 21.12.2005 Репутация: 12 Всего: 24 |
Я смотрел в Turbo Pascal, а там он выводит 1, 2, 3, 3
|
|||
|
||||
| Kuvaldis |
|
||||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
baronp,
Я проверял в Delphi В общем, ниже код, который НЕ ЗАВИСИТ уже от среды. Используем логическую переменную.
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||
|
|||||
| STRIKER221 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 2.11.2006 Где: Belarus Репутация: нет Всего: нет |
Заработало. Спасибо
Добавлено @ 00:01 __ |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |