Принципы структурного программирования

- Преимущественное использование базовых алгоритмических структур: следование, развилка, цикл.

- Метод нисходящего проектирования алгоритмов.

- Использование обозначений, соответствующих содержанию задачи и облегчающих понимание программы.

-Преимущественное использование базовых алгоритмических структурÞограниченное использование операторов безусловного перехода – goto, break, continue, exit и др.

-Преимущественное использование базовых алгоритмических структур Þ уменьшение разнообразия алгоритмов, их стандартизация Þ улучшение наглядности алгоритмов, понятности алгоритмов Þ уменьшение количества ошибок при разработке алгоритмов.

-Структурное программирование основано на теореме Дейкстры.

При установлении связей между подалгоритмами очень важно. Метод нисходящего проектирования:
 - разделение задачи на связанные между собой подзадачи;

 - алгоритм каждой подзадачи имеет один вход и один выход;

 -разбиение на подзадачи отражает логику программы;

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

-подзадачи автономны - кодируются как подпрограммы, преимущественно использующие локальные переменные.

20. Технология разработки программ. Понятие технологии программирования. Этапы развития технологий программирования, виды технологий. Критерии качества программ. Этапы разработки программы. Понятие о внешней спецификации задачи. Правила записи спецификаций.

Технология программирования - совокупность методов и инструментальных средств, используемых в процессе разработки программного обеспечения. Технология программирования представляет собой набор технологических инструкций, включающих:
 - указание последовательности выполнения технологических операций (этапов разработки), описание операций;
 - перечисление условий, при которых выполняется та или иная операция;

-инструкции, нормативы, стандарты, критерии и методы оценки;

Этапы развития технологии программирования.
 1. «Стихийное программирование». От появления первых ЭВМ до середины 60-х годов ХХ века («кризиса программирования»).
 2. Структурное программирование. Середина 60-х – середина 80-х годов ХХ века. В рамках структурного программирования – модульное программирование (разбиение программы на независимые файлы – модули).
 3. Объектно-ориентированное программирование. Середина 80-х – середина 90-х годов ХХ века. Объект (класс) – новый тип данных, который объединяет в себе данные и методы (подпрограммы) обработки этих данных.
 4. Компонентный подход к программированию и использование Case-технологий. построение программного обеспечения из отдельных двоичных компонентов, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов, объекты-компоненты можно собрать в динамически присоединяемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных кодов) и использовать в любом языке программирования, поддерживающем соответствующую технологию.

 Критерии кач-ва программ:

Надежность (отсутствие некомментируемых отказов)

Наличие «дружественного интерфейса»

Простота анализа и изменения программы

Документированность

Соответствие постановке задачи

Эффективность 

Этапы разработки программы:
 1. Анализ задачи
 2. Разработка алгоритмов
 3. Кодирование алгоритма
 4. Отладка и тестировании программы
 5. Оформление документов

Внешняя спецификация задачи:
 1. Название и условие задачи
 2. Входные данные:
 - состав (имя, смысл, тип, структура);
 - диапазон;
 - точность;
 - объем;
 - форма записи - форма ввода (входная форма)
 3. Выходные данные: то же, что и в входных, только теперь выходные
 4. Метод решения (название или описание) или и

  4а.Связь входных и выходных данных (возможно, формулы)
 5. Аномалии: аномальные ситуации и реакции на них
 6. Функциональные тесты

21. Отладка и тестирование программ. Функциональные и структурные тесты. Виды ошибок в программах.

Тест - совокупность специально подобранных исходных данных и соответствующих выходных данных, используемых для проверки правильности работы программы.

Тестирование - испытание программы на множестве тестов.        

Тесты бывают функциональные (создаются на этапе анализа задачи) и структурные (создаются на этапе разработки алгоритма).
 При построении функциональных тестов:
 - Программа рассматривается как «черный ящик», ее внутренняя структура не учитываются.
 - Используются методы решения задачи, отличные от положенных в основу алгоритма.
Цель функционального тестирования - н айти расхождение между программой и ее внешней спецификацией.
Общие правила:

