
- •220300 - Системы автоматизированного проектирования
- •Состав языка и принцип работы компилятора языка высокого уровня
- •Идентификаторы
- •Альтернативный ввод-вывод в стиле с
- •Константы
- •Манипуляторы
- •Преобразования типов
- •Арифметические операции
- •Функции стандартной библиотеки
- •Операции отношения и логические операции
- •Базовые конструкции структурного программирования
- •Цикл с параметром (for)
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Рекомендации по программированию циклов
- •Ветвления
- •Условный оператор if
- •Вложенные конструкции
- •Проблемы соответствия if и else во вложенных ветвлениях
- •Условная операция
- •Оператор switch
- •Операторы передачи управления
- •Контрольная работа
- •Массивы
- •Сортировка массива методом выбора
- •Сортировка массива методом пузырька
- •Многомерные массивы
- •Операции со строками
- •Функции
- •Void starline(); // объявление функции (прототип)
- •Передача аргументов в функцию по значению
- •Void charline(char sim, int n); // объявление функции (прототип)
- •Возвращение функцией значения
- •Передача аргументов по ссылке
- •Возвращение значения по ссылке
- •Перегруженные функции
- •Переменные и функции
- •Передача массивов в функции
- •Указатели
- •Указатели и массивы
- •Указатели и функции
- •Указатели и строки
- •Динамический массив и динамическое выделение памяти
- •Ввод/вывод
- •Форматированный ввод/вывод
- •Конструкторы и методы
- •Двоичный ввод/вывод. Бинарные файлы
- •Двунаправленный ввод/вывод
- •Функции стандартной библиотеки для работы с файлами или ввод/вывод в стиле с
Министерство образования и науки Российской Федерации
Московский государственный университет дизайна и технологии
Секция САПР
Курс лекций и семинаров по дисциплине ОПД.Ф.06
"Программирование на языке высокого уровня С++"
для студентов механического факультета, обучающихся по специальности
220300 - Системы автоматизированного проектирования
Курс: 2
Семестр: 3
Форма ИК: зачёт
Разработал:
к.т.н., ассистент секции САПР
Семёнов А.А.
Москва « 2004
Список литературы, рекомендуемой для самостоятельного изучения:
Страуструп Б. "Язык программирования С++". – СПб.: БИНОМ, 1999
Павловская Т.А. "С/С++. Программирование на языке высокого уровня". – СПб.: Питер, 2003
Лафоре Р. "Объектно-ориентированное программирование в С++", 4-е изд. – СПб.: Питер, 2004
Савитч У. "Язык С++. Курс объектно-ориентированного программирования", 3-е изд. – М.: Вильямс, 2001
Архангельский А.Я. "Программирование в С++Builder 6". – М.: БИНОМ, 2003
Страуструп Б. "Дизайн и эволюция языка С++". – М.: ДМК, 2000
Вирт Н. "Алгоритмы + структуры данных = программы". – М.: Мир, 1985
Мейерс С. "Эффективное использование С++". – М.: ДМК, 2000
Лекция 1 (7,5 стр.)
Характеристика языка С++
Среди современных языков программирования С++ является наиболее распространённым. Он произошёл от языка С, разработанного в 1970 г. сотрудником фирмы AT&A Bell Lab. Деннисом Ритчи. Язык С можно отнести к языкам среднего уровня, поскольку он планировался для замены ассемблера. В основном он использовался для написания и обслуживания ОС UNIX. Впоследствии этот язык стал таким популярным, что его версии были разработаны и для других широко используемых ОС. Особенность языка С состоит в том, что это язык высокого уровня со многими возможностями языка низкого уровня. Подобно языку низкого уровня, программы на С могут непосредственно оперировать с памятью компьютера. С другой стороны, С обладает особенностями языка высокого уровня, что существенно облегчает чтение и написание программ по сравнению с написанными на ассемблере.
Для исправления основных недостатков языка С, сотрудник фирмы AT&A Bell Lab. Бьерн Страуструп в начале 80-х разработал язык высокого уровня С++, который оказался значительно лучше, чем С. Основная часть С является подмножеством С++, а большинство программ, написанных на С, являются также программами на С++. Обратное утверждение неверно. О многих программах, написанных на С++, нельзя определённо сказать, что они являются программами на С. В отличие от С, язык С++ поддерживает современную объектно-ориентированную технологию написания программ.
Состав языка и принцип работы компилятора языка высокого уровня
Для описания сложного действия требуется последовательность операторов. Операторы могут быть объединены в блок. Блоком в языке С++ считается последовательность операторов, заключённая в фигурные скобки { }. Операторы бывают исполняемые и неисполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных, поэтому их часто называют просто описаниями. Таким образом, программой на алгоритмическом языке можно назвать объединённую единым алгоритмом совокупность описаний и операторов.
Для выполнения программы, написанной на языке высокого уровня, требуется перевести её на машинный язык. Этим процессом, состоящим из нескольких этапов, занимается компилятор. Сначала программа (*.cpp) передаётся препроцессору, который выполняет директивы, содержащиеся в её тексте (например, включение в текст заголовочных файлов). Получившийся полный текст программы поступает на вход компилятора, который выделяет элементарные конструкции программы, имеющие самостоятельный смысл, а затем на основе грамматики языка распознаёт выражения и операторы. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия создаёт объектный модуль (*.obj), который передаётся компоновщику. Компоновщик, или редактор связей, формирует исполняемый модуль (*.exe) программы, подключая к объектному модулю другие объектные модули, содержащие функции библиотек (*.lib), обращение к которым содержится в программе. Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки (сборки).