- •1.2. Правила записи программ на языке с
- •1.3 Правила формального описания синтаксиса языка программирования
- •1.5.3. Описание данных в языке с
- •1.5.4 Правила записи констант различных типов
- •1.5.5. Символьные строки
- •Глава 2. Понятие функции
- •2.1. Стандартная функция printf
- •2.2. Стандартная функция scanf
- •Перед каждым аргументом, не являющимся строкой (адресом) ставится знак & и трактуется как вычисление адреса.
- •2.3. Стандартные математические функции
- •2.4. Простейшие функции, определяемые программистом
- •3.5. Дополнительные арифметические операции
- •3.6. Дополнительные операции присваивания
- •3.7. Битовые операции
- •3.8. Операторы отношения
- •Глава 4. Структурное программирование и язык с
- •4.2. Операторы языка с
- •4.3. Оператор цикла while
- •4.4. Оператор цикла do – while (цикл с постусловием)
- •4.5. Условный оператор и условная операция
- •4.6. Оператор цикла for (цикл с известным числом повторений)
- •4.7. Запись алгоритмов при помощи диаграмм Несси-Шнейдермана
- •4.8. Оператор прерывания цикла
- •4.9. Оператор продолжения цикла (continue)
- •4.10. Множественный выбор
- •Глава 5. Типовые приемы в программировании
- •5.1. Использование счетчиков
- •5.2. Вычисление суммы и произведения.
- •5.3. Вычисление минимума и максимума последовательностей.
- •5.4. Использование флагов
- •Глава 6. Простейшая графика
- •6.1.Графические режимы
- •6.2. Идеология bgi и WinBgi
- •6.3.Основные графические функции
- •6.3.1. Управление графическими режимами
- •6.3.2. Графические примитивы
- •6.3.3. Установки и их проверка
- •6.3.4. Работа с текстом
- •Глава 7. Модульное программирование
- •7.2. Библиотеки функций
- •Глава 8. Массивы
- •8.1. Описание массива
- •8.2. Ввод – вывод массивов
- •8.3. Инициализация массива
- •8.6. Двумерные массивы
- •8.6.1. Инициализация двумерного массива
- •8.7. Многомерные массивы
- •Глава 9. Работа с файлами
- •9.1. Открытие и закрытие файлов
- •Глава 10. Структуры языка с
- •10.1. Описание структур
- •10.2. Трактовка имени структуры
- •10.2.1. Доступ к полям структуры
- •10.3. Инициализация структур
- •10.4. Структуры и функции
- •10.5. Поля бит в структурах
- •10.6. Объединение
- •Глава 11. Дополнительные сведения о функциях
- •11.1. Области видимости.
- •Глава 12. Анимация
- •Глава 13. Рекурсия
- •13.1. Понятие рекурсии
- •13.2. Вычисление факториала
- •13.3. Числа Фибоначчи
- •13.4. Замена итерационных алгоритмов рекурсивными
- •13.5. Применение рекурсии в графике
2.2. Стандартная функция scanf
Предназначена для форматного ввода со стандартного устройства ввода stdin. Аргументы аналогичны аргументам printf. Но также есть существенное отличие:
В форматной строке не должно быть ничего, кроме спецификаторов преобразования (ни пробелов, ни сообщений)
Перед каждым аргументом, не являющимся строкой (адресом) ставится знак & и трактуется как вычисление адреса.
По правилам хорошего тона перед вводом с клавиатуры принято выводить приглашение ко вводу. Для функции важно, чтобы спецификаторы совпадали.
2.3. Стандартные математические функции
В любых арифметических выражениях можно использовать стандартные математические функции, применяя их к числовых типам. Для использования надо подключить файл math.h. Примеры функций:
sin(x)
cos(x)
tg(x)
asin
acos
atg
sinn
cosn
log – натуральный логарифм
log10 – десятичный логарифм
abs – модуль целого числа
fabs – модуль
pow(x,y) – степень x в степени y
exp(x) – экспонента
pow10(x) – 10 в степени x
2.4. Простейшие функции, определяемые программистом
Функция должна быть оформлена определенным образом, начинается описание функции с заголовка.
заголовок_функции=тип имя_функции“(”[тип параметры{“,”тип параметры}]”)”
Формальными параметрами называются описание переменных внутри заголовка функции, при вызове функции для каждого формального параметра должны быть предоставлены значения или фактические параметры.
Вызовом функции является имя (адрес) функции и круглые скобки за ним. Если предусмотрены формальные параметры, то в скобках должны быть фактические параметры. При вычислении той части выражения, в которой записан вызов функции управление передается этой функции, а на место вызова после возврата подставляется значение, возвращенное этой функцией.
Описание функции (определение функции) – это совокупность заголовка и тела функции. Тело функции – это операторы, охваченные фигурными скобками и которые идут сразу за заголовком функции.
В стандартной библиотеке нет функции котангенс. Определим ее.
double Ctg(double x) //заголовок
{ return 1.0/tan(x);} //тело
Оператор return завершает работу функции, при этом, если функция предполагает возвращаемое значение, то оно вернет ее. Если функция не возвращает значений, то это обозначают словом void в соответствующем месте
void f(double x)
void f2(void)
int f3(void)
Функция должна быть известна компилятору к моменту ее вызова, но чтобы не задаваться вопросом в каком порядке записывать определения функции, часто используют прототипы функции, записанные до всех определений. Прототипов функции называют заголовок с ;. Определения функций должны быть вне всех блоков и функций, то есть в глобальной области видимости. Прототипы обычно располагаются там же.
Пользовательские функции обычно помещаются в том же файле, что и функция main, но это не обязательно.
3.5. Дополнительные арифметические операции
При разработке языка С, было замечено что распространены выражения типа a=a+1. В языке введены дополнительные операции ++ и - -
а=а+1 это а++
а=а-1 это а- -
Для дополнительных арифметических операций выделяют постфиксную и префиксную формы записи этих операций.
Постфиксная а++
Префиксную ++а
Постфиксная после вычисления дает значение до увеличения, а префиксная уже увеличенную.
int a=10
int b;
b=(a++)*2; // a=11 b=20
b=(++a)*3 //a=12 b=36