
- •1. Алгоритмизация
- •1.1.Функциональная схема эвм.
- •1.2. Этапы решения задач на эвм.
- •1.3. Язык блок-схем для представления алгоритмов
- •1.4. Базовые структуры алгоритмов
- •1.5. Конструирование сложных алгоритмов
- •2. От алгоритма к программе
- •2.1. Концепция данных в Турбо-Паскале
- •2.2. Структура Паскаль - программы
- •2.3. Комментарии
- •2.4 Операторы
- •2.4.1 Оператор присваивания
- •2.4.2. Составной оператор
- •2.4.3. Логические выражения
- •2.4.4. Условный оператор
- •2.4.5. Оператор цикла с параметром
- •2.4.6. Оператор цикла с постусловием
- •2.4.7. Оператор цикла с предусловием
- •2.5. Производные типы
- •2.5.1 Перечислимые типы
- •2.5.3. Регулярные типы (массивы)
- •2.5.4. Многомерные массивы
- •2.5.5.Комбинированные типы (записи)
- •2.6. Подпрограммы
- •2.6.1. Функции
- •2.6.2. Процедуры
- •2.6.3. Формальные и фактические параметры
- •2.6.4. Параметры - значения
- •2.6.5. Параметры - переменные
- •2.6.6. Параметр - массив
- •2.6.7. Параметры подпрограмм без указания типа
- •2.6.8. Параметры - процедуры и параметры - функции
- •2.6.9 Локальные и глобальные переменные
- •3. Задания
- •3.1. Построение таблицы значений функции.
- •3.2 Вычисление сумм и произведений.
- •3.3. Вычисление функции разложением в ряд
- •3.4 Обработка одномерных массивов.
- •3.5 Проверка попадания точки в заданную область
- •3.6. Нахождение экстремумов последовательностей
- •3.7.Обработка простых двумерных массивов.
- •3.8 Обработка двумерных массивов
- •3.9. Разработка алгоритмов и программ нисходящим способом
- •3.10.Задачи на обработку символьных данных сложной структуры
- •Создать исходный типизированный файл.
- •Результаты записать в текстовый файл.
- •3.11 Задачи с использованием имени массива как параметра функции
- •3.12. Задача на использование формальных массивов в процедурах
- •3.13. Задачи на разработку программы с использованием созданной по условию процедуры
- •3.14.Задачи на использование функций в качестве параметров других функций.
- •3.15. Разработка многомодульных программ.
1.3. Язык блок-схем для представления алгоритмов
Существует несколько способов представления алгоритмов. Мы рассмотрим язык блок-схем, это наиболее простой и наглядный способ, пригодный для алгоритмов любой сложности.
Блок-схема - это графическое представление алгоритма, где все инструкции пишутся в некоторых геометрических фигурах, я стрелками указывается последовательность выполнения операций.
Рассмотрим составляющие блок-схему блоки.
Операторы ввода и вывода помещаются в параллелограмм (см. рис. 2 а).
Если это оператор ввода, то после его выполнения, все перечисленные в нем переменные получат значения, введенные в момент выполнения алгоритма с устройства ввода. Если это оператор вывода, то в момент выполнения алгоритма, на устройство вывода будут выведены взятые из памяти значения переменных, перечисленных в операторе.
Вычислительные операторы записываются в прямоугольных блоках (рис. 2 б).
В названные блоки может входить сколько угодно стрелок и выходить - только одна.
Следующий блок в виде ромба (рис. 2 в) имеет две выходящие стрелки, но это не нарушает однозначности алгоритма, т.к. в таком блоке записывается условие и, в зависимости от результата его проверки, выполнение алгоритма продолжается по стрелке с надписью “да”, если условие выполнено, или - с надписью “нет”, если условие не выполнено.
И наконец в овале записывается оператор STOP, останавливающий процесс вычисления.
Блок-схема алгоритма может состоять из любого числа блоков, только для наглядности они должны помещаться на одной странице. Блок схемы рисуют сверху вниз и, если есть стрелки идущие вверх, то на них не должно быть блоков.
1.4. Базовые структуры алгоритмов
Наложим еще некоторые ограничения на структуру блок-схемы. Будем строить алгоритм, используя только три фрагмента определенной конфигурации. Назовем их базовыми структурами алгоритмов.
Первая базовая структура - следование состоит из цепочки блоков без разветвлений.
Вторая базовая структура - ветвление имеет вид, представленный на рис. 3. Смысл этой конструкции состоит в выборе, в зависимости от результатов проверки условия, одной из двух альтернативных групп операторов S или P, либо, в частном случае, - выполнение или невыполнение группы операторов R.
Третья базовая структура - цикл.
Смысл цикла в многократном выполнении группы операторов, называемых телом цикла. Для завершения работы цикла необходимо осуществить проверку некоторого условия выхода из цикла. В зависимости от того, расположена ли эта проверка до тела цикла или после него, различают цикл с предусловием (рис. 4 а) и цикл с постусловием (рис. 4б).
Важной особенностью всех этих структур является наличие одного входа и одного выхода. Это дает возможность вкладывать одни базовые конструкции в другие, т.е. строить иерархию таких структур. При этом некоторый прямоугольный блок заменяется одной из базовых структур.
Рис. 4 а)
Рис. 4 б)
Рассмотрим пример простейшего циклического алгоритма. Пусть надо посчитать факториал числа N. Как известно факториал числа N равен произведению всех целых положительных чисел меньших и равных числу N, т.е. N! = 1*2*...*N. Ясно, что для подсчета факториала необходимо многократно повторять умножение, следовательно, алгоритм должен содержать цикл. Конструируя алгоритм надо выбрать структуру цикла с предусловием или с постусловием. Перед циклом следует поставить блоки подготовки цикла, в них задаются начальные значения переменных, встречающихся в правой части операторов тела цикла. Естественно в начале алгоритма необходимо ввести исходные данные, в рассматриваемом примере - значение числа N.
На рис. 5 представлены блок схемы алгоритма подсчета факториала числа N.
На рис. 5 использован цикл с предусловием, а на рис.6. - с постусловием.
В обоих алгоритмах переменная i содержит текущий сомножитель для подсчета факториала, с точки зрения структуры цикла i это параметр цикла. Блок, находящийся в теле цикла и содержащий оператор i := i + 1, подготавливает следующий шаг выполнения тела цикла. Для этого к значению переменной i прибавляется единица (правая часть оператора) и полученное новое значение приписывается переменной i, т.е. значение переменной i изменяется на единицу.