Лабораторная работа №12 (4 ч) Тема: Составление алгоритмов решения задач.
Цель работы: Приобретение навыков в составлении алгоритмов решения задач, их визуализации и использования при разработке проектов на языке Visual Basic .
Решение задачи на ЭВМ должно включать:
-
Постановка задачи;
-
Анализ и исследование задачи, модели;
-
Разработка и анализ алгоритма (структурная схема);
-
Условные обозначения;
-
Написание и эксплуатация программы;
-
Тестирование и отладка;
-
Анализ результатов решения задачи;
-
Сопровождение программы;
-
Список использованной литературы.
Постановка задачи:
- формулировка условия задачи; - определение конечных целей решения задачи;
- определение формы выдачи результатов;
-описание данных (их типов, диапазонов величин и т.п. сводится в таблицу).
Анализ и исследование задачи, модели:
-
анализ технических и программных средств; • разработка математической модели;
• разработка структур данных.
Построение модели - это формализация описания задачи с использованием математических, статистических, логических и др. методов, при которых существующие соотношения между величинами, определяющими результат, можно выразить с использованием математических формул и логических соотношений. Математическая формулировка и выбранный метод вычисления являются основой для определения последовательности действий, приводящих к искомому результату.
Разработка и анализ алгоритма:
-
выбор метода проектирования алгоритма;
-
выбор формы записи алгоритма (блок-схема, псевдокод и др.);
-
выбор тестов и метода тестирования;
-
проектирование алгоритма.
После того как построена модель решения задачи, можно приступить к разработке алгоритма её решения.
Алгоритмом решения задачи называется путь решения задачи, определённая последовательность действий, которую необходимо выполнить для достижения результата. Основной целью вычислительного процесса является исполнение алгоритма с заданными исходными данными и получение результата.
Данные в алгоритме - имена величин или идентификаторы, которые при исполнении алгоритма заменяются конкретными для данной задачи числовыми значениями.
Для записи алгоритмов могут быть использованы словесная запись, псевдокод, схемы алгоритмов и формальный способ записи.
Словесный способ содержит тщательно отобранный набор фраз, который не допускает лишних слов, повторений, неоднозначностей.
Псевдокод - язык записи структурированных алгоритмов, состоит из смеси языка высокого уровня и фраз языка исполнителя. Алгоритм, написанный на псевдокоде, можно легко преобразовать в программный код. Псевдокод позволяет легко разобраться в самом длинном и сложном алгоритме, поэтому чаще всего псевдокод используется для документирования программ.
Схема алгоритма - графическое представление метода решения задачи, в котором используются символы для отображения операций и данных. Алгоритм выражен последовательностью графических символов, выполняющих определённые функции, и наличием связей между ними.
|
Процесс – действия, приводящие к изменению содержания, формы представления, либо расположения данных |
|
Выбор продолжения процесса в зависимости от определенных условий. Имеет один вход и два альтернативных выхода (логический блок). |
|
Цикл – повторение участка программного кода в зависимости от определенных условий |
|
Использование подпрограммы |
|
Подготовка данных для ввода или вывода
|
|
Вывод документа
|
|
Линии потока, определяющего связанность программных модулей |
|
Межстраничный указатель |
|
Узел пересечения потоков
|
|
Начало или завершение программы |
Рис. 1 Символы в схемах алгоритмов.
Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл. Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
-
Базовая структура "следование". Образуется последовательностью действий, следующих одно за другим:
2. Базовая структура "ветвление". Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
-
если—то; если—то—иначе; выбор; выбор—иначе.
1. если—то 2. если—то—иначе
Если условие то действия если условие то действия 1
иначе действия 2
-
выбор 4. выбор—иначе
Выбор переменная Выбор переменная
при условие 1: действия 1 при условие 1: действия 1
при условие 2: действия 2 при условие 2: действия 2
. . . . . . . . . . . . . . . . . . . . . . . .
при условие N: действия N при условие N: действия N
иначе действия N+1
Примеры структуры ветвление
алгоритмический язык |
Язык блок-схем |
если x > 0 то y := sin(x) все |
|
если a > b то a := 2*a; b := 1 иначе b := 2*b все |
|
выбор при n = 1: y := sin(x) при n = 2: y := cos(x) при n = 3: y := 0 все |
|
выбор при a > 5: i := i+1 при a = 0: j := j+1 иначе i := 10; j:=0 все |
|
3. Базовая структура "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:
алгоритмический язык |
Язык блок-схем |
Цикл типа пока. Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. |
|
нц пока условие тело цикла (последовательность действий) кц |
|
Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. |
|
нц для i от i1 до i2 тело цикла (последовательность действий) кц |
|
Примеры структуры цикл
алгоритмический язык |
Язык блок-схем |
нц пока i <= 5 S := S+A[i] i := i+1 кц |
|
нц для i от 1 до 5 X[i] := i*i*i Y[i] := X[i]/2 кц |
|
Программирование, тестирование и отладка:
-
выбор языка программирования;
-
запись алгоритма на выбранном языке программирования;
-
тестовые расчёты и анализ результатов тестирования.
После того как алгоритм разработан, его необходимо реализовать посредством языка программирования, то есть теперь можно определить обозначение исходных, промежуточных и выходных данных в программе, сформировать эскиз приложения (форму с отображением различных элементов управления) и приступить к написанию программы на языке Visual Basic.
Для понимания содержательной части решения задачи на ЭВМ, ход и порядок ее выполнения подробно рассмотрен ниже на примере. При рассмотрении примера выполнения даются необходимые пояснения и методические указания.
Например. Задание 1. 1. Постановка задачи. Даны пять попарно различных целых чисел: a,b,c,d,e. Упорядочить их по возрастанию, используя для этого не более 7 сравнений.