Общие требования к программе

Как говорит один уважаемый коллега
«Нет, ребята, конца света не будет!
Всё это придётся разгребать самим…
»

  • (0) Программа должна работать!

    Программа должна выдавать правильные ответы за разумное время.
    Причём важно, чтобы программа НИКОГДА НЕ выдавала неправильных ответов (а не ИНОГДА выдавала бы правильные).

  • (1) Правило отделения знаков препинания.

    После знаков препинания — включая , и-или ; — должен стоять пробел или перенос строки.
    После иных знаков препинания пробелы ставятся в соответствии с правилами русского (английского) языка.

  • (2) User friendly interface

    Программа должна анонсировать свои действия, т.е. одиноко мигающего курсора на пустом экране, ожидающего неведомо чего, быть не должно.

  • (3) Текст программы содержит структуры типа "лесенка".

    Структура бывает следующих видов:

    if(a > b)                             if(a > b)
             {                            {
             a = b;                           a = b;
             b = c;            или            b = c;
             c = a;                           c = a;
             }                            }
    

    Структурами вроде:

    if(a > b){                  if(a > b){          if(a > b)
         a = b;                      a = b;              {
         b = c;                      b = c;                 a = b;
         c = a;                      c = a;                 b = c;
         }                      }                           c = a;
                                                         }
    пользоваться можно, хоть и нежелательно (но всё же можно!).

    Конечно, структуры бывают вложенными, но вот несколько открывающих операторных скобок подряд не бывает — ни в одной строке, ни в одном столбце.

    Разумеется, должен использоваться один и только один тип структуры из вышеприведённых.

  • (4*) Защита от дурака.

    Программа должна проверять корректность введённых данных и сообщать пользователю об ошибке, в случае их некорректности.
    Не стоит сообщать об этом методом зависания программы и/или всего компьютера,
    а равно методом сообщения языка "Ошибка": неясно, что тут считать ошибкой (пользователя, программиста, весь компьютерный мир…)

  • (5) Зацикливание программы.

    Программа должна предоставлять пользователю возможность повторить себя (не запуская заново), т.е.
    после выполнения спрашивать, "желает ли пользователь работать с ней дальше (Yes/No)" и,
    в случае согласия, повторить весь процесс с новыми исходными данными, заново введёнными пользователем.

  • (6) Правила хорошего тона.

    (6.1) Запрещённые конструкции (типа goto) использовать не следует.
    Не заставляйте преподавателей произносить неприличные слова (сдавать программу, использующую такие конструкции, — занятие бесперспективное).

    (6.2) Наличие комментариев.
    Текст программы следует снабдить комментариями.

03.10.03