- •Указатели: Определение и использование (примеры)
- •Операции над указателями и адресами.
- •Методы доступа к элементам массивов.
- •Двойные указатели. Назначение и использование (примеры).
- •Типовая структура программы на языке Си.
- •Методы передачи параметров в функцию.
- •Рекурсивные функции. Пример использования.
- •Организация работы с файлами. Открытие, закрытие и режимы доступа.
- •Динамические массивы.
- •Динамические структуры.
- •Списки. Линейные и связанные списки.
- •Стеки и очереди. Организация хранения в стеке.
- •Линейная сортировка, метод пузырька.
- •Сортировка вставкой, посредством выбора.
- •Сортировка списков путем слияния.
- •Быстрая сортировка.
- •Алгоритмы поиска.
- •Классы памяти, время жизни объектов
- •Правила инициализации переменных с различным временем жизни.
- •Модели памяти компьютера при работе с программами.
- •Управление экраном и курсором в текстовом режиме,
- •Организация видеопамяти в текстовом режиме. Управление цветом.
- •Понятие Объектно-ориентированного программирования.
- •Методология объектно-ориентированного программирования.
- •37. Проектирование по. Стиль оформления программ.
- •Эффективность и технологичность программ
- •Программирование «с защитой от ошибок». Сквозной структурный контроль.
- •Виды контроля качества разрабатываемого по
- •Понятие структурного тестирования программ
- •Функциональное тестирование программ.
- •Отладка программного обеспечения, виды ошибок.
- •Методы отладки программного обеспечения.
- •45.Правила составления документации программного продукта
37. Проектирование по. Стиль оформления программ.
Проектирование программного обеспечения — процесс создания проекта программного обеспечения (ПО), а также дисциплина, изучающая методы проектирования.
Проектирование подразумевает выработку свойств системы на основе анализа постановки задачи, а именно: моделей предметной области,требований к ПО, а также опыта проектировщика.
Модель предметной области накладывает ограничения на бизнес-логику и структуры данных.
Требования к ПО определяют внешние (видимые) свойства программы, рассматриваемой как чёрный ящик.
Определению внутренних свойств системы и детализации её внешних свойств собственно и посвящено проектирование.
Проектирование ПО является частным случаем Проектирования продуктов и Проектирования систем.
В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации. В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемы,ER-диаграммы, UML-диаграммы, DFD-диаграммы, а также макеты.
Проектированию обычно подлежат:
Архитектура ПО
Устройство компонентов ПО
Пользовательские интерфейсы
В российской практике результат проектирования представляется в виде комплекса документов под названием «Эскизный проект», «Технический проект», в зарубежной — Software Architecture Document, Software Design Document.
Стиль оформления программы
С точки зрения технологичности хорошим считают стиль оформления программы, облегчающий ее восприятие как самим автором, так и другими программистами, которым, возможно, придется ее проверять или модифицировать. «Помните, программы читаются людьми», призывал Д. Ван Тассел, автор одной из известных монографий, посвященной проблемам программирования [60].
Именно исходя из того, что любую программу неоднократно придется просматривать, следует придерживаться хорошего стиля написания программ. Стиль оформления программы включает:
• правила именования объектов программы (переменных, функций, типов, данных и т. п.);
• правила оформления модулей;
• стиль оформления текстов модулей.
Правила именования объектов программы. При выборе имен программных объектов следует придерживаться следующих правил:
• имя объекта должно соответствовать его содержанию, например:
Maxltem - максимальный элемент;
Nextltem - следующий элемент;
• если позволяет язык программирования, можно использовать символ «_» для визуального разделения имен, состоящих из нескольких слов, например:
Maxltem, Nextjtetm;
• необходимо избегать близких по написанию имен, например:
Index и InDec.
Правила оформления модулей.
Каждый модуль должен предваряться заголовком, который, как минимум, содержит:
• название модуля;
• краткое описание его назначения;
• краткое описание входных и выходных параметров с указанием единиц измерения;
• список используемых (вызываемых) модулей;
• краткое описание алгоритма (метода) и/или ограничений;
• ФИО автора программы;
• идентифицирующую информацию (номер версии и/или дату последней корректировки).
Например:
Стиль оформления текстов модулей.
Стиль оформления текстов модулей определяет использование отступов, пропусков строк и комментариев, облегчающих понимание программы. Как правило, пропуски строк и комментарии используют для визуального разделения частей модуля, например:
{проверка количества отрезков и выход, если отрезки не заданы}
ifn<0 then begin
WrileLn (' Количество отрезков отрицательно');
exit;
end;
{цикл суммирования длин отрезков}
S: = 0;
for i: = 0 to n-l do S: = S + Len [i];
Для таких языков, как Pascal, C++ и Java, использование отступов позволяет прояснить структуру программы: обычно дополнительный отступ обозначает вложение операторов языка, например:
аmах: = а[1,1];
for i: = l to n do for j: = l to т do ifa[i,j]>amax then amax: = a [i,j];
Несколько сложнее дело обстоит с комментариями.
Опыт показывает, что переводить с английского языка каждый оператор программы не нужно: любой программист, знающий язык программирования, на котором написана программа, без труда прочитает тот или иной оператор. Комментировать следует цели выполнения тех или иных действий, а также группы операторов, связанные общим действием, т. е. комментарии должны содержать некоторую дополнительную (неочевидную) информацию, например:
{проверка условия и выход, если условие не выполняется}
ifn<0 then begin
WriteLn('Kojiit4ecmeo отрезков отрицательно');
exit;
end;
Для языков низкого уровня, например, Ассемблера, стиль, облегчающий понимание, предложить труднее.
В этом случае может оказаться целесообразным комментировать и блоки операторов, и каждый оператор, например: