!!! МЕТОДИЧКА_Срр_Часть1. Учебнометодическое пособие предназначено для студентов, изучающих дисциплину Программирование
Скачать 2.01 Mb.
|
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Адыгейский государственный университет» Инженерно-физический факультет Кафедра автоматизированных систем обработки информации и управления Довгаль В.А, Коробков В.Н. Программирование на языке С++ в среде Microsoft Visual Studio (Часть 1) Учебно - методическое пособие Майкоп 2015 УДК 004.43 (075.8) ББК 32.973-018.1я73 Д 58 Печатается по решению редакционно-издательского совета Адыгейского государственного университета Рецензенты: Чефранов С.Г., д.э.н., доцент, заведующий кафедрой информационной безопасности и прикладной информатики ФГБОУ ВПО «Майкопский государственный технологический университет». Бучацкая В.В, доцент кафедры прикладной математики и информационных технологий ФГБОУ ВПО «АГУ», к.т.н., доцент. Довгаль В.А., Коробков В.Н. Д 58 Программирование на языке С++ в среде Microsoft Visual Studio (Часть 1): учебно - методическое пособие. – Майкоп: Издательство:АГУ, 2015. – 62 с. Учебно-методическое пособие предназначено для студентов, изучающих дисциплину «Программирование» направления подготовки 09.03.01 – «Информатика и вычислительная техника», профиль «Автоматизированные системы обработки информации и управления», и дисциплину «Программирование и основы алгоритмизации» направления подготовки 27.03.04 – «Управление в технических системах», профиль «Управление и информатика в технических системах». Пособие так же может использоваться студентами других специальностей и направлений. Учебно-методическое пособие посвящено введению в основы алгоритмизации и программирования на языке С++ в среде программирования Microsoft Visual Studio 2010. Пособие подготовлено на кафедре автоматизированных систем обработки информации и управления инженерно-физического факультета ФГБОУ ВПО «Адыгейский государственный университет». © Адыгейский государственный университет, 2015 СОДЕРЖАНИЕ Введение ....................................................................................................................................................... 4 Лабораторная работа №1 Программирование линейных алгоритмов .................................................. 5 Лабораторная работа №2 Программирование разветвляющихся алгоритмов ................................... 15 Лабораторная работа № 3 Программирование структур ветвления с применением оператора множественной выборки ......................................................................................................................... 23 Лабораторная работа №4 Программирование циклических алгоритмов ........................................... 31 Лабораторная работа №5 Структурированный тип данных - массив ................................................. 38 Лабораторная работа №6 Методы сортировки массива ....................................................................... 47 Лабораторная работа № 7 Обработка символьной информации, работа со строками ...................... 53 Рекомендуемая литература....................................................................................................................... 62 Введение Целью пособия является предоставление обучающимся теоретических и практических основ составления алгоритмов решения задач и программирования на языке С++. Учебно-методическое пособие предназначено для проведения лабораторных работ по языку С++ в среде программирования Microsoft Visual Studio 2010. Основными задачами лабораторных работ являются: закрепление знаний, полученных на лекционных занятиях по дисциплине «Программирование и основы алгоритмизации»; развитие у студентов практических навыков создания алгоритмов и реализации их на языке С++; получение навыков работы в среде программирования Microsoft Visual Studio 2010. В результате выполнения лабораторных работ, обучающиеся должны приобрести знания в области разработки алгоритмов решения задач и основ программирования на языке С++. Материал адаптирован к использованию с применением модульно-рейтинговой системы оценки успеваемости студентов. В конце каждой лабораторной работы представлены задачи для индивидуального решения. Первые пять задач могут быть решены коллективно, и еще две задачи выполняются индивидуально, согласно выданному варианту. Лабораторная работа №1 Программирование линейных алгоритмов Цель работы: выработать практические навыки работы с системой Microsoft Visual Studio, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Си в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ, реализующих линейные алгоритмы. Общие сведения: Алгоритм называется линейным, если результат решения задачи получается путем однократного выполнения заданного набора операторов не зависимо от исходных данных. Операторы выполняются в той последовательности, в которой они расположены в программе. Проиллюстрируем это с помощью математического примера. Пример1: Определить расстояние на плоскости между двумя точками с заданными координатами M 1 (x 1 ,y 1 ) и M 2 (x 2 ,y 2 ) Этапы решения задачи: 1. Математическая модель: расстояние на плоскости между двумя точками M 1 (x 1 ,y 1 ) и M 2 (x 2 ,y 2 ) высчитывается по формуле 2. На рисунке 1.1 представлена схема алгоритма. Рис. 1.1. Схема алгоритма рассматриваемой задачи Уточним содержимое блока «Вычисление и печать расстояния». Рис. 1.2. Схема алгоритма блока «Вычисление и печать расстояния» Дальнейшая детализация не требуется. Затем необходимо перевести блок-схему на язык С++. Для этого необходимо познакомиться со структурой программы на языке С++. Программа состоит из директив препроцессора и отдельных модулей, которые называются подпрограммами или функциями. В общем виде структура программы может быть представлена в таком виде: 1. Комментарий, описывающий назначение программы, ее версию и т.д. Например: /*Это моя первая программа на языке С*/ 2. Директива препроцессора. Например, для подключения библиотек стандартных функции пользователя используется директива препроцессора #include, форма записи которого приведена в примере ниже. Для замены числовых и текстовых констант буквенными обозначениями применяется директива препроцессора #define. Для совместимости со старыми версиями языка С используется директива using namespace std; задающая стандартную библиотеку std. В этом случае вместо указания пространства имен можно стандартную библиотеку не задавать. 3. Объявления глобальных переменных и прототипов функции. 4. Главный модуль программы. 5. Функции, уникальные для данного приложения. Простейшая программа на языке С состоит всего из 8 символов: main(){ } Основная программа всегда называется именем main. Внимание: в языке программирования Си большие и маленькие буквы различаются и все стандартные операторы Си записываются маленькими буквами. Пустые круглые скобки означают, что функция main не имеет аргументов. Фигурные скобки обозначают начало и конец функция main. Отсутствие внутри фигурных скобок каких-либо операторов означает, что программа ничего не выполняет. Она просто соответствует правилам языка Си, ее можно скомпилировать и получить исполняемый файл с расширением exe. Между фигурными скобками располагаются операторы, реализующие вышеприведенный алгоритм: #include #include #include { int x1, x2, y1, y2; float d; cout<<"x1="; cin>>x1; cout<<"y1="; cin>>y1; cout<<"x2="; cin>>x2; cout<<"y2="; cin>>y2; d=sqrt(float (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); cout<<"d="; cout< return 0; } Вначале к тексту программы подключаются так называемые заголовочные (h от header – заголовок) файлы системы (include – включить). В этих файлах описаны системные функции и их аргументы. Используя эти описания, компилятор проверяет правильность вызова системных функций. В нашем случае программа использует системные функции ввода ( cin>> ) и вывода ( cout<< ), описания которых находятся в заголовочном файле с именем iostream.h, а также функцию ожидания нажатия какой-либо клавиши ( getch ), описание которой находится в заголовочном файле conio.h. Затем идет заголовок функции main. Функция с таким названием обязана присутствовать в каждой программе на языке C, C++. Именно с нее начинается выполнение программы, она – главная (именно так переводится служебное слово main ). Предшествующее ей служебное слово int (от integer – целый) сообщает, что результатом работы функции main должно быть целое число. По возвращаемому функцией значению операционная система, запустившая программу main, может «сообразить», правильно или неправильно завершилась работа программы. По общепринятому соглашению нулевое значение, возвращаемое функцией main, свидетельствует о нормальном завершении работы программы. Служебное слово void (дословно – пустота), указанное в круглых скобках, сообщает, что у функции main аргументы отсутствуют. Четыре переменные x1, x2, y1 и y2, объявленные в программе, имеют тип int, означающий, что переменные могут принимать только целочисленные значения. Далее следует блок операторов, позволяющих вводить значения этих переменных с клавиатуры. На основании введенных значений производится расчет значения переменной d. Следующим шагом является вывод на экран монитора двух сообщений – текстовое строки ( d= ) и числового значения переменной d . Функция _getch используется в программе для задержки на экране выводимого сообщения до тех пор, пока не будет нажата какая-нибудь клавиша ( getch – от get character, дай символ). Последняя выполняемая строка return 0 сообщает, что функция main завершается с нулевым результатом и управление передается операционной системе. Осталось реализовать программу с помощью средства разработки. Реализация программы: На современном уровне все этапы создания, трансляции, компоновки, отладки и проверки программы объединены и выполняются внутри специальной программы- оболочки, которую называют интегрированная среда разработки (IDE – integrated development environment). В нее входят: редактор текста; транслятор; компоновщик; отладчик. В этой среде достаточно набрать текст программы и нажать на одну клавишу, чтобы она выполнилась (если нет ошибок). Если в программе есть ошибки, вы увидите в нижней части экрана оболочки сообщения об этих ошибках (к сожалению, на английском языке). Если щелкнуть по одной из этих строчек, в тексте программы выделяется строка, в которой транслятору что- то не понравилось. При поиске ошибок надо помнить, что часто ошибка сделана не в выделенной строке, а в предыдущей – проверяйте и ее тоже; часто одна ошибка вызывает еще несколько, и появляются так называемые наведенные ошибки. В качестве инструментальной среды для написания программ в данном учебно- методическом пособии рассматривается среда разработки Microsoft Visual Studio 2010. В результате запуска среды, появляется стартовая страница, представленная на рисунке 1.3. Следующим шагом является создание нового проекта: в меню Файл необходимо выбрать Создать – Проект (или комбинацию клавиш Ctrl + Shift + N ). Результат выбора пунктов меню для создания нового проекта показан на рис. 1.4. Рис. 1.3. Стартовая страница Visual Studio 2010 Рис. 1.4. Окно с выбором нового проекта Среда Visual Studio отобразит окно «Создать проект», в котором необходимо выбрать тип создаваемого проекта. Проект (project) используется в Visual Studio для логической группировки нескольких файлов, содержащих исходный код, на одном из поддерживаемых языков программирования, а также любых вспомогательных файлов. Обычно после сборки проекта (которая включает компиляцию всех входящих в проект файлов исходного кода) создается один исполняемый модуль. В окне «Создать проект» следует развернуть узел Visual С++, обратиться к пункту Win32 и на центральной панели выбрать «Консольное приложение Win32». Выбор этой опции показан на рис. рис. 1.5. Рис. 1.5. Выбор типа проекта Затем в поле редактора «Имя» (где по умолчанию имеется <Введите_имя>) следует ввести имя проекта, например, lab1. В поле «Расположение» можно указать путь размещения проекта, или выбрать путь размещения проекта с помощью клавиши (кнопки) «Обзор». По умолчанию проект сохраняется в специальной папке Projects. Пример выбора имени проекта показано на рис. 1.6. Рис. 1.6. Пример задания имени проекта Одновременно с созданием проекта Visual Studio создает решение. Решение (solution) – это способ объединения нескольких проектов для организации более удобной работы с ними. После нажатия кнопки «OK» откроется окно «Мастер приложений Win32» (мастер создания приложений для операционных систем Windows), показанное на рис. 1.7. Выбор имени проекта может быть достаточно произвольным: допустимо использовать числовое значение, допустимо имя задавать через буквы русского алфавита. В дальнейшем будем использовать имя, набранное с помощью букв латинского алфавита и, может быть, с добавлением цифр. Рис. 1.7. Мастер создания приложения На первой странице представлена информация о создаваемом проекте, на второй можно сделать первичные настройки проекта. После обращения к странице» Параметры приложения», или после нажатия кнопки» Далее» получим окно, показанное на рис. 1.8. Рис. 1.8. Страница мастера настройки проекта по умолчанию В дополнительных опциях («Дополнительные параметры») следует поставить галочку в поле «Пустой проект». Получим экранную форму, показанную на рис. 1.9. Здесь и далее будут создавать проекты по приведенной схеме, т.е. проекты в консольном приложении, которые должны создаваться целиком программистом (за счет выбора «Пустой проект»). После нажатия кнопки «Готово», получим экранную форму, показанную на рис. 1.10, где приведена последовательность действий добавления файла для создания исходного кода к проекту. Стандартный путь для этого: подвести курсор мыши к папке «Файлы исходного кода» из узла lab1 в левой части открытого проекта приложения, щелкнуть правой кнопкой мыши и выбрать команды контекстного меню «Добавить» и «Создать новый элемент». Рис. 1.9. Выполненная настройка мастера приложений Рис. 1.10. Меню добавления нового элемента к проекту После выбора (нажатия) «Создать новый элемент» получим окно, показанное на рис. 1.11, где через пункт меню «Код» узла Visual C++ выполнено обращение к центральной части панели, в которой осуществляется выбор типа файлов. В данном случае требуется обратиться к закладке «Файл C++ (.cpp)». Теперь в поле редактора «Имя» (в нижней части окна) следует задать имя нового файла (расширение можно не указывать). Например, main. Имя файла может быть достаточно произвольным, но имеется негласное соглашение, что имя файла должно отражать его назначение и логически описывать исходный код, который в нем содержится. В проекте, состоящем из нескольких файлов, имеет смысл выделить файл, содержащий главную функцию программы, с которой она начнет выполняться. В данном пособии такому файлу мы будем задавать имя main.cpp, где расширение «.сpp» указывает на то, что этот файл содержит исходный код на языке С++, и он будет транслироваться соответствующим компилятором. Программам на языке С принято давать расширение «.с». После задания имени файла в поле редактора «Имя», получим форму, показанную на рис. 1.12. Рис. 1.11. Окно выбора типа файла для подключения к проекту Рис. 1.12. Задание имени файла, подключаемому к проекту Затем следует нажать кнопку «Добавить». Вид среды Visual Studio после добавления первого файла к проекту показан на рис. 1.13. Добавленный файл отображается в дереве «Обозреватель решений» под узлом «Файлы исходного кода», и для него автоматически открывается редактор. На рис. 1.13 в левой панели в папке «Обозреватель решений» отображаются файлы, включенные в проект в папках. Приведем описание. Папка «Файлы исходного кода» предназначена для файлов с исходным кодом. В этой папке отображаются файлы с расширением .сpp. Папка «Заголовочные файлы» содержит заголовочные файлы с расширением .h. Папка «Файлы ресурсов» содержит файлы ресурсов, например изображения и т.д. Папка «Внешние зависимости» отображает файлы, не добавленные явно в проект, но использующиеся в файлах исходного кода, например включенные при помощи директивы #include. Обычно в папке «Внешние зависимости» присутствуют заголовочные файлы стандартной библиотеки, использующиеся в проекте. Справа в окне редактора наберем программу, приведенную выше. Затем необходимо запустить программу на выполнение, выбрав команды Отладка – Запуск без отладки (или комбинацию клавиш Ctrl + F5 ). Результат выбора пунктов меню для создания нового проекта показан на рис. 1.14. Рис. 1.13. Подключение файла проекта Рис. 1.14. Окно выполнения задачи. Задачи для индивидуального решения: 1. По двум данным катетам найти гипотенузу, периметр и площадь прямоугольного треугольника. 2. В треугольнике известны три стороны A,B и угол c, между ними; найти сторону C, углы a,b. 3. Вычислить объем цилиндра с радиусом основания r и высотой h. 4. Треугольник задан координатами своих вершин. Найти периметр и площадь треугольника. 5. По заданным сторонам прямоугольника вычислить его периметр, площадь и длину диагонали. Вариант 1 1. Вычислить длину отрезка, зная координаты точек A и B. 2. Три сопротивления R1, R2 и R3 соединены параллельно. Найти сопротивление соединения. Вариант 2 1. Вычислите медианы треугольника, заданного сторонами a, b, c. 2. Поменять между собой значения двух переменных X и Y используя только одну дополнительную переменную. Вариант 3 1. Найти площадь кольца, внутренний и внешний радиус которого вводятся с клавиатуры. 2. Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость V0. Вариант 4 1. Вычислить количество часов, минут и секунд, прошедших с начала суток. 2. Поменять местами значения переменных x=>y, y=>z, z=>x используя только одну дополнительную переменную. Вариант 5 1. Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c. 2. Определить время падения камня на поверхность земли с высоты h. Вариант 6 1. Найти площадь грани, площадь поверхности и объем куба, длина ребра которого вводится с клавиатуры. 2. Ввести 4-значное число. Превратить его в 2-значное, отбросив первую и последнюю цифру. Вариант 7 1. Задается длина окружности. Найти площадь круга и шара, ограниченного этой окружностью. 2. Ввести два положительных числа a и b (a>b). Определить на сколько первое число больше второго и во сколько раз первое число больше второго. Вариант 8 1. Угол а задан в градусах, минутах, секундах. Найти его величину в радианах. 2. С клавиатуры вводится трехзначное целое число, поменять местами первую и последнюю цифры в числе. Вариант 9 1. С клавиатуры задается число К, больше 99. Выбросить из записи К цифру, обозначающую сотни. Вывести полученное число на экран. 2. Найти среднее арифметическое трех чисел, вводимых с клавиатуры Вариант 10 1. Задается длина окружности. Найти площадь квадрата, вписанного в эту окружность. 2. Найти среднее геометрическое трех чисел, вводимых с клавиатуры |