В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
анюта606
анюта606
12.05.2023 02:47 •  Информатика

Объясните, почему программа не выдает результата? program friday; var n,a,l,i: longint; k,p: integer; label goback; beginwrite('введите месяцы и день'); read(n,k); if k< =5 thenp: =1+(5-k); if k=6 thenp: =7; if k=7 thenp: =6; a: =0; l: =0; for i: =1 to n dobegingoback: l: =l+1; p: =p+7; if p> 30 thenp: =p-30; if p=13 thenbegina: =a+1; goto gobackendelse goto goback; if l=n thenbreakend; write(a)end.

Ответ:
Belka69hfchycv
Belka69hfchycv
07.10.2020 03:48
Программа не работает, по тому, что в цикле после условия "if p=13", в блоке else у вас идет "зацикливание". По goto вы прыгаете опять обратно в начало итерации цикла.
Очевидно, что успешность выполнения завершения цикла зависит от значения P, так как в любом случаи, если P != 13, вы возращаетесь в начало цикла.

Маленькое лирическое отступление:
Отформатированный код будет приведен в коментариях, если кому-то не ясно.

Ваш код сложно назвать "спагетти кодом", т.к. у вас все довольно очевидно, с тем лишь отличием, что вы используете дериктиву goto, от неё откажитесь в вашей практике, сложнее понять как будет функционировать ваша программа, хотя вашем коллегам по старше будет это очевидно, при наличии опыта.

P.S.
Создайте новый вопрос с описанием задачи и скиньте мне сообщением ссылку.

за отметку "Лучший ответ" и нажатую кнопочку " " тут и в моем профиле.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?