
- •Часть 1
- •18 Сентября 2012 г., протокол № 1
- •Предисловие
- •§ 1. Основные понятия программы
- •1.2. Директива препроцессора #include
- •Структура программы
- •Комментарии
- •Ключевые слова, идентификаторы, переменные
- •§ 2. Ввод, вывод
- •§ 3. Выражения
- •3.1. Константы
- •Непосредственно записать в выражении;
- •3.2. Операции и их приоритет
- •3.3. Операции отношения и логические операции
- •3.4. Операция присваивания
- •§ 4. Программирование ветвлений
- •4.1. Оператор if
- •4.2. Тернарная операция
- •4.3. Оператор выбора switch
- •Г л а в а 2 циклы
- •§ 1. Оператор while
- •§ 2. Оператор break
- •§ 3. Оператор do … while
- •§ 4. Оператор for
- •Г л а в а 3 Введение в массивы
- •§ 1. Основные понятия
- •§ 2. Способы определения массивов
- •§ 3. Вывод массива. Функции printf и cprintf
- •§ 4. Типы задач при работе с массивами
- •Упражнения и тесты
- •Г л а в а 4 модульное программирование. Функции
- •§1. Функции без результатов. Параметры-значения
- •1.1. Примеры. Правила оформления и вызова функций
- •Формальные и фактические параметры
- •Передача параметров по значению
- •§ 2. Функции типа void с результатами
- •2.1. Вычислeниe бeсконeчных сумм
- •2.2. Что такое ссылочный тип
- •2.3. Параметры ссылочного типа
- •§ 3. Функции, отличные от void. Оператор return
- •§ 4. Область действия имён. Локальные и глобальные имена
- •§ 5. Встраиваемые (inline) функции
- •§ 6. Параметры по умолчанию
- •§ 7. Перегрузка функций
- •7. Сравнение функций типа void и отличных от типа void.
- •Г л а в а 5 введение в объектно-оРиентированное программирование
- •§ 1. Первое знакомство с ооп
- •§ 2. Класс. Поля и методы класса
- •§ 3. Создание объектов. Конструктор
- •Упражнения и тесты
- •Оглавление
- •3.1. Константы …………………………………………….………..….........…8
- •Упражнения и тесты …….………………..………………………….…………....19
- •Методы программирования:
- •Лекции, примеры, тесты
- •Пособие для студентов механико-математического факультета
- •В двух частях
- •Часть 1
Комментарии
Комментарии, как и в других системах, не обрабатываются компилятором и поэтому не влияют на выполнение программы. В языке С++ можно записывать комментарии двух видов:
комментарии можно разместить после двух подряд идущих наклонных чёрточек //, записанных в любом месте строки. Тогда всё, что следует после этих символов до конца строки, воспринимается как комментарий. Для продолжения комментария на следующую строку необходимо в ней повторно записать эти два символа //;
перед началом комментария один раз записываем два подряд идущих символа /*, а в конце — два подряд идущих символа */. В таком случае комментарии могут занимать несколько строк.
Первый способ используется для коротких комментариев, а второй — для длинных.
Ключевые слова, идентификаторы, переменные
Слова int, return являются примерами ключевых слов. Они записываются строчными буквами. Ключевые слова нельзя использовать в качестве имён переменных, констант, функций и т. д.
Имена переменных, констант, типов, функций и других элементов программы называются идентификаторами. Правила их записи почти не отличаются от других систем программирования:
прописные и строчные буквы в идентификаторах различаются. Поэтому, в отличие, например, от Pascal, идентификаторы MyMax, Mymax и mymax обозначают разные переменные;
идентификатор может содержать большие и маленькие латинские буквы, цифры и знак подчёркивания;
первым символом должна быть буква или знак подчёркивания;
идентификатор не должен совпадать с ключевым словом С++ и именем стандартных функций, классов, объектов и других элементов языка;
нежелательно использовать однобуквенные идентификаторы, но в то же время не всегда удобно работать с длинными именами.
Любая переменная должна быть объявлена (описана) в любом месте программы, но до первого её использования: тип список_переменных. Здесь тип — один из следующих типов: int — целый длиной 4 байта, short — целый короткий (2 байта), char — символьный (1), float — вещественный (4), double— вещественный c удвоенной точностью (8), bool — логический (булевский) со значением true (или 1) или false ( или 0) и другие. Список переменных записывается через запятую. Одновременно с объявлением переменной можно задать её начальное значение, например, int a=-23;. При необходимости его можно изменить.
§ 2. Ввод, вывод
Ввод информации с экрана можно выполнить с помощью “команды”
cin>>элемент1>>элемент2>>…>>элементN;.
В качестве элемента может быть переменная, но не выражение и не константа. Как и в других системах программирования, при выполнении этого оператора программа останавливается и ждёт ввода необходимого количества данных, которые набираются по правилам записи констант. Перед cin желательно с помощью cout выводить необходимую подсказку, т. е. текст.
Для вывода информации на экран можно использовать следующую “команду”: cout<<элемент1<<элемент2<<…<<элементN;. Здесь в качестве элемента может быть:
переменная одного из указанных выше типов, например, cout<<r;
строковая константа, то есть текст, который, как и в других операторах, должен записываться, в отличие от Pascal, в двойных кавычках. В тексте можно использовать так называемые управляющие символы, признаком которых является обратная наклонная черта. Один из них, ‘\n’, означает, что информация, выводимая после него, будет размещаться с новой строки экрана. Этот символ может располагаться не только в начале строковой константы, но и в любом её месте, в том числе и в конце. Строковая константа может содержать только этот единственный символ (см. далее примеры);
ключевое слово endl (манипулятор вывода). Это второй способ перехода на новую строку. После него информация будет выводиться с начала следующей строки;
числовая константа. При изучении некоторых элементов языка с использованием компьютера можно, например, написать cout<<5; В реальных программах это используется редко;
выражение, записанное в круглых скобках, например, cout<<(a+b);
Рассмотрим следующий фрагмент программы: int a=2, b=5;
/* Объявили две целочисленные переменные и проинициализировали их, то есть задали начальные значения */
cout<<”\n Сумма ”<<(a+b)<< ”\n Произведение “<<(a*b); // или
cout<<endl<<” Сумма ”<<(a+b) <<endl<<” Произведение “<<(a*b);
В результате с начала строки будет выведено Сумма 7, а с начала следующей строки — Произведение 10. Второй раз cout выведет это же. Заметим, что запятая и точка после чисел не выводятся.
Замечания. 1) До изучения объектно–ориентированного программирования cout и cin будем называть “командами”, хотя это объекты стандартных классов, для которых перегружены операции “<<” и “>>”.
Для вывода можно использовать также функции printf и cprintf, а для ввода — функцию scanf. Ввиду их сложности они рассматриваются позже.