- •Г.В. Ваныкина, т.О. Сундукова
- •Часть 1. Введение в программирование Тула - 2009
- •Содержание
- •Предисловие
- •Лабораторная работа №1
- •Лабораторная работа №2 Типы данных. Стандартные потоки ввода-вывода данных
- •Лабораторная работа №3 Константы. Стандартные потоки ввода-вывода вещественных данных
- •Лабораторная работа №4 Форматированный ввод-вывод данных
- •Лабораторная работа №5 Присваивание. Арифметические операции
- •Лабораторная работа №6 Логические и поразрядные операции. Операции сравнения и определения размера
- •Лабораторная работа №7 Математические функции. Выражения
- •Математические функции – файл math.H
- •Лабораторная работа №8 Линейные программы. Преобразование типов
- •Лабораторная работа №9 Операторы выбора: оператор условия if
- •Лабораторная работа №10 Решение задач с использование оператора условия if
- •Лабораторная работа №11 Операторы перехода. Операторы выбора: оператор-переключатель switch
- •Лабораторная работа №12 Решение задач с использованием оператора-переключателя switch
- •Лабораторная работа №13 Операторы цикла: оператор цикла с параметром for
- •Лабораторная работа №14 Операторы цикла: оператор цикла с предусловие while
- •Лабораторная работа №15 Операторы цикла: оператор цикла с постусловием do … while
- •Лабораторная работа №16 Решение задач с использованием операторов цикла
- •Лабораторная работа №17 Функции пользователя
- •Лабораторная работа №18 Решение задач методом процедурной абстракции
- •Лабораторная работа №19 Рекурсивные функции
- •Индивидуальные задания Требования к оформлению индивидуальных заданий
- •Задание 1. Линейные программы
- •Задание 2. Задачи на составление логических выражений
- •Задание 3. Условный оператор
- •Задание 4. Цикл с параметром
- •Задание 5. Циклы с условиями
- •Задание 6. Числовые функции
- •Задание 7. Функции
- •Задание 8. Рекурсия
- •Литература
- •Часть 1. Введение в программирования
Лабораторная работа №1
Интегрированная среда разработки Microsoft Visual С++. Структура программы на C++
Цель работы: изучить интерфейс интегрированной среды разработки программ Microsoft Visual С++, научиться создавать программный код на C++ в соответствии со структурой программы.
Теоретические сведения
Microsoft Visual С++ (VC++) упрощает процесс программирования и делает его более эффективным. При работе в VС++ весь комплекс инструментальных средств, необходимых для написания, редактирования, компиляции, компоновки и отладки программ, оказывается под рукой у пользователя.
Кроме того, среда разработки программ VС++ предоставляет следующие дополнительные возможности, которые еще больше упрощают процесс написания программ:
возможность отображения на экране монитора значительного числа окон, которые можно перемещать по экрану и размеры которых можно изменять;
наличие поддержки «мыши»;
наличие блоков диалога;
наличие команд удаления и вставки (при этом допускается копирование из окна help и между окнами редактора);
возможность быстрого вызова других программ и обратного возврата;
наличие в редакторе макроязыка.
ИСР содержит три визуальных компоненты: строку меню у верхнего края экрана, оконную область в средней части экрана и строку состояния у нижнего края экрана. В результате выбора некоторых элементов меню на экран будут выдаваться блоки диалога.
Строка меню и меню
Строка меню представляет собой основное средство доступа ко всем командам меню. Строка меню оказывается невидимой лишь во время просмотра информации, отображаемой программой и во время перехода к другой программе.
Окна VC++
Большая часть того, что видно и делается в среде VC++, происходит в окне. Окно – это область экрана, которую можно перемещать, размеры которой можно изменять, которую можно распахивать на весь экран, ориентировать встык с другими окнами.
В VC++ может существовать произвольное число окон, но в каждый момент активно только одно окно. Активным является то окно, в котором в настоящий момент происходит работа.
Любые вводимые команды или вводимый текст, как правило, относятся только к активному окну.
Существует несколько типов окон, но большая их часть имеет следующие общие элементы:
строку заголовка;
маркеры свертывания, развертывания и закрытия окна;
полосы прокрутки;
угол изменения размера окна;
номер окна.
Строка состояния
Строка состояния, расположенная у нижнего края экрана, информирует, на какой строке и на каком символе находиться курсор в данный момент.
Блоки диалога
Если за элементом меню располагается многоточие, то в результате выбора данной команды будет открыт блок диалога, обеспечивающий удобный способ просмотра и задания многочисленных параметров.
При задании значения в блоке диалога работа происходит с пятью базовыми типами средств управления: указателями выбора, переключателями состояния, кнопками действия, блоками ввода и блоками списка.
Работа с экранным меню VС++
Меню File (Alt+F)
Это меню позволяет открывать и создавать исходные файлы программ, сохранять внесенные изменения, выполнять другие действия над файлами и завершать работу с VC++.
New (Ctrl+N)
Команда File / New позволяет открывать новое окно редактора со стандартным именем UNTITLED.xx (где вместо букв хх задается число в диапазоне от 1 до 99). Файлы с именем UNTITLED используются в качестве временного буфера для редактирования; когда файл с подобным именем сохраняется на диске, VC++ запрашивает действительное имя файла.
Open (Ctrl+O)
Команда File / Open отображает блок диалога, в котором выбирается исходный файл программы, который будет открыт в окне редактора. Этот блок диалога содержит блок ввода, список файлов, и кнопки OK, Cancel и Help.
Здесь можно выполнить одно из действий.
1) Дважды щелкнуть на имя файла в списке, чтобы открыть файл; если ввести имя полностью и нажать Enter, VC++ откроет указанный файл. (Если ввести имя файла, который система VC++ не может обнаружить, она автоматически создаст и откроет новый файл с таким именем.)
2) Выбрать тип файла из списка типов файлов, чтобы отобразить список всех файлов с предопределенным типом в текущем диске и каталоге;
3) Просмотреть содержимое других каталогов (дисков), выбрав имя каталога (диска) из списка каталогов (дисков).
4) Задать шаблон файла, используя знак '*' или '?' в блоке File / Name и нажать Enter, то в списке отображаются файлы, соответствующие данному шаблону.
Close
Команда File / Close закрывает активное окно редактора, но сам редактор остаться открытым.
Save (Ctrl+S)
Команда File / Save записывает на диск файл, находящийся в активном окне редактора (если активно окно редактора в настоящий момент, если нет, то данным элементом меню нельзя воспользоваться).
Save As…
Команда File / Save As позволяет сохранить файл в активном окне редактора под другим именем, в другом каталоге или на другом диске.
Save All
Команда File / Save All позволяет сохранить все файлы, которые открыты в редакторы.
Print…
Команда File / Print печатает содержимое активного окна редактора VC++. Данная команда будет запрещена, если содержимое активного окна не может быть выведено на печать. Для вывода на печать только выделенного текста следует выбрать Selection в диалоговом окне print.
Page Setup…
Команда File / Page Setup выводит диалоговое окно параметров страницы, в котором можно установить поля, заголовки и нижние колонтитулы на каждой странице выводимой на печать.
Exit
Команда File / Exit осуществляет выход из системы VC++, закрывая окно редактора. Если внесены изменения, которые еще не были сохранены, то перед выходом VC++ выдаст запрос на их сохранение.
Меню Edit(Alt+E)
Позволяет выполнять удаления, копирование и вставку текста в окнах редактора, а также находить и заменять фрагменты программы.
Undo (Ctrl+Z) / Redo (Ctrl+A)
Эта команда отменяет / повторяет действия редактирования.
Cut (Ctrl+X)
Удаляет выделенный фрагмент кода программы и заносит его в буфер. Затем можно вставить данный фрагмент в другое место или в другой код программы путем выбора Paste.
Copy (Ctrl+C)
Эта команда не изменяет выделенный код программы, но заносит в буфер его точную копию. Затем можно вставить данный фрагмент в другое место или в другую программу командой Paste.
Paste (Ctrl+V)
Эта команда вставляет фрагмент кода программы из буфера в текущее окно с позиции курсора.
Delete (Del)
Эта команда удаляет выбранный фрагмент кода программы, но не заносит его в буфер. Это означает, что восстановить удаленный фрагмент нельзя.
Find… (Alt+F3)
Эта команда отображает блок диалога Find, который позволяет ввести образец поиска и задать параметры, влияющие на процесс поиска.
Replace…
Команда Replace отображает блок диалога для ввода искомого фрагмента программы и текст, на который его следует заменить.
Find Matching Brace (Ctrl+] )
Эта команда находит соответствующие фигурные скобки, следующим образом: поместите курсор перед фигурной скобкой; выберите команду Find Matching Brace. Курсор продвигается вперед или назад к соответствующей фигурной скобке. Если соответствующая фигурная скобка не может быть найдена, то редактор подает гудок.
Read Only
С помощью данной команды файл в активном окне приобретет статус «только для чтения», то есть содержимое файла не может быть отредактировано. Эта команда может быть полезна, когда Вы просматриваете исходный файл и хотите избежать случайных изменений в нем.
Меню View (Alt+V)
Позволяет задавать внешние параметры окна редактора VC++, определить места ошибок, а также работать с закладками.
Меню Project (Alt+P)
Позволяет создать набор файлов проекта MFC, создать новый проект определенного типа, открыть, редактировать и закрыть проект, а также включает команды компиляции, компоновки и отладки.
Compile File (Ctrl+F8)
Команда компилирует активный файл в окне редактора. Когда выполняется компиляция, выводится окно состояния, в котором отражается ход компиляции и ее результаты. После завершения компиляции/компоновки для удаления этого окна нужно его закрыть. Эта команда используется для быстрой проверки корректности файла, особенно после внесения в него большого числа изменений. При компиляции создаются файлы с расширением *.OBJ, *.SBR, а также файл msvc.PDB.
Build (Shift+F8)
Команда осуществляет построение (компоновку) проекта, используя правила зависимости. Она перестраивает все компоненты, независимо от даты их создания и создает файлы с расширением *.BSC и *.EXE.
Rebuild All (Alt+F8)
Команда создает все файлы проекта или перекомпилирует и перекомпоновывает их заново.
Stop Build
Команда останавливает процесс создания проекта.
Execute (Ctrl+F5)
Команда запускает программу на исполнение без вызова отладчика.
Меню Browse (Alt+B)
Команды меню Browse позволяет осуществлять просмотр кода программы, выполнять различные переходы с строкам программы.
Меню Debug (Alt+D)
Команды меню Debug управляют всеми возможностями интегрированного отладчика. Меню Debug используется при запуске проекта на исполнения в режиме отладки и содержит команды, используемые при отладке проекта.
Go (F5)
Команда запускает проект на исполнение в режиме отладки или возобновляет выполнение программы до следующей контрольной точки или до конца программы, если при ее дальнейшем выполнении не встретятся контрольные точки.
Restart (Shift+F5)
Команда, которая перезапускает исполняемую программу.
Stop Debugging (Alt+F5)
Завершает процесс отладки проекта.
Step Into (F8)
Команда позволяет выполнить один оператор программы и остановиться.
Step Over (F10)
Команда позволяет выполнить один оператор программы и остановиться независимо от того, является ли данный оператор функцией или нет.
Step Out (Shift+F7)
Команда позволяет выйти из текущей функции и остановиться на первом операторе программы, расположенном за вызовом данной функции.
Step to Cursor (F7)
Команда позволяет продолжить выполнение программы и остановиться на операторе, на котором в настоящий момент расположен курсор.
Breakpoints (Ctrl+B)
Эта команда вызывает диалоговое окно Breakpoints, чтобы определить контрольные точки. Контрольная точка определяет, когда временно остановить программу на выполнение. В этой точке можно исследовать значения переменных, регистров и так далее.
Меню Tools (Alt+T)
Меню Tools содержит команды настройки C++ и доступа к автономным утилитам.
Меню Options (Alt+O)
Меню Options содержит команды, которые позволяют просматривать и модифицировать стандартные параметры, определяющие функционирование C++.
Меню Windows (Alt+W)
Меню Window содержит команды управления окнами. Внизу меню Window находится список открытых окон. Если их больше одного, то переключиться на другое окно и сделать его активным можно, выбрав его.
Меню Help (Alt+H)
Меню Help дает доступ к оперативной справочной информации в окне справочной информации. С его помощью вы можете получить справочную информацию практически по всем аспектам ИСР и C++.
Структура файлов, создаваемая в VC++
Файл с расширением *.cpp (например, task.cpp) – файл, в котором содержится исходный код программы написанный на языке С. Данные файлы могут иметь расширение *.cpp, *.cxx, *.C (заглавная буква) или *.с в зависимости от используемой среды программирования.
Файл с расширением *.obj (объектный файл) (например, task.obj) – файл с объектным кодом библиотек языка, создается в результате безошибочной компиляции (т.е. после перевода исходного кода в машинный код).
Файл с расширением *.sbr (например, task.sbr) – файл поддержки (браузер объектов с расширенной информацией).
Файл msvc.pdb – файл данных, содержащий отладочную информацию о приложении: локальные переменные, функции, разметка исходного кода и т.д.
Файл с расширением *.bsc (например, task.bsc) – файл списка ссылок.
Файл с расширением *.exe (загрузочный модуль) (например, task.exe) – исполняемый файл, который создается в результате компоновки программы.
Структура программы
Обобщенная структура одномодульной программы на языке С состоит из четырех основных блоков:
Директивы препроцессора (начинаются с символа '#'):
включения заголовочных файлов (интерфейсных файлов, которые обеспечивают интерфейс между отдельно компилируемыми частями программы; хэдер-файлов; прототипов функций);
макроопределений (макросов);
условий компиляции.
Определение (объявление) внешних и глобальных объектов (переменных) разнообразных типов и прототипов функций.
Определение главной функции main в виде:
Тип main(НеобязательныйСписокТипизированныхПараметров)
{
определения (объявления) локальных объектов (переменных);
описание extern прототипов функций, используемых в теле функции;
операторы главной функции.
}
Описание пользовательских функций, вызываемых в функции main. Формат их описания:
Тип ИмяФункции(НеобязательныйСписокТипизированныхПараметров)
{
описание прототипов функций (ссылка вперед), нужных здесь;
определение локальных объектов;
операторы пользовательской функции.
}
Описание пользовательской функции возможно не только после функции main, но и до ее оформления. В этом случае отпадает надобность в указании ее прототипов.
Пример Task1.cpp
//Программа выводит на экран заданную фразу
#include <stdio.h> //препроцессорная директива
void main() //заголовок функции
{ //начало главной функции
printf ("Hello! Привет!"); //вывод фразы на экран
} //конец главной функции
Задания
Создайте личную папку по следующему адресу:
D:\Work\Math-Fac\1_kurs\Group_V\
Наберите в окне редактора VC++ код программы из приведенного выше примера. Сохраните данную программу в личной папке под именем Task1.cpp.
Используя команды редактора, выполните компиляцию и запуск программы. Охарактеризуйте все файлы созданные в вашей личной папке (письменно).
Домашние задания
Установите на домашнем компьютере VC++.
Создайте на домашнем компьютере папку Programming.
Наберите и сохраните код программы из ниже приведенного примера именем Task2.cpp. Допишите вместо многоточия название Вашей специальности без кавычек.
Пример Task2.cpp
//Программа выводит на экран заданную фразу
#include <stdio.h> //препроцессорная директива
void main() //функция
{ //начало
printf ("Я студент(ка) первого курса специальности …");
//печать
} //конец
Сохраните файл Tast2.cpp под именем Task3.cpp. Внесите изменения в программный код по образцу, используя операции копирования строк. Сравните результаты выполнения программ Task2.cpp и Task3.cpp. Сделайте вывод.
Пример Task3.cpp
//Программа выводит на экран заданную фразу
#include <stdio.h> //препроцессорная директива
void main() //функция
{ //начало
printf ("Я студент(ка) первого курса "); //печать
printf ("первого курса "); //печать
printf ("специальности …"); //печать
} //конец
Выполните сравнительный анализ файлов Task2 и Task3, заполните таблицу:
Имя файла |
Тип файла |
Размер в Кбайтах |
Время создания |
Назначение |
Task2 |
cpp |
|
|
|
Task2 |
obj |
|
|
|
Task2 |
sbr |
|
|
|
Task2 |
bsc |
|
|
|
Task2 |
exe |
|
|
|
msvc |
pdb |
|
|
|
