Примеры блок-схем для конкретных задач. Программа описание структуры алгоритма на языке программирования. Программа на языке Паскаль имеет следующую структуру program
Скачать 0.81 Mb.
|
1 Основные определения. Алгоритмические конструкции Алгоритм – упорядоченная совокупность системы правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых приводит к решению любой задачи из рассматриваемого класса задач за конечное число шагов. Блок-схема – это наглядное графическое представление алгоритма с помощью геометрических фигур, соединенных линиями-связями, показывающими порядок выполнения инструкций. Основные элементы блок-схем представлены в Приложении 2. Программа – описание структуры алгоритма на языке программирования. Программа на языке Паскаль имеет следующую структуру: program <имя программы>; uses <подключаемые библиотеки>; const <описания констант>; var <описания переменных>; type <описания типов>; begin <операторы языка> end. Тестирование - этап разработки компьютерной программы, в процессе которого проверяется работоспособность программы, наличие ошибок. Существует три типа алгоритмических конструкций: линейная (последовательная), разветвляющаяся и циклическая. Рассмотрим каждую из них на примерах. 2 Линейная алгоритмическая конструкция Линейный алгоритм – это описание последовательности действий, которые выполняются однократно в заданном порядке (рис. 1). Рис. 1 Размещение блоков в линейном алгоритме Начало Конец 3 ПРИМЕР 1. Разработайте алгоритм решения линейного уравнения: составьте блок-схему, листинг программы на языке Паскаль. Выполните тестирование программы. Начало Конец Вывод x Ввод k, b k b Х 4 2. Листинг программы program uravnenie ; uses crt; var x, k, b: real ; begin writeln ('Введите коэффициент k') ; readln (k) ; writeln ('Введите b') ; readln (b) ; clrscr; {Очистка экрана после ввода данных} x:=-b/k ; writeln ('Корнем линейного уравнения ',k:3:2,'*x+',b:3:2, '=0 является x =', x:3:2) ; end. 3. Тестирование № п/п Значение k Значение b Результат выполнения программы Ожидаемый результат 1 2 5 -2.5 -2.5 2 10 -20 2 2 3 5 -5 1 1 4. Результат выполнения программы 5 Разветвляющаяся алгоритмическая конструкция Разветвляющийся алгоритм – такой алгоритм, в котором выполняется либо одна, либо другая последовательность действий, в зависимости от условия. Различают две формы разветвляющейся алгоритмической структуры: полное ветвление (ЕСЛИ – ТО – ИНАЧЕ) и неполное ветвление (ЕСЛИ – ТО). Полное ветвление (рис. 2) позволяет организовать в алгоритме две ветви (ТО или ИНАЧЕ). Неполное (рис. 3) предполагает наличие действий только на одной ветви (ТО), вторая ветвь отсутствует. Рис. 2 Полное ветвление Рис. 3 Неполное ветвление Условие Действия Да Нет Условие Действия 2 Действия 1 Да Нет 6 ПРИМЕР 2.Разработайте алгоритм вычисления значения функции 0 , 5 2 0 , 1 ) ( x x x a X Y , где а – произвольное целое число, введенное с клавиатуры. Составьте псевдокод, напишите программу на языке Паскаль. Проверьте программу на наличие ошибок. 2. Листинг программы program functia; uses crt ; var a: integer ; x, Y: real; begin clrscr; writeln ('Вычисление значения функции'); writeln ('Введите X и а'); readln (x, a) ; if x > 0 then Y:=a – 1 else Y:= sqr(x)+5; writeln ('При а =' , а, 'Y =',Y:5:2); readln; end. 1. Блок-схема 3. Тестирование № п/п Значение a Значение x Результат выполнения программы Ожидаемый результат 1 2 1 1 1 2 10 -4 21 21 3 1 -5 30 30 Конец Вывод Y X>0 Y(X)=а–1 Y(X)=X 2 +5 Да Нет Начало Ввод x, a 7 4. Результат выполнения программы 8 Команда «Выбор» Для выбора из нескольких альтернативных действий используется команда «выбор». Перед выполнением команды «выбор» вычисляется значение некоторого выражения Х, а затем, исходя из значения Х, выполняется определенное действие (Рис. 4). Рис. 4 Команда «Выбор» Структура оператора выбора имеет вид: case <управляющая переменная> of <список значений 1>:<оператор 1>; ……… <список значений n>:<оператор n>; else <оператор k> end. В качестве управляющей переменной можно использовать переменную целого или символьного типа. Хn Х2 Х1 … Х Действие1 Действие2 Действие n 9 Циклическая алгоритмическая конструкция Циклической называют алгоритмическую конструкцию, в которой действие выполняется указанное число раз, или, пока не выполнится условие. Группа повторяющихся действий цикла называется телом цикла. Существует три типа циклов: цикл с параметром (арифметический), цикл с предусловием и цикл с постусловием. Цикл с параметром В цикле с параметром число повторений цикла однозначно определено и задается с помощью начального, конечного значений параметра и шагом его изменения. Рис. 5 Цикл с параметром Тело цикла i= 1, N, 1 10 ПРИМЕР 3. Разработать алгоритм программы, которая выводит таблицу квадратов первых десяти целых положительных чисел. 2. Листинг программы program kvadrat; uses crt ; var Y, i: integer ; begin clrscr; writeln ('Таблица квадратов'); for i:=1 to 10 do begin Y:=i*i; writeln (i, ' ',Y) end; readln; end. 1. Блок-схема 3. Тестирование Результат выполнения программы Ожидаемый результат 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 Y=i*i Начало Конец Вывод K i= 1, 10 Вывод i, Y 11 4. Результат выполнения программы Цикл с предусловием Действия внутри этого цикла повторяются, пока выполняется условие в блоке ветвления, причем сначала проверяется условие, а затем выполняется действие. Рис. 6 Цикл с предусловием Условие Тело цикла Нет Да 12 ПРИМЕР 4. Найти значение всех Y = X 3 - 5 при Х, изменяющемся от 1 до 10 с шагом 2. 2. Листинг программы program d; uses crt ; var x, y: integer; begin clrscr; x:=1; while x<10 do begin y:=sqr(x)*x - 5; writeln('x= ', x, ' y=', y); x:=x+2; end; readln; end. 1. Блок-схема 3. Тестирование Результат выполнения программы Ожидаемый результат x=1 y=-4 x=3 y=4 x=5 y=120 x=7 y=338 x=9 y=724 x=1 y=-4 x=3 y=4 x=5 y=120 x=7 y=338 x=9 y=724 Начало Х = 1 Конец Вывод Х, Y Х > 10 Y = X 3 – 5 Да Нет Х = Х + 2 13 4. Результат выполнения программы Цикл с постусловием Тело цикла с постусловием всегда будет выполнено хотя бы один раз. Оно будет выполняться до тех пор, пока значение условного выражения ЛОЖНО. Как только условное выражение принимает значение ИСТИНА, цикл завершается. Рис. 7 Цикл с постусловием Условие Тело цикла Нет Да 14 ПРИМЕР 5. Написать программу, определяющую максимум в последовательности вводимых с клавиатуры положительных чисел. Как только введено отрицательное число или 0, программа завершается. 2. Листинг программы program maximum; uses crt ; var a, max: integer ; begin clrscr; writeln ('Определение максимального числа'); writeln ('Вводите последовательность чисел'); writeln ('Программа завершается после ввода отрицательного числа или 0'); max:=0; repeat readln (a); if a>max thenmax:=a; until a<=0; writeln ('Максимальное число', max); readln; end. 1. Блок-схема 3. Тестирование Введенные числа Результат выполнения программы Ожидаемый результат 2 3 9 1 10 0 Максимальное число 10 10 Вывод max Начало max = 0 Конец Ввод a a 0 Нет max=a Да a > max Нет Да 15 4. Результат выполнения программы 16 Структурированные типы данных Одномерный массив Одномерный массив – это массив, элементы которого имеют только один индекс. Ввод элементов массива осуществляется поэлементно, обычно в порядке возрастания индексов. Алгоритм ввода элементов одномерного массива представлен на блок-схеме (рис. 2.1). Рис. 8 Ввод элементов одномерного массива При обработке элементов массива доступ к ним осуществляется также в цикле, как и ввод. Ввод а i i= 1, N, 1 17 ПРИМЕР 6. Вычислить произведение элементов одномерного массива А(10). 1. Блок-схема 2. Листинг программы program proizvedenie; uses crt ; var a: array[1..20] of real; p: real; i: integer; begin clrscr; writeln('Введите элементы массива'); for i:=1 to 10 do begin write ('a[', i, ']='); readln (a[i]); {Ввод элементов массива} end; P:=1; for i:=1 to 10 do P:=P*a[i]; {Вычисление произведения} writeln ('Произведение элементов массива = ', P:6:2); readln; end. Ввод а i i= 1, 10, 1 Начало P = 1 i= 1, 10, 1 Вывод Р Р = Р а i Конец 18 3. Тестирование Введенные числа Результат выполнения программы Ожидаемый результат 2 3 1 1 1 2 1 1 1 2 Произведение элементов массива 24 24 4. Результат выполнения программы ПРИЛОЖЕНИЕ Основные элементы блок-схем Вид графического объекта Название блока Начало алгоритма Конец алгоритма Процесс. Внутри блока записывается действие, вычислительная операция или группа Ввод/вывод данных с неопределенного носителя. Надпись внутри блока: ввод (вывод) и список вводимых (выводимых) переменных Ввод с клавиатуры Вывод на монитор Вывод на печатающее устройство Условный блок. Условие записывается внутри блока. В результате проверки условия осуществляется выбор одного из возможных путей вычислительного процесса Цикл с параметром Нет Условие Нет Да Условие Ввод / Вывод <Действие> Конец Начало Тело цикла 20 Вид графического объекта Название блока Границы цикла. Описывает циклические процессы: «цикл с предусловием» и «цикл с постусловием» Соединительный блок Тело цикла |