- •Литература
- •10. Основы программирования на языке turbopascal. Учебное пособие. Б. А. Крымов, а. О. Мовшин, с. В. Кулакова. Воронеж: вгта. 2000.
- •Тема 1. Информатика и информационные процессы
- •1.1. Основные понятия информатики
- •Хранение данных
- •Восприятие информации
- •Изменение окружающей среды
- •Применение знаний
- •1.2. Информационные процессы: подробности
- •1.2.1. Процесс сбора данных
- •1.2.2. Процесс хранения данных.
- •1.2.3. Процесс передачи данных
- •Оконечное оборудование
- •1.2.4. Процесс обработки данных
- •Тема 2. Алгоритмизация и программирование
- •2.1.Алгоритм и его свойства
- •2.2. Формы записи алгоритма
- •2.3. Базовые алгоритмические структуры
- •2.4. Последовательность подготовки и решения задачи на эвм
- •2.5. Конструктивные элементы языка pascal
- •2.6. Обзор языков программирования
- •Тема 3. Общие принципы организации и функционирования компьютера
- •3.1. Архитектура и структура эвм. Принципы построения компьютеров
- •3.2. Аппаратные средства. Функции основных блоков эвм.
- •3.3. Устройство персонального компьютера
- •Тема 4. Программное обеспечение пк
- •4.1. Структура программного обеспечения
- •Прикладное по
- •4.2. Функции операционной системы
- •4.3. Операционные системы Windows
- •4.4. Объектно-ориентированная платформа ос Windows
- •4.5. Пользовательский графический интерфейс ос Windows
- •Приложение 1 Наиболее часто используемые служебные слова pascal
- •Приложение 2 Стандартные функции pascal
2.3. Базовые алгоритмические структуры
<TBODY>Логическая структура любого алгоритма может быть представлена комбинацией трех базовых (основных) структур: следование, ветвление, цикл.
1. Базовая структура “следование”. Образуется из последовательности действий, следующих строго одно за другим.
Например, требуется вычислить величину y по формуле y = ax2 + bx при произвольных a, b, x. Блок-схема соответствующего алгоритма имеет вид, приведенный на рис 2.2. В данном случае алгоритм состоит из простой последовательности действий (блоков). Значит, </TBODY>он соответствует структуре “следование”.
Рис.
2.2. Алгоритм вычисления по формуле y
= ax2
+ bx
2. Базовая структура “ветвление” обеспечивает в зависимости от результата проверки выполнения некоторого условия (да или нет) выбор одного из альтернативных путей работы алгоритма.
Структура “ветвление” существует в двух основных вариантах:
если – то:
если – то – иначе.
В алгоритме примера 2.1 присутствуют оба варианта этой структуры. После блока “m = n ?” в случае положительного ответа выполняется действие “Вывести n”, а в случае отрицательного – работа алгоритма продолжается далее. Таким образом, реализована структура “если – то”. После блока “m > n ?” в случае положительного ответа выполняется действие “m = m – n”, а в случае отрицательного (т.е. иначе) – действие “n = n – m”,. Таким образом реализована структура “если – то – иначе”.</TBODY>
3. Базовая структура “цикл”. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.
Пример 2.2. Рассмотрим следующую задачу. Двум бойцам, посланным в разведку, надо перебраться через широкую реку. У берега в маленькой лодке удят рыбу два мальчика. Как бойцам с помощью этих детей перебраться на другой берег, если лодка выдерживает либо одного взрослого, либо двоих детей?
Пусть, для определенности, бойцам надо перебраться с правого берега на левый. Предлагается следующий алгоритм решения задачи.
1. Оба мальчика переправляются на левый берег.
2. Один мальчик возвращается на правый берег, второй – остается на левом.
3. Первый боец переправляется на левый берег, а первый мальчик остается на правом.
4. Второй мальчик переправляется на правый берег.
5. Оба мальчика переправляются на левый берег.
6. Один мальчик возвращается на правый берег, второй – остается на левом.
7. Второй боец переправляется на левый берег.
8. Второй мальчик переправляется на правый берег.
Заметим, что шаги 1 – 4 почти совпадают с шагами 5 – 8, разница только в номере переправляемого бойца. Очевидно, что с помощью подобного алгоритма можно переправить любое количество N бойцов, а не только двоих. Для этого надо выполнить следующий алгоритм.
1. Положить k = 1.
2. Оба мальчика переправляются на левый берег.
3. Один мальчик возвращается на правый берег, второй – остается на левом.
4. k-й боец переправляется на левый берег, а первый мальчик остается на правом.
5. Второй мальчик переправляется на правый берег.
6. Увеличить k на 1.
7. Если k = N, то СТОП, иначе перейти к 2.
Это будет циклический алгоритм, тело которого составляют шаги 2 – 7. Другой вариант циклической структуры дан в примере 2.1. В нем телом цикла являются шаги 2 – 4.