- •Краткая характеристика1
- •Алфавит
- •Объявление переменных. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •Константы
- •Операции Присваивание.
- •Арифметические:
- •Логические (результат – логическое значение).
- •Операции работы с указателями.
- •Функции
- •Директивы препроцессора
- •Указатели Обзор
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Операции над указателями
- •Массивы
- •Многомерные массивы
- •Указатели в качестве параметров функций
- •Функции работы с указателями и памятью
- •Строки.
- •Время жизни и область видимости переменных
- •Указатель на функции
- •Работа с файлами.
- •Форматированный ввод-вывод
- •Введение в объектно-ориентированное программирование
- •Часть 2. Введение в технологию программирования.
- •Этапы развития программирования.
- •Проблемы разработки сложных программных систем:
- •Жизненный цикл программного продукта.
- •Модели жц.
- •Экстремальное программирование
- •Оценка качества процессов создания программного обеспечения.
- •Процессы проектирования.
- •Требования, цели
- •Внешнее проектирование.
- •Диаграммы потоков данных (Data Flow Diagrams).
- •Внешнее проектирование модулей
- •Модульная декомпозиция
- •Почему модуль должен компилироваться с первого раза?
- •Рекомендации по внесению ясности в текст программы:
- •Тестирование.
- •Документирование.
- •Пользовательский интерфейс
- •Часть 3. Типовые структуры данных и алгоритмы.
- •3.1 Структуры данных Логические структуры данных:
- •Хранение циклических структур данных в памяти компьютера
- •Организация двусвязанного списка.
- •Организация массива переменного размера:
- •3.2 Алгоритмы Быстрая сортировка
- •Поиск пути
- •Примеры программ
- •Список литературы
Функции
Объявляются следующим образом:
возвращаемый_тип имя_функции(список_формальных_параметров)
{
ТЕЛО ФУНКЦИИ
}
список формальных параметров представляет собой перечисление через запятую пар «тип данного» – «имя переменной» (имя переменной может отсутствовать).
Для функции, которая не возвращает значения (процедура в Паскале), предусмотрен тип данных void.
Функции, возвращающие значение, должны обязательно содержать оператор "return возвращаемые_данные". На данном операторе происходит возврат из функции независимо от того, есть ли дальше другие операторы.
Пример.
int sum(int x, int y)
{
return x+y;
}
Для функций типа void можно использовать return без аргументов для явного выхода из функции в требуемом месте.
Описание функции обязательно должно быть раньше (выше) в тексте программы, чем любой её вызов. Функция может быть описана без реализации (упреждающее описание). В этом случае тело функции не записывают, а после описания её заголовка ставят «;». Также при упреждающем описании могут не указываться имена переменных.
Пример:
void myfunc(int, int);
// здесь продолжение кода с вызовом myfunc
void myfunc(int x, int y) {…}
Допустимо явно не указывать параметры функции, для этого используется многоточие в конце списка параметров. В этом случае компилятор контролирует только явно указанные аргументы. Никаких специальных средств по работе с неявно указанными параметрами функции языки «С» и «С++» не предоставляют, но известно, что переданные фактические параметры располагаются в памяти последовательно после явно указанных.
Языки «С» и «С++» разрешают использование рекурсии, то есть вызова функцией самой себя.
Пример (функция вычисления факториала):
long fact(int k)
{
if (k<0) return 0;
if (k==0) return 1;
return k*fact(k-1);
}
Язык «С++» предоставляет дополнительные возможности:
– перегрузка функций – несколько функций могут иметь одно имя и тип, но разный набор формальных аргументов, в этом случае компилятор сам выбирает подходящую функцию по фактическим аргументам;
– параметры по умолчанию;
– подставляемые (inline) функции.
Директивы препроцессора
Есть специальные команды, которые не компилируются, а лишь указывают препроцессору на необходимость выполнения некоторых действий. Директивы начинаются с символа #.
#include <имя_файла> - добавить в данное место содержимое файла, файл содержится в специальном каталоге подключаемых файлов;
#include "имя_файла" - тоже, но для файла из текущей папки.
Стандартные заголовочные файлы (аналоги библиотек в других ЯВУ):
stdio.h – стандартный ввод-вывод;
string.h – работа со строками;
math.h – математические операции;
limits.h – константы предельных значений;
Следующие заголовочные файлы определены только для ОС Ms Dos и консольных приложений Ms Windows
conio.h – консольный ввод-вывод;
mem.h – функции работы с памятью;
dos.h – команды ОС Ms Dos.
#define идентификатор строка_замещения - заменяет все идентификаторы от директивы до конца файла на строку замещения.
#define WIDTH 80
#define LENGTH ( WIDTH + 10 )
#define test( f1, f2 ) ( f1 * f2 )
#undef идентификатор - отменяет директиву define, после данной директивы замен не производится.
#if, #elif, #else, #endif – организуют ветвление.
#ifdef, #ifndef – далее следующий код будет откомпилирован только если определена / неопределенна макроподстановка.
Метки
Идентификатор с последующим двоеточием является меткой. Метка является адресом оператора, следующего за меткой. Используется в операторах switch и goto.