1. Просматриваются разделы внешней спецификации «Исходные данные», «Аномалии»; определяется область допустимых значений исходных данных; тесты строятся для допустимых, недопустимых и граничных значений исходных данных.

2. По разделу «выходные данные» строятся их функциональные границы; тесты строятся с учетом этих границ.

 

 Каждый структурный тест проверяет правильность выполнения вычислений по одному из возможных путей реализации алгоритма - количество структурных тестов определяется количеством таких путей.
 Структурное тестирование:
- Учитывает логику (структуру) программы
- Предусматривает контроль правильности вычислений с помощью ручного просчета (или просчета с помощью других программ)
- Предполагает пошаговое выполнение программы (трассировку) с контролем промежуточных результатов

 

  Отладка - процесс поиска, локализации и устранения ошибок в программе с целью получения правильной программы.

 Этапы отладки:
1. Устранение синтаксических ошибок
2. Устранение ошибок при редактировании связей и Загрузке
3. Ликвидация ошибок при выполнении программы, обнаруживаемых инструментальной средой программирования или операционной системой
4. Тестирование программы
5. Верификация - доказательство корректности программы посредством логического анализа - необязательный этап

Способы тестирования сложных программ:
нисходящий (с заглушками *подпрограмма, моделирующая работу еще не разработанного модуля.*) и восходящий (с драйверами *специальная несложная программа для проверки работы подпрограмм*)

Основные виды ошибок в программировании:
 - Синтаксические
 - Логические
 - Компиляции (Синтаксис может быть и норм, а все равно ошибка. Скорее всего, ошибка в самом компиляторе)
 - Среды выполнения (Ошибки при запуске уже самой программы. Тут либо нехватка ресурсов, либо какая-то авария)
 - Арифметическая
 - Ошибка ресурса (Значение переменной переполняет максимальное допустимое значение)

22. Логические выражения. Логические константы, переменные. Соотношения. Логические операции. Формулы двойственности. Примеры составления и использования логических выражений.

 

23. Подпрограммы. Их назначение. Понятие о функциях

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

для улучшения наглядности программы за счет укрупнения операторов;

для создания библиотек алгоритмов, в том числе библиотек объектных модулей;

для упрощения отладки программ;

чтобы упростить разделение труда между несколькими программистами;

 В MatLab подпрограммы имеют разрешение.m. Подпрограммы могут быть как скриптами(не имеют параметров; имеют общее пространство рабочих переменных с вызывающим кодом.), так и функциями(это подпрограммы MATLAB; имеют собственное, независимое от вызывающего кода, пространство рабочих переменных; имеют параметры.). Все подпрограммы имеют собственные локальные переменные.
 Передача данных между подпрограммой и основным кодом возможна либо ч ерез параметры функции, либо через глобальные переменные.

  Формальные параметры действуют только внутри функции (являются локальными). При обращении к функции формальные параметры заменяются на данные вызывающего кода (фактические параметры).
 Фактические параметры функции - это параметры вызывающего кода (базовой рабочей области), которые подставляются вместо формальных параметров при вызове функции. При вызове осуществляется копирование данных из базовой рабочей области в рабочую область функции.

 При обращении к функции формальные параметры заменяются на данные вызывающего кода (фактические параметры).
 Записываем функцию, как function [Список выхода] = ИмяФункции(Список входа)

24. Основы работы в среде Matlab. Окно среды: командное окно, рабочая область, проводник текущей директории, окно предыстории. Оператор присваивания. Имена переменных. Константы. Задание значений векторов и матриц. Основные операции. Матричные и скалярные операции. Оператор двоеточия.

 Присваивание "="
 Имена переменных могут задаваться только латинскими буквами, цифрами и символом ‘_’, причем начинаться имя должно именно с латинской буквы
 Константы "const per = *число*"
 Вектор: a = [1 2 3 4], если нужен столбец, то транспонируем " ' "
 Матрицу вводим либо [1 2 3; 1 2 3; 1 2 3], либо через строки

Если действуем со склаярными величинами, то перед действием ставим ". "
Операции над матрицами в билите 31.

A(:) – матрица А вытягивается в вектор «по столбцам».

 






















































Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: