![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Начал изучать Паскаль, все бы ничего, но никак не могу решить задачу, объясните плз логику решения, н и как решить..
Вот условие:
|
|||
|
||||
| Romtek |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 7.12.2004 Где: Холон Репутация: нет Всего: 4 |
Отсортировать по возрастанию и потом проверить поэлементно возрастающую последовательность. Если B > A + 1 then ....
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
ну зачем же так грубо... посчитать сумму всех имеющихся чисел (пусть это будет S) а пропущенное число=N*(N+1)/2 - S -------------------- qqq |
|||
|
||||
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Возникат глупый вопрос, как можно посчитать сумму всех элементов массива?
|
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Lenght(massiv); |
|||
|
||||
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Вот код:
Ошибку выдает.. что-то я совсем запутался =(( |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
champion, вот так попробуй...
|
|||
|
||||
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Опять что-то не то, выдает ошибки. вот код
Это сообщение отредактировал(а) Fedor - 3.8.2005, 15:38 |
|||
|
||||
| volvo877 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
champion,
у тебя 2 недочета: 1) когда ты объявляешь массив как array[0 .. 5] of integer, это значит, что он будет содержать не 5, а 6 элементов ("0, 1, 2, 3, 4, 5" - итого 6)... Но так, как это тебе не нужно (ноль по-любому на результат не влияет) - делай или
или
2) в Паскале операция деления " / " возвращает результат вещественного типа, а ты пытаешься "затолкнуть" его в целочисленную переменную... Так не пойдет. Используй целочисленное деление:
Это сообщение отредактировал(а) volvo877 - 1.8.2005, 14:06 |
||||||
|
|||||||
| Zero |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Также можно использовать тип множество... Алгоритм: 1. Сначало множество должно заполнится числами всеми от 0 до N 2. При вводе твоих чисел, элементы из множества, по одному удаляются 3. Оставшиеся элементы в множестве, и есть твоё решение... Добавлено @ 21:40
Нее так не пойдёт, в задании сказано что от 0 до N...
Так тоже не пойдёт, есть вероятность получить вычислительную ошибку, которая не будет определятся компилятором, в следствии чего не правилый результат... Лучше менять метод, если не уверен на 100% что текущий хорошо работает... ИМХО тот метод что я предложил выше, ислключает все подобные ошибки. |
||||||
|
|||||||
| volvo877 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
А теперь вопрос на засыпку: а как ты собрался извлекать элемент из множества? Полным перебором? Так вот это СОВСЕМ не пойдет !!! Ты сразу потерял все преимущества использования множеств... Теперь дальше... Вот что видим в первом посте:
Кстати, вот еще вариант:
|
||||||
|
|||||||
| Zero |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Берёш на слабо, кто чё потерял...
|
||||||||
|
|||||||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: нет Всего: 61 |
Слово против множества:
Как мне понимается число N может быть любое, а точнее для примера N=1000. Что тогда с множеством будет? Массив тако длины должен вроде поместиться в память, а вот множество не очень согласится с идеей впихивания в него чисел такого размера... Можно конечно использовать несколько множеств для реализации массива длиной N=32000, что теоритически имеет место в задача, т. к. вообще ограничения каке-либо отсутствуют... |
|||
|
||||
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
Сорри конечно =)) Но разговора о мнеожестве в условии нету =)) Там разговор о массиве
|
|||
|
||||
| champion |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 26.1.2005 Репутация: нет Всего: 2 |
volvo877, большое спасибо ему! Было бы 100 постов, добавил репутации! Его пример как-раз то, что нужно! Респект!
|
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |