
- •Программирование и основы алгоритмизации
- •1. Понятие алгоритма
- •1.1. Определение алгоритма
- •1.2. Гост на описание блок-схем
- •1.3. Виды алгоритмов
- •2. Языки программирования
- •2.1. Определение алгоритмического языка
- •2.2. Классификация языков. История развития языков программирования
- •2.3. Выбор языка программирования
- •2.5. Арифметические и логические основы программирования
- •3. Понятие системы программирования
- •3.1. Этапы создания программ
- •3.2. Конструирование программ
- •3.3. Методы, технологии и инструментальные средства производства программных продуктов
- •4.1. Литералы
- •4.2. Встроенные типы данных
- •4.3. Операции
- •Адресные операции
- •Операции преобразования знака
- •Побитовые операции
- •Операция определения размера
- •Операции увеличения и уменьшения значения
- •Операции динамического распределения памяти
- •Операция доступа
- •Аддитивные операции
- •Мультипликативные операции
- •Операции сдвига
- •Поразрядные операции
- •Операции сравнения
- •Логические бинарные операции
- •Операция присваивания
- •Специальные формы операций присваивания
- •Операции выбора компонентов структурированного объекта
- •Операции обращения к компонентам класса
- •Операция управления процессом вычисления значений
- •Операция вызова функции
- •Операция явного преобразования типа
- •Операция индексации
- •4.5. Агрегатные типы данных
- •4.5.1. Массивы
- •4.5.2. Структуры
- •4.5.3. Поля битов
- •4.5.4. Объединения Используются для хранения значений различных типов в одной и той же области памяти, но не одновременно.
- •4.5.5. Перечисления
- •4.5.6. Переименование типов
- •Typedef имя ранее определенного типа имя нового типа1
- •Объявление typedef применяется для создания удобных распознаваемых имен часто встречающихся и для вложенных типов, а также, чтобы сделать программы переносимыми для различных целых типов.
- •4.6. Обработка символьных и строковых переменных
- •4.7. Указатели
- •4.7.1. Инициализация указателей
- •4.7.2. Операции с указателями
- •4.8. Пользовательские процедуры и функции
- •4.8.1. Перегрузка функций
- •4.8.2. Перегрузка операций
- •4.8.3. Шаблоны функций
- •4.8.4. Возврат из функции нескольких значений
- •4.9. Файлы
- •4.10. Директивы препроцессора
- •Библиографический список
Минобрнауки России
Федеральное государственное образовательное учреждение высшего профессионального образования
«Омский государственный технический университет»
(ОмГТУ)
Программирование и основы алгоритмизации
курс лекций
Омск, 2012
УДК 004.42
ББК 32.973.26 – 018.1
Г 27
Рецензенты:
В. А. Мещеряков, д.т.н., проф.,
заведующий каф. « Математики и вычислительной техники»
Финансовая академия при Правительстве РФ;
Г. И. Чернов, к.т.н., доцент НОУ ВПО СИБИТ
|
Гебель, Е. С. |
Г 27 |
Программирование и основы алгоритмизации : конспект лекций / Е. С. Гебель. – Омск : Изд-во ОмГТУ, 2012. – 101 с. |
В конспекте лекций изложены основы построения алгоритмов для решения прикладных задач и описаны нормативные документы, стандартизующие их графическое изображение. Рассмотрены основные этапы создания программного обеспечения, методы, технологии и инструментальные средства производства программных продуктов. Рассмотрены базовые понятия, синтаксис, семантика и управляющие конструкции языков программирования С/С++.
Для бакалавров по направлениям 220700 «Автоматизация технологических процессов и производств» и 220400 «Управление в технических системах».
УДК 004.42
ББК 32.973.26 – 018.1
Печатается по решению редакционно-издательского совета
Омского государственного технического университета
© Омский государственный
технический университет, 2012
Содержание
Введение……………………………………………………………………. |
4 |
1. Понятие алгоритма……………………………………………………… |
6 |
1.1. Определение алгоритма……………………………………………. |
6 |
1.2. ГОСТ на описание блок-схем……………………………………… |
8 |
1.3. Виды алгоритмов…………………………………………………… |
12 |
2. Языки программирования……………………………………………… |
15 |
2.1. Определение алгоритмического языка…………………………… |
15 |
2.2. Классификация языков. История развития языков программирования………………………………………………………… |
16 |
2.3. Выбор языка программирования…………………………………. |
18 |
2.4. История языка программирования С/С++………………………… |
22 |
2.5. Арифметические и логические основы программирования……. |
24 |
3. Понятие системы программирования…………………………………. |
32 |
3.1. Этапы создания программ…………………………………………. |
32 |
3.2. Конструирование программ……………………………………….. |
34 |
3.3. Методы, технологии и инструментальные средства производства программных продуктов………………………………….. |
39 |
3.4. Некоторые аспекты программирования на алгоритмическом языке С/С++………………………………………………………………… |
41 |
4. Основы языка программирования С/С++……………………………… |
43 |
4.1. Литералы……………………………………………………………. |
44 |
4.2. Встроенные типы данных………………………………………….. |
49 |
4.3. Операции……………………………………………………………. |
53 |
4.4. Операторы языка С++……………………………………………… |
64 |
4.5. Агрегатные типы данных…………………………………………... |
69 |
4.5.1. Массивы………………………………………………………. |
69 |
4.5.2. Структуры…………………………………………………….. |
72 |
4.5.3. Поля битов……………………………………………………. |
75 |
4.5.3. Объединения………………………………………………….. |
76 |
4.5.4. Перечисления………………………………………………… |
77 |
4.5.7. Переименование типов……………………………………… |
79 |
4.6. Обработка символьных и строковых переменных……………….. |
80 |
4.7. Указатели……………………………………………………………. |
84 |
4.7.1. Инициализация указателей………………………………….. |
86 |
4.7.2. Операции с указателями…………………………………….. |
88 |
4.8. Пользовательские процедуры и функции…………………………. |
92 |
4.8.1. Перегрузка функций…………………………………………. |
92 |
4.8.2. Перегрузка операций………………………………………… |
93 |
4.8.3. Шаблоны функций…………………………………………… |
95 |
4.8.4. Возврат из функции нескольких значений…………………. |
96 |
4.9. Файлы………………………………………………………………… |
97 |
4.10. Директивы препроцессора………………………………………... |
100 |
Библиографический список……………………………………………… |
103 |
Введение
Актуальность курса на современном этапе
Широкое внедрение ЭВМ в сферы производства, быта и др. требует соответствующей компьютерной подготовки кадров. Студенты должны уметь использовать разработанные прикладные программы и при необходимости дополнять их своими программами для конкретных целей.
Для студентов, обучающихся по направлениям 220400 «Управление в технических системах» и 220700 «Автоматизация технологических процессов и производств», знание основ алгоритмизации и программирования является обязательным. Данный предмет изучается одним из первых среди прочих общепрофессиональных дисциплин.
Теоретический материал по дисциплине «Программирование и основы алгоритмизации» отражает преемственность курсов «Информатика», «Высшая математика» и создает основу для изучения дисциплин «Программирование промышленных контроллеров» и «Моделирование систем управления».
Цели и задачи курса
Привить студентам навыки алгоритмизации и познакомить их с основными методами программирования на языках высокого уровня.
В результате изучения курса студенты должны:
знать:
основные этапы разработки программы и решения задач на ЭВМ;
стандартные приемы программирования на языках высокого уровня;
принципы объектно-ориентированного программирования;
принципы организации программ;
иметь представление о языках программ, их особенностях;
основные критерии создания и использования программ;
иметь представление о визуальных средствах разработки программ;
способы отладки и тестирования программ;
уметь:
ставить задачу и разрабатывать алгоритм ее решения;
составлять программу на языке высокого уровня;
отлаживать и усовершенствовать программу.
Предмет и методы изучения
Язык С++ является языком системного программирования. Он наиболее эффективен при решении задач системного программирования, но он удобен при написании и прикладных программ. Среди преимуществ языка С++ можно отметить переносимость программ на компьютеры различной архитектуры и из одной операционной системы в другую, лаконичность записи алгоритмов, логическую стройность и удобочитаемость программ, возможность получить эффективный код программ, сравнимых по скорости с программами, написанными на ассемблере.
Удобство языка С основано на том, что являясь одновременно и языком высокого уровня, имеющий полный набор конструкций структурного программирования, поддерживающим модульность, блочную структуру программ, возможность раздельной компиляции модулей. В тоже самое время язык С++ имеет набор низкоуровневых средств, позволяющих иметь удобный доступ к аппаратным средствам компьютера, в частности позволяющих добраться до каждого бита памяти. Гибкость и универсальность языка С обеспечивает его широкое распространение.
Курс знакомит студентов с основами построения алгоритмов для решения задач, основными этапами создания прикладных программ. Теоретический материал сопровождается постоянным изучением готовых текстов программ и написанием собственных программ, основанных на текущем материале.
В результате изучения курса студент должен приобрести базовые знания для написания программ более сложной структуры и в других языках программирования.