![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Buch |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не знаю как лучше, создать отдельную тему или написать в эту....
Отдельную тему я бы назвал "Кольцевой список и простые числа" Есть задачка на динамическую память... Необходимо составить программу, которая каждый элемент кольцевого однонаправленного списка с заглавным элементом увеличивает на 3, а затем вычеркивает те из них, которые будут простыми. Так вот проблема в поиске простых чисел (удаление пока не трогаю, хотя оно тоже криво работает, выдает ошибку "ссылка на не существующий указатель). До 14и она работает нормально, а с 15и начинается дребедень: 1. 15 - простое, дальше правильно, 21 - опять считает простым, потом 25, потом 35, дальше не проверял... 2. Если в списке присутствует 1 (кроме случая, когда она последняя), то система проверки на простые числа вообще не работает. Вот код:
Подскажите плиз, в чем ошибка!? ![]() |
![]() ![]() |
arhimag |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
15 - простое я всегда думал что 15= 3 * 5
-------------------- Чего хочет женщина – того хочет Бог
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Ты бы читал повнимательнее (а не просто SPAM-mode включал
![]() Цитата Так вот проблема в поиске простых чисел (удаление пока не трогаю, хотя оно тоже криво работает, выдает ошибку "ссылка на не существующий указатель). До 14и она работает нормально, а с 15и начинается дребедень: 1. 15 - простое, дальше правильно, 21 - опять считает простым, потом 25, потом 35, дальше не проверял... |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Bush, проблема у тебя - вот в этом цикле:
for k:=2 to trunc(sqrt(lastp^.inf)) do Смотри, что происходит: Как только число НЕ 2 и НЕ 3, и оно НЕ делится нацело на 2, срабвтывает отмеченная мной ветка Else, гда и печатается, что число - простое... Я бы переделал весь цикл While вот так: lastp := p^.next; |
Buch |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо volvo, теперь поиск простых чисел работает, правда если искать по одному...
![]() А не посмотришь что не так с проходом по списку... Цифра 1 в начале списка по прежнему все сбивает, да и вааще из всего списка выписывает только первое найденное простое число...) |
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
if is_simple then begin -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Я бы сделал вот так:
program kos; |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 13:56 |