- •Часть 1
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Часть 2 184
- •Пояснительная записка
- •Содержание дисциплины
- •Индивидуальные практические работы, их характеристика
- •Контрольные работы, их характеристика
- •Литература
- •Основная
- •Дополнительная
- •Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Учебно-методические пособия
- •Алфавит языка
- •Лексемы
- •Идентификаторы
- •Ключевые слова
- •Знаки операций
- •Константы
- •Комментарии
- •Тема 2. Типы данных Концепция типа данных.
- •Простые типы данных
- •Целый тип int
- •Символьный тип char
- •Типы с плавающей точкой: float, double, long double
- •Тема 3. Выражения
- •Переменные
- •Именованные константы
- •Операции
- •Операции присваивания
- •Инкремент и декремент
- •Унарный плюс и унарный минус (строка 2)
- •Явное преобразование типа
- •Операция определения размера sizeof
- •Деление и остаток от деления
- •Логические операции не, и, или (!, &&, ||)
- •Условная операция (?:)
- •Операция запятая (,)
- •Операции взятия адреса и разадресации
- •Тема 4. Операторы
- •Структура программы
- •Тема 5. Базовые конструкции структурного программирования
- •Операторы ветвления
- •1. Условный оператор if
- •2. Оператор switch
- •Операторы цикла
- •1. Цикл с предусловием while
- •2. Цикл с постусловием do-while
- •3. Цикл с параметром for
- •Тема 6. Массивы
- •Тема 7. Указатели и массивы
- •Тема 8. Строки символов
- •Тема 9. Структуры
- •Массивы структур
- •Битовые поля
- •Объединения
- •Перечисления
- •Тема 10. Функции
- •Глобальные, локальные и статические переменные
- •Параметры функции
- •Передача массивов в качестве параметров функции
- •Функция main, ее параметры
- •Функции стандартной библиотеки
- •Функции форматного вывода и ввода printf и scanf
- •Тема 11. Файлы
- •Тема 12. Работа с динамической памятью
- •Тема 13. Динамические структуры данных
- •Очереди
- •Линейные списки
- •Бинарные деревья
- •Практический раздел Общие указания Указания по выбору варианта
- •Порядок оформление итогового отчета
- •Индивидуальные практические работы Индивидуальная практическая работа 1 Методические указания
- •Варианты заданий.
- •Индивидуальная практическая работа 2 Методические указания
- •Варианты заданий
- •Контрольные работы Контрольная работа 1 Методические указания
- •Варианты заданий
- •Контрольная работа 2 Методические указания
- •Варианты заданий
Тема 4. Операторы
Операторы языка вместе с его типами данных определяют круг задач, которые можно решать с помощью этого языка. Язык С реализует типичный набор операторов для языка программирования общего назначения. Операторы подразделяются на исполняемые и неисполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных и называются операторами описания или просто описаниями.
Любое выражение, завершающееся точкой с запятой, рассматривается как оператор. Выполнение исполняемого оператора заключается в вычислении выражения. Частным случаем выражения является пустой оператор «;». Он используется, когда по синтаксису оператор требуется, а по смыслу – нет. Примеры:
int a=1, b=2, c=3; //описание переменных a, b, c и их инициализация
a++;
c *= a + b;
printf(“zdes byl vasia”); //вызов функции printf стандартной библиотеки stdio
while(1); //бесконечный цикл из пустого оператора
Блок или составной оператор, – это последовательность описаний и операторов,, заключенная в фигурные скобки. Блок воспринимается компилятором как один оператор и может использоваться всюду, где синтаксис требует одного оператора, а алгоритм – нескольких. В частности, блок может содержать один оператор, или быть пустым.
Описания, содержащиеся внутри блока, называются локальными, т.к. они описывают объекты (например, переменные), которые существуют только внутри блока и будут разрушены сразу же при выходе из него. Соответственно описания, не принадлежащие ни одному из блоков, называются глобальными и описывают объекты, существующие до конца работы программы.
Структура программы
Программа на языке С состоит из функций, описаний и директив препроцессора. Одна из функций должна иметь имя main. Выполнение программы начинается с первого оператора этой функции.
директивы препроцессора
глобальные описания
int func1()
{
локальные описания функции func1
исполняемые операторы функции func1
}
short func2()
{
локальные описания функции func2
исполняемые операторы функции func2
}
void main()
{
локальные описания функции main
исполняемые операторы функции main
}
Обычно функция используется для вычисления некоторого значения, поэтому перед именем функции указывается его тип. Если функция не должна возвращать результат вычислений, указывается тип void.
Тело функции является блоком (составным оператором) и, следовательно, заключается в фигурные скобки.
Функции не могут быть вложенными.
Если какая-то функция, например func1, уже описана, то ее можно использовать в теле другой, описанной ниже функции, например func2 или main. Кроме того, в теле любой функции можно использовать функции, описанные в стандартных библиотеках языка С, которые подключаются с помощью директив препроцессора.
Пример: задаются координаты (x, y) точки, принадлежащей окружности с центром в начале координат. Необходимо найти площадь круга, ограниченного этой окружностью.
#include <stdio.h>
#include <math.h>
float x, y; //описание глобальных переменных x, y
const double PI = 3.14; //описание глобальной именованной константы PI
double GetRadius()
{
double z; //описание локальной переменной z
z = pow(x, 2) + pow(y, 2); //вызов функции pow стандартной библиотеки math
z = sqrt(z); //вызов функции sqrt стандартной библиотеки math
return z; //возврат вычисленного значения радиуса окружности
}
double GetCircleArea()
{
double z; //описание локальной переменной z
z = GetRadius(); //вызов уже описанной функции GetRadius
z = PI * pow(z, 2); //вызов функции pow стандартной библиотеки math
return z; //возврат вычисленного значения площади круга
}
void main()
{
double z; //описание локальной переменной z
printf(“Введите значения x и y:\n”);
scanf(“%f%f”, &x, &y);
z = GetCircleArea();
printf(“Площадь круга равна %f”, z);
}
Упрощенный вариант той же программы:
#include <stdio.h>
#include <math.h>
void main()
{
float x, y;
printf(“Введите значения x и y:\n”);
scanf(“%f%f”, &x, &y);
printf(“Площадь круга равна %f”, 3.14*(pow(x, 2) + pow(y, 2)));
}