- •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. Применение рекурсии в графике
1.5.3. Описание данных в языке с
Все идентификаторы должны быть сначала объявлены, а потом использоваться. Язык С относится к языкам с жестко используемые типами.
описание_данных = [“const”] тип имя [“=”константа]
{“,” имя [=]константа}”;”
Примеры:
int a; //мусор
char c=5, d=8;
Инициализацией данных называется присвоение значения вместе с описанием. Назначение значений по умолчанию в языке С не происходит.
const double p=3.14159; //значение, связанное с переменной не может быть изменен(именованная константа)
1.5.4 Правила записи констант различных типов
Именованные константы, подобные переменным, но их модификация запрещена в течении выполнения программы
Константы, представленные значением значения, записанные в соответствии с синтаксисом языка.
целая_константа = [-](“десятичная”|”восьмиричная”|”шестнадцатиричная”) [“l”|”L”(обозначает long)]
десятичная = (“1”|”2”..|”9”) {арабские цифры}
восьмиричная = (“0”) {“1”|”2”...”7”|”0”}
шестнадцатиричная = (“0x”){“0”|”1”|…”9”|”A”..”F”}
Значение в целой константы является то число, которое оно обозначает.
Значением переменной является значение, которым оно является.
Вещественная константа =[-] [цифра] “.” {цифры} [“e”{“+”|”-”] цифра {цифра}
0.5e2 = 0.5*102
0.5
Символьной константой является любой символ, заключенный в апострофы.
‘A’ ‘b’
‘ABC’ - некорректно
Значением символьной константы является код представленной константы.
Код A это 65. Поэтому его значение будет 65.
Для обозначения некоторых невидимых управляемых символов используется специальная форма записи.
‘\n’ – код 13 – символ перехода на следующую строку
‘\t’ – код9 – табуляция
‘\b’ - Back
Для кодирования самого слеша используют сам слеш (\\)
1.5.5. Символьные строки
Последовательность символов, заключенная в кавычки называется символьной строкой. Сами кавычки в строку не входят, остальные символы хранятся в виде массива. Так же хранится завершающий 0 символ (\0)
символьная_строка = “”” {символьная константа}””
“Строка”
|C|т|р|о|к|а|||
Значением символьной строки является адрес первого элемента соответствующего массива.
Пример:
char s[100]=”Строка”;
“Это другая строка”
При выделении памяти надо учитывать 0 символ.
Глава 2. Понятие функции
Под функцией понимают поименованную часть программы, которая реализует вполне законченный алгоритм и может быть вызвана из любого места программы. После окончания работы функции программа продолжается с места вызова.
вызов_функции = имя функции”(” [аргумент]
printf (“Это строка”);
a= sin(x)+cos(y);
Функции могут возвращать значения. Тогда из вызов может быть использован везде, где может быть использован в любом месте, где допустимо использование соответствующего типа.
2.1. Стандартная функция printf
Функция предназначена для вывода информации на стандартное устройство вывода (stdout), которым обычно является экран, но вовсе не обязательно.
формат_вывод=”printf”(“форматная_строка” {“,”аргументы})
Форматная строка – это адрес строки символов, которые выводятся. В этой строке могут быть помимо просто символов еще и спецификаторы преобразований, начинающихся со знака %, на место каждого из которых будет вставлено некоторое значение, определяющиеся дополнительными аргументами функции. Количество таких аргументов должно соответствовать количеству спецификаторов. Разбор форматной строки осуществляется на стадии выполнения (runtime).
%d – целый тип
%i – целые числа
%u – десятичная форма
%o – восьмиричная форма
%x – шестнадцатиричная форма
%c – вывод символа
%e – в виде мантиссы и порядка
%f – через точку
%s – вывод строки
Внутри спецификатора может содержаться модификатор, при этом
модификатор = [“-”] {число}[“.”]{число}[l]
Знак “-” обозначает выравнивание по левому краю. Число до точки обозначает количество знакомест для вывода спецификатора. Число после точки обозначает сколько из тех чисел отводится после запятой. Модификатор “l” обозначает повышенную длину.
%-20.3lf – выводится длинное вещественное число, 20 знаков после запятой 3 знака