МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Лекции по C++

    Лекции по C++

    Астраханский государственный технический университет

    Кафедра «Информационных

    технологий и коммуникаций»

    Конспект лекций по дисциплине

    «Основы алгоритмического языка С++»

    для специальности 220200.

    Астрахань 2000 г.

    1. Переменные и операции языка С++ 4

    ИЗУЧАЕМЫЕ ПОНЯТИЯ 5

    Буквы и цифры 6

    Пробельные символы 6

    Знаки пунктуации и специальные символы 6

    ESC- последовательности 8

    Операции 9

    Константы 11

    Целые константы 11

    Константы с плавающей точкой 13

    Константа-символ 14

    Строковые литералы 14

    Идентификаторы 15

    Ключевые слова 15

    Комментарии 16

    Лексемы 17

    ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ 17

    2. Конструкции принятия решений и циклы 23

    ВОПРОСЫ И ОТВЕТЫ 23

    СТРУКТУРА ПРОГРАММЫ 26

    Исходная программа 26

    ОБЪЯВЛЕНИЯ 27

    Спецификаторы типов 28

    Деклараторы 30

    Деклараторы массивов, функций и указателей 30

    Составные деклараторы 31

    Об"явления переменной 33

    Объявление простой переменной 34

    Объявление перечисления 34

    Объявления структур 36

    Битовые поля 37

    Об"явление совмещений 38

    Об"явление массива 39

    Об"явление функций 42

    Классы памяти 45

    Об"явления переменной на внешнем уровне 45

    Об"явление переменной на внутреннем уровне 48

    Об"явление функции на внешнем и внутреннем уровнях 49

    Инициализация 50

    Базовые типы и типы указателей 50

    Составные типы 51

    Строковые инициализаторы 53

    Об"явления типов 54

    Типы структур, совмещений и перечислений 54

    Об"явления typedef 55

    Имена типов 56

    КОНТРОЛЬНЫЕ ВОПРОСЫ: 57

    Функции 57

    Объявление и определение функций 58

    ТИПОВЫЕ ВОПРОСЫ С ОТВЕТАМИ 62

    ПРАКТИКУМ 62

    Контрольные вопросы 62

    Массивы 65

    СОРТИРОВКА массива - ПРИМЕР в файле list6_4cpp. 67

    - ПОИСК в массиве 67

    БИБЛИОТЕЧНЫЕ ФУНКЦИИ ПОИСКА и СОРТИРОВКИ в непрерывных массивах: 68

    Строки и управление вводом/выводом 69

    Форматированный потоковый вывод 70

    Листинг 1. Исходный текст программы OUT1.CPP 70

    Функция printf 71

    Функция printf 72

    Таблица 1. Еsс - последовательности 72

    Таблица 7.2. Значения флагов строки формата функции printf 72

    Таблица 3. Символы типов данных строки формата функции printf 73

    Листинг 3. Исходный текст программы OUT2.CPP в файле List7-3.CPP 74

    Таблица 4. Результат действия спецификаций форматирования в функции

    printf из строки 13 75

    Ввод строк 76

    Функция getline 76

    Присвоение значений строкам 77

    Инициализация строки 77

    Функция strcpy 77

    Функция strdup 77

    Функция strncpy 78

    Определение длины строки 78

    Функция strlen 78

    Функция strcat 78

    Функция strncat 79

    Сравнение строк 79

    Функция strcmp 79

    Пример 80

    Функция stricmp 80

    Пример 80

    Функция strncmp 80

    Пример 80

    Пример 81

    (см. List7_5.cpp - Исходный текст программы STRING2.CPP) 81

    Преобразование строк 81

    Функция strlwr 81

    Пример 81

    Функция strupr 81

    Пример 81

    Обращение строк 82

    Функция strrev 82

    Поиск символов 82

    Функция strchr 82

    Функция strrchr 82

    Пример 83

    Функция Strspn 83

    Пример 83

    Функция strcspn 83

    Пример 83

    Функция strpbrk 83

    Пример 84

    Поиск строк 84

    Функция strstr 84

    Пример 84

    Функция strtok 84

    Пример 84

    Основы объектно-ориентированного программирования СИНТАКСИС ОСНОВНЫХ

    КОНСТРУКЦИЙ 85

    Объявление базовых классов 85

    Конструкторы 88

    Деструкторы 90

    Объявление иерархии классов 91

    Виртуальные функции 92

    Дружественные функции 95

    Операции и дружественные операции 96

    Виртуальные функции 97

    Правило виртуальной функции 99

    Операции и дружественные операции 101

    ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ 103

    ВОПРОСЫ И ОТВЕТЫ 103

    Контрольные вопросы 104

    ФАЙЛОВЫЕ ОПЕРАЦИИ ВВОДА/ВЫВОДА 105

    Stream-библиотека C++ 105

    ОБЩИЕ ФУНКЦИИ ПОТОКОВОГО ВВОДА/ВЫВОДА 106

    Функция-компонент open 106

    Функция-компонент close 107

    ПОСЛЕДОВАТЕЛЬНЫЙ ТЕКСТОВЫЙ ПОТОК ВВОДА/ВЫВОДА 107

    Функция-элемент getline 108

    ПОСЛЕДОВАТЕЛЬНЫЙ ДВОИЧНЫЙ ФАЙЛОВЫЙ ВВОД/ВЫВОД 109

    Функция-элемент write 110

    Функция-элемент read 110

    Файловый ввод/вывод с прямым доступом 113

    Функция-элемент seekg 113

    Заключение 115

    Вопросы и ответы 115

    Практикум 116

    Контрольные вопросы 116

    Упражнение 116

    Переменные и операции языка С++

    Здесь представлены базовые компоненты программ на С++. В их число

    входят типы данных, переменные, константы и выражения.

    ИЗУЧАЕМЫЕ ПОНЯТИЯ

    - Предопределенные типы данных в С++ включают в себя типы int, char,

    float, double и void. В языке С++ гибкость типов данных увеличивается

    благодаря применению модификаторов типов. Эти модификаторы изменяют

    точность представления и диапазон значений переменных. Модификаторами

    типа являются signed, unsigned, short и long.

    - Идентификаторы в С++ могут иметь длину до 32 символов и

    должны начинаться с буквы или подчеркивания. Последующие символы

    идентификатора могут быть буквой, цифрой или подчеркиванием. Иден-

    тификаторы С++ чувствительны к регистру. Ограничение на 32 символа

    может быть, однако, изменено путем установки опций компилятора.

    - Директива #include является специальной командой компилятора. Она

    предписывает компилятору включить в программу содержимое опреде-

    ленного файла, как если бы вы сами ввели его в текущий исходный

    файл.

    - Объявление констант предусматривает использование директивы #define

    для объявления констант, определенных при помощи макросов, или ис-

    пользование ключевого слова const для объявления формальных кон-

    стант. Формальные константы требуют от вас определения их типа

    (значением по умолчанию является int), имени и ассоциированного с

    ними значения.

    - Объявление переменной требует, чтобы вы задали ее тип и имя, С++

    дает вам возможность инициализировать переменную при ее объявлении.

    Вы можете объявить несколько переменных в одном операторе объявле-

    ния.

    - Арифметическими операциями являются +, -, *, / и % (деление по

    модулю).

    - Арифметические выражения различаются по сложности. Самое простое

    выражение содержит единственный элемент данных (литерал, константу

    или переменную). Сложные выражения включают набор операций, функ-

    ции, литералы, константы и переменные.

    - Операции инкремента и декремента используются в префиксной и пост-

    фиксной формах. Язык С++ дает вам возможность применять эти опе-

    рации к переменным, в которых хранятся символы, целые числа и даже

    числа с плавающей точкой.

    - Арифметические операции присваивания дают вам возможность записы-

    вать более короткие арифметические выражения, в которых первый опе-

    ранд является также переменной, принимающей результат вычислений.

    - Оператор sizeof возвращает как для типов данных, так и для переменных

    их размер в байтах.

    - Механизм приведения типа дает вам возможность форсировать преобра-

    зование типа выражения.

    - Операции отношений и логические операции дают вам возможность стро-

    ить логические выражения.

    - Булевы выражения объединяют операции отношений и логические опе-

    рации для формулирования нетривиальных условий. Эти выражения позволяют

    программе принимать сложные решения.

    - Условное выражение предлагает вам короткую форму для простого опе-

    ратора if-else с двумя альтернативами.

    - Операции манипулирования битами выполняют поразрядные операции

    AND, OR, XOR и NOT. Кроме того, в С++ поддерживаются поразрядные

    операции сдвига >.

    - Операции манипулирования битами с присваиванием предлагают корот-

    кие формы для простых операций манипулирования битами.

    Буквы и цифры

    Множество символов Си включает большие и малые буквы из английского

    алфавита и 10 десятичных арабских цифр:

    -большие английские буквы:

    A B C D E F G H I J K L M N O P Q R T U V W X Y Z

    -малые английские буквы:

    a b c d e f g h i j k l m n o p q r t u v w x y z

    -десятичные цифры:

    0 1 2 3 4 5 6 7 8 9

    Буквы и цифры используются при формировании констант, иден-

    тификаторов и ключевых слов. Все эти конструкции описаны ниже. Компилятор

    Си рассматривает одну и ту же малую и большую

    буквы как отличные символы. Если в данной записи использованы малые буквы,

    то замена малой буквы "a" на большую букву "A" сделает отличной данную

    запись от предшествующей.

    Пробельные символы

    Пробел, табуляция, перевод строки, возврат каретки, новая

    страница, вертикальная табуляция и новая строка- это сиволы, называемые

    пробельными, поскольку они имеют то же самое назначение, как и пробелы

    между словами и строками на печатной странице. Эти символы разделяют

    об"екты, определенные пользователем, такие, как константы и идентификаторы,

    от других об"ектов программы.

    Символ CONTROL-Z рассматривается как индикатор конца файла.

    Компилятор игнорирует любой текст, следующий за символом

    CONTROL-Z.

    Компилятор Си игнорирует пробельные символы, если они не

    используются как разделители или как компоненты константы-символа или

    строковых литералов. Это нужно иметь в виду, чтобы дополнительно

    использовать пробельные символы для повышения наглядности программы

    (например,для просмотра редактором текстов).

    Знаки пунктуации и специальные символы

    Знаки пунктуации и специальные символы из множества символов Си

    используются для различных целей, от организации текста программы до

    определения заданий, которые будут выполнены компилятором или

    откомпилированной программой. В таблице 2.1 перечислены эти символы.

    -----------------------------------------------------------

    Символ Наименование Символ Наименование

    -----------------------------------------------------------

    , Запятая ! Восклицатель-

    ный знак

    . Точка | Вертикальная

    черта

    ; Точка с за- / Наклонная чер-

    пятой та вправо

    : Двоеточие \ Наклонная чер-

    та влево

    ? Знак вопроса ~ Тильда

    ' Одиночная ка _ Подчеркивание

    вычка

    ( Левая круглая # Знак номера

    скобка

    ) Правая круглая % Знак процента

    скобка

    { Левая фигурная & Амперсанд

    скобка

    } Правая фигурная ^ Caret

    скобка

    < Левая угловая - Знак минус

    скобка

    > Правая угловая = Знак равно

    скобка

    [ Левая квадратная + Знак плюс

    скобка

    ] Правая квадратная

    скобка ---------------------------------------------------------

    --

    Табл. 2.1. Знаки пунктуации и специальные символы

    Эти символы имеют специальный смысл для компилятора Си. Их

    использование в языке Си описывается в дальнейшем содержании руководства.

    Знаки пунктуации из множества представимых символов, которые не

    представлены в данном списке, могут быть использованы только в строковых

    литералах, константах-символах и комментариях.

    ESC- последовательности

    ESC- последовательности- это специальные символьные комбинации,

    которые представляют пробельные символы и неграфические символы в

    строках и символьных константах.

    Их типичное использование связано со спецификацией таких

    действий, как возврат каретки и табуляция , а также для задания

    литеральных представлений символов, таких как символ двойная кавычка.

    ESC-последовательность состоит из наклонной черты влево, за которой

    следует буква, знаки пунктуации ' " \ или комбинация цифр. В таблице 2.2.

    приведен список ESC- последовательностей языка Си.

    -------------------------------------------------

    ESC- последовательность Наименование

    -------------------------------------------------

    \n Новая строка

    \t Горизонтальная табу-

    ляция

    \v Вертикальная табуля-

    ция

    \b Пробел

    \r Возврат каретки

    \f Новая страница

    \a Звонок(сигнал)

    \' Одиночная кавычка

    \" Двойная кавычка

    \\ Наклонная черта влево

    \ddd ASCII символ в восьми-

    ричном представлении

    \xdd ASCII символ в шестнад-

    цатиричном представлении

    Табл. 2.2. ESC- последовательности

    Если наклонная черта влево предшествует символу, не включенному в

    этот список, то наклонная черта влево игнорируется, а символ

    представляется как литеральный. Например, изображение \c

    представляет символ "c" в литеральной строке или константе-символе.

    Последовательности \ddd и \xdd позволяют задать любой символ в ASCII

    (Американский стандартный код информационного интерфейса) как

    последовательность трех восьмеричных цифр или двух шестнадцатеричных цифр.

    Например, символ пробела может быть задан как \010 или \x08. Код ASCII

    "нуль" может быть задан как \0 или \x0 . В восьмеричной ESC-

    последовательности могут быть использованы от одной до трех восьмеричных

    цифр.

    Например, символ пробела может быть задан как \10 . Точно так же в

    шестнадцатеричной ESC- последовательности могут быть использованы от одной

    до двух шестнадцатеричных цифр. Так, шестнадцатеричная последовательность

    для символа пробела может быть задана как \x08 или \x8 .

    Замечание:

    Когда используется восьмеричная или шестнадцатеричная

    ESCпоследовательность в строках, то нужно полностью задавать все цифры

    ESC- последовательности (три цифры для восьмеричной и две цифры для

    шестнадцатеричной ESC- последовательностей). Иначе, если символ

    непосредственно следующий за ESC- последовательностью, случайно окажется

    восьмеричной или шестнадцатеричной цифрой, то он проинтерпретируется

    как часть последовательности. Например, строка \x7Bell при выводе на

    печать будет выглядеть как {ell , поскольку \x7B проинтерпретируется как

    символ левой фигурной скобки({) . Строка \x07Bell будет правильным

    представлением сим-

    вола "звонок" с последующим словом Bell.

    ESC- последовательности позволяют посылать неграфические управляющие

    символы к внешним устройствам. Например, ESC- последовательность\033 часто

    используется как первый символ команд управления терминалом и принтером.

    Неграфические символы всегда должны представляться ESC-

    последовательностями, поскольку, непосредственное использование в

    программах на Си неграфических символов будет иметь непредсказуемый

    результат.

    Наклонная черта влево (\) помимо определения ESC-последовательностей

    используется также, как символ продолжения строки в препроцессорных

    определениях.

    Если символ "новая строка" следует за наклонной чертой влево, то новая

    строка игнорируется и следующая строка рассматривается, как часть

    предыдущей строки.

    Операции

    Операции- это специальные комбинации символов, специфицирующие действия

    по пробразованию различных величин. Компилятор интерпретирует каждую из

    этих комбинаций как самостоятельную единицу, называемую лексемой (token).

    В Табл. 2.3 представлен список операций. Операции должны

    использоваться точно так, как они представлены в таблице: без пробельных

    символов между символами в тех операциях, которые представлены несколькими

    символами.

    Операция sizeof не включена в эту таблицу. Она скорее представляет собой

    ключевое слово, чем символ.

    -------------------------------------------------

    Операция Наименование ----------------------------------

    ---------------

    ! Логическое НЕ

    ~ Побитовое дополнение

    + Сложение

    - Вычитание, арифмети-

    ческое отрицание

    * Умножение

    / Деление

    % Остаток

    > Сдвиг вправо

    < Меньше

    Больше

    >= Больше или равно

    == Равно

    != Не равно

    & Побитовое И, адрес от

    | Побитовое включающее ИЛИ

    ^ Побитовое исключающее ИЛИ

    && Логическое И

    || Логическое ИЛИ

    ' Последовательное выполне-

    ние (запятая)

    ?: Операция условного вы-

    ражения

    ++ Инкремент

    -- Декремент

    = Простое присваивание

    += Сложение с присваиванием

    -= Вычитание с присваиванием

    *= Умножение с присваиванием

    /= Деление с присваиванием

    %= Остаток с присваиванием

    >>= Сдвиг вправо с присваива-

    иванием

    ?:

    Константы

    Константа- это число, символ или строка символов. Константы

    используются в программе как неизменяемые величины. В языке Си различают

    четыре типа констант: целые константы, константы с плавающей точкой,

    константы-символы и строчные литералы.

    Целые константы

    Целая константа- это десятичное, восьмеричное или шестнадцатеричное

    число, которое представляет целую величину. Десятичная константа имеет

    следующий формат представления:

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.