- •210700.62 Инфокоммуникационные технологии и системы связи
- •1. Понятие информации. Введение в дискретные структуры
- •1.1 Понятие информации, информационные процессы
- •1.1.1 Понятие информации. Роль информации в развитии общества
- •1.1.2 Распознавание, хранение, передача, обработка и поиск информации
- •1.1.3 Многообразие форм информации и способов ее обработки
- •1.1.4 Кодирование информации. Количество и единицы измерения информации
- •1.1.5 Информатика как наука
- •1.2 Системы счисления, используемые в компьютере
- •1.2.1 Позиционные системы счисления, основные понятия
- •1.2.2 Перевод чисел в другие системы счисления
- •2 Арифметические и логические основы эвм
- •2.1 Технические средства реализации информационных процессов
- •2.1.1 История развития эвм
- •2.1.2 Классификация компьютерных систем
- •2.1.3 Общие принципы построения современных компьютеров
- •2.1.4 Функциональная структура компьютера
- •2.1.5 Периферийные устройства эвм
- •2.1 Операции с числами в эвм. Логические основы эвм
- •2.1.1 Представление числовых данных в памяти эвм
- •2.2.2 Машинные операции с двоичными числами
- •2.2.3 Основные понятия алгебры логики. Элементарные логические операции
- •2.2.4 Базовые логические элементы компьютера
- •2.3 Операционные системы
- •2.3.1 Структура программного обеспечения компьютерных систем
- •2.3.2 Операционные системы и оболочки
- •2.3.3 Архитектура ос. Ядро и его функции
- •2.3.4 Файловые системы ос
- •3 Основы алгоритмизации, введение в программирование и основы работы с пакетами прикладных программ
- •3.1 Основы алгоритмизации
- •3.1.1 Понятие алгоритма и его свойства
- •3.1.2 Средства описания алгоритмов
- •3.1.3 Основные типы структур алгоритмов
- •3.1.4 Примеры реализации основных алгоритмических структур
- •3.1.5 Структурированные данные и алгоритмы их обработки
- •3.2 Введение в программирование matlab
- •3.2.1 Вычислительная среда matlab
- •3.2.2 Особенности интерфейса программы
- •3.2.3 Типы данных. Выражения. Операторы. Функции
- •3.2.4 Понятие массива. Операции с матрицами и массивами
- •3.2.5 Управляющие конструкции языка программирования
3.1.4 Примеры реализации основных алгоритмических структур
В рассмотренных ниже алгоритмах используются простые типы данных – переменные и константы. Реальные данные, которые обрабатывает программа - это целые и вещественные числа, символы и логические величины. Эти простые типы данных называют базовыми. Все данные, обрабатываемые компьютером, хранятся в ячейках памяти компьютера, каждая из которых имеет свой адрес. Для того чтобы не следить за тем, по какому адресу будут записаны те или иные данные, в языках программирования используется понятие переменной, позволяющее отвлечься от адреса ячейки памяти и обращаться к ней с помощью имени (идентификатора).
Переменная – есть именованный объект (ячейка памяти), который может изменять свое значение. Имя переменной указывает на значение, а способ ее хранения и адрес остаются скрытыми от пользователя. Кроме имени и значения, переменная имеет тип, определяющий, какая информация находится в памяти. Тип переменной задает:
используемый способ записи информации в ячейки памяти;
необходимый объем памяти для ее хранения.
Объем памяти для каждого типа определяется таким образом, чтобы в него можно было поместить любое значение из допустимого диапазона значений данного типа. Например, тип «байт» может принимать значения от 0 до 255, что в двоичном коде соответствует ячейке памяти длиной в 8 бит (или 1 байт).
В описанных ниже алгоритмах (примеры 1 - 6) все данные хранятся в виде переменных. Например, инструкция «Ввод двух чисел a,b» означает введение пользователем значений двух переменных, а инструкция «К=К+1» означает увеличение значения переменной К на единицу.
Если переменные присутствуют в программе, на протяжении всего времени ее работы - их называют статическими. Переменные, создающиеся и уничтожающиеся на разных этапах выполнения программы, называют динамическими.
Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Их можно указывать явно, например, в инструкции «К = К + 1» 1 есть константа, или для удобства обозначать идентификаторами: pi = 3,1415926536. Только значение pi нельзя изменить, так как это константа, а не переменная.
Далее приводятся примеры алгоритмов, в которых использованы основные алгоритмические конструкции.
Линейная алгоритмическая конструкция
Пример 1. Алгоритм сложения двух чисел.
Постановка задачи: определить сумму двух чисел.
Исходные данные: а, b – два числа из области действительных значений.
Выходные данные: S – сумма заданных чисел а, b.
Формульно-словесное описание алгоритма:
Начало.
Ввод двух чисел a, b.
Вычисление суммы S=a+b.
Вывод S.
Конец.
Блок-схема алгоритма представлена на рисунке 3.12.
Рисунок 3.12 Блок-схема алгоритма к примеру 1.
Разветвляющаяся алгоритмическая конструкция
Пример 2. Алгоритм вывода значения наибольшего из двух чисел.
Постановка задачи: вывести значение наибольшего из двух заданных чисел.
Исходные данные: а, b – два числа из области действительных значений.
Выходные данные: наибольшее из заданных чисел а, b.
Псевдокод алгоритма:
Начало.
Ввод двух чисел а, b.
ЕСЛИ а > b, ТО «вывести а»,
ИНАЧЕ «вывести b».
Конец.
Блок-схема алгоритма представлена на рисунке 3.13.
Рисунок 3.13 Блок-схема алгоритма к примеру 2.
Пример 3. Алгоритм поиска наименьшего значения среди трех заданных (неполная разветвляющаяся алгоритмическая конструкция).
Постановка задачи: Заданы три числа. Вывести значение наименьшего из них.
Исходные данные: а, b, c – три числа из области действительных значений.
Выходные данные: min – значение наименьшего из заданных чисел.
Псевдокод алгоритма:
Начало.
Ввод трех чисел а, b, с.
Присвоить результирующему наименьшему значение первого из заданных чисел min=a.
ЕСЛИ b < min, ТО min=b,
ИНАЧЕ «перейти к п.5».
ЕСЛИ с < min, ТО min=с,
ИНАЧЕ «перейти к п.6».
Вывести min.
Конец.
Блок-схема алгоритма представлена на рисунке 3.14.
Рисунок 3.14 Блок-схема алгоритма к примеру 3.
Алгоритмическая конструкция «цикл»
Пример 4. Алгоритм нахождения наибольшего общего делителя двух натуральных чисел (алгоритмическая конструкция «цикл с предусловием»).
Постановка задачи: определить наибольший общий делитель двух натуральных чисел.
Исходные данные: m, n – два числа принадлежащие ряду натуральных чисел.
Выходные данные: значение наибольшего общего делителя.
Псевдокод алгоритма:
Начало.
Ввод натуральных чисел m и n.
Пока mn выполнять:
ЕСЛИ m > n ТО m = m - n,
ИНАЧЕ n = n - m.
Переход к п3.
Вывод m (найденный наибольший общий делитель).
Конец.
Блок-схема алгоритма представлена на рисунке 3.15.
Рисунок 3.15 Блок-схема алгоритма к примеру 4.
Пример 5. Алгоритм игры «Угадай число» (алгоритмическая конструкция «цикл с постусловием»).
Постановка задачи: Первый игрок вводит задуманное число от 1 до 50. Второй (угадывающий) вводит другое число и получает один из ответов: «Ваше число меньше», «Ваше число больше» или «Вы угадали». Игра продолжается до тех пор, пока второй игрок не угадает задуманное число.
Исходные данные: х – задуманное первым игроком натуральное число, принадлежащее диапазону от 1 до 50, у – число, вводимое на очередном шаге вторым игроком.
Выходные данные: сообщения второму игроку.
Псевдокод алгоритма:
Начало.
Ввод числа х.
Ввод числа y.
ЕСЛИ x > y ТО вывести сообщение «Ваше число меньше» и перейти к п.3
ИНАЧЕ перейти к п.5
ЕСЛИ x < y ТО вывести сообщение «Ваше число больше» и перейти к п.3
ИНАЧЕ перейти к п.6
Вывести сообщение «Вы угадали»
Конец.
Блок-схема алгоритма представлена на рисунке 3.16.
Рисунок 3.16. Блок-схема алгоритма к примеру 5.
Пример 6. Алгоритм вычисления суммы (алгоритмическая конструкция «арифметический цикл»).
Постановка задачи: Для заданного натурального числа N вычислить сумму
Исходные данные: N – натуральное число.
Выходные данные: S – результирующая сумма.
Формульно-символьное описание алгоритма:
Начало.
Ввод N.
Задать начальное значение суммы S=0.
Для i = 1, N, 1 повторить
4.1.
Вывод S.
Конец.
Блок-схема алгоритма представлена на рисунке 3.17.
Рисунок 3.17. Блок-схема алгоритма к примеру 6.