- •Основные этапы решения задач на эвм
- •Критерии качества программы
- •Постановка задачи и спецификация программы
- •Способы записи алгоритмов
- •Программа на языке высокого уровня.
- •Стандартные типы данных
- •Представление основных структур программирования: итерация, ветвление и процедуры в различ языках программирования.
- •Программирование рекурсивных алгоритмов
- •Способы конструирования программ
- •Модульность в языках программирования
- •Формальные методы доказательства правильности программ и их спецификаций.
- •Классификация программных продуктов
- •Процесс производства
- •Процедурное, логическое, функциональное и объектно ориентированное программирование
- •Методы технология и инструментальные средства программирования
- •Тестирование и отладка программ
- •Документирование программных средств
- •Проектирование программного обеспечения
- •Абстрактные структуры данных
- •Технологический цикл разработки программных систем
- •Коллективная работы по созданию программ
- •Разработка и инструментальные средства поддержки по
- •Система автоматизированного проектирования
Критерии качества программы
Корректность – очевидно, что программа должна работать правильно, иначе нет смысла ее писать.
Надежность – программа не должна «зависать» или «зацикливаться» при любых исходных данных.
Эффективность – программа должна использовать, по возможности, минимальное количество ресурсов, как по памяти (хотя в настоящее время это стало менее актуально), так и по времени (это проблема остается актуальной, особенно при обработке больших массивов данных или при решении задач, в которых время обработки экспоненциально зависит от размерности исходных данных).
Эргономичность – удобство для пользователя. Не забывайте, что первым пользователем Вашей программы будете Вы сами.
Читабельность – удобство для программиста. К сожалению, по прошествии времени, программа забывается, и давно написанную Вами программу невозможно прочитать как книгу, Вы должны заново принимать все когда-то принятые решения. Поэтому нет смысла создавать себе дополнительные трудности в виде плохо структурированного и плохо читаемого текста. Для решения этой проблемы существует ряд принципов написания текста программы.
Не стоит писать, как слишком длинные строки – они уходят за пределы экрана по ширине, так и слишком короткие строки – они увеличивают длину не только всей программы, но и каждого отдельного блока, который Вы в этом случае не можете охватить взглядом и оценить, что он делает.
Принято вложенные блоки писать со смещением вправо.
Используйте везде, где можно, аккуратные столбцы.
Не жалейте пробелов – «а + b» читается лучше, чем «a+b».
Не прячьте операторные скобки (begin … end в Паскале, {…} в С) в конец строки – в этом случае их трудно найти и определить начало и конец блока.
Переносимость – программа должна работать не только на Вашем компьютере, но и на других!
Диалоговые программы
При выполнении программ возможен диалог (обмен сообщениями) человека с машиной. К диалоговым относятся, например, игровые программы, программы совместного решения задачи человеком и машиной и т.д. После вывода сообщения об очередном ходе или результате этапа вычислений такие программы ждут от человека сообщения об ответном ходе или указаний относительно дальнейших действий. Программа ждет — значит, ее выполнение приостанавливается до получения сообщения человека.
Для написания диалоговых программ созданы специальные языки, предоставляющие много удобств, например обмен текстовыми сообщениями. Эти языки здесь рассматриваться не будут, так как речь пойдет только о принципе организации диалога человека и машины. Рассмотренный язык алгол становится пригодным для написания диалоговых программ, коль скоро принято следующее толкование оператора ввода. Если числа еще не подготовлены к моменту, когда надо выполнять этот оператор, то выполнение программы прерывается и продолжается только после появления нужных чисел. В следующих параграфах будет рассказано о выполнении таких программ машиной.
