- •1. ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ
- •1.1. Свойства алгоритма
- •1.2. Способы записи алгоритма
- •1.3. Блок-схемы
- •2. БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
- •2.1. Следование
- •2.2. Ветвление
- •2.3. Цикл
- •2.4. Примеры алгоритмов
- •Алгоритм №1
- •Алгоритм №2
- •Алгоритм №3
- •3. ВВЕДЕНИЕ В C++
- •3.1. Основные лексемы языка
- •3.1.1. Идентификаторы
- •3.1.2. Ключевые слова
- •3.1.3. Знаки операций
- •3.1.4. Константы
- •3.1.5. Комментарии
- •3.2. Типы данных
- •3.3. Выражения и операции
- •3.3.1. Арифметические операции
- •3.3.2. Операции сравнения
- •3.3.3. Логические операции
- •3.3.4. Побитовые логические операции
- •3.3.5. Операции сдвига
- •3.3.6. Приоритет операций
- •4. СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ C++
- •4.1. Функции
- •4.1.1. Функция main
- •4.2. Объявление переменных
- •4.3. Директивы препроцессора
- •5. ОПЕРАТОРЫ ЯЗЫКА C++
- •5.1. Оператор присваивания
- •5.2. Операторы передачи управления
- •5.2.1. Вызов функции
- •5.2.2. Возврат значения функции
- •5.2.3. Оператор безусловного перехода
- •5.3. Составной оператор
- •5.4. Условные операторы
- •5.4.1. Оператор if
- •5.4.2. Оператор switch
- •5.5. Операторы цикла
- •5.5.1. Цикл while с предусловием
- •5.5.2. Цикл do-while с постусловием
- •5.5.3. Арифметический цикл for
- •6. ЛАБОРАТОРНАЯ РАБОТА №1. Ветвящиеся вычислительные процессы
- •6.1. Цель работы
- •6.2. Постановка задачи
- •6.2.1. Варианты заданий
- •Вариант №1
- •Вариант №2
- •Вариант №3
- •Вариант №4
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
- •Вариант №11
- •Вариант №12
- •Вариант №13
- •Вариант №14
- •Вариант №15
- •6.3. Требования к оформлению отчета
- •6.4. Рекомендации по выполнению работы
- •6.4.1. Разработка алгоритма
- •6.4.2. Подготовка тестовых данных
- •6.4.3. Реализация операций ввода-вывода
- •6.4.4. Выполнение математических расчетов
- •7. ЛАБОРАТОРНАЯ РАБОТА №2. Циклические вычислительные процессы
- •7.1. Цель работы
- •7.2. Постановка задачи
- •7.2.1 Варианты заданий
- •7.3. Требования к оформлению отчета
- •8. КОНТРОЛЬНЫЕ ВОПРОСЫ
- •9. ЛИТЕРАТУРА
ФГБ ОУ ВПО «Московский государственный университет путей сообщения»
Кафедра «Автоматизированные системы управления»
А.В. ВАРФОЛОМЕЕВ
ЯЗЫК C++
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
Методические указания к лабораторным работам по дисциплине «Алгоритмические языки и программирование»
МОСКВА – 2011
ФГБ ОУ ВПО «Московский государственный университет путей сообщения»
Кафедра «Автоматизированные системы управления»
А.В. ВАРФОЛОМЕЕВ
ЯЗЫК C++
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
Рекомендовано редакционно-издательским советом университета в качестве методических указаний для студентов по направлениям 230100.62 и 230400.62
МОСКВА – 2011
УДК 004 В 18
Варфоломеев А.В. Язык С++. Базовые алгоритмические конструкции: Методические указания. — М.: МИИТ, 2011, — 48с.
Методические указания посвящены использованию базовых алгоритмических конструкций (следование, ветвление, цикл) при разработке программ на языке С++. В методических указаниях рассказывается о свойствах и способах представления алгоритмов, приводится описание основных языковых конструкций и операторов языка С++, представлены варианты заданий для выполнения лабораторных работ №1 и №2 по дисциплине «Алгоритмические языки и программирование».
ФГБ ОУ ВПО «Московский государственный университет путей сообщения», 2011
|
СОДЕРЖАНИЕ |
|
1. |
ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ................................ |
4 |
|
1.1. Свойства алгоритма................................................................... |
4 |
|
1.2. Способы записи алгоритма....................................................... |
5 |
|
1.3. Блок-схемы................................................................................. |
6 |
2. |
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ............. |
7 |
|
2.1. Следование................................................................................. |
7 |
|
2.2. Ветвление................................................................................... |
8 |
|
2.3. Цикл............................................................................................ |
9 |
|
2.4. Примеры алгоритмов .............................................................. |
12 |
3. |
ВВЕДЕНИЕ В C++ .................................................................... |
15 |
|
3.1. Основные лексемы языка........................................................ |
15 |
|
3.2. Типы данных............................................................................ |
18 |
|
3.3. Выражения и операции ........................................................... |
18 |
4. |
СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ C++ ...................... |
23 |
|
4.1. Функции ................................................................................... |
24 |
|
4.2. Объявление переменных......................................................... |
25 |
|
4.3. Директивы препроцессора...................................................... |
27 |
5. |
ОПЕРАТОРЫ ЯЗЫКА C++ ...................................................... |
27 |
|
5.1. Оператор присваивания .......................................................... |
28 |
|
5.2. Операторы передачи управления........................................... |
29 |
|
5.3. Составной оператор................................................................. |
31 |
|
5.4. Условные операторы............................................................... |
31 |
|
5.5. Операторы цикла..................................................................... |
34 |
6. |
ЛАБОРАТОРНАЯ РАБОТА №1. Ветвящиеся |
|
вычислительные процессы............................................................ |
37 |
|
|
6.1. Цель работы ............................................................................. |
37 |
|
6.2. Постановка задачи................................................................... |
37 |
|
6.3. Требования к оформлению отчета......................................... |
39 |
|
6.4. Рекомендации по выполнению работы ................................. |
40 |
7. |
ЛАБОРАТОРНАЯ РАБОТА №2. Циклические |
|
вычислительные процессы............................................................ |
44 |
|
|
7.1. Цель работы ............................................................................. |
44 |
|
7.2. Постановка задачи................................................................... |
44 |
|
7.3. Требования к оформлению отчета......................................... |
46 |
8. |
КОНТРОЛЬНЫЕ ВОПРОСЫ................................................... |
46 |
9. |
ЛИТЕРАТУРА ........................................................................... |
47 |
3
1. ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ
Алгоритм – точный набор инструкций, описывающих порядок действий некоторого исполнителя для достижения определенного результата за конечное время.
В качестве исполнителя, выполняющего инструкции алгоритма может выступать физическое устройство (например, процессор компьютера) или специализированная программа (виртуальный процессор, виртуальная машина).
1.1. Свойства алгоритма
Алгоритм должен быть составлен таким образом, чтобы исполнитель, в расчете на которого он создается, мог однозначно и точно следовать командам алгоритма и эффективно получать определенный результат. Это накладывает на записи алгоритмов целый ряд обязательных требований.
Любой алгоритм должен обладать следующими свойствами:
1.Дискретность. Алгоритм должен быть представлен в виде множества отдельных элементарных предписаний (команд, действий, шагов). Исполнитель последовательно выполняет предписания алгоритма и может приступить к выполнению следующего предписания только после того, как полностью выполнит требования текущего.
2.Понятность. Каждое из элементарных предписаний должно быть понятно исполнителю, на которого ориентирован алгоритм. У каждого исполнителя имеется своя система команд. Очевидно, что составляя алгоритм для определенного исполнителя, можно использовать лишь те команды, которые имеются в его системе.
4
3.Детерминированность. Алгоритм не должен содержать предписаний, смысл которых может
восприниматься |
неоднозначно. |
Каждое |
предписание должно |
однозначно |
трактоваться |
исполнителем, на которого ориентирован алгоритм.
4.Результативность. Алгоритм должен завершаться выдачей определенного результата.
5.Конечность. Алгоритм должен завершать работу и выдавать результат за конечное число шагов.
6.Массовость. Один и тот же алгоритм должен быть применим к различным исходным данным.
1.2. Способы записи алгоритма
Алгоритм может быть записан различными способами. Наиболее часто для описания алгоритмов применяются следующие способы:
1.При помощи естественного языка (словесное описание алгоритма).
2.При помощи псевдокода. Псевдокод –
искусственный язык описания алгоритмов, использующий ключевые слова языков программирования, опускающий несущественные для понимания алгоритма человеком детали (описания переменных, системно зависимый код, директивы компилятора, и т.п.).
3.При помощи блок-схем (графическое описание алгоритма).
4.При помощи алгоритмического языка программирования.
Из представленных способов, первые три ориентированы на восприятие человеком. Алгоритмы, описанные при помощи естественного языка, псевдокода или блок-схемы не могут быть выполнены физическим устройством или программой-исполнителем. Данные
5
способы описания алгоритмов широко используются в учебниках и научно-технических публикациях, а также на начальных стадиях разработки компьютерных программ.
Алгоритм, описанный при помощи языка программирования, является ничем иным, как исходным кодом программы. Такой алгоритм передается на обработку специальным служебным программам – трансляторам. Трансляторы переводят текстовые предписания алгоритма в двоичный код, который впоследствии будет выполнен определенным исполнителем.
1.3. Блок-схемы
Блок схема – граф, вершинами которого являются специальные функциональные блоки.
Каждое предписание алгоритма представляется в блоксхеме в виде соответствующей геометрической фигуры. Последовательность выполнения предписаний определяется в блок-схеме соединительными линиями, связывающими между собой функциональные блоки.
Таблица 1. Основные элементы блок-схемы
|
Наименование |
|
Обозначение |
|
Функция |
|
|
|
|||
|
|
|
|
Отображает вход из внешней среды |
|
|
|
|
|
||
|
Терминатор |
|
|
или выход из нее (наиболее частое |
|
|
|
|
|
применение − обозначение начала и |
|
|
|
|
|
конца алгоритма) |
|
|
|
|
|
Выполнение одной или нескольких |
|
|
|
|
|
||
|
|
|
|
операций, обработка данных любого |
|
|
Процесс |
|
|
вида, изменение данных. Внутри |
|
|
|
|
|
фигуры записывают операции над |
|
|
|
|
|
данными. |
|
|
|
|
|
Отображает решение, влияющее на |
|
|
|
|
|
||
|
Решение |
|
|
дальнейшее выполнение алгоритма. |
|
|
|
|
Используется для обозначения |
||
|
|
|
|
альтернативных ветвей выполнения |
|
|
|
|
|
алгоритма. |
6