Объясните, почему программа не выдает результата? 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.
Очевидно, что успешность выполнения завершения цикла зависит от значения P, так как в любом случаи, если P != 13, вы возращаетесь в начало цикла.
Маленькое лирическое отступление:
Отформатированный код будет приведен в коментариях, если кому-то не ясно.
Ваш код сложно назвать "спагетти кодом", т.к. у вас все довольно очевидно, с тем лишь отличием, что вы используете дериктиву goto, от неё откажитесь в вашей практике, сложнее понять как будет функционировать ваша программа, хотя вашем коллегам по старше будет это очевидно, при наличии опыта.
P.S.
Создайте новый вопрос с описанием задачи и скиньте мне сообщением ссылку.
за отметку "Лучший ответ" и нажатую кнопочку " " тут и в моем профиле.