- •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.2. Правила записи программ на языке с
Программа на языке С должна быть записана в текстовый файл с расширением обычно .с или .cpp. Затем программа компилируется в объектный код и обрабатывается сборщиком, затем преобразуется в исполняемый файл с помощью линковщика. Каждая программа на языке С должна иметь точку входа роль которой выполняет функция main.
Приведем пример простейшей программы на языке С:
int main(void); (или пусто)
{
return 0;
}
Такая программа корректно скомпилируется, успешно запустится и корректно завершится
Для того, чтобы можно было оценить работоспособность программы, можно добавить вывод какого-нибудь сообщения:
/* включить описание функции ввода вывода*/
#include <stdio.h>
#include <stdlib.h>
#include </*другие включаемые файлы*/>
int main(); //главная функция
{
int a; //описание переменных
double x;
x=5.5;
a=8;
printf(“Hello World!/n”);
printf(“x=%-7.2lf/na=%d/n”,x,a);
system(“PAUSE”); //задержка экрана
}
Замечания:
Комментарии используются 2 видов: многострочный и до конца строки. Комментарии используются исключительно для улучшения наглядности читаемости программы и не рассматриваются компилятором.
Обычно программа начинается с включения заголовочных файлов(include).
По правилам языка С любой локальный блок, в том числе и тело функции сначала содержит все локальные переменные, а уже затем исполняемые операторы.
Строительным элементом программы являются операторы. Операторы выполняются в той последовательности, в которой они записаны.
Язык С чувствителен к регистру.
На следующей строке будет написано:
Hello world!
x=5.50
a=8
1.3 Правила формального описания синтаксиса языка программирования
Под синтаксисом языка программирования понимают свод правил построения корректных конструкций данного языка. Для формального описания синтаксиса часто используют расширенную форму Бекуса – Науэра.
Выделяют следующие правила:
Символы в кавычках переносятся в конструкции языка так, как они записаны. Кавычки при этом отбрасываются
“while” = while
Различные конструкции языка обозначаются слитно латинскими буквами
Оператор_цикла
Квадратные скобки могут охватывать элементы языка, которые могут повторяться 0 или 1 раз
“AB”[“C”] = AB ABC
Фигурные скобки могут охватывать элементы, которые повторяются 0, 1 или более раз
Вертикальная черта используется в качестве альтернативных значений из списка
“AB”(“C|f) = ABC ABf
Круглые скобки используются для группировки
Многоточие используется для пропуска понятных значений элементов
= ::= есть
1.4. Идентификаторы языка С
Идентификаторы или имена служат для обозначения различных объектов программы: переменных, функций, файлов. Имена должны обязательно начинаться с букв латинского алфавита или знака подчеркивание. Далее допускаются цифры
БМФ
имя=(буква|”_”) {буквы|цифры|знак подчеркивание}
буква=(“А”|”a”|”B”|”b”|…|”Z”|”z”)
арабская_цифра есть “0”|”1”|…|”9”|
1.5 Понятие о типах данных
Тип данных определяет структуру объекта, множество его разрешенных значений и множество операций, которые можно над ним выполнять. Объекты различных типов требуют различного объема памяти для их хранения и различных команд процессора для выполнения действий над ними.
1.5.1 Классификация типов данных
Типы данных:
встроенные
элементарные
числовые (
целые (знаковые и беззнаковые)
вещественные (одинарной точности, двойной точности, расширенной точностью)
символьные
структурированные
массивы
структуры
текстовые типы
пользовательские
1.5.2 Основные типы данных языка C
В языке С представлены несколько оперделенных типов
пред_тип = “int”|”shot”|”long”|”char”|”float”|”double”
Целые
char – 1 байт – 256 различных значений (-128 до 127)
shot – 2 байта – (-215 до 216)
int – 4 байта – (-2 млд до 2 млд)
long – 8 байт – (много))
Вещественные
float – 8 байт – ( ---)
double –
longdouble – 10 байт
unsigned (беззнаковый тип) – используется для подчеркивания того, что имеются только положительные числа
беззнаков_тип = “unsigned “имя_целого_типа