
- •Введение
- •Блок-схема алгоритма
- •Общие требования к блок-схеме алгоритма
- •Линейные и разветвляющиеся процессы
- •Циклические процессы
- •Итерационные процессы
- •Основные понятия языка С(С++)
- •Комментарии
- •Типы данных
- •Данные целого типа
- •Данные вещественного типа
- •Модификатор const
- •Переменные перечисляемого типа
- •Константы
- •Структура программы на языке С(С++)
- •Операции и выражения
- •sizeof
- •Операция присваивания
- •Арифметические операции
- •Операции поразрядной арифметики
- •Логические операции
- •Операции отношения
- •Инкрементные и декрементные операции
- •Операция sizeof
- •Порядок выполнения операций
- •Приоритет операций
- •Преобразование типов
- •Операция приведения
- •Операция запятая
- •Ввод и вывод информации
- •Директивы препроцессора
- •Директива #include
- •Директива #define
- •Операторы языка С(С++)
- •Понятие пустого и составного операторов
- •Операторы организации цикла
- •Оператор цикла for
- •Оператор цикла while
- •Оператор цикла do … while
- •Вложенные циклы
- •Примеры программ
- •Массивы
- •Одномерные массивы
- •Примеры программ
- •Многомерные массивы (матрицы)
- •Примеры программ
- •Указатели
- •Понятие указателя
- •Описание указателей
- •Операции с указателями
- •Связь между указателями и массивами
- •Массивы указателей
- •Многоуровневые указатели
- •Примеры программ
- •Символьные строки
- •Ввод/вывод строк.
- •Функции работы со строками.
- •Примеры программ
- •Функции
- •Прототип функции.
- •Определение функции.
- •Параметры функции
- •Передача массива в функцию
- •inline функции
- •Класс памяти
- •Автоматические переменные
- •Статические переменные
- •Регистровые переменные
- •Блочная структура
- •Примеры программ
- •Указатели на функции
- •Примеры программ
- •Рекурсия
- •Примеры программ
- •Аргументы в командной строке
- •Функции с переменным числом параметров
- •Вершина стека
- •Примеры программ
- •Сортировка
- •Пузырьковая сортировка.
- •Шейкер сортировка
- •Сортировка вставкой
- •Сортировка выбором
- •Метод Шелла
- •Метод Хора
- •Структуры
- •Указатели на структуры.
- •Структуры и функции
- •Примеры программ
- •Поля бит
- •Объединения
- •Переменные с изменяемой структурой
- •Организация списков и их обработка
- •Операции со списками при связном хранении
- •Стек
- •Построение обратной польской записи
- •Односвязный линейный список, очередь
- •Двусвязный линейный список
- •Циклический список, кольцо
- •Двусвязный циклический список
- •Примеры программ
- •Деревья
- •Файлы
- •Примеры программ
- •Литература
Второй особенностью итерационного процесса является то, что результаты вычислений очередного выполнения цикла используются как исходные данные при следующем выполнении цикла, т.е. решение находится последовательными приближениями, путем уточнения на каждом шаге цикла.
При решении задач вычислительный процесс, реализующий алгоритм, обычно является комбинированным, т.е. он содержит разветвления, является и циклическим и итерационным. Поэтому рекомендуется разделять весь процесс вычислений на отдельные участки, соответствующие типам рассмотренных процессов.
Основные понятия языка С(С++)
Программа на языке С(С++) состоит из последовательности инструкций (операторов), описывающих действия, выполняемые программой. Операторы используют ключевые слова, значение которых зафиксировано и не может использоваться для других целей (например, в качестве имени переменных). В С(С++) все операторы (за исключением команд препроцессора и описаний функций, расположенных в начале программной единицы) оканчиваются точкой с запятой ’;’. Фигурные скобки {} в С(С++) применяются для обрамления начала и конца функции и некоторых других целей.
Алфавит языка (набор символов и цифр), используемый при составлении инструкций (операторов), включает латинские прописные и строчные буквы, цифры и специальные символы (. , ’ : и др.).
Идентификатор – это имя, которым обозначается некоторый объект (данное) в программе. Данные в оперативной памяти размещаются по некоторым адресам, которые программисту заранее неизвестны. Для того чтобы в программе иметь возможность обращаться к этим данным и обрабатывать их, программист этим данным даёт условные имена, которые компилятор в программе заменит адресами данных в оперативной памяти.
Идентификатор должен удовлетворять следующим требованиям:
-начинаться с латинской буквы или символа _ (подчеркивание);
-содержать только символы латинского алфавита, цифры и символ подчеркивания. Использование других символов запрещено.
Нет ограничения на количество символов в идентификаторе, однако воспринимаются и анализируются только первые 32.
Примеры записи идентификаторов:
sum, result, n, m, c10, Beta, beta, |
_function, letter, |
array и т.д. |
Ошибочные идентификаторы: a+b, |
-omega, 9c, if, |
int, long, &b, %f. |
Так как строчные и прописные буквы различаются, то идентификаторы |
||
BETA, beta, Beta (main, Main, MAIN) |
будут различными. При выборе |
идентификатора необходимо учитывать следующее:
идентификатор не должен совпадать с кючевыми словами языка и именами функций из библиотеки языка С(С++) (С++);
не рекомендуется начинать идентификатор со знака подчеркивания, т.к. этот символ используется в именах некоторых библиотечных функций и при совпадении имен эти функции будут недоступны программе. Кроме того, к именам транслируемых функций, составляющих программу, компилятор автоматически добавляет первым символом знак подчеркивания.
Ключевые слова – это зарезервированные имена, используемые в языке С(С++) с некоторым заранее определённым смыслом. Все зарезервированные слова пишутся строчными буквами иначе эти имена будут восприняты как имена переменных. Эти слова нельзя использовать в качестве идентификаторов объектов (данных) пользователя. Ключевые слова сообщают компилятору о типе данных, способе их организации, о последовательности выполнения
оперторов. Ниже приведены некоторые ключевые слова: |
|
|
||||||
auto |
break |
case |
char |
const |
continue |
default |
do |
double |
else |
enum |
extern |
float |
for |
if |
int |
long |
register |
return |
short |
signed |
sizeof |
struct |
switch |
typedef |
union |
unsigned |
void |
volatile |
while. |
|
|
|
|
|
|
Ключевые слова near, far, huge определяют тип (размер) указателя на данные, а слова _asm, cdecl, fortran, pascal используются для организации связи с функциями, написанными на других языках программирования.
Переменные. Программы в процессе своего функционирования оперируют различными данными. Некоторые данные в процессе выполнения программы не могут изменять своего значения - константы, значение других может быть модифицировано - переменные.
Все переменные (и константы) перед их использованием должны быть объявлены. Для их объявления указывается тип данных и перечисляются через запятую список переменных имеющих данный тип. В модуле, в котором записано определение переменных. Каждой переменной в соответствии с типом выделяется необходимое количество байт памяти. Выделенному участку памяти присваивается имя переменной, которое в дальнейшем используется в программе.
Отличие объявления от определения заключается в том, что при объявлении переменной ей место в памяти соответствующей функции не выделяется, объявление лишь сообщает компилятору тип. Объявление переменных имеет следующий формат:
[спецификатор класса памяти ] [модификатор] тип идентификатор_1 [=начальное значение] [,идентификатор_n [=начальное значение]];
В объявлении идентификатора могут присутствовать квадратные или круглые скобки, а также перед ним может быть один или несколько знаков *(звёздочка). Эти случаи объявления будут рассмотрены далее.
Спецификатор типа - одно или несколько ключевых слов, определяющих тип переменной. Язык Cu определяет стандартный набор основных типов данных(int, char, double), используя которые пользователь может объявлять свои производные (структурированные) типы (массив, структура, объединение и др.). При определении переменных им можно присвоить начальное значение.