
- •Л. Б. Бузюков, о. Б. Петрова
- •Учебное пособие
- •Предисловие
- •Глава 1. Введение в язык с
- •1.1. История создания и особенности языка с
- •1.3. Элементы языка с
- •1.3.1. Основные символы
- •1.3.2. Ключевые слова
- •1.3.3. Идентификаторы
- •1.3.4. Константы
- •1.3.5. Лексемы
- •1.3.6. Комментарии
- •Глава 2. Типы данных языка c
- •2.1. Числовые типы данных
- •2.2. Объявление переменных
- •2.3. Данные целого типа
- •2.4. Данные вещественного типа
- •Глава 3. Выражения
- •3.1. Операции
- •3.1.1. Арифметические операции
- •3.1.2. Операция присваивания
- •Глава 4. Составление простейших программ
- •4.1. Препроцессор и его функции
- •4.2. Основные директивы препроцессора
- •4.2.1. Директива include
- •4.2.2. Директива define
- •4.2.3. Директива undef
- •4.3. Структура и правила составления программ
- •4.3.1. Структура функции
- •4.3.2. Функция main()
- •4.3.3. Структура простой программы
- •4.3.4. Правила записи объявлений, операторов и комментариев
- •4.3.5. Пример простейшей программы
- •Глава 5. Средства ввода/вывода
- •5.1. Общие замечания
- •5.2. Функция форматированного вывода printf()
- •5.2.1. Основные форматы
- •5.2.2. Модификации форматов
- •5.3. Функция форматированного ввода scanf()
- •Глава 6. Управляющие операторы
- •6.1. Условные операторы
- •6.1.1. Логические выражения
- •6.1.2. Формы оператора if
- •6.1.3. Оператор выбора switch
- •6.2. Операторы цикла
- •6.2.1. Оператор while
- •6.2.2. Оператор for
- •6.2.3. Оператор do-while
- •6.3. Операторы перехода
- •6.3.1. Оператор break
- •6.3.2. Оператор continue
- •6.3.3. Оператор return
- •6.3.4. Применение оператора goto и меток
- •Глава 7. Функции
- •7.1. Основные понятия
- •7.2. Определение функции
- •7.3. Прототип функции
- •7.4. Вызов функции
- •Глава 8. Классы памяти
- •8.1. Логическаяструктура памяти программы
- •8.2. Особенности классов памяти
- •8.3. Объявления переменных
- •8.4. Объявления функций
- •8.5. Время жизни и область видимости программных объектов
- •8.6. Инициализация глобальных и локальных переменных
- •Глава 9. Указатели
- •9.1. Операция получения адреса
- •9.2. Операции над указателями
- •Глава 10. Массивы
- •10.1. Общие сведения о массивах
- •10.2. Одномерные массивы
- •10.3. Двумерные массивы
- •10.4. Массивы и указатели
- •10.5. Массивы и функции
- •Глава 11. Строки
- •11.1. Представление символьной строки при помощи одномерного массива
- •11.2. Указатель на символьную строку
- •11.3. Ввод/вывод символьных строк
- •11.4. Массивы символьных строк
- •11.5. Функции работы состроками
- •Глава 12. Структуры
- •12.1. Определение структуры
- •12.2. Структуры и функции
- •12.3. Указатели на структуру
- •12.4. Массивы структур
- •12.5. Вложенные структуры
- •12.6. Использование синонима типа
- •12.7. Объединения
- •Глава 13. Файлы
- •13.1. Работа с файлами
- •13.2. Функции ввода/вывода
- •Глава 14. Динамическая память
- •14.1. Распределение памяти
- •14.2. Функции управление памятью
- •Глава 15. Проект
- •15.1. Основы создания проекта
- •15.2. Пример создания проекта
- •Глава 17. Основы объектно-ориентированного программирования
- •17.1. Объектно-ориентированный подход
- •17.3. Конструкторы и деструкторы
- •17.4. Инкапсуляция
- •17.5. Полиморфизм
- •17.6. Наследование
- •17.7. Виды взаимодействия классов
- •17.8. Способы графического представления объектно-ориентированной задачи
- •18.2. Библиотека Win32 api
- •18.3. Библиотека owl
- •18.4. Библиотека vcl
- •18.5. Библиотека clx
- •18.6. Библиотека mfc
- •18.7. Библиотека OpenGl
- •19.3. Создание проекта
- •19.4. Редактирование проекта
- •19.5. Компиляция и выполнение программы
- •19.6. Файловая структура проекта
- •19.7. Создание консольного приложения
- •Глава 20. Разработка приложений для операционных систем windows
- •20.1. Взаимодействие программы и Windows
- •20.2. Компоненты библиотеки Win32 api
- •20.3.Функция WinMain()
- •20.4. Оконная процедура
- •20.5. Структура программы для ос Windows
- •20.6. Ресурсы Windows
- •20.7. Взаимодействие прикладной программы и устройств в Windows
- •Глава 21. Создание приложений для ос windows на основе библиотеки mfc
- •21.1. Обзор классов библиотеки mfc
- •21.2. Класс cString
- •21.3. Класс cFile
- •21.4. Класс cPoint
- •21.5. Класс cRect
- •21.7. Приложение, основанное на диалоге
- •21.8. Использование в приложении элементов управления
- •21.9. Мастер классов mfc ClassWizard
- •21.10. Установка начального значения элементам управления
- •21.11. Элементы управления Picture
- •21.12. Элемент управления Group Box
- •21.13. Элемент управления Radio Button
- •21.14. Элемент управления Check Box
- •21.15. Элемент управления List Box
- •21.16. Создание меню
- •21.17. Приложение с двумя диалоговыми панелями
- •21.18. Приложение sdi
- •21.19. Создание панели инструментов
- •21.20. Приложение mdi
- •21.21. Контекстыустройств в mfc
- •21.22. Графические объекты Windows в mfc
- •21.23. Графические операции в mfc
- •П.1. Основы методологии конструирования программ
- •П.1.1. Основные понятия. Программа и алгоритм
- •П.1.2. Этапы разработки программ
- •П.2. Алгоритмы
- •П.2.1. Алгоритм и его свойства
- •П.2.2. Способы описания алгоритмов
- •П.2.3. Средства графического изображения алгоритмов Схемы алгоритмов
- •Псевдокоды
- •Структурограммы
- •П.3. Основные приемы программирования
- •П.3.1. Разновидности структур программирования
- •П.3.2. Программирование линейных и разветвляющихся процессов
- •П.3.3. Программирование циклических процессов
- •Арифметический цикл (цикл с параметром)
- •Итерационный цикл
- •Вложенный цикл
- •Литература
4.3.3. Структура простой программы
После рассмотрения отдельных составных частей программы определим общие правила, используемые при разработке C-программ:
в начале программы перечисляются директивы препроцессора;
программа состоит из совокупности функций, одна из которых должна называться main();
описание функции состоит из заголовка и тела функции и называется определением функции или ее реализацией;
заголовок функции содержит тип возвращаемого функцией значения, имя функции и список параметров;
имя функции узнается по круглым скобкам, которые идут за именем и могут быть пустыми;
тело функции заключено в фигурные скобки и состоит из ряда инструкций.
Итак, имеем простую программу, написанную с учетом соблюдения требований стандарта ISO/ANSI C.
Директивы препроцессора Заголовок функцииmain() Тело функции |
#include … int main(void) { объявления переменных; инициализация переменных; вызовы функции; return 0; } |
Вслед за открывающей фигурной скобкой идут объявления переменных. Как отмечалось ранее, все переменные, используемые в программе, должны быть объявлены, т. е. для них должны быть указаны имена и типы значений, например:
int a;
float b, c;
За объявлением переменных следуют инструкции, которые указывают, как и в каком порядке надо преобразовывать данные для получения требуемого ответа. Так, оператор присваивания задает начальные значения переменных. Присваивание переменной начального значения называется определением или инициализацией переменной. Наконец функция main() оканчивается инструкцией возврата return. Тело функции завершается символом }.
4.3.4. Правила записи объявлений, операторов и комментариев
Объявление – это предварительное знакомство с объектом программы. При объявлении переменной указывается тип и имя переменной:
float f;
Если надо объявить несколько переменных одного типа, они перечисляются через запятую:
double x,y,z;
Можно одновременно объявить переменную и присвоить ей начальное значение (инициализировать или определить):
float f=3.5;
Оператор – это инструкция для компьютера, обозначающая какие-либо действия над данными (например, присваивание) или управляющая выполнением программы (операторы if, for и т. д.).
В языке C используются операторы двух видов: простые и составные.
Простой оператор всегда заканчивается символом ;. Символ ; является частью простого оператора, а не разделителем, как в языках Алгол, Паскаль, PL/1 и т. д.
Составной оператор – это последовательность простых операторов, заключенная в фигурные скобки.
Операторы могут размещаться по два и более в одной строке. Тело функции может начинаться сразу же в следующей позиции за открывающей фигурной скобкой.
Правила C не регламентируют в обязательном порядке:
сколько операторов и объявлений должно стоять в одной строке;
сколько строк должен занимать оператор.
Можно разрывать запись оператора между любыми двумя символами, нажав комбинацию клавиш\ и Enter и продолжая запись в новой строке.
Для наглядности рекомендуется:
после фигурной скобки, открывающей тело функции, оставлять пустую строку;
символ закрытия тела функции } ставить на отдельной строке;
каждый оператор начинать с новой строки;
для операторов во вложенных блоках увеличивать отступ от левой границы текста на 2 и более позиции относительно родительского блока.
Понимание любой программы облегчают комментарии, следовательно пояснительный текст (комментарии) можно располагать:
перед началом функции;
после заголовка перед телом функции;
между любыми двумя операторами.