- •Часть 1. Основы создания программ в Си Лекция.1.Язык Си
- •Технология разработки программ
- •Базовые элементы языка Си
- •Представление данных в Си
- •Встроенные типы данных
- •Переменные
- •Операции и выражения
- •Функции
- •Лекция.2.Язык Си Обзор элементов языка Си Типизированные константы
- •Область действия переменных
- •Управляющие конструкции с
- •Массивы и указатели
- •Типы, определяемые пользователем
- •Лекция.3.Препроцессор и отладка программ
- •Макроопределения
- •Условная компиляция
- •1. Предотвращение включения файлов
- •Отладка программ
- •Элементы отладки
- •Лекция.1.Объектно-ориентированное программирование
- •Что такое объектно-ориентированное программирование
- •Пример определений классов
- •Конструктор и деструктор
- •Элементы класса
- •Элементы-функции
- •Элементы данных
- •Класс как область действия
- •Указатель this
- •Лекция.3.Элементы класса Статические элементы класса
- •Статические элементы-функции
- •Специальные элементы-функции класса
- •Конструктор
- •Список инициализации элементов
- •Конструктор копии
- •Операция присваивания
- •Деструктор
- •Операции класса new и delete
- •Функции преобразования
- •Ключевое слово explicit
- •Операции приведения
- •Доступ к базовым классам
- •Простое наследование
- •Конструкторы, деструкторы и наследование
- •Сложное наследование
- •Неоднозначности при сложном наследовании
- •Виртуальные базовые классы
- •Виртуальные функции
- •Чисто виртуальные функции и абстрактные классы
- •Реализация виртуального механизма
- •Лекция.5.Семинар 1-2: Обработка исключений
- •Объекты-исключения
- •Повторное возбуждение исключения
- •Перехват всех исключений
Переменные
Итак, отдельная единица данных должна обязательно иметь определенный тип. Именованная единица памяти для хранения данных называется переменной.
Переменные создаются с помощью оператора объявления переменных, в котором указывается тип, имена переменных и (при необходимости) начальные значения, которыми переменные инициализируются. Вот несколько примеров:
short i; // объявление короткой целой переменной
char quit = ‘Q’; // инициализация символьной переменной
float f1, factor = 3.0, f2; // Три переменных типа float,
// одна из которых инициализирована
Операции и выражения
Операции и выражения в C++ напоминают формулы в апгебре. Вот один пример выражения:
aResult = (first - second * RATE) « 3
Операции характеризуются:
своим приоритетом, определяющим порядок, в котором производится оценка выражения, и
правилом ассоциации, задающим направление последовательных оценок идущих друг за другом операций одного приоритета.
Как и в обычных формулах, для изменения порядка оценки выражения могут применяться круглые скобки (кстати, в приведенном выражении они излишни и введены только для наглядности). Знак равенства здесь также является операцией присваивания, которая сама (и, соответственно, все выражение в целом) возвращает значение. Оператором присваивания для переменной aResult выражение станет, если поставить после него точку с запятой.
aResult = (first - second * RATE) « 3 ;
В таблице 3.3 дана сводка всех операций языка С в порядке убывания приоритета.
Подробное описание операции дается в теоретической части лабораторной работы №1, там все должно быть понятно мы же пойдем далее.
Функции
Функция, как уже говорилось, является основным структурным элементом языка С. Выше мы уже показывали синтаксис определения функции (при рассмотрении функции main). Тело функции состоит из операторов, каждый из которых завершается точкой с запятой. Cам заголовок функции (его называют сигнатурой) не содержит точки с запятой.
Помимо определения для функции обычно пишется также ее объявление, или прототип, который размещается в заголовочном файле с расширением .h и служит для проверки корректности обращений к функции при раздельной компиляции исходных файлов.
возвращаемый_тип имя_функции (список_параметров) ;
Вызов функции является выражением и принадлежит к типу, указанному в ее определении; он имеет вид:
имя_функции (параметры);
где параметры могут быть:
пусто
параметр[, параметр... ]
Значение, возвращаемое функцией, можно игнорировать, т.е. использовать функцию в качестве процедуры:
doSomething(argl, arg2);
Мы так и поступали, когда выводили на экран сообщения функцией printf().
С другой стороны, возвращаемое функцией значение можно использовать в выражениях наряду с переменными и константами:
aResult = 1 - cos (arg);
Функция в С может иметь переменное или, точнее, неопределенное число параметров. В этом случае за последним обязательным параметром в заголовке функции следует многоточие (...). Подобным образом объявляется функция prtntf:
int printf (const char *format, ...);
Неопределенное число параметров означает, что количество и тип действительных аргументов в вызове должно так или иначе ей сообщаться, как это и происходит в случае printf ( )— там число аргументов определяется по числу спецификаторов в строке формата.
С функциями ввода и вывода на практике вы познакомитесь на лабораторной работе №1.