
- •Содержание
- •1 Передача информации
- •1.1 Общая схема передачи информации в линии связи
- •1.2 Характеристики канала связи
- •1.3 Влияние шумов на пропускную способность канала
- •1.4 Обеспечение надежности передачи информации
- •1.4.1 Коды, обнаруживающие ошибку
- •1.4.2 Коды, исправляющие одиночную ошибку
- •1.5 Способы передачи информации в компьютерных линиях связи
- •1.6 Связь компьютеров по телефонным линиям
- •2 Поколения эвм. Основные устройства компьютера
- •2.1 Поколения электронных вычислительных машин
- •2.2 Компьютер как формальный исполнитель алгоритмов (программ)
- •2.3 Основные устройства компьютера и их функции
- •3 Структура программного обеспечения компьютера
- •3.1 Классификация программного обеспечения
- •3 .2 Системное программное обеспечение эвм
- •3.3 Прикладное программное обеспечение эвм
- •4 Хранение информации в озу
- •4.1 Классификация данных
- •4.2 Представление элементарных данных в озу
- •4.3 Структуры данных и их представление в озу
- •5 Хранение информации на внешних запоминающих устройствах. Файловые структуры
- •5.1 Особенности устройств, используемых для хранения информации в компьютерах
- •5.2 Представление данных на внешних носителях
- •5.3 Роль операционной системы
- •6 Основы алгоритмизации
- •6.1 Понятие алгоритма. Свойства алгоритма
- •6.2 Символьная форма представления алгоритма
- •6.3 Графическая форма представления алгоритма
- •6.4 Структурная теорема
- •6.5 Основные подходы к разработке алгоритмов
- •6.6 Проверка правильности программы
- •7 Начальные сведения о вычислительных сетях
- •7.1 Классификация вычислительных сетей
- •7.2 Локальные вычислительные сети (лвс)
- •7.3 Организация обмена информацией в лвс
- •7.4 Методы доступа в лвс (управление правом отправки сообщения)
- •8 Глобальные вычислительные сети
- •8.1 Электронная почта
- •8.3 Всемирная паутина World Wide Web
- •8.4 Общие вопросы безопасности
- •Информатика
- •Гоу впо “Московский государственный университет приборостроения и информатики”
- •107996, Москва, ул. Стромынка, 20
6.3 Графическая форма представления алгоритма
Другое название данной формы – схема алгоритма. Графическая форма предназначена только для исполнителя «человек». Главное достоинство такой формы - наглядность. Схема позволяет охватить весь алгоритм сразу, отследить различные варианты его выполнения.
На стадии разработки в блоках можно делать записи как на естественном, так и на формализованном языке. Однако в схемах, как правило, подробное описание конкретных действий выполняется только для простых алгоритмов.
В данной форме для представления отдельных блоков алгоритма используется обусловленный набор геометрических фигур. Принятые обозначения – графические примитивы приведены на рисунке 6.1.
По блок-схеме гораздо проще осуществлять запись алгоритма на каком-либо формальном языке. Правда, синтаксическое богатство языков программирования выше языка графических схем (например, различные виды циклов не имеют собственного представления в языке схем алгоритмов).
Отметим наиболее важные моменты при составлении блок-схем:
не надо излишне детализировать и усложнять блок-схему; необходимо показывать только основные и наиболее важные для решения шаги;
используйте только вертикальные и горизонтальные линии;
линии не должны пересекаться, во избежание пересечений можно пользоваться символами – соединителями;
указывать направления необходимо для линий, направленных вверх или влево, для других – стрелки необязательны;
любая линия должна быть направлена к какому-либо блоку;
в точках разветвления программы необходимо писать слова «да» или «нет» с целью указания выбранного направления.
Примеры схем алгоритмов.
Нахождение корней квадратного уравнения
2. Алгоритм Евклида
6.4 Структурная теорема
До середины 60-х годов теории разработки алгоритмов не существовало – процесс разработки целиком определялся опытом и искусством программиста. Однако по мере роста сложности программ возникла необходимость создания методологии их разработки, и она появилась в виде структурного программирования.
Идеи структурного программирования были высказаны в 1965 года Дейкстрой, но сведены в законченную систему правил итальянскими математиками Бомом и Джакопини.
Введем следующее понятие функционального блока.
Функциональный блок – часть алгоритма, организованная как простое действие (то есть имеющее один вход и один выход).
Функциональные блоки связываются между собой с помощью базовых управляющих структур (включаются в поток управления).
Стандартные базовые управляющие структуры:
1. последовательный (линейный) управляющий блок – последовательно выполняется несколько функциональных блоков.
Линейному потоку управления на языке блок схем соответствует структура, приведенная на рисунке 6.2.
Очевидно, что несколько функциональных блоков, связанных линейным потоком управления, могут быть объединены в один функциональный блок.
Второй тип потока управления называется ветвлением – он организует выполнение одного из 2-х функциональных блоков в зависимости от значения проверяемого логического условия (рисунок 6.3).
Если структура содержит два функциональных блока (S1 и S2), то ветвление называется полным. Возможно существование неполного ветвления – при этом один из блоков пуст (обычно это S1).
Третий тип потока управления называется циклическим – он организует многократное повторение функционального блока, пока логическое условие его выполнения является истинным.
Поскольку ветвление и циклический тип управления имеют один вход и один выход, они в целом тоже подходят под определение функционального блока.
Структурная теорема гласит, что с помощью стандартных (базовых) управляющих структур может быть представлен любой алгоритм. Алгоритм, представленный с помощью только базовых структур, называется структурным.
Структурный алгоритм обладает рядом замечательных преимуществ по сравнению с неструктурированным:
понятность и простота восприятия (так как невелико число структур, которыми он образован);
проверяемость (для проверки любой из основных структур достаточно убедиться в правильности входящих в нее функциональных блоков);
модифицируемость (простота изменения структуры алгоритма, поскольку составляющие блоки относительно независимы).
На основе структурной теоремы разработан и широко используется так называемый структурный метод программирования.
Основой метода является использование принципа модульности построения сложных программ. При этом каждый программный модуль организуется в виде стандартного функционального блока (то есть строится из 3-х базовых управляющих структур) и выполняет лишь одну функцию по обработке данных.
Модули обладают определенной автономностью, что позволяет их отладку вести независимо (даже отдельно разрабатывать). Это обеспечивает относительную простую модифицируемость как отдельного модуля, так и программы в целом.