- •11. Операторы. Дополнение 135
- •12. Передача данных потоком 145
- •13. Файлы 149
- •14. Структура программы 157
- •15. Указатели, массивы, строки 170
- •16. Работа с экраhом 179
- •Задачи 185
- •Приложения 197
- •Библиографический список 224 введение
- •1. Основные понятия и определения
- •1.1. Компьютер
- •Процессор
- •Периферия
- •1.2. Алгоритмы
- •1.3. Программы и языки
- •Основные понятия языка программирования
- •Выполнение программы
- •Машинный и алгоритмический языки
- •Метаобозначения
- •Этапы обработки программы на компьютере
- •Терминология
- •Трансляция
- •Редактирование связей (компоновка)
- •Загрузка
- •1.4. Данные
- •Системы счисления
- •Типы и совокупности данных
- •Вещественные
- •Логические
- •Совокупности данных
- •2. Элементы языка
- •2.1. История языков с и Basic
- •2.2. Алфавит
- •2.3. Идентификаторы
- •2.4. Знаки разрядки
- •2.5. Комментарии
- •Могут ставиться везде, где допустим знак разрядки. Транслятор рассматривает их как пробел.
- •2.6. Запись текста программы
- •3.1.1. Целые
- •3.1.2. Данные с плавающей точкой
- •3.1.3. Логический тип
- •3.1.4. Символьные данные
- •3.1.5. Дополнительные типы данных
- •3.2. Совокупности данных
- •3.2.1. Массивы
- •Объявления массивов
- •Обращение к элементу массива
- •3.2.2. Структуры
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •4. Выражения
- •4.1. Арифметические операторы Основные
- •Дополнительные
- •Приоритет
- •4.2. Операторы конкатенации
- •4.3. Операторы сравнения
- •4.4. Логические операторы
- •4.5. Обращение к функции
- •4.6. Встроенные функции
- •4.7. Заключительные замечания
- •5.2. Присваивание
- •5.3. Безусловный переход
- •5.4. Инструкция If. Пустая инструкция
- •5.5. Составная инструкция
- •5.6. Циклы
- •5.6.1. Циклы с предусловием
- •Циклы while
- •Циклы for
- •5.6.2. Циклы с постусловием
- •5.6.3. Вложенные циклы
- •5.7. Управляемые переходы
- •5.7.1. Инструкция break
- •5.7.2. Инструкция continue
- •5.7.3. Инструкции exit и continue
- •5.8. Многоальтернативный выбор
- •5.8.1. Инструкция switch (язык с)
- •5.8.2. Инструкция select case (язык Basic)
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •6. Ввод-вывод
- •6.1. Язык Си
- •6.1.1. Управляющая строка
- •6.1.1.1. Спецификация d (целые десятичные числа)
- •6.1.1.2. Спецификация f (десятичные числа с плавающей точкой)
- •6.1.1.3. Спецификация e (десятичные числа с плавающей точкой)
- •6.1.1.4. Спецификация g (универсальная спецификация)
- •6.1.2. Вывод символьной информации
- •6.1.3. Инструкции printf и scanf. Схема ввода-вывода
- •6.2. Язык Basic
- •6.2.1. Метод ReadLine
- •6.2.2. Методы Write и WriteLine
- •7.1.1. Распределение скаляров
- •7 .1.2. Распределение массивов
- •7.1.3. Статическое и динамическое распределение памяти
- •7.2. Блоки
- •7.3. Процедуры
- •7.3.1. Определения процедур
- •Прототипы функций (c)
- •7.3.2. Передача данных между процедурами
- •Механизмы передачи данных
- •Передача скаляров Возвращаемое значение
- •Входные данные
- •Выходные данные
- •Передача массивов
- •Передача функций
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •8. Препроцессор
- •8.1. Определение символических констант
- •8.2. Включение файлов в текст программы
- •9.1. Формирование листинга
- •Перенос:
- •9.2. Комментарии
- •9.3. Имена Имена объектов программы должны быть осмысленными.
- •3. Литералы.
- •9. Ввод-вывод:
- •10.5. Подмассивы (сечения) (c)
- •10.6. Динамические массивы (b)
- •10.7. Структуры и объединения
- •10.7.1. Структуры
- •10.7.3. Поля битов (с)
- •10.7.4. Объединения (смеси) (с)
- •10.7.5. Переменные структуры
- •10.10. Пользовательские типы данных
- •10.11. Преобразование типов
- •10.10.1. Автоматические преобразования
- •10.10.2. Явные преобразования
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •11. Операторы. Дополнение
- •11.1. Уровень 1
- •11.2. Уровень 2 (унарные или одноместные операторы)
- •11.3. Уровень 3 (мультипликативные операторы)
- •11.4. Уровень 4 (аддитивные операторы)
- •11.5. Уровень 5 (сдвиги)
- •11.6. Уровень 6 (отношения)
- •11.7. Уровень 7 (равенство и неравенство)
- •11.8. Поразрядные операторы
- •11.9. Логические операторы
- •11.10. Уровень 13 (условное выражение)
- •11.11. Уровень 14 (операторы присваивания)
- •11.12. Уровень 15 (оператор ',' - запятая)
- •11.13. Некоторые замечания
- •11.14. Постоянные выражения
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •12. Передача данных потоком
- •12.1. Спецификация "s" управляющей строки функций scanf и printf
- •12.2. Функции getchar и putchar
- •12.3. Функции gets и puts
- •12.4. Внутренняя передача данных (функции sscanf и sprintf)
- •13.1. Основные понятия
- •13.2. Описание файла
- •13.3. Открытие и закрытие файлов
- •13.4. Средства языка с
- •13.4.1. Открытие и закрытие файла
- •13.4.2. Основные функции обмена
- •13.5. Средства языка Basic
- •13.5.1. Открытие и закрытие файла Инструкция FileOpen
- •Инструкция FileClose
- •13.5.2. Работа с файлами Инструкция Input
- •Инструкция LineInput
- •Инструкции Write и WriteLine
- •Инструкции Print и PrintLine
- •Дополнительные функции
- •Функция MsgBox
- •14.1. Элементы структуры программы.
- •14.1.2. Язык Basic
- •14.2. Область видимости (действия) и время жизни переменных
- •14.2.1. Язык c
- •14.2.2. Язык Basic
- •14.3. Инициализация данных
- •14.3.1. Язык с
- •2. Массивы.
- •15.1. Указатели
- •Определение указателей
- •Задание значений
- •Вывод значений
- •15.2. Указатели и массивы
- •15.3. Работа со строками
- •15.3.1. Литералы
- •15.3.2. Переменные
- •15.3.3. Операторы и функции
- •15.4. Динамические объекты
- •15.5. Типичные ошибки, связанные с указателями Отсутствие инициализации указателя
- •Двойное указание
- •15.6.2. Однонаправленный список
- •15.7. Указатели и многомерные массивы
- •15.8. Рекурсивные процедуры
- •15.8.1. Рекурсивное решение
- •15.8.2. Нерекурсивное решение. Стек в виде массива
- •15.8.3. Нерекурсивное решение. Стек в виде списка
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •16. Работа с экраhом
- •16.2. Управление окном
- •16.3. Управление атрибутом (цветами символа и фона в окне)
- •16.4. Информация о текстовом режиме
- •16.5. Пример
- •Простые циклы
- •Вложенные циклы
- •Процедуры
- •Работа со строками
- •Приложения
- •П1.1. Установка среды
- •П1.2. Запуск среды
- •П1.3. Меню Файл
- •П1.4. Меню Сервис
- •П1.5. Отладка
- •Начало отладки
- •Установка точек прерывания
- •Прогон до точки прерывания
- •Пошаговое выполнение программы
- •Получение значений объектов программы
- •Приложение 2. Среда разработки Visual Basic п2.1. Запуск среды
- •П2.2. Подготовка к работе с новым проектом
- •П2.3. Окна и режимы работы
- •П2.4. Главное меню
- •П2.5. Меню File (Файл)
- •П2.6. Редактирование текста
- •П2.7. Меню View (Вид)
- •П2.8. Меню Project (Проект)
- •П2.9. Отладка
- •Точки прерывания
- •Определение значений объектов программы в момент прерывания
- •Продолжение работы
- •П2.10. Меню Tools (Сервис)
- •П2.11. Меню Window (Окно)
- •Приложение 3. Ответы на вопросы для самопроверки
- •2. Элементы языка
- •3. Элементы данных
- •4. Выражения
- •5. Основные инструкции
- •6. Ввод-вывод
- •7. Процедуры
- •8. Препроцессор
- •9. Стиль программирования
- •10. Данные. Дополнение
- •11. Операторы. Дополнение
- •12. Передача данных потоком
- •13. Файлы
- •14. Структура программы
- •15. Указатели, массивы, строки
- •16. Работа с экраном
- •Приложение 4. Темы для курсовой работы
- •Библиографический список
П1.3. Меню Файл
Тексты программных (исходных) модулей сохраняются в файлах с расширением .cpp (язык C++). Изложим действия, выполняемые в некоторых пунктах данного меню.
С
оздать
(Ctrl+N)
– создает пустой файл с именем Безымянный
и открывает его в окне редактирования.
В скобках указывается «горячая» клавиша
(сочетание клавиш) (нажатие на них
позволяет выполнить то же действие, не
открывая меню). Задать осмысленное имя
исходному модулю можно при его сохранении
либо в пункте ФайлСохранить
как …. Использовать, начиная со 2-го
файла приложения, 1-й создается при
открытии среды.
Открыть… (Ctrl+O) – открывает ранее созданный файл в окне редактирования. При выполнении открывается окно «Открытие файла». Необходимо найти нужный, выделить и щелкнуть по кнопке «Открыть». В окне редактора появится вкладка с именем открываемого файла. Для каждого открытого файла в окне кода устанавливается отдельная вкладка. По умолчанию (файл SciTEGlobal.properties) максимальное количество открытых вкладок в окне редактирования 10.
Закрыть (Ctrl+W) – закрывает файл активной вкладки окна редактора. Если в текущем сеансе на вкладке были сделаны изменения, предлагается их сохранить. То же действие выполняется при щелчке на «корешке» вкладки правой кнопкой мыши и выборе во всплывающем контекстном меню пункта Закрыть.
Сохранить (Ctrl+S) – сохраняет текст исходного файла активного окна редактирования без выхода из среды в той папке, откуда он был загружен. То же можно выполнить с помощью контекстного меню (см. предыдущий пункт).
Сохранить как… (Ctrl+Shift+S) – сохраняет текст исходного файла в выбранной папке с возможным изменением имени и расширения. При выборе этого пункта открывается окно, похожее на окно открытия файла. Работа в окне аналогична (см.выше). Команда также может быть выполнена через контекстное меню.
Сохранить сессию… – команда сохраняет информацию о всех открытых файлах в окне редактора в файле с расширением .session. Это позволит в дальнейшем с помощью команды Загрузить сессию… открыть сразу все файлы, имена которых сохранены. Это удобно при разработке приложений, содержащих более 2-х .cpp или .h файлов. В открывшемся окне надо выбрать папку для сохранения, указать имя файла .session (по умолчанию предлагается SciTE) и щелкнуть по кнопке «Сохранить».
Загрузить
сессию – команда позволяет после
открытия среды выбрать в открывшемся
окне файл .session
и открыть файлы, имена которых в нем
были сохранены (щелчок по кнопке
«Открыть»). Результат на рисунке.
Остальные пункты меню желающие могут изучить самостоятельно.
П1.4. Меню Сервис
П
ункты
меню управляют процессами компиляции,
компоновки, выполнения и отладки
приложения.
Проверить
на ошибки компиляции (Ctrl+F7)
– запускает файл в активной вкладке
окна редактора на компиляцию. При этом
в окне редактора появляется панель для
сообщений компилятора, компоновщика и
отладчика. Главным в этой панели являются
сообщения о предупреждениях и ошибках
этапа компиляции. Внешний вид выдачи
на данном этапе показан на рисунке.
Ошибки (error): трансляция и синтаксический анализ продолжаются, но компоновка не выполняется.
Предупреждения (warning): компоновка выполняется, программа запускается на выполнение, но на этой стадии возможны ошибки.
Формат сообщения:
< имя модуля>:<№ строки, № позиции, где обнаружена ошибка или подозрительное место>: <тип сообщения>: <поясняющий текст>.
<фрагмент кода с указанием позиции сомнительного места>
При двойном щелчке по сообщению последнее выделяется, одновременно в панели кода отмечается строка, где обнаружена вызвавшая его ситуация. При перемещении на другое сообщение происходит автоматическое перемещение в панели кода на соответствующую строку исходного текста.
Замечание. Место обнаружения ошибки может отстоять от места ее возникновения достаточно далеко. Примером таких ошибок могут служить незакрытые скобки (простые и фигурные). Кроме того, некоторые ошибки могут вызвать серию других ошибок или предупреждений. Это происходит из-за того, что транслятор при обнаружении ошибки прекращает проверять остаток ошибочной конструкции языка, что в свою очередь может породить некорректные ситуации.
С
обирать
из всех (F7)
– выполняет компоновку (редактирование
связей) объектных модулей в 1 загрузочный
модуль. На рисунке приведена выдача
компоновщика.
При компоновке внутри папки задачи создается директория release, в которую помещаются объектные (расширение .о) и исполняемый (расширение .exe) файлы.
Ошибки при компоновке относительно редки, связаны, в основном, с неправильным размещением объектных файлов по папкам и здесь не рассматриваются.
Собирать из <имя>.cpp (Alt+F7) – выполняет компоновку приложения из указанного единственного файла. Разумное применение: наличие в директории нескольких вариантов задачи, реализованных в отдельных одиночных файлах.
Выполнить (F5) – запускает задачу на решение. Для выдачи на экран на этом этапе открывается окно консоли.
Чтобы правильно отображать русский алфавит, следует изменить свойства консольного окна. Для этого нужно вызвать контекстное меню щелчком правой кнопкой мыши по заголовку окна и выбрать пункт Свойства, вкладка Шрифт. Затем установить шрифт Lucida Console 12 или 14. Также разумно задать стандартный размер окна консоли 80х25 (вкладка Расположение). После изменения свойств появится соответствующее окно, в котором следует выбрать пункт Сохранить.
О
шибки
во время выполнения происходят из-за
неправильного алгоритма решения задачи,
поэтому их наиболее трудно исправлять.
Сообщение о такой ошибке зависит от
установленного на компьютере программного
обеспечения и операционной системы.
Часто это сообщение о необработанном
исключении с предложением выбрать
доступный отладчик (см.рис.). Предложенные
отладчики в нашей среде разработки
работать не могут, поэтому от отладки
надо отказаться и обратиться к
соответствующему пункту меню Сервис.
Очистить окно консоли (Shift+F5) – очищает Панель сообщений. Полезно при неоднократном запуске приложения в одном сеансе работы.
