
- •Основные понятия программирования
- •Понятие алгоритма. Алгоритмизация
- •Свойства алгоритма
- •Запись алгоритма на естественном языке
- •Изображение алгоритма в виде схемы
- •Понятие о языках программирования
- •Понятие о структурном подходе к разработке алгоритмов
- •4 Идти к 8
- •6 Идти к 8
- •8 Останов
- •Первая программа на Си
- •Процесс создания программы
- •Комментарии
- •Директива #include
- •Макросы
- •Переменные и типы данных
- •Правила именования идентификаторов
- •Типы данных
- •Int двухбайтовое целое число
- •Оператор printf: вывод на экран
- •Последовательности для вывода специальных символов
- •Спецификация вывода
- •X тип int в шестнадцатеричном виде
- •Оператор scanf: ввод с клавиатуры
- •Логическая организация программы на Си
- •Функция main
- •Глобальные и локальные переменные
- •Операторы и операции
- •Арифметические операции
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операции присваивания
- •Другие операции
- •Математические функции
- •Управляющие структуры
- •Операторы ветвления
- •Операторы цикла
- •Массивы
- •Функции
- •Интегрированная среда разработки turbo c
- •Общие сведения и принципы работы
- •Стандартные органы управления
- •Главное меню
- •Запуск иср и выход
- •Работа с окнами и файлами
- •Система помощи
- •Редактор
- •Компиляция и выполнение программ
- •Технология создания с-программы
- •Лабораторные работы
- •Лабораторная работа №1
- •Создание нового файла
- •Ввод и редактирование исходного текста
- •Сохранение
- •Выполнение программы
- •Исправление ошибок
- •Просмотр результатов выполнения
- •Закрытие файла
- •Открытие и выполнение ранее сохраненного файла
- •Вызов справки
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Список вопросов
- •Литература
- •Приложение Пример оформления отчета по лабораторной работе
- •Блок-схема алгоритма
- •Текст программы
- •Результат выполнения программы
- •Теория и технология программирования
-
Макросы
С помощью директивы #define, вслед за которой пишутся имя макроса и значение макроса, оказывается возможным указать препроцессору, чтобы он при любом появлении в исходном файле на Си данного имени макроса заменял это имя на соответствующее значение макроса.
Обычно макросы используют для того, чтобы связать идентификатор (identifier — опознаватель, имя) и значение. Как только препроцессор встречает идентификатор, он заменяет его на соответствующее значение. Например, директива
#define pi 3.14159265 |
связывает идентификатор pi со значением 3.14159265.
Макросы могут иметь параметры. Например, макрос
#define sqr(x) ((x) * (x)) |
задает замену символов sqr(аргумент) на значение ((аргумент) * (аргумент)).
Внимание! Не оканчивайте значение макроса (например, 3.14159265) точкой с запятой. Значение макроса подставляется вместо имени макроса полностью. Если точка с запятой присутствует в значении макроса, то она будет подставлена вместе с числом, а это может привести к ошибке в выражении, использующем макрос. |
Студенту на заметку! В блок-схеме макросу #define, используемому для связи идентификатора и значения, соответствует блок вычисления:
Макрос с параметрами не имеет соответствующего блока и в месте его использования в выражении должен быть заменен той операцией или функцией, которую он выполняет. Например, если в программе встречается оператор z = sqr(x) + sqr(y); то в блок-схеме такому оператору соответствует блок вычисления:
|
-
Переменные и типы данных
В Си переменные должны быть описаны, т.е. их тип указан до того, как эти переменные будут использованы в программе.
При описании переменных применяется префиксная запись — вначале указывается тип данных, а затем имя переменной:
тип_данных имя_переменной; |
При необходимости описать в одной строке несколько переменных их имена перечисляются через запятую.
Это можно продемонстрировать на примере описаниях нескольких простых переменных:
int number_of_books, number_of_students; float weight; int exam_score; char ch; |
В первом описании имеется список переменных, содержащий два имени (number_of_books и number_of_students). Обе переменные описываются как целые — int. Переменная exam_score тоже целого типа и описана отдельно, хотя ее можно добавить к первому списку целых переменных.
С типом данных связываются набор предопределенных значений, и набор операций, которые можно выполнять над переменными данного типа.
Переменные можно инициализировать в месте их описания, например:
int height = 71; float weight = 73.8, length = 15.23, time; |
Здесь переменным height, weight и length присваиваются начальные значения, а переменной time не присваивается.
Внимание! Читабельность программы повышается, если при задании списка переменных в каждой строке размещается по одному имени переменной и все имена выравниваются по первому символу. При использовании такого соглашения вслед за именем переменной остается место для комментария. |
Студенту на заметку! В блок-схеме описанию переменной с одновременной инициализацией значения соответствует блок вычисления:
Описание переменной без инициализация ее значения в блок-схеме не отражается. |