- •Введение.
- •Понятие формального алгоритма.
- •Абстрактная машина.
- •Диалоговые программы.
- •Структурное программирование.
- •Информация.
- •Программа на языке высокого уровня.
- •Интерпретатор – покомандно или построчно считывает программу на исходном языке, переводит на машинный язык и отправляет на выполнение.
- •Интерпретатор языка командной строки.
- •Критерии качества программы.
- •Императивные и декларативные языки.
- •Надежность по.
- •Жизненный цикл по.
- •Структурное программирование.
- •Язык программирования с.
- •Алфавит.
- •Константы.
- •Void – пусто. Используется для обозначения отсутствия возвращаемого значения функции.
- •Данные.
- •Int а[10][7];массив из 10 элементов типа массив, из элементов типа int
- •Структура.
- •Extern. Внутренняя переменная.
- •Динамическая структура данных. Синтаксическое и динамическое распределение памяти.
- •Формальные параметры.
- •Тело функции.
- •Вызов функции.
- •Фактические аргументы.
- •Использование файлов в языка программирования с.
- •Директивы препроцессора. Указания компилятора.
- •Именованные константы. Макроопределения.
- •Проектирование интерфейса.
- •Блок схемы.
- •Символы процесса.
Введение.
Язык программирования – набор ключевых слов и система грамматических и синтаксических правил для конструирования операторов, состоящих из групп или строф знаков, с помощью которых человек сообщает компьютеру последовательность команд.
Специфика в том, что обозначения понятны человеку и могут быть преобразованы в последовательность машинных команд.
Классификация языков программирования:
-
Неструктурный (преобразование машинных кодов на языке Assembler);
-
Модульные (задачи→подзадачи →алгоритмы→функции);
-
Логический подход;
-
Объектно-ориентированный подход;
-
Функциональный подход;
-
Смешанный подход;
-
Компонентно-ориентированный подход;
Транслятор – программа для перевода программы понятных человеку символов в программу машинных кодов.
Понятие формального алгоритма.
Формальный алгоритм – заранее заданная последовательность чётко определённых правил или команд для получения решения задач за конечное число шагов.
Рабочая лента – линейно-упорядоченный массив переменной длины. В каждой ячейке 1 символ. Переменная-указатель – управляющая головка, которая в любой момент времени указывает на какую-либо ячейку рабочей ленты.
Эффективность алгоритма – алгоритм или функция эффективно вычислима, если существует алгоритм правильно её вычисляющий и удовлетворяющий следующим требованиям:
-
Состоит из конечного множества простых команд, для которых однозначно определён порядок исполнения;
-
Вычисления должны закончиться и дать результат в конечное число шагов;
-
Если аргумент принадлежит области определения, не должны приводить к результату: аргумент не принадлежит области определения.
Эффективным называется алгоритм, который допускает эффективную вычислительную реализацию.
20-е года ХХв. – машина Тьюринга (Гильберт, Черч (основа понятий рекурсивной функции), Клини, Пост, Тьюринг (описание алгоритмического процесса))
1936- выдвинута концепция автоматического устройства, способного выполнить любое мыслимое вычисление.
Абстрактная машина.
∆Фон Неймана (1945-ЭДВАК 3-хкомпонентная архитектура).
Такая ЭВМ выполняет программу, которая должна храниться в памяти, где хранятся и данные этой программы.
ЗУ и УВВ – прямой доступ в памяти.
Переменная – область в памяти.
Память – последовательность ячеек для хранения порции информации. Доступ к информации осуществляется в соответствии с адресом этой ячейки или в порядке очереди.
Классификация памяти:
-
постоянная;
-
оперативная = временная (v ↑)
УУ – для считывания команд данных из памяти и общая координация команд.
АЛУ – для выполнения простейших арифметических и логических операций.
Основные этапы решения задач на ЭВМ.
-
Осознание проблемы, формулировка задачи;
-
Формальная постановка задачи (формируется цель, описывается её содержание), что будет делать программа, не указывая как), анализируется характер, сущность всех величин, используемых в задаче, определяется условие, при которых она решается, результатом данного этапа является спецификация программы);
Спецификация программы – точное описание того результата, который необходимо получить с помощью программы.
-
Выбор или разработка метода решения задач (с учетом особенностей, метод должен привести задачу к конкретным машинным операциям);
-
Разработка алгоритма решения задач (процесс обработки разбивается на отдельные относительно самостоятельные блоки);
-
Разработка структур данных и архитектуры программы (начиная с проектирования архитектуры, общих структур данных);
-
Перевод алгоритма на язык программирования (требуются языки высокого уровня с соответствующим транслятором в машинный код);
-
Разработка системы теста, отладка и тестирование программы (поиск и устранение синтаксических и логических ошибок в программе). Синтаксический контроль выполняет транслятор, который выявляет конструкции и сочетания символов, недопустимые с точки зрения языка программирования. После устранения синтаксических ошибок проверяется логика работы в процессе её выполнения с конкретными исходными данными);
-
Решение поставленной задачи и анализ результатов (выполняется многократное решение задач на ЭВМ для различных наборов исходных данных. Получаемый результат интерпретируется специалистом или пользователем, составившим задачу).
Этапы связаны друг с другом, но некоторые могут отсутствовать. Неудовлетворительный результат приводит к пересмотру одного или нескольких предшествующих этапов.
Критерии качества ПО.
-
Функциональные возможности. (Описывает свойства ПО в части полноты удовлетворения требований пользователя. Оценка качества ПО должна начинаться с точного и формального установления предъявляемых требований и поверки соответствия ПО данным требованиям.)
-
Надежность ПО – характеристика его способностей выполнять возложенные функции при поступлении запросов на их выполнение. В отличие от надежности правильность ПО – соответствие предъявляемым требованиям, то есть различие в том, что правильность – некоторое статическое свойство, которым в соответствии со спецификацией должна обладать программа. Надежность – динамические требования к работоспособностям системы.
-
Практичность:
-
Простота использования;
-
Модифицируемость (характер трудоемкости внесения изменений в программу при ошибках и др.)
-
Сопровождаемость
-
Возможность многократного использования (наличие отдельных частей, модулей и тому подобное, которые могут быть в неизменном виде или с небольшими изменениями перенесены в другие программы)
-
Мобильность - набор атрибутов, относящихся к соотношению между уровнем качества функций ПО и объемом используемых ресурсов при установленных условиях. Характеризуется 2 способами: с учетом v используемой памяти, быстродействия программы.