Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Словесное представление алгоритмов
Первоначально для записи алгоритмов пользовались средствами обычного языка (словесное представление алгоритмов). Уточним понятие словесного представления алгоритма на примере нахождения факториала числа n — произведения n натуральных чисел от 1 до n. Пусть c =1*2*3*4*...*n. Процесс вычисления факториала может быть записан в виде следующей системы последовательных указаний (пунктов): 1. Полагаем c равным единице и переходим к следующему пункту. 2. Полагаем i равным единице и переходим к следующему пункту. 3. Полагаем с = i*c и переходим к следующему пункту. 4. Проверяем, равно ли i числу n. Если i = n, то вычисления прекращаем. Если i < n, то увеличиваем i на единицу и переходим к пункту 3. Рассмотрим еще один пример алгоритма — нахождение наименьшего числа М в последовательности из n чисел a1, a2, ..., an (n> 0). Прежде чем записать словесный алгоритм данного примера, детально рассмотрим сам процесс поиска наименьшего числа. Будем считать, что процесс поиска осуществляется следующим образом. Первоначально в качестве числа М принимается а1 т. е. полагаем М = a1, после чего М сравниваем с последующими числами последовательности, начиная с a2. Если М < = a2, то М сравнивается с a3, если М < = a3, то М сравнивается с a4, и так до тех пор, пока найдется число аi < М. Тогда полагаем М = аi, и продолжаем сравнение с М последующих чисел из последовательности, начиная с an+1 и так до тех пор, пока не будут просмотрены все n чисел. В результате просмотра всех чисел М будет иметь значение, равное наименьшему числу из последовательности (i - текущий номер числа). Этот процесс может быть записан в виде следующей системы последовательных указаний: 1. Полагаем i = 1 и переходим к следующему пункту. 2. Полагаем М = аi, и переходим к следующему пункту. 3. Сравниваем i с п; если i < п, переходим к 4 пункту, если i = п, процесс поиска останавливаем. 4. Увеличиваем i на 1 и переходим к следующему пункту. 5. Сравниваем ai с М. Если М < аi, то переходим к пункту 3, иначе (M > аi) переходим к пункту 2. В первом алгоритме в качестве элементарных операций используются простейшие арифметические операции умножения, которые могли бы быть разложены на еще более элементарные операции. Мы такого разбиения не делаем в силу простоты и привычности арифметических правил. Лабораторная работа 2 Цель лабораторной работы Целью лабораторной работы является ознакомление с формами записи алгоритмов в виде блок-схем. В процессе лабораторной работы составляются алгоритмы в виде блок-схем на примере решения следующих задач: 1. Нахождение максимального элемента массива 2. Нахождение корней квадратного уравнения. Теоретические сведения Схема алгоритма — графическое представление алгоритма. Каждый пункт алгоритма отображается на схеме некоторой геометрической фигурой — блоком — и дополняется элементами словесной записи. Правила выполнения схем алгоритмов регламентирует ГОСТ 19.002—80 (единая система программной документации). Блоки на схемах соединяются линиями потоков информации. Основное направление потока информации идет сверху вниз и слева направо (стрелки могут не указываться), снизу вверх и справа налево — стрелка обязательна. Количество входящих линий для блока не ограничено. Выходящая линия должна быть одна (исключение составляет логический блок).
Задание 1. Нахождение максимального элемента массива Дан массив 10 чисел. Найти его максимальный элемент. Используя Программу блок-схем построить и проверить алгоритм решения задачи. Задание 2. Нахождение корней квадратного уравнения. Дано квадратное уравнение. Найти его корни. Используя Программу блок-схем построить и проверить алгоритм решения задачи. Лабораторная работа 3 Цель лабораторной работы Целью лабораторной работы является знакомство с примерами использования стандартных функций на псевдокоде. Теоретические сведения Один из методов представления алгоритмов является представление в псевдокодах. Данное представление – это частичный возврат к сценарию. Также как и в представлении в виде сценария запись алгоритма в псевдокодах разбивается на предложения, при этом каждое предложение описывает некоторый шаг алгоритма. Для записи предложений используются: русский язык, формальные языки предметных областей, в которых решается исходная задача; ключевые слова псевдокодов. Для реализации псевдокодов, в них резервируются следующие ключевые слова: АЛГОРИТМ, НАЧАЛО_алгоритма, КОНЕЦ_алгоритма, ПОДАЛГОРИТМ, НАЧАЛО_вспомогательного алгоритма, КОНЕЦ_вспомогательного алгоритма, НАЧАЛО_описания переменных, КОНЕЦ_описания переменных, НАЧАЛО_если < условие>, ТО, ИНАЧЕ, КОНЕЦ_если, НАЧАЛО_цикла с предусловием < условие входа в цикл>, КОНЕЦ_цикла с предусловием, НАЧАЛО_цикла с постусловием, КОНЕЦ_цикла с постусловием < условие выхода из цикла>, НАЧАЛО_цикла с параметром < параметр, его диапазон и шаг>, КОНЕЦ_цикла с параметром < параметр цикла>. Основное внимание при представлении алгоритма в псевдокодах уделяется структуре алгоритма. Особенность псевдокодов заключается в том, что каждое предложение начинается со звездочки или нескольких звездочек. В псевдокодах звездочка используется как индикатор начала строки. В псевдокодах вместо звездочек, в принципе, можно использовать любые другие символы (например: пробел, – как это делается в школьном алгоритмическом языке, но это менее наглядно). Число звездочек определяет уровень вложенности (о вложенности структур алгоритма читай далее) данного предложения в алгоритме, то есть одна звездочка – первый уровень вложенности, две звездочки – второй уровень вложенности и т.д. Исключением является только нулевой уровень, в котором звездочки отсутствуют. Звездочки используются по той простой причине, что данный символ, используемый в языках программирования как символ умножения, никогда не стоит в начале предложения, но в данном случае позволяют структурировать алгоритм, то есть подчеркнуть, выделить структуры алгоритма, уровень их вложенности. Звездочки в псевдокодах позволяют решить (попутно) еще одну задачу. При кодировании алгоритма в конкретном языке программирования звездочки кодируются пробелами, тем самым структура алгоритма будет определять структуру блока операторов. ПРАВИЛО ЗВЕЗДОЧЕК. Правила звездочек: 1)число звездочек в первом и последнем предложениях должно быть одинаково; 2)количество звездочек от одного предложения к другому не изменяется, если только в них не встречаются ключевые слова НАЧАЛО…, КОНЕЦ…. 3)число звездочек в предложениях, следующих после предложения, словом НАЧАЛО … увеличивается на одну; 4)число звездочек в предложениях, имеющих слово КОНЕЦ…, уменьшается на одну по сравнению с предыдущим. Пример записи алгоритма на псевдокоде: НАЧ ЦЕЛ N, min; МАССИВ arr[N]; ЦЕЛ i; min = arr[0]; НЦ (i=0; i < N; i++) ЕСЛИ (arr[i]< min) ТО min=arr[i]; КЦ ВЫВОД min; КОН Задание 1. Написать программу на псевдокоде Поменять местами переменные X и Y. Задание 2. Написать программу на псевдокоде Найти сумму первых 10 чисел натурального ряда. 6.5 Контрольные вопросы 1. Происхождение термина алгоритм 2. Понятие алгоритма 3. Характеристики исполнителя 4. Требования к алгоритмам 5. Формы записи алгоритмов 6. Базовые структуры алгоритмов и их назначение 7. Этапы решения задач на компьютере 8. Запись решения задачи на псевдокоде. 6.6 Домашние задания Дать словесные описания алгоритмов решения задач. Задание 1. Имеются два кувшина емкостью 3 и 8 л. Необходимо составить алгоритм, с помощью которого, пользуясь только этими двумя кувшинами, можно набрать 7 л воды. Задание 2. Задача о Ханойской башне. Задание 3. Задача Иосифа Флавия. Задание 4. Алгоритм Эвклида нахождения НОД. 6.7 Контрольные вопросы 1.Охарактеризуйте базовые структуры алгоритмов. 2. Дано число X и последовательность действий: • умножить полученное число на 2; • сообщить результат; • разделить X на 3; • вычесть из полученного числа 5; • прибавить к полученному числу 7. Сколько и каких различных алгоритмов можно составить из этой последовательности действий? Какие функции от X при этом вычисляются? 3. Приведите примеры задач, для реализации которых применимы; а) линейные алгоритмы; б) разветвляющиеся алгоритмы; в) циклические алгоритмы 4. Охарактеризуйте разницу между циклом типа «До» и циклом типа «Пока». 5. Приведите примеры задач, для реализации которых целесообразно применять циклические структуры: а) с постусловием; б) с предусловием 6. Изобразите блок-схему алгоритма определения максимального числа в последовательности из n произвольных чисел. Нарисуйте блок-схему алгоритма получения произведения n произвольных чисел. 8. Нарисуйте блок-схему алгоритма вычисления суммы квадратов первых n чисел натурального ряда. Лабораторная работа 4 Цель лабораторной работы Целью лабораторной работы является знакомство с примерами записи алгебраических функций на псевдокоде. Пример записи алгебраических функций на псевдокоде При записи алгебраических выражений на псевдокоде используются знаки алгебраических операций. Пример 1. Определить площадь трапеции по введенным значениям оснований (a и b) и высоты (h). Запись решения задачи на алгоритмическом языке: алг трапеция вещ a, b, h, s нач ввод f, b, h s: =((a+b)/2)*h вывод s кон Пример 2. Определить среднее арифметическое двух чисел, если a положительное и частное (a/b) в противном случае. Запись решения задачи на алгоритмическом языке: алг числа вещ a, b, c нач ввод a, b если a> 0 то с: =(a+b)/2 иначе с: =a/b все вывод с кон Пример 3. Составить алгоритм нахождения суммы целых чисел в диапазоне от 1 до 10. Запись решения задачи на алгоритмическом языке: алг сумма вещ a, s нач S: =0; A: =1; нц пока a< =10 S: =S+a; A: =a+1; кц вывод S кон Задание 1. Нахождение максимального элемента массива Дан массив 10 чисел. Найти его максимальный элемент. Написать программу на псевдокоде. Задание 2. Нахождение корней квадратного уравнения. Дано квадратное уравнение. Найти его корни. Написать программу на псевдокоде. Лабораторная работа 5 Цель лабораторной работы Целью лабораторной работы является знакомство с примерами записи алгебраических функций на псевдокоде. Пример записи арифметических выражений на псевдокоде При записи алгебраических выражений на псевдокоде используются знаки арифметических операций. Пример 1. Определить площадь трапеции по введенным значениям оснований (a и b) и высоты (h). Запись решения задачи на алгоритмическом языке: алг трапеция вещ a, b, h, s нач ввод f, b, h s: =((a+b)/2)*h вывод s кон Пример 2. Определить среднее арифметическое двух чисел, если a положительное и частное (a/b) в противном случае. Запись решения задачи на алгоритмическом языке: алг числа вещ a, b, c нач ввод a, b если a> 0 то с: =(a+b)/2 иначе с: =a/b все вывод с кон Пример 3. Составить алгоритм нахождения суммы целых чисел в диапазоне от 1 до 10. Запись решения задачи на алгоритмическом языке: алг сумма вещ a, s нач S: =0; A: =1; нц пока a< =10 S: =S+a; A: =a+1; кц вывод S кон Задание 1. Нахождение суммы элементов массива Дан массив 10 чисел. Найти сумму его элементов. Написать программу на псевдокоде. Лабораторная работа 6 Цель лабораторной работы Целью лабораторной работы является знакомство с БАС «Следование» и его запись на псевдокоде. БАС «Следование» на псевдокоде не содержит условных операторов и циклов. Пример алг ЗДРАВСТВУЙМИР нач вывод ('Здравствуй, Мир! ') кон алг ЗДРАВСТВУЙМИР Задание 1. Написать программу ввода и вывода сообщения Указание. Использовать промежуточную переменную. Лабораторная работа 7 Цель лабораторной работы Целью лабораторной работы является знакомство с записью алгоритмов на псевдокоде. Задание 1. На псевдокоде написать программу выделения цифр в многозначном числе Лабораторная работа 8 Цель лабораторной работы Целью лабораторной работы является знакомство с записью алгоритмов БАС «Ветвление» на псевдокоде. Пример. Определить среднее арифметическое двух чисел, если a положительное и частное (a/b) в противном случае. Запись решения задачи на алгоритмическом языке: алг числа вещ a, b, c нач ввод a, b если a> 0 то с: =(a+b)/2 иначе с: =a/b все вывод с кон Задание 1. Определить максимальное четное число из двух введенных. Задание 2. Определить, можно ли из отрезков с длинами х, y и z построить треугольник. Задание 3. Найти корни квадратного уравнения Лабораторная работа 9 Цель лабораторной работы Целью лабораторной работы является знакомство с записью алгоритмов БАС «Цикл» на псевдокоде. Пример 1. Составить алгоритм нахождения суммы целых чисел в диапазоне от 1 до 10. Запись решения задачи на алгоритмическом языке: алг сумма вещ a, s нач S: =0; A: =1; нц пока a< =10 S: =S+a; A: =a+1; кц вывод S кон Пример 2. В алгоритме с постусловием сначала выполняется тело цикла, а затем проверяется условие окончания цикла. Решение задачи нахождения суммы первых десяти целых чисел в данном случае будет выглядеть следующим образом: алг сумма вещ a, s нач S: =0; A: =1; нц S: =S+a; A: =a+1; пока a< =10 кц вывод S кон
Задание 1. Найти сумму чисел, кратных трем, в диапазоне от 0 до 50. Задание 2. Найти сумму первых десяти чисел, кратных пяти. Задание 3. Найти произведение четных чисел в диапазоне от 2 до 30. Лабораторная работа 10 Цель лабораторной работы Научиться использовать Microsoft Visual Studio для разработки программ на языке Microsoft Visual Basic 2010 Express. Получить практические навыки работы со средой визуальной разработки программ. Научиться разрабатывать и реализовывать простейшие программы на языке Microsoft Visual Basic 2010 Express. Получить практические навыки работы по использованию графического интерфейса. Научиться связывать переменные и методы с элементами диалогового окна. Популярное:
|
Последнее изменение этой страницы: 2016-06-05; Просмотров: 1915; Нарушение авторского права страницы