Способы описания алгоритмов
В настоящее время используются следующие способы описания алгоритмов:
словесно-формульное описание алгоритма;
псевдокод;
табличный способ;
языки программирования (программа);
графический способ (блок-схема).
Словесно-формульное описание алгоритма представляет структуру алгоритма и содержание выполняемых действий средствами естественного языка, представлено ниже в тестовых заданиях с решениями 9.1 ÷ 9.6. Достоинства этого способа: общедоступность, возможность описывать алгоритм с любой степенью детализации. Недостаток этого способа – многословность, низкая наглядность, громоздкость, возможна неоднозначность толкования.
Тестовое задание 9.1.
Чему равны значения переменных аиbпосле выполнения следующего фрагмента алгоритма:
1) а = 3;
2) b = 7;
3) b = a;
4) a = b;
5) b = b*2
Ответы:
a= 3;b= 6
a= 14;b= 7
a= 7;b= 14
a= 6;b= 3
a= 3;b= 14
Решение.
Выполняем алгоритм последовательно по шагам:
1) а =3;
2) b = 7;
3) b = a; знак равенства «=» в этом случае трактуется как знак присваивания «=:», следовательно, переменнойbприсваивается значение переменнойа=3; т.е. переменнаяbпримет значениеb=3;
4) a=b; переменнойаприсваивается значение переменнойb=3; следовательно, переменнаяапримет значениеа =3;
5) b=b*2; переменнойbприсваивается значениеb*2 (к этому моменту переменнаяbимеет значениеb=3); следовательно, переменнаяbпримет значениеb= b·2=3·2=6.
Таким образом, в результате выполнения алгоритма переменные аиb примут значения a = 3b = 6.
Тестовое задание 9.2.
Какие результаты будут получены в результате выполнения фрагмента алгоритма в каждом из следующих случаев: 1) x = 3; 2)x = 1 (отyрешение не зависит):
ввести координаты точки xиy;
если x ≥ 2, то вывод «точка находится в области В» иначе вывод «точка находится в области А»?
Ответы:
1-й случай:
точка находится в области В;
точка находится в области А;
2-й случай:
точка находится в области А
точка находится в области В
Решение.
Выполняем алгоритм последовательно по шагам:
1-й случай − x = 3:
1) вводим координаты точки x = 3;
2) x ≥ 2? Подставляя значениеx = 3, имеем 3 ≥ 2? Ответ: да, следовательно, выполняется вывод «точка находится в области В»;
2-й случай − x = 1:
1) вводим координаты точки x = 1;
2) x ≥ 2? Подставляя значениеx = 1, имеем 1 ≥ 2? Ответ: нет, следовательно, выполняется вывод «точка находится в области А»;
Можно проиллюстрировать условие задачи рисунком 9.1.
Рис. 9.18. Рисунок, иллюстрирующий условие задания 9.2
Замечание. Тот же алгоритм можно записать следующим образом:
Ввести координаты точки xиy;
eслиx ≥ 2, то вывод «точка находится в области В», перейти к 4);
вывод «точка находится в области А».
вычисления прекратить.
В этом варианте, если условие x ≥ 2 не выполняется, то выполнение алгоритма переходит к следующему шагу, т.е. к 3-му шагу.
Тестовое задание 9.3.
Какие результаты будут получены в результате выполнения следующего фрагмента алгоритма?
1) i= 1;
2) вывод i;
3) i=i+ 1;
4) если i≤ 4, то перейти к 2)
5) прекратить вычисления.
Ответы:
1 2 3 4;
1 2 3 4 5;
2 3 4 5;
1 3 5 7;
Тестовое задание 9.4.
Сколько раз при выполнении предыдущего задания будет повторена последовательность шагов 2), 3) и 4)?
4;
2;
3;
1.
Решение тестовых заданий 9.3 и 9.4.
Выполняем алгоритм последовательно по шагам:
| 1) i = 1; |
1 | 2) вывод i, так какi=1, товыводится 1; 3) i =i+1, предыдущее значениеi=1, следовательно, новое значениеi=i+1=1+1=2; 4) i ≤ 4? Подставляя новое значениеi=2, имеем 2<4. Ответ: да. Следовательно, после 4-го шага выполняем 2-й шаг; |
2 | 2) вывод i, так как новое значениеi=2, товыводится 2; 3) i=i+1, предыдущее значениеi=2, следовательно, новое значениеi=i+1=2+1=3; 4) i ≤ 4? Подставляя новое значениеi=3, имеем 3<4, Ответ: да. Следовательно, после 4-го шага выполняем 2-й шаг; |
3 | 2) вывод i, так как новое значениеi=3, то выводится3; 3) i=i+1, предыдущее значениеi=3, следовательно, новое значениеi=i+1=3+1=4; 4) i ≤ 4? Подставляя новое значениеi=4, имеем 4 ≤ 4. Ответ: да.Так как 4 = 4, следовательно, после 4-го шага выполняем 2-й шаг; |
4 | 2) вывод i, так как новое значениеi=4, товыводится4; 3) i=i+1, предыдущее значениеi=4, следовательно, новое значениеi=i+1=4+1=5; 4) i ≤ 5? Подставляя новое значениеi=5, имеем 5 ≤ 4. Ответ: нет,так как 5>4, следовательно, после 4-го шага выполняем 5-й шаг; |
| 5) прекращаем вычисления. |
При этом последовательность шагов 2), 3) и 4) будет повторена 4 раза.
Тестовое задание 9.5.
Какие результаты будут получены в результате выполнения следующего фрагмента алгоритма:
1) а = 15;
2) b = 4;
3) если а < b,то перейти к 6);
4) а =а-b;
5) перейти к 3);
6) вывод а.
Будет вывод числа:
3;
11;
7;
-2.
Тестовое задание 9.6.
Сколько раз при выполнении предыдущего задания будет повторена последовательность шагов 3), 4) и 5)?
3;
2;
1;
4.
Решение тестовых заданий 9.5 и 9.6.
Выполняем алгоритм последовательно по шагам:
| 1) а = 15; 2) b = 4; |
1 | 3) а <b? Подставляя значения a=15 и b=4, имеем 15<4? Ответ: нет. Следовательно, после 3-го шага выполняем 4-й шаг; 4) а = а-b. Подставляя значения a и b, имеем a=15-4=11; 5) перейти к 3), следовательно, после 5-го шага выполняем шаг 3); |
2 | 3) а<b? Подставляя значения a и b, имеем 11<4? Ответ: нет. Следовательно, после 3-го шага выполняем 4-й шаг; 4) а = а-b. Подставляя значения a и b, имеем a=11-4=7; 5) перейти к 3), следовательно, после 5-го шага выполняем шаг 3); |
3 | 3) а<b? Подставляя значения a и b, имеем 7<4? Ответ: нет. Следовательно, после 3-го шага выполняем 4-й шаг; 4) а = а-b. Подставляя значения a и b, имеем a=7-4=3; 5) перейти к 3), следовательно, после 5-го шага выполняем шаг 3); |
| 3) а<b? Подставляя значения a и b, имеем 3<4? Ответ: да. Следовательно, после 3-го шага выполняем 6-й шаг; |
| 6) вывод a; а на данном шаге имеет значение 3, следовательно, будет выведено число 3. |
При этом последовательность шагов 3), 4) и 5) будет повторена 3 раза.
Псевдокод– описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основные этапы решения задачи перед точной его записью на языке программирования. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика. Строгих синтаксических правил для записи псевдокода не существует. Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слов и конструкций.
Графический способ представления алгоритмов(блок-схема)– имеет ряд преимуществ благодаря визуальности и явному отображению процесса решения задачи. Алгоритмы, представленные графическими средствами, получили названиевизуальные алгоритмы.
При проектировании визуальных алгоритмовиспользуют специальные графические символы. Результатомалгоритмизациирешения задачи является блок-схемаалгоритма, состоящая из некоторой последовательности графических блоков, связанных по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий. Блоки могут нумероваться. Порядковые номера проставляются слева в верхней части символов. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Для визуального представления алгоритмов обычно используют символы в соответствии с ГОСТ 19.701–90 «Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения» [1]. Наиболее часто употребляемые символы представлены в таблице 14.
Таблица14
- Информатика
- Режим доступа к электронному аналогу печатного издания: http://www.Libdb.Sssu.Ru
- Содержание
- Предисловие
- Основные понятия информатики
- Понятие информации
- Свойства информации
- Понятие количества информации
- Предмет и задачи информатики
- Информационное общество
- Вопросы и тестовые задания для самоконтроля
- Системы счисления и представление информации в эвм
- Представление (кодирование) данных
- Понятие об основных системах счисления
- Перевод чисел из одной системы счисления в другую
- Представление чисел в различных системах счисления
- Двоичная арифметика
- Арифметические действия над двоичными числами
- Представление чисел в эвм
- Примеры представления целых чисел в шестнадцатиразрядных двоичных кодах
- Представление десятичных чисел в четырёхразрядном коде Грея
- Кодирование информации в эвм
- Базовая таблица кодировки ascii
- Вопросы и тестовые задания для самоконтроля
- Логические основы построения эвм
- Основы алгебры логики
- Операции сравнения
- Примеры операторов сравнения в разных языках программирования
- Логические операции
- Основные логические операторы
- Результаты, возвращаемые логическими операциями
- Основы элементной базы эвм
- Условные обозначения и диаграммы работы логических элементов
- Rs-триггер
- Элементы теории множеств
- Элементы теории графов
- Типы вершин блок-схем алгоритмов
- Вопросы и тестовые задания для самоконтроля
- Технические средства реализации информационных процессов
- История развития эвм
- Классификация эвм
- Архитектура эвм
- Состав персонального компьютера
- Внешние устройства
- Вопросы и тестовые задания для самоконтроля
- Системное программное обеспечение эвм
- Базовые понятия ос
- Классификация операционных систем
- Файловая структура эвм
- Примеры общепринятых расширений для популярных типов файлов
- Файловые системы Microsoft Windows
- Драйверы устройств
- Служебные программы
- Обзор операционных систем unix и Linux
- Обзор операционных систем Windows
- Вопросы и тестовые задания для самоконтроля
- Прикладное и инструментальное программное обеспечение
- Прикладное программное обеспечение общего назначения
- Прикладное программное обеспечение специального назначения
- Инструментальное по
- Нумерация версий программ
- Правовой статус программ
- Текстовые редакторы и процессоры
- Программы подготовки презентаций
- Вопросы и тестовые задания для самоконтроля
- Электронные таблицы
- Основные понятия электронных таблиц Excel
- Ввод, редактирование и форматирование данных
- Вычисления в таблицах
- Диаграммы
- Вопросы и тестовые задания для самоконтроля
- Модели решения функциональных и вычислительных задач
- Моделирование как метод познания
- Классификация моделей
- Классификация видов моделей
- Компьютерное моделирование
- Информационные модели
- Примеры информационных моделей
- Базы данных
- Искусственный интеллект
- Вопросы и тестовые задания для самоконтроля
- Основы алгоритмизации
- Основные этапы компьютерного решения задач
- Понятие алгоритма и его свойства
- Исполнители алгоритмов
- Способы описания алгоритмов
- Обозначение и функциональное назначение наиболее часто употребляемых символов в схемах данных и программ
- Базовые управляющие структуры алгоритмов (основные алгоритмические конструкции)
- 2) Альтернатива (ветвление);
- 3) Итерация1 (цикл).
- Алгоритмы линейной структуры
- Алгоритмы ветвящейся структуры
- Алгоритмы циклической структуры
- Способы комбинации базовых управляющих структур (основных алгоритмических конструкций)
- Примеры комбинации основных алгоритмических структур
- Вопросы и тестовые задания для самоконтроля
- Основы программирования на языках высокого уровня
- Основные понятия языков программирования
- Примеры использования имён
- Операторы в арифметических и логических выражениях
- Типы данных и операторы описания переменных
- Некоторые базовые типы переменных
- Описание переменных в разных языках
- Синтаксис операторов описания сложных типов переменных
- Основные операторы
- Синтаксис некоторыхоператоров
- Вопросы и тестовые задания для самоконтроля
- Основные операторы языка visual basic for applications
- Оператор присваивания
- Примеры использования оператора присваивания
- Условный операторIf … then
- Оператор выбора варианта*
- Операторы цикла
- Оператор циклаFor … next
- Математические функции
- Краткие сведения о математических функциях в vba и Паскале
- Функции обработки строк*
- Краткие сведения о строковых функциях
- Функции преобразования данных
- Краткие сведения о функциях преобразования данных
- Вопросы и тестовые задания для самоконтроля
- Технологии программирования
- Концепция программирования
- Характеристика трудоёмкости разработки программ
- Структурное и модульное программирование
- Рекурсивные алгоритмы *
- Объектно-ориентированное программирование
- Вопросы и тестовые задания для самоконтроля
- Языки и системы программирования
- Уровни языков программирования
- Системы программирования
- Классификация языков программирования
- Процедурные языки программирования
- Объектно-ориентированные языки
- Декларативные языки
- Языки программирования для баз данных и компьютерных сетей
- Языки моделирования *
- Вопросы и тестовые задания для самоконтроля
- Основные понятия компьютерной графики
- Виды компьютерной графики
- Графические форматы
- Цветовые модели *
- Программные средства создания растровых изображений
- Программы векторной графики
- Программные средства обработки трехмерной графики
- Вопросы и тестовые задания для самоконтроля
- Основные понятия баз данных
- Задачи, решаемые с помощью баз данных
- Классификация бд
- Реляционная модель данных
- Свойства полей базы данных
- Типы данных
- Безопасность и объекты баз данных
- Проектирование баз данных *
- Вопросы и тестовые задания для самоконтроля
- Средства автоматизации проектных, опытно-конструкторских и научно-исследовательских работ.
- Задачи, решаемые с помощью систем автоматического проектирования
- Программные продукты MathWorks
- Сапр в легкой промышленности
- Вопросы и тестовые задания для самоконтроля
- Основы компьютерных сетей
- Основы передачи данных
- Назначение и классификация сетей
- Сетевая модель osi/iso
- Сетевое оборудование
- Основные стандарты и протоколы
- Т Вопросы и тестовые задания для самоконтроля
- Глобальная сеть интернет
- Подключение к Интернет
- Службы Интернет
- Поиск информации в Интернете
- Наиболее известные и популярные поисковые системы
- Поиск с использованием языка запросов *
- Логические операторы
- Вопросы и тестовые задания для самоконтроля
- Основы информационной безопасности
- Угрозы информационной безопасности
- Методы и средства защиты информации
- Правовые основы информационной безопасности
- Ответственность за преступления в области информационных технологий
- Криптографические механизмы защиты информации
- Компьютерные вирусы и вредоносные программы
- Методы защиты от вирусов
- Вопросы и тестовые задания для самоконтроля
- Библиографический список
- Учебное издание информатика Учебное пособие