![](/user_photo/2706_HbeT2.jpg)
- •Ю.А Петров Программирование на языке высокого уровня
- •Часть 1
- •Введение
- •Задание
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Константы
- •Управляющие последовательности
- •Строковые литералы
- •Константные выражения
- •Пунктуаторы
- •Операции
- •Задание на лабораторную работу 2 разработка программы линейной структуры Цель работы
- •Отчет по лабораторной работе должен содержать:
- •Задание
- •Замечания
- •Варианты заданий
- •Классификация ошибок
- •Ошибки, не обнаруженные компилятором
- •Ситуации, возникающие при неверных результатах
- •Отладка программы
- •Предупреждения
- •Первое сообщение об ошибке
- •Использование команд Find и Replace
- •Быстрое обнаружение ошибочных строк
- •Продолжение отладки
- •Использование встроенного отладчика
- •Разница между командами Step Into и Step Over
- •Дополнительные средства отладки
- •Работа с точками останова
- •Краткая характеристика объектов
- •Формат 1:
- •Стиль программирования
- •Задание на лабораторную работу 4 объекты и их характеристики Цель работы
- •В отчете по лабораторной работе следует представить:
- •5 Структурное программирование
- •Пример1
- •Пример 2
- •Задание на лабораторную работу 5 разработка программы со структурой «развилка» Цель работы
- •Задание:
- •Варианты задания
- •Задание на лабораторную работу 6 создание цикловых программ с фиксированным числом повторений Цель работы
- •Задание
- •Варианты задания
- •Задание на лабораторную работу 7 создание программ с итерационными циклами Цель работы
- •Задание
- •Варианты задания
- •Пояснения к выполнению лабораторной работы 7
- •6 Агрегаты данных
- •Структура
- •Объединения
- •Перечисления
- •Int array[3]; // Объявление определения;
- •Многомерные массивы
- •Вывод в файловый поток
- •Чтение из входного файлового потока
- •Чтение целой строки файлового ввода
- •Определение конца файла
- •Проверка ошибок при выполнении файловых операций
- •Закрытие файла
- •Управление открытием файла
- •Выполнение операций чтения и записи
- •Задание на ргз 1 использование структур данных при решении задач Цель работы
- •Задание
- •Варианты задания
- •7 Модульное программирование
- •Задание на ргз 2 использование модульного программирования при решении задач
- •Перемещаемые панели инструментов
- •Меню File
- •Меню Edit
- •Меню View
- •Меню Insert
- •Меню Project
- •Меню Build
- •Меню Tools
- •Меню Window
- •Список открытых окон
- •Меню Help
- •Приложение 2 Некоторые функции языка с
- •Используемая литература
- •Оглавление
- •5 Структурное программирование 53
Задание
Изучить интерфейс пользователя Microsoft Visual C++ v.6.0 для создания простых консольных приложений.
Создать с помощью мастера следующие проекты и выполнить их анализ:
An empty project (Пустой проект);
A simple application (Простое приложение);
A «Hello World!» application (Приложение «Hello World!»).
Изучить каталоги и файлы, созданные мастером проектов и описать их содержимое.
Прокомментировать структуру программы, созданной мастером проектов «Hello World!». Выделить главную функцию, указать ее заголовок, тело, какие комментарии использованы в программе, указать директивы препроцессора. Откомпилировать, построить exe-файл и выполнить проект. Описать технологию создания exe-файла с момента компиляции и компоновки проекта.
Проанализировать структуру Microsoft Visual C++. На диске С в папке Program Files найти каталоги INCLUDE, BIN, LIB Microsoft Visual C++. Просмотреть содержимое файлов, используемых в шаблонах, созданных мастером проектов.
Оформить отчет по лабораторной работе. Отчет должен содержать:
титульный лист;
цель работы;
постановку задачи;
алгоритм решения задачи;
исходные коды на языке высокого уровня;
результаты решения задачи;
выводы по лабораторной работе;
список используемой литературы.
2 Конструкции языка С/C++
Язык высокого уровня С/С++ образуется из различных категорий словоориентированных языковых единиц, называемых лексемами (tokens). Каждая лексема имеет свой самостоятельный смысл для компилятора C++ и не может в своем составе содержать другие лексемы. В соответствии с грамматическими правилами языка лексемы могут группироваться в определенные смысловые единицы, образуя выражения, операторы, объекты, предложения, программы. Элементы файла исходного кода можно разделить на пробельные символы и лексемы (рис. 2.1).
П
Комментарии
Комментарии представляют собой тексты, предназначенные для аннотации программы. Они пишутся только для программиста, и перед лексическим анализом компилятор исключает их из исходного кода программы. Имеется два типа комментарий.
Комментарий C представляет собой последовательность символов, помещаемую между скобками (символами) /* и */. Такие комментарии могут быть многострочными. Комментарий С может быть вставлен в любую часть программы, где разрешены пробельные символы. Обычно их размещают либо в конце строки, либо в отдельных строках.
Комментарий C++ представляет собой два символа наклонной черты (//), записанные без пробела. Такой комментарий может начинаться в любой позиции строки и включает в себя все, что расположено до конца строки. Приведем примеры комментариев:
struct X {
/* это комментарий C */
// это комментарий С ++
};
Стандарт ANSI C не разрешает вложенность комментариев. Попытка комментировать следующую строку в виде:
/* int /* объявление */ i /* целого */; */
окончится неудачей, поскольку область действия первой скобки /* будет ограничена первой скобкой */. Это даст в результате лексического анализа:
i ; */
что приведет к синтаксической ошибке.
В редких случаях пробелы перед /* и // или после */ хотя и не являются синтаксически обязательными, но позволяют избежать проблем, связанных с мобильностью кода. Например, код C++
int i = j//* деление на k*/k
+m;
при лексическом анализе даст:
int i = j +m; а не int i = j/k +m;
как это можно было бы ожидать по традиционным соглашениям языка C. Более удачная форма:
int i = j/ /* деление на k*/ k
+m;
позволяет избежать этой проблемы.
В описании стиля программирования (будет рассмотрен в разделе 4) даны рекомендации по использованию комментариев при разработке исходного кода программы.