Линейные алгоритмы visual studio
Цель лабораторной работы: научиться составлять каркас простейшей программы в среде Visual Studio. Написать и отладить программу линейного алгоритма.
2.1. Структура приложения
Перед началом программирования необходимо создать проект. Проект содержит все исходные материалы для приложения, такие как файлы исходного кода, ресурсов, значки, ссылки на внешние файлы, на которые опирается программа, и данные конфигурации, такие как параметры компилятора.
Кроме понятия проект часто используется более глобальное понятие – решение (solution). Решение содержит один или несколько проектов, один из которых может быть указан как стартовый проект. Выполнение решения начинается со стартового проекта.
Проект это основная единица, с которой работает программист. При создании проекта можно выбрать его тип, а Visual Studio создаст каркас проекта в соответствии с выбранным типом.
В предыдущей лабораторной работе мы попробовали создавать оконные приложения или иначе Приложения Windows Forms. Как пример другого типа проекта можно привести проект консольного приложения.
По своим "внешним" проявлениям консольные напоминают приложения DOS, запущенные в Windows. Тем не менее, это настоящие Win32-приложения, которые под DOS работать не будут. Для консольных приложений доступен Win32 API, а кроме того, они могут использовать консоль - окно, предоставляемое системой, которое работает в текстовом режиме и в которое можно вводить данные с клавиатуры. Особенность консольных приложений в том, что они работают не в графическом, а в текстовом режиме.
Проект в Visual Studio состоит из файла проекта (файл с расширением .csproj), одного или нескольких файлов исходного текста (с расширением .cs), файлов с описанием окон формы (с расширением .designer.cs), файлов ресурсов (с расширением .resx), а также ряда служебных файлах.
В файле проекта находится информация о модулях, составляющих
данный проект, входящих в него ресурсах, а также параметров построения программы. Файл проекта автоматически создается и изменяется средой Visual Studio и не предназначен для ручного редактирования.
Цель лабораторной работы: научиться составлять каркас простейшей программы в среде Visual Studio. Написать и отладить программу линейного алгоритма.
2.1. Структура приложения
Перед началом программирования необходимо создать проект. Проект содержит все исходные материалы для приложения, такие как файлы исходного кода, ресурсов, значки, ссылки на внешние файлы, на которые опирается программа, и данные конфигурации, такие как параметры компилятора.
Кроме понятия проект часто используется более глобальное понятие – решение (solution). Решение содержит один или несколько проектов, один из которых может быть указан как стартовый проект. Выполнение решения начинается со стартового проекта.
Проект это основная единица, с которой работает программист. При создании проекта можно выбрать его тип, а Visual Studio создаст каркас проекта в соответствии с выбранным типом.
В предыдущей лабораторной работе мы попробовали создавать оконные приложения или иначе Приложения Windows Forms. Как пример другого типа проекта можно привести проект консольного приложения.
По своим "внешним" проявлениям консольные напоминают приложения DOS, запущенные в Windows. Тем не менее, это настоящие Win32-приложения, которые под DOS работать не будут. Для консольных приложений доступен Win32 API, а кроме того, они могут использовать консоль - окно, предоставляемое системой, которое работает в текстовом режиме и в которое можно вводить данные с клавиатуры. Особенность консольных приложений в том, что они работают не в графическом, а в текстовом режиме.
Проект в Visual Studio состоит из файла проекта (файл с расширением .csproj), одного или нескольких файлов исходного текста (с расширением .cs), файлов с описанием окон формы (с расширением .designer.cs), файлов ресурсов (с расширением .resx), а также ряда служебных файлах.
В файле проекта находится информация о модулях, составляющих
данный проект, входящих в него ресурсах, а также параметров построения программы. Файл проекта автоматически создается и изменяется средой Visual Studio и не предназначен для ручного редактирования.
// Раздел подключенных пространств имен
// Пространство имен нашего проекта
public partial class Form1 : Form
Для того чтобы не происходило конфликтов имён классов и переменных, классы нашего проекта также помещаются в отдельное пространство имен. Определяется оно ключевым словом namespace, после которого следует имя пространства (обычно оно совпадает с именем проекта).
Внутри пространства имен помещаются наши классы – в новом проекте это класс окна, который содержит все методы для управления поведением окна. Обратите внимание, что в определении класса присутствует ключевое слово partial, это говорит о том, что в исходном тексте представлена только часть класса, с которой мы работаем непосредственно, а служебные методы для обслуживания окна скрыты в другом модуле (при желании их тоже можно посмотреть, но редактировать вручную не рекомендуется).
Наконец, внутри класса располагаются переменные, методы и другие элементы программы. Фактически, основная часть программы размещается внутри класса при создании обработчиков событий.
При компиляции программы Visual Studio создает исполняемые .exe-файлы в каталоге bin.
Аннотация: Умение писать программы начинается с понимания реализации простейших алгоритмов. Разбор линейного и разветвляющегося алгоритмов на примерах с результатами выполнений программ нам в этом поможет. Цель данной лекции – сформировать однозначное понимание принципов построения программ.
В данной лекции мы рассмотрим множество задач, соответствующих линейному и разветвляющемуся алгоритмам. В каждой задаче будут представлены блок-схемы, коды программ, а также результаты выполнения программ (консоли).
Занятие 1. Программная реализация линейного алгоритма
Пример 1. Даны числа . Вычислить сумму и разность чисел и .
Приведем блок-схему на рис. 4.1.
Код программы (Visual Studio):
Результат выполнения программы (Visual Studio):
Результат выполнения программы(Visual Studio):
Код программы (Borland C++):
Результат выполнения программы(Borland C++):
Примечание. Чтобы не возникало ошибок при вычислении логарифма, надо поставить условие на аргумент , поэтому данная задача будет рассмотрена ниже при реализации разветвляющегося алгоритма.
Когда требуется записать программно сложную математическую функцию, ее мысленно разбивают на внутреннюю и внешнюю. Например, если дано выражение , то внешней функцией будет возведение в квадрат, а внутренней – тангенс от . Поэтому сначала начинают писать функцию возведения в степень: pow( , 2.0) , а потом вписывают на первое место тангенс: pow( tan(x), 2.0) .
Когда требуется записать дробь, то ее мысленно разбивают на числитель и знаменатель. если в числителе или знаменателе стоит выражение, а не одно число или одна переменная, то все выражение берут в скобки: " />
будет выглядеть в программе как . Но дробь " />
будет записана в виде .
Пример 3. Составить блок-схему и программу для вычисления значений функций " />
и \sin^2(\sqrt+1.5)" />
при различных значениях аргументов . Переменные считать с клавиатуры.
Microsoft Visual Studio — это набор инструментов разработки, основанных на использовании компонентов и других технологий для создания мощных, производительных приложений.
Кроме того, среда Visual Studio оптимизирована для совместного проектирования, разработки и развертывания корпоративных решений.
Также Visual Studio позволяет создавать проекты, имеющие пользовательский интерфейс (GUI), работая с разными компонентами, такими как формы, кнопки, списки, меню и т.д.
В рамках данного курса мы будем рассматривать лишь программы, работающие в режиме DOS.
Рассмотрим версию Visual Studio 2010.
При загрузке приложения из меню Пуск/Программы/Microsoft Visual Studio 2010 появляется главное окно c начальной страницей программы, которое представлено на рис. 3.1.
Мы будет создавать программы, которые работают в консоли, т.е. взаимодействие с пользователем происходит посредством черного экрана. Данным курсом не предусмотрено создание интерфейсных приложений, т.е. с такими элементами, как кнопки, диалоговые окна, выпадающие списки и т.д.
Для создания программы необходимо нажать Файл/Создать/Проект или нажать на стартовой странице Visual Studio2010 быструю ссылку Создать проект, выделенную синим цветом. После выбора создания нового проекта появится другое диалоговое окно Создать проект, где необходимо выбрать требуемые опции, а именно: в левом столбце необходимо выбрать Visual C++/Win32, справа наверху – Консольное приложение Win32, справа внизу вписать имя проекта (например, proga1 ), в графе расположение выбрать вашу папку, где будут храниться все программы, оставить галочку Создать каталог для решения. Диалоговое окно Создать проект представлено на рис. 3.2.
После этого нужно нажать ОК. Откроется мастер настройки нашего будущего консольного приложения, который представлен на рис. 3.3.
Требуется нажать кнопку Готово. Тогда в главном окне Visual Studio 2010 закроется начальная страница, и откроется файл proga1.cpp (правое верхнее поле), окно вывода ошибок и предупреждений Вывод (правое нижнее поле), Командный обозреватель (левое вертикальное поле). Данный вид представлен на рис. 3.4.
Файл proga1.cpp предназначен для текста программы (или кода программы), здесь мы будем вписывать наши операторы, переменные и функции.
Вместо командного обозревателя можно включить Обозреватель решений, в котором видно все файлы и папки, созданные для нашего нового проекта. Для этого необходимо под Командным обозревателем нажать кнопку Обозреватель решений. Далее в появившемся списке раскрыть папки Файлы исходного кода и Заголовочные файлы. Окно Visual Studio с Обозревателем решений представлено на рис. 3.5.
Когда мы составляем программу в Visual Studio, получается целый проект, который автоматически создается средой Visual Studio. Задача начинающего программиста состоит в том, чтобы напечатать код своей программы в файле *.cpp и запустить программу на выполнение.
Рассмотрим заготовку кода, которую нам предлагает Visual Studio.
Первые две строчки начинаются двумя символами "//". Данные символы означают, что далее на этой строчке следует комментарий, он не воспринимается компилятором как код программы и не будет выдавать ошибку. Удалять эти две строчки не рекомендуется.
Далее начинается функция int main() . Автоматически Visual Studio называет ее _tmain и вписывает аргументы int argc, _TCHAR* argv[] . У нас будут самые простые программы для начинающих программистов, поэтому мы изменяем эту строчку и приводим ее к виду: int main() и оставляем return 0 , или void main() и стираем return 0 . После проведенной нами подготовки необходимо собрать проект, нажав в меню Построение/Построить решение. Тогда в поле Вывод начинается проверка нашего кода. Сейчас проверка прошла успешно и проект построился. Окно Visual Studio после сборки проекта представлено на рис. 3.6.
Попробуем теперь запустить нашу пустую программу. Для этого на клавиатуре необходимо нажать Ctrl+F5 . Тогда появится консоль со стандартной надписью после выполнения программы "Для продолжения нажмите любую клавишу…". Консоль представлена на рис. 3.7.
После просмотра консоли закройте ее, нажав на крестик.
Теперь можно составить простейшую программу, которая напишет на экране фразу "PRIVET, STUDENT. " . В код нашей заготовки нужно добавить несколько строк:
Итак, итоговый код программы представлен на рис. 3.8.
Конечно, в процессе работы с приложением Visual Studio может возникнуть множество вопросов. В меню программы предусмотрена справка и стандартные примеры, которые можно посмотреть. Чтобы включить справку, необходимо нажать Справка/Просмотр справки или воспользоваться горячими клавишами Ctrl+F1 . Чтобы посмотреть примеры кодов, в меню нужно выбрать Справка/Примеры .
При рассмотрении разветвляющегося алгоритма будет разобран набор задач и примеров, которые являются усложненными версиями уже разобранных выше задач.
Будут приведены примеры вычисления функций, заданных на разных промежутках кусочно. Также приведены принцип и примеры расчетов для кусочных функций, заданных на двух промежутках и на трех промежутках.
Пример 5. Даны числа . Вычислить сумму и разность чисел и . Сравнить полученные значения и и указать большее из них.
Блок-схема представлена на рис. 4.5.
Код программы (Visual Studio):
Результат выполнения программы (Visual Studio):
Код программы (Borland C++):
Результат выполнения программы:
Пример 6. Составить блок-схему и программу для вычисления значений функций и при различных значениях аргумента. Учесть область определения функций.
Решение. Рассмотрим области определения функций и . Синус имеет неограниченную область определения, т.е. считается при любом действительном . Поэтому на расчет функции y не будет никаких условий. Логарифм же существует при положительном значении аргумента, т.е. считается при 0" />
. Поэтому, прежде чем считать функцию , необходимо проверить условие "0" />
". Если условие верно, то можно считать . Если ложно, то считать нельзя, и в этом случае мы напишем в ответ, что не существует фразой "".
Блок-схема представлена на рис. 4.6.
Код программы (Visual Studio):
Результат выполнения программы:
Код программы (Borland C++):
Результат выполнения программы:
Пример 7. Вычислить значение функции x+3,&x<1\\4x,&x\ge 1\end
при различных значениях аргумента (аргумент считать с клавиатуры).
Решение: Функция задана как кусочная функция, т.е. при разных значениях она считается по-разному. Следует отметить, что при одном значении аргумента функция будет иметь лишь одно значение, т.е. функция однозначная. График функции представлен на рис. 4.7.
Посчитаем значение функции при . Прежде всего необходимо проверить, какое условие верно: "" или "". Условие для первой ветки функции верно, значит считаем .
Посчитаем значение функции при . Прежде всего необходимо проверить, какое условие верно: "" или "". Условие для второй ветки функции верно, значит считаем .
При расчете кусочной функции так или иначе сначала проводится проверка условия, поэтому вычисление таких функций реализуется через разветвляющийся алгоритм. В данном примере будет один блок разветвления (соответственно один оператор if в программе). Условием будет служить проверка "". Если условие верно, то функция считается по первой ветке, если ложно, то по второй ветке. Второе условие "" будет лишним, т.к. оно соответствует стрелке "нет" от первого условия "".
Примечание. Функция – это функция, которая имеет один аргумент. Не следует путать запись кусочной функции с системой уравнений или системой неравенств, уравнения или неравенства которых также объединены фигурной скобкой. При расчете кусочной функции не решается никакая система уравнений, система неравенств, а просто подставляется конкретное значение аргумента и вычисляется значение функции.
Примечание. При расчете функции не следует сразу рассчитывать обе ветки функции, т.к. в ответ нам нужен только один результат. Корректно составленный алгоритм не должен быть избыточен. Не следует повторять одно и то же по сути условие.
Блок-схема для примера 7 представлена на рис. 4.8.
Код программы (Visual Studio):
Пример 10. Вычислить значение функции x+y,&\text\ xy<0\\x-y,&\text\ 0\le xy\le 5\\y,&\text\ xy>5\end" />
при различных значениях аргументов и (аргументы и считать с клавиатуры).
Решение. В данном примере функция определена на трех промежутках, как в Примере 8. Отличие состоит в том, что зависит от двух переменных и . Для реализации алгоритма разницы нет, поэтому за основу возьмем блок-схему и программу из Примера 8.
Блок-схема представлена на рис. 4.12.
Код программы (Visual Studio):
Пример 11. Найти наибольшее (максимальное) из трех чисел.
Решение. Обозначим три числа буквами . Числа будем считывать с клавиатуры. Для нахождения наибольшего из трех чисел введем еще одну переменную , которая будет хранить наибольшее значение. Принцип нахождения наибольшего значения заключается в следующем. Сначала принимаем как первое число . Потом поочередно сравниваем с оставшимися числами и . Если окажется, что больше уже запомненного , то следует перезаписать , изменив его значение на значение . Если же , то изменять не нужно, поэтому ветвь "нет" будет пустой. Аналогично сравниваем и . После двух сравнений в переменной будет лежать наибольшее из трех чисел.
Примечание. Если чисел будет больше трех, например, пять чисел, то следует сделать четыре сравнения.
Примечание. Если нужно определить наименьшее из трех чисел, то вводят переменную , приравнивают к первому числу. Затем поочередно сравнивают оставшиеся числа: "", "".
Если нужно определить наименьшее из большего числа чисел, например, из пяти чисел, то следует сделать четыре сравнения.
Читайте также: