![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
art88 |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
Люди у меня есть задача и даже прогу, которая решает эту задачу я написал но она(прога) не тработает.
ПЛЗ. пораскиньте, кто чем может. ---------------------------------------------- Задача даны числа k, l, m, выяснить, можно ли любое число преобразовать в единицу за m раз следующим образом если число(n) чётно, то подельть его на два, если нет, то умножить его на три и прибавить единицу. ---------------------------------------------- Прога виснет при некоторых значениях к, l, m.(см diapazon.pas) Сообщение отредактировано: art88 - 18.10.2005 20:25 Прикрепленные файлы ![]() |
![]() ![]() |
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; { <-- Нужно делать именно здесь !!! } |
![]() ![]() |
![]() |
Текстовая версия | 16.07.2025 17:24 |