![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
art88 |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
Люди у меня есть задача и даже прогу, которая решает эту задачу я написал но она(прога) не тработает.
ПЛЗ. пораскиньте, кто чем может. ---------------------------------------------- Задача даны числа k, l, m, выяснить, можно ли любое число преобразовать в единицу за m раз следующим образом если число(n) чётно, то подельть его на два, если нет, то умножить его на три и прибавить единицу. ---------------------------------------------- Прога виснет при некоторых значениях к, l, m.(см diapazon.pas) Сообщение отредактировано: art88 - Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
art88,
Цитата Прога виснет при некоторых значениях покажи, при каких именно значениях у тебя виснет программа.И заодно объясни, что такое K и L? |
Atos |
![]()
Сообщение
#3
|
![]() Прогрессор ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Программа виснет, потому что строчка ok1:=false может не выполняться, и тогда цикл while (n <= l) and ok1 будет крутиться вечно.
|
art88 |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 18.10.2005 21:38) art88, покажи, при каких именно значениях у тебя виснет программа. И заодно объясни, что такое K и L? k и l задают интервал, в котором изменяется n прога не работает например при k=1 l=3 n=10 |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
У тебя же программа при этих значениях крутится с одинаковыми числами (бесконечный цикл). Вот так хотя бы сделай:
program diapazon; |
art88 |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
volovo, твой вариант программы работает не правильно, если мы вводим к=1, l=3 и m=6, то программа напишет 'yes 1' , хотя на самом деле число 3, преобразуется в единицу, указанным в задаче способом за семь раз (3, 10, 5, 16, 8, 4, 2, 1).
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
art88, ты меня конечно извини, но это ТВОЙ вариант программы работает неправильно, я просто вывел его из "вечного цикла", ничего при этом не меняя в логике !!!
На самом деле, вот это: i := 0; ok2 := false; { <-- Нужно делать именно здесь !!! } |
![]() ![]() |
![]() |
Текстовая версия | 1.09.2025 20:28 |