- •Введение
- •1.2.2. Виды информации
- •1.2.3. Свойства информации
- •1.3.Информационные процессы
- •1.3.1. Сбор информации
- •1.3.2. Передача информации
- •1.3.3. Хранение информации
- •1.3.4. Обработка информации
- •1.4.Непрерывная и дискретная информация
- •1.5. Измерение информации
- •1.5.1. Объемный подход
- •1.5.2. Вероятностный подход
- •1.6. Системы счисления, используемые в информатике
- •1.6.1. Правила перевода чисел из одной системы счисления в другую
- •1.6.2. Двоичная арифметика
- •1.7. Кодирование информации
- •1.7.1. Кодирование текстовой информации
- •1.7.2. Кодирование числовой информации
- •2. Технические средства реализации информационных процессов
- •2.1. Классическая архитектура ЭВМ и принципы фон Неймана
- •2.2. Совершенствование и развитие внутренней структуры ЭВМ
- •2.3. Базовая аппаратная конфигурация персонального компьютера
- •2.4. Внутренние устройства системного блока
- •2.3. Периферийные устройства
- •3. Программные средства реализации информационных процессов
- •3.1. Классификация программного обеспечения ЭВМ
- •3.2. Системное программное обеспечение
- •3.3. Организация файловой системы
- •3.4. Специальное программное обеспечение
- •3.5. Прикладное программное обеспечение
- •3.5.1. Системы обработки текстов
- •3.5.2. Системы компьютерной графики
- •3.5.3. Средства обработки числовой информации
- •3.5.4. Системы управления базами данных (СУБД)
- •3.5.5. Средства подготовки презентаций
- •4.2. Моделирование как метод решения прикладных задач
- •4.3. База данных как пример информационной модели
- •5.2. Способы представления алгоритмов
- •5.3. Базовые алгоритмические структуры
- •5.3.1. Структура «следование»
- •5.3.2. Структура «развилка»
- •5.3.3. Структура «выбор»
- •5.3.4. Структура «цикл с предусловием»
- •5.3.5. Структура «цикл с постусловием»
- •5.3.6. Структура «цикл с параметром»
- •5.4. Важнейшие невычислительные алгоритмы (поиск и сортировка)
- •5.5. Понятие о языках программирования
- •5.6. Технологии программирования
- •5.7. Этапы решения задач на компьютере
- •6. Основы программирования на языке Паскаль
- •6.1. Основные элементы языка
- •6.2. Элементарный ввод и вывод
- •6.3. Основные операторы
- •6.4. Структура программы на языке Паскаль
- •6.5. Процедуры и функции
- •7. Локальные и глобальные компьютерные сети
- •7.1. Классификация вычислительных сетей
- •7.2. Локальные сети
- •7.3. Глобальные сети
- •7.4. Основные понятия WWW
- •7.5. Электронная почта
- •8. Основы и методы защиты информации
- •8.1. Общие понятия информационной безопасности
- •8.2. Компьютерные вирусы
- •Список рекомендуемой литературы
- •Приложение. Учебная программа по дисциплине «Информатика»
PRINT " НОД ="; nod
END
5.3. Базовые алгоритмические структуры
Чтобы написать программу на процедурном языке программирования, прежде всего следует разработать алгоритм. Любой алгоритм можно представить как некоторую жесткую структуру, состоящую из отдельных базовых элементов, которые называют базовыми управляющими структурами алгоритмов. Они были разработаны для записи алгоритмов. За время существования программирования управляющие структуры постоянно совершенствовались, появлялись новые. В настоящее время их состав стал стандартным.
Все современные языки программирования имеют набор операторов, которые реализуют эти классические управляющие структуры. Различие состоит только в синтаксисе записи этих конструкций и в некоторых особенностях их реализаций. Билл Гейтс (президент фирмы Microsoft) сказал, что профессиональный уровень программиста в большой степени зависит от того, как хорошо он понимает и владеет управляющими конструкциями алгоритмов, и уметь программировать на алгоритмических языках — это, в первую очередь, уметь пользоваться наиболее общими для всех языков конструкциями и структурами данных, и если человек хочет стать великим программистом, то язык имеет второстепенное значение, их можно выучить сколько угодно. Поэтому изучение основных принципов конструирования алгоритмов нужно начинать с изучения базовых элементов алгоритмов.
При описании алгоритмов можно выделить и наглядно представить три простейшие структуры:
последовательность двух или более операций,
выбор направления,
повторение.
Любой вычислительный процесс может быть представлен как комбинация этих элементарных алгоритмических структур. Поэтому вычислительные процессы, выполняемые ЭВМ по заданной программе, можно разделить на три основных вида: линейные, ветвящиеся, циклические.
Линейным называют вычислительный процесс, в котором операции выполняются последовательно, в порядке их записи. Каждая операция является самостоятельной, независимой от каких-либо условий. Для описания линейных процессов используется структура следование.
Ветвящимся называется вычислительный процесс, если для его реализации предусмотрено несколько направлений (ветвей). Выбор направления зависит от некоторого признака, характеризующего свойства данных и имеющего два или более значений. Для описания ветвящихся процессов используются структуры развилка и выбор. При этом, хотя на схеме алгоритма указаны все
41
возможные направления вычислений в зависимости от выполнения определенного условия (условий), при однократном выполнении программы процесс реализуется только по одной ветви. Любая ветвь, по которой осуществляются вычисления, должна приводить к завершению вычислительного процесса.
Циклическим называется вычислительный процесс, содержащий многократно повторяемые отдельные участки вычислительных процессов. При этом каждое повторение происходит с использованием других значений величин (данных). Многократно повторяемые участки вычислительного процесса называются циклами. Любой циклический процесс включает следующие этапы:
▪подготовку (инициализацию параметров) цикла,
▪выполнение вычислений в теле цикла,
▪модификацию параметров цикла,
▪проверку условия окончания цикла.
Порядок выполнения этих этапов может быть разным. Поэтому структура цикла, описывающая циклические процессы, бывает разной. Она может быть трех видов: цикл с предусловием, цикл с постусловием, цикл с параметром.
5.3.1. Структура «следование»
Структура «следование» имеет вид:
S1
…
SN
где S1, ..., SN — операторы.
На языках программирования она реализуется как последовательность операторов, следующих один за другим:
< оператор1>
…
<операторN>.
5.3.2. Структура «развилка»
Структура «развилка» имеет вид:
42
+ |
– |
|
P |
S1 S2
где Р – логическое выражение (условие), S1, S2 — операторы или группы операторов.
Такой вид развилки называется полной условной конструкцией. На языках программирования данная структура реализуется так.
Бейсик |
Паскаль |
Си |
IF <выражение> THEN |
if <выражение> |
if (<выражение>) |
<оператор1> |
then <оператор1> |
<оператор1>; |
ELSE |
else <оператор2>; |
else <оператор2>; |
<оператор2> |
|
|
END IF |
|
|
Здесь <выражение> — логическое выражение (условие), <оператор> — это либо один оператор, либо группа операторов. В Паскале группа операторов заключается в операторные скобки begin — end, в Си — в фигурные скобки {}.
Структура развилка используется также в неполной форме. Такой вид развилки называется неполной условной конструкцией.
Структура неполной развилки имеет вид:
+ |
P |
– |
|
|
S
где Р — логическое выражение (условие), S — оператор или группа операторов.
Она реализуется следующим образом. |
|
|
|
|
|
Бейсик |
Паскаль |
Си |
IF <выражение> THEN |
if <выражение> |
if (<выражение>) |
<оператор1> |
then <оператор1>; |
<оператор1>; |
END IF |
|
|
43
5.3.3. Структура «выбор»
Структура «выбор» является развитием структуры «развилка». В отличие от структуры «развилка» в ней имеется возможность выбора более двух действий. Она имеет вид:
где P1, …, РN — логические выражения (условия); S1, ..., SN+1 — операторы.
P1 |
+ |
|
|
S1 |
|
||
|
|
||
|
– |
|
|
P2 |
+ |
|
|
S2 |
|
||
|
|
||
|
– |
|
|
… |
|
… |
… |
PN |
+ |
|
|
SN |
|
||
|
|
–
SN+1
На Бейсике данная структура реализуется следующим образом:
Бейсик |
IF <условие1> THEN |
|
<оператор1> |
|
ELSEIF <условие2> THEN |
|
<оператор2> |
|
… |
|
ELSEIF <условиеN> THEN |
|
<операторN> |
|
ELSE <операторN+1> |
|
END IF |
На блок-схемах структура «выбор» изображается также по-другому:
W
S1 |
|
S2 |
… |
SN |
|
SN+1 |
||
|
|
|
|
|
|
|
|
|
где W — выражение, S1, S2, …, SN+1 – операторы.
44
На Бейсике, Паскале и Си она реализуется в виде оператора варианта.
Бейсик |
SELECT CASE <выражение> |
|
CASE <условиe1> |
|
<оператор1> |
|
… |
|
CASE <условиeN> |
|
<операторN> |
|
CASE ELSE |
|
<операторN+1> |
|
END SELECT |
Паскаль |
case <выражение> of |
|
<список констант1> : <оператор1> ; |
|
. . . |
|
<список константN> : <операторN> ; |
|
else <операторN+1> |
|
end ; |
Си |
switch (<выражение>) |
|
case <константа1> : <оператор1> ; break; |
|
. . . |
|
case <константаN> : <операторN> ; break; |
|
default : <операторN+1> ; break; |
Данная структура используется также в неполной форме. В этом случае она реализуется следующим образом.
Бейсик |
SELECT CASE <выражение> |
IF <условие1> THEN |
|
|
CASE <условиe1> |
<оператор1> |
|
|
<оператор1> |
ELSEIF <условие2> THEN |
|
|
|
… |
<оператор2> |
|
CASE <условиeN> |
… |
|
|
<операторN> |
ELSEIF <условиеN> THEN |
|
|
END SELECT |
<операторN> |
|
Паскаль |
сase <выражение> of |
END IF |
|
|
|||
|
|
<список констант1> : <оператор1> ; |
|
|
|
. . . |
|
|
end ; |
<список константN> : <операторN> ; |
|
|
|
|
|
Си |
switch (<выражение>) |
|
|
|
case |
<константа1> : <оператор1> ; break; |
|
|
|
. . . |
|
|
case |
<константаN> : <операторN> ; break; |
45