- •Максимов м.Н.
- •3. Скалярные типы и выражения 51
- •5. Адреса, указатели, массивы, память 95
- •6. Функции, указатели, ссылки 132
- •7 Структуры, объединения и классы 170
- •Введение
- •Модуль 1
- •1.2. Этапы подготовки исполняемой программы
- •Представление чисел от 0 до 16 в разных системах счисления
- •1.3. Системы счисления
- •2.1. Общие сведения о программах, лексемах и алфавите
- •2.2. Идентификаторы и служебные слова
- •2.3. Типы данных
- •2.4. Константы
- •Типы, выбираемые компилятором по умолчанию для целых констант
- •Данные вещественного типа
- •2.5. Операции
- •2.6. Разделители
- •3. Скалярные типы и выражения
- •3.1. Определение и описание переменных
- •3.2. Явное и неявное преобразование типа
- •Проектные задания
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •Список литературы
- •Модуль 2
- •4.1. Последовательно выполняемые операторы
- •4.2. Операторы выбора
- •If( выражение) оператор_1 else оператор_2
- •If( выражение) оператор_1
- •4.3. Операторы цикла
- •4.4. Операторы передачи управления
- •If (условие) break;
- •4.5. Примеры численного моделирования цепей первого порядка
- •5. Адреса, указатели, массивы, память
- •5.1. Указатели и адреса объектов
- •5.2. Адресная арифметика, типы указателей и операции над ними
- •5.3. Свойства указателя типа void*
- •5.4. Свойства объекта cout
- •5.5. Массивы и указатели
- •5.6. Многомерные массивы, массивы указателей, динамические массивы
- •Проектные задания к модулю
- •Тесты рубежного контроля
- •6.2. Функции с переменным количеством параметров
- •6.3. Рекурсивные функции
- •6.4. Подставляемые (инлайн-) функции
- •6.5. Функции и массивы
- •6.6. Указатели на функции
- •Void f3(float) (...) // Определение функции
- •Int* f4(char *){...} // Определение функции
- •Проектные задания
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •Модуль 4
- •7 Структуры, объединения и классы
- •7.1 Структура как тип и совокупность данных
- •7.3 Объединения разнотипных данных
- •7.4 Деревья
- •7.5 Битовые поля структур и объединений
- •7.6 Компонентные функции структурированных объектов
- •7.7 Расширение действия (перегрузка) стандартных операций
- •7.8 Доступ к компонентам структурированного объекта
- •7.9 Классы и шаблоны
- •Проектные задания
- •Тесты рубежного контроля
- •Квалиметрическая оценка
- •Список литературы
- •Приложение 1
- •Приложение 2 Стандартная библиотека функций языка Си
Квалиметрическая оценка
В зависимости от времени и цели проведения тестирования количество вопросов в тесте может менятся. Поэтому, чтобы можно было оценить успеваемость тестируемых студентов, предлагается следующая шкала. Если количество правильных ответов лежит в диапазоне
от 85 до 100% - это отлично;
от 70 до 84% - это хорошо;
от 55 до 69% - это удовлетворительно;
менее 55% - это не удовлетворительно.
Список литературы
В.В. Подбельский Язык Си++: Учебное пособие. - 5-е изд. М.: Финансы и статистика, 2000. 560с. ил.
Ален И. Голуб. Си и Си++ правила программирования. М.: БИНОМ, 1996. 272с.
Бьерн Страуструп Язык программирования Си++ . 3-е изд. /Пер. с англ. СПб.; М.: «Невский диалект» «Издательство БИНОМ», 1999. 991с. ил.
Модуль 2
Основной целью данного модуля является изучение операторов языка Си++, операций с указателями и массивами данных.
4. ОПЕРАТОРЫ ЯЗЫКА Си++
Операторы алгоритмических языков программирования являются средством, с помощью которого программист записывает последовательность действий, которую необходимо выполнить вычислительной машине для решения какой-то конкретной задачи. В информатике такую последовательность действий называют алгоритмом. Алгоритм обычно может быть представлен или в графической форме, или в виде текстового описания. Знание алгоритмов решения, хотя бы типовых задач, обычно встречающихся в профессиональной области обучаемого, является залогом успеха его успеваемости по информатике.
Практически все алгоритмические языки с незначительными вариациями имеют один и то же набор операторов. Не стал исключением и язык Си++, который почти без изменений унаследовал от языка Си их конструкции.
4.1. Последовательно выполняемые операторы
Каждый оператор языка Си++ заканчивается и идентифицируется разделителем «точка с запятой». Любое выражение, после которого поставлен символ «точка с запятой», воспринимается компилятором как отдельный оператор.
До сих пор все программы, приведённые в примерах, являлись набором последовательно выполняющихся операторов, в том числе и вызовы функций. Действительно, операторы выполнялись последовательно друг за другом так, как они были записаны в тексте программы.
Специальным случаем оператора служит пустой оператор. Он, как и разделитель, представляется символом «точкай с запятой», перед которым нет никакого выражения или не завершённого разделителем оператора. Пустой оператор не выполняет никаких действий. Он используется там, где синтаксис языка требует присутствие оператора, а по смыслу программирования никакие действия не должны выполняться.
Перед каждым оператором может быть помещена метка, отделяемая от оператора двоеточием. Область действия метки тело функции. В качестве метки используется произвольно выбранный программистом уникальный идентификатор:
D1: x= x*sin(x); //D1 – метка. Выражение x= x*sin(x); оператор.
D2: ; // D2 – метка. Символ «точка с запятой» пустой оператор.
Составным оператором является набор операторов, заключённых в фигурные скобки. Если среди операторов, находящихся в фигурных скобках, имеются определения и описания, то составной оператор превращается в блок, где локализованы все определенные в нём объекты. Синтаксически и блок, и составной оператор являются отдельными операторами. Однако ни блок, ни составной оператор не должны заканчиваться точкой с запятой. Для них ограничителем служит закрывающая фигурная скобка. Внутри блока (и составного оператора) любой оператор должен оканчиваться точкой с запятой.
{ int f; char st = ‘0’; а = (int)st; } // блок (присутствует определение )
{sin(2*x); x= x-4;} // составной оператор
Так как и блок, и составной оператор пользуются правами операторов, то разрешено их вложение, причем на глубину вложения синтаксис не накладывает ограничения.
