- •Программирование на языке высокого уровня
- •Составитель: л.А. Прокушев
- •Подписано к печати Формат 60х84 1/16. Бумага тип. №3
- •Редакционно-издательский отдел
- •190000, Санкт-Петербург, ул. Б. Морская, 67
- •Алгоритмизация вычислительных процессов
- •Средства программирования вычислительных процессов
- •Данные и их типы
- •Константы
- •Переменные
- •Ввод-вывод данных
- •Ввод-вывод данных в стиле с
- •Форматированный ввод
- •Форматированный вывод
- •Консольный ввод-вывод
- •Функция ввода символа (без отображения):
- •Функция очистки экрана результатов:
- •Выражения и операции
- •Логические выражения и операции.
- •Работа с ветвящимися процессами Операторы
- •Оператор присваивания
- •Условный оператор (if)
- •Операторы передачи управления
- •Оператор break (прервать) используется для прерывания работы текущего сложного оператора, в теле которого находится оператор break, и передачи управления на следующий по порядку оператор.
- •Оператор выбора (switch)
- •Действие оператора выбора состоит в следующем:
- •Введите 2 числа х, y : 3 8
- •Работа с циклическими вычислительными процессами
- •Циклы с фиксированным числом повторений Оператор цикла с предусловием (while)
- •Прерывание цикла
- •Циклы с неизвестным числом повторений Вычисление рекуррентных последовательностей
- •Оператор цикла с постусловием (do)
- •Вложенные циклы и организация диалога в программе
- •Оператор цикла с параметром (for)
- •Программа:
- •Работа с массивами
- •Описание массива
- •Доступ к элементам массива
- •Указатель.
- •Занесение данных в массив
- •Многомерные массивы
- •Работа с функциями
- •Определение функции
- •Вызов функции
- •Передача параметров функции
- •Передача данных по значению
- •Передача данных по адресу
- •Прототип (шаблон) функции
- •Блочная структура программы
- •Внешние описания переменных
- •Многомодульные программы Проект программы
- •Внешние ссылки
- •Создание проекта программы
- •Работа с указателями Объявления объектов со сложными описателями
- •Массивы указателей
- •Указатель на указатель
- •Указатель на функцию
- •Использование указателя на функцию как аргумента
- •Массивы указателей на функции
Создание проекта программы
Создание проекта программы в среде Borland C++ включает следующие этапы.
Создать исходные текстовые файлы (cpp-файлы, h-файлы) с учетом внешних ссылок и записать их в свой каталог (например, C:\$STUDENT\GR_1908) под разными именами.
Выполнить команду меню Project - Open project. В открывшемся диалоговом окне Load Project File клавишей Tab перейти в поле Files и, используя клавиши <Enter> (или клавиши-стрелки, или мышь), найти свой каталог.
С помощью клавиши Tab (или Shift+Tab или мыши) перейти в поле Load Project File и, убрав в строке символ ‘*’, задать имя нового файла проекта (например, Myproj) и нажать клавишу <Enter> или кнопку ОК.
На экране появляется внизу окно с заголовком Project: Myproj и высвеченной пустой строкой.
Выполнить команду меню Project - Add item. В открывшемся диалоговом окне Add item to Project List с помощью клавиши Tab (или мыши) перейти в поле Files и найти свои исходные cpp-файлы. Выделяя их в любом порядке, нажатием клавиши <Enter> (или кнопки Add) добавить эти файлы в файл проекта, после чего закрыть окно, нажав клавишу <Esc> (или кнопку Done с помощью мыши).
Запустить на компиляцию и выполнение файл проекта командой Run - Run или клавишами <Ctrl+F9>.
Выполнить отладку исходных файлов, переключаясь между окнами, используя клавиши <Alt + номер окна с-файла> или в окне Project, выделив строку исходного файла и нажав клавишу <Enter>.
После отладки проекта получить результаты работы exe-файла.
Проект программы может включать следующие файлы: 1) исходные cpp- файлы; 2) файлы заголовков разработчика проекта (h-файлы); 3) объектные obj-файлы; 4) файл проекта prj-файл; 5) исполняемый exe-файл; 6) файл опций настройки и среды dsk-файл.
Работа с указателями Объявления объектов со сложными описателями
Как известно, все объекты (переменные) программы должны быть определены или объявлены согласно общему формату:
[класс памяти] тип описатель [=инициатор],…;
где необязательные части формата заключены в [ ],
тип переменной задается ключевым словом типа;
описатель – это простой идентификатор или его комбинация с модификатором: * – указатель, [ ] – массив, ( ) – функция. Модификатор указателя (*) всегда задается перед идентификатором, а модификаторы массива и функции ( [ ], ( ) ) – после идентификатора;
инициатор – задает начальное значение объекта.
Кроме того, можно использовать сочетания модификаторов, что дает возможность создавать множество сложных описателей типов объектов, которые необходимо правильно интерпретировать. При использовании различных комбинаций модификаторов надо помнить, что некоторые комбинации недопустимы, а именно:
элементами массива не могут быть функции, но могут быть указатели на функции;
функции не могут возвращать массив или функцию, но могут возвращать указатели на них.
При интерпретации сложных описателей скобки [ ] и ( ) имеют приоритет над *. Сами скобки [ ] или ( ) имеют одинаковый приоритет и связываются слева направо. Спецификатор типа рассматривается на последнем шаге. Можно использовать круглые скобки ( ), чтобы изменить порядок интерпретации на необходимый. Для интерпретации сложных описателей можно использовать правило “изнутри наружу” из четырех шагов:
Начать с идентификатора и посмотреть вправо ( ), есть ли скобки [ ] или ( ).
Если скобки имеются, то интерпретировать эту часть описателя, а затем посмотреть влево () в поиске *.
Если на любой стадии справа встретиться закрывающая круглая скобка ‘)’, то вначале необходимо применить все эти правила внутри скобок ( ), а затем продолжить интерпретацию.
Интерпретировать спецификатор типа объекта.