- •Часть 1
- •Раздел 1. Основы алгоритмизации
- •Тема 1.1. Понятие алгоритма
- •Подведем итоги
- •Тема 1.2. Линейные алгоритмы
- •Линейных алгоритмов
- •Подведем итоги
- •Тема 1.4. Циклы
- •Цикл "до"
- •Тема 1.3. Ветвления
- •Подведем итоги
- •Цикл "пока"
- •Арифметический цикл
- •Подведем итоги
- •Лабораторная работа №1 Создание и редактирование структурной схемы с помощью Microsoft Visio
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •Раздел 2. Основы программирования на языке паскаль
- •Тема 2.1. Интегрированная среда разработчика
- •Общие принципы компиляции
- •Подведем итоги
- •Лабораторная работа №2 Основные понятия алгоритмического языка Pascal
- •3.2. Структура программы
- •3.3.Имена и зарезервированные слова
- •3.4.Специальные символы
- •3.5. Константы и переменные
- •3.6. Оператор присваивания
- •Комментарии
- •Лабораторная работа №3 Арифметические операции
- •3.2. Типы целых чисел
- •3.3. Типы вещественных чисел
- •3.4. Арифметические выражения
- •3.5. Функции
- •Преобразование типов
- •4.Задание
- •Лабораторная работа №4 Ввод и вывод данных
- •3.2.Дополнительные операторы ввода и вывода
- •4.Задание
- •Лабораторная работа №5 Логические операции
- •3.2.Составной оператор
- •3.3.Сложные условия
- •3.4.Тип boolean (логический)
- •4.Задание
- •Лабораторная работа №6 Циклы
- •3.2.Оператор цикла repeat
- •3.3.Вложенные циклы
- •3.4.Операторы прерывания цикла
- •4.Задание
- •Лабораторная работа №7 Массивы
- •3.2.Многомерные массивы
- •4.Задание
- •Лабораторная работа №8 Функции и процедуры
- •Листинг 2.22. Пример функции
- •3.2.Обращение к функции
- •3.3.Процедуры
- •Листинг 2.23. Пример процедуры Параметры - переменные
- •4.Задание
- •Лабораторная работа №9 Порядковые типы данных
- •3.2.Перечисляемый тип данных
- •3.3.Интервальный тип данных
- •3.4.Оператор цикла for
- •Оператор выбора
- •4.Задание
- •Лабораторная работа №10 Строки символов
- •3.2.Средства обработки строк
- •4.Задание
Раздел 1. Основы алгоритмизации
Тема 1.1. Понятие алгоритма
В результате изучения данной темы Вы будете:
иметь представление о том, что такое алгоритм;
знать основные свойства алгоритма;
понимать, в каком виде может быть представлен алгоритм.
Часто начинающие программисты считают, что изучить тот или иной язык программирования достаточно для того, чтобы научиться программировать. Это глубокое заблуждение. Сам процесс непосредственного составления исходного кода программы (кодирования) на том или ином языке программирования составляет лишь малую долю всего "производственного цикла" программирования. Давайте рассмотрим этапы создания новой программы:
Постановка задачи. При постановке задачи выясняется конечная цель и вырабатывается общий подход к решению задачи. Выясняется, сколько решений имеет задача и имеет ли их вообще. Изучаются общие свойства рассматриваемого физического явления или объема, анализируются возможности данной системы программирования.
Формализация (математическая постановка). На этом этапе все объекты задачи описываются на языке математики, выбирается форма хранения данных, составляются все необходимые формулы.
Выбор (или разработка) метода решения. На этом этапе делается выбор существующего или разработка нового метода решения (это важный и, в то же время, личностный этап).
Разработка алгоритма выполнения задачи. Нa этом этапе метод решения записывается применительно к данной задаче на одном из алгоритмических языков (чаще на графическом).
Составление программы. На этом этапе производится перевод решения задачи на язык, понятный машине.
Отладка программы. Выявление неточностей "перевода" алгоритма на машинный язык и, возможно, ошибок в самом алгоритме в этом случае цикл разработки возвращается к п. 4. После исправления ошибок программа считается законченной. Однако для большинства программ п. 6. никогда не заканчивается - ошибки могут обнаружиться в ходе их эксплуатации. В этом случае производится выпуск "обновления" для исправления ошибок у всех пользователей данной программы.
Таким образом, самый "романтичный" этап создания программы кодирование - является далеко не самым важным во всем процессе создания программы.
Главным понятием программирования, бесспорно, является алгоритм. От качества алгоритма во многом зависит успешное выполнение задачи. Поэтому учиться программировать, прежде всего, означает учиться разрабатывать хорошие алгоритмы и применять те, которые уже известны.
Алгоритм - это определенным образом организованная последовательность действий, за конечное число шагов приводящая, к решению задачи.
Всякий алгоритм предполагает наличие исходных данных, которые однозначно определяют структуру и результат работы алгоритма. Каждый алгоритм предполагает выполнение следующих свойств:
пошаговость (дискретность);
однозначность (детерминированность);
понятность (алгоритмы, пишущиеся на изначально понятном пользователю языке, называются алгоритмическими);
4) конечность (результат должен быть получен за конечное число шагов);
5) свойства массовости (алгоритм, разработанный для одних исходных данных должен работать и для других исходных данных, подобных первоначальным).
Алгоритм необходимо записать. Это можно сделать на русском языке, на языке графических схем, наконец, на алгоритмическом языке. Последний хорош тем, что записанный на нем алгоритм становится программой для компьютера, хотя у двух первых языков есть свои достоинства. Освоение алгоритмических языков - другая сторона изучения программирования.
Пример. Записать в текстовом виде алгоритм вычисления выражения:
у = (Ах + В)(Сх - D) (Листинг 1.1).
Начало.
Ввести значения А, В, С, D, х.
R1 = А*х.
R2 = R1+B.
R3 = С*х.
R4 = R3-D.
у = R2*R4.
Вывести значение у.
Конец.
Листинг 1.1. Запись алгоритма в текстовом виде
В данном примере процесс решения задачи расчленяется на элементарные операции, арифметические действия, но это членение может быть продолжено и дальше. Например, сложение чисел R1+B можно развернуть в систему правил, описывающих процесс сложения чисел столбиком.
Пример. Записать в графическом виде алгоритм вычисления выражения:
у = (Aх + B)(Cх - D) (Рисунок 1.1).
Рисунок 1.1. Запись алгоритма в графическом виде
Пример. Записать алгоритм вычисления выражения у = (Ах+В)(Сх-D) на алгоритмическом языке Pascal.
program Calculation;
var
у, А, В, С, D, х, R1, R2, R3, R4;
begin
ReadLn(A, В, С, D, x);
R1 :=A*x;
R2 := R1+B;
R3 :=C*x;
R4 := R3-D;
у := R2*R4;
WriteLn('y=’, y);
end.
Листинг 1.2. Запись алгоритма на алгоритмическом языке программирования
Запись алгоритма распадается на отдельные указания исполнителю выполнить некое законченное действие. Каждое такое указание называется командой. Команды выполняются одна за другой. Для того чтобы исполнитель мог решить задачу по заданному алгоритму, необходимо, чтобы он был в состоянии выполнять каждое действие, предписываемое командами алгоритма
Совокупность команд, которые могут быть выполнены алгоритмом, называются системой команд исполнителя. Так, каждая строка на языке Pascal (Листинг 1.2), ограниченная символом ";", является командой. Сам язык Pascal, который описывает правила записи команд, является системой команд исполнителя.
