- •Основные понятия программирования
- •Понятие алгоритма. Алгоритмизация
- •Свойства алгоритма
- •Запись алгоритма на естественном языке
- •Изображение алгоритма в виде схемы
- •Понятие о языках программирования
- •Понятие о структурном подходе к разработке алгоритмов
- •4 Идти к 8
- •6 Идти к 8
- •8 Останов
- •Первая программа на Си
- •Процесс создания программы
- •Комментарии
- •Директива #include
- •Макросы
- •Переменные и типы данных
- •Правила именования идентификаторов
- •Типы данных
- •Int двухбайтовое целое число
- •Оператор printf: вывод на экран
- •Последовательности для вывода специальных символов
- •Спецификация вывода
- •X тип int в шестнадцатеричном виде
- •Оператор scanf: ввод с клавиатуры
- •Логическая организация программы на Си
- •Функция main
- •Глобальные и локальные переменные
- •Операторы и операции
- •Арифметические операции
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операции присваивания
- •Другие операции
- •Математические функции
- •Управляющие структуры
- •Операторы ветвления
- •Операторы цикла
- •Массивы
- •Функции
- •Интегрированная среда разработки turbo c
- •Общие сведения и принципы работы
- •Стандартные органы управления
- •Главное меню
- •Запуск иср и выход
- •Работа с окнами и файлами
- •Система помощи
- •Редактор
- •Компиляция и выполнение программ
- •Технология создания с-программы
- •Лабораторные работы
- •Лабораторная работа №1
- •Создание нового файла
- •Ввод и редактирование исходного текста
- •Сохранение
- •Выполнение программы
- •Исправление ошибок
- •Просмотр результатов выполнения
- •Закрытие файла
- •Открытие и выполнение ранее сохраненного файла
- •Вызов справки
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Список вопросов
- •Литература
- •Приложение Пример оформления отчета по лабораторной работе
- •Блок-схема алгоритма
- •Текст программы
- •Результат выполнения программы
- •Теория и технология программирования
-
Процесс создания программы
Для того чтобы исходная программа на Си была переведена в машинный код (файл с расширением exe в операционной системе DOS), она должна пройти через три этапа: обработку препроцессором, трансляцию и компоновку.
В задачи препроцессора (preprocess — предварительно обрабатывать) входит подключение при необходимости к данной программе на Си внешних файлов, указываемых при помощи директивы #include, и подстановку макросов (macro — общий, macros — макроопределение).
Компилятор (compile — собирать) за несколько этапов транслирует (translate — переводить) то, что вырабатывает препроцессор, в объектный файл (файл с расширением obj), содержащий оптимизированный машинный код, при условии, что не встретились синтаксические или семантические ошибки. Если в исходном файле с программой на Си обнаруживаются ошибки, то программисту выдается их список, в котором ошибки привязываются к номеру строки, в которой они появились. Программист циклически выполняет действия по редактированию и трансляции до тех пор, пока не будут устранены все ошибки в исходном файле.
Компоновщик связывает между собой объектный файл (obj), получаемый от компилятора, с программами из требуемых библиотек (lib) и, возможно, с другими файлами. Компоновщик часто называют редактором связей или линковщиком (link — соединять, связывать). В результате компоновки получается файл с расширением exe (exe‑файл), который может быть исполнен компьютером. Полученный exe‑файл может быть запущен на выполнение из интегрированной среды разработки Turbo C аналогично запуску из командной строки DOS.
Рисунок 18 — Блок-схема процесса создания программы на Си
-
Комментарии
Текст на Си, заключенный в скобки /* и */, компилятором игнорируется. Комментарии служат двум целям: документировать код и облегчить отладку. Так, если в программе на Си используется некоторый специальный алгоритм, то будет уместен комментарий, содержащий ссылку на источник, в котором описывается этот алгоритм. Вообще говоря, в программу следует вносить любой текст, поясняющий код. Но комментариями не нужно и злоупотреблять.
Если программа работает не так, как надо, то иногда оказывается полезным закомментировать часть кода (т.е. вынести ее в комментарий), заново скомпилировать программу и выполнить ее. Если теперь программа работает правильно, то, значит, закомментированный код содержит ошибку и должен быть исправлен. Если программа не заработает, отключаются новые фрагменты и т.д.
Внимание! В среде программирования Turbo C, используемой в лабораторном практикуме, допустимо использовать однострочный комментарий // (заимствованный из Си++). В данном случае комментарием будет считаться любой текст, помещенный до конца текущей строки. |
-
Директива #include
Во многие программы на Си подставляется один или несколько файлов, обычно в самое начало исходного текста программы. Появление директив
#include <файл_1> #include “файл_2” ... #include <файл_n> |
приводит к тому, что препроцессор подставляет в место директив тексты файлов файл_1, файл_2, …, файл_n соответственно.
Если имя файла заключено в угловые скобки < и >, то поиск файла производится в специальном каталоге, задаваемом в настройках интегрированной среды разработки. Обычно в этот каталог помещаются все заголовочные файлы с расширением h. Если в каталоге отсутствует искомый файл, то препроцессор выдает сообщение об ошибке и процесс создания объектного файла прерывается.
Если имя файла заключено в двойные кавычки (как, например, “файл_2”), то поиск файла производится сначала в текущем каталоге. Если файл не обнаружен, то система переходит к поиску файла в специальном каталоге, заданном в настройках. Если и здесь требуемый файл не найден, то препроцессор выдаст сообщение об ошибке и процесс создания объектного файла будет прерван.
Внимание! Обычная ошибка — добавление после директивы #include точки с запятой. В отличие от операторов языка Си директива #include не должна заканчиваться точкой с запятой. |