Неверно что на языке программирования можно создать программу в среде visual studio ответ
Проект к данной лекции Вы можете скачать здесь.
Основной целью этого курса является изучение основ объектного стиля разработки программных проектов. Для программиста, владеющего этими основами, не столь важно, на каком конкретном языке программирования или в какой среде ему необходимо разработать тот или иной программный проект, - на любом языке он будет создавать программный продукт требуемого качества. Тем не менее, у каждого программиста есть свои предпочтения, свой любимый язык и среда разработки .
Международной ассоциацией по стандартизации эта версия языка узаконена как стандарт ISO/IEC - 23270. Заметим, что первая версия стандарта языка была принята еще в 2001 году. Компиляторы Microsoft строятся в соответствии с международными стандартами языка.
Из других важных факторов отметим следующие:
Введение в язык инструментария, характерного для функционального стиля программирования, - лямбда-выражений, анонимных типов и функций. Андреас Хейлсберг полагает, что смесь императивного и функционального стилей программирования упрощает задачи разработчиков, поскольку функциональный стиль позволяет разработчику сказать, что нужно делать, не уточняя, как это должно делаться.
Новые возможности появились при реализации параллелизма в программных проектах.
Параллельные вычисления в ближайшие 5-10 лет станут реальностью повседневной работы программиста. В этом направлении развивается техника. Языки программирования должны поддерживать эту тенденцию.
Visual Studio 2008
Как уже отмечалось, принципиальной новинкой этой версии является возможность построения новых типов программных проектов, что обеспечивается новой версией каркаса Framework . Net 3.5. Если не считать этой важной особенности, то идейно Visual Studio 2008 подобна предыдущим версиям Visual Studio 2005 и Visual Studio 2003.
Рассмотрим основные особенности среды разработки Visual Studio.
Открытость
Таких расширений среды Visual Studio сделано уже достаточно много, практически они существуют для всех известных языков - Fortran и Cobol, RPG и Component Pascal, Eiffel, Oberon и Smalltalk.
Новостью является то, что Microsoft не включила в Visual Studio 2008 поддержку языка Java. Допустимые в предыдущих версиях проекты на языке J++ в Visual Studio 2008 в настоящее время создавать нельзя, ранее созданные проекты в студии не открываются.
В каркасе Framework . Net можно выделить два основных компонента:
- статический - FCL (Framework Class Library) - библиотеку классов каркаса;
- динамический - CLR (Common Language Runtime) - общеязыковую исполнительную среду.
Библиотека классов FCL - статический компонент каркаса
Понятие каркаса приложений - Framework Applications - появилось достаточно давно, оно широко использовалось еще в четвертой версии Visual Studio. Библиотека классов MFC (Microsoft Foundation Classes) играла роль каркаса приложений Visual C++.
Несмотря на то, что каркас был представлен только статическим компонентом, уже тогда была очевидна его роль в построении приложений. Уже в то время важнейшее значение в библиотеке классов MFC имели классы, задающие архитектуру строящихся приложений. Когда разработчик выбирал один из возможных типов приложения, например, архитектуру Document-View, то в его приложение автоматически встраивались класс Document, задающий структуру документа, и класс View, задающий его визуальное представление. Класс Form и классы, задающие элементы управления, обеспечивали единый интерфейс приложений. Выбирая тип приложения, разработчик изначально получал нужную ему функциональность, поддерживаемую классами каркаса. Библиотека классов поддерживала и традиционные для программистов классы, задающие расширенную систему типов данных, в частности, динамические типы данных - списки, деревья, коллекции, шаблоны.
За прошедшие годы роль каркаса в построении приложений существенно возросла - прежде всего, за счет появления его динамического компонента, о котором чуть позже поговорим подробнее. Что же касается статического компонента - библиотеки классов, то здесь появился ряд важных нововведений.
Единство каркаса
Каркас стал единым для всех языков среды разработки. Поэтому на каком бы языке программирования не велась разработка, она работает с классами одной и той же библиотеки. Многие классы библиотеки, составляющие общее ядро, используются всеми языками. Отсюда единство интерфейса приложения, на каком бы языке оно не разрабатывалось, единство работы с коллекциями и другими контейнерами данных, единство связывания с различными хранилищами данных и прочая универсальность.
Встроенные примитивные типы
Структурные типы
Частью библиотеки стали не только простые встроенные типы, но и структурные типы, задающие организацию данных - строки, массивы; динамические типы данных - стеки, очереди, списки, деревья. Это также способствует унификации и реальному сближению языков программирования.
Архитектура приложений
Существенно расширился набор возможных архитектурных типов построения приложений. Помимо традиционных Windows- и консольных приложений, появилась возможность построения Web-приложений. Большое внимание уделяется возможности создания повторно используемых компонентов - разрешается строить библиотеки классов, библиотеки элементов управления и библиотеки Web-элементов управления. Популярным архитектурным типом являются Web-службы, ставшие сегодня благодаря открытому стандарту одним из основных видов повторно используемых компонентов.
Модульность
Число классов библиотеки FCL велико (несколько тысяч), поэтому понадобился способ их структуризации. Логически классы с близкой функциональностью объединяются в группы, называемые пространством имен (Namespace). Основным пространством имен библиотеки FCL является пространство System, содержащее как классы, так и другие вложенные пространства имен. Так, уже упоминавшийся примитивный тип Int32 непосредственно вложен в пространство имен System и его полное имя, включающее имя пространства, - System.Int32.
В пространство System вложен целый ряд других пространств имен. Например, в пространстве System.Collections находятся классы и интерфейсы, поддерживающие работу с коллекциями объектов - списками, очередями, словарями. В пространство System.Collections, в свою очередь, вложено пространство имен Specialized, содержащее классы со специализацией, например, коллекции, элементами которых являются только строки. Пространство System.Windows.Forms содержит классы, используемые при создании Windows-приложений. Класс Form из этого пространства задает форму - окно, заполняемое элементами управления, графикой, обеспечивающее интерактивное взаимодействие с пользователем.
По ходу курса мы будем знакомиться со многими классами библиотеки FCL .
Общеязыковая исполнительная среда CLR - динамический компонент каркаса
Двухэтапная компиляция. Управляемый модуль и управляемый код
Заметьте, PE-файл, имеющий уточнение exe, хотя и является exe-файлом, но это не обычный исполняемый Windows файл. При его запуске он распознается как PE-файл и передается CLR для обработки. Исполнительная среда начинает работать с кодом, в котором специфика исходного языка программирования исчезла. Код на IL начинает выполняться под управлением CLR (по этой причине код называется управляемым ). Исполнительную среду следует рассматривать как виртуальную IL-машину. Эта машина транслирует "на лету" требуемые для исполнения участки кода в команды реального процессора, который в действительности и выполняет код.
Виртуальная машина
Компилятор JIT, входящий в состав CLR, компилирует IL код с учетом особенностей текущей платформы. Благодаря этому создаются высокопроизводительные приложения. Следует отметить, что CLR, работая с IL кодом, выполняет достаточно эффективную оптимизацию и, что не менее важно, защиту кода. Зачастую нецелесообразно выполнять оптимизацию на уровне создания IL кода, она иногда может не улучшить, а ухудшить ситуацию, не давая CLR провести оптимизацию на нижнем уровне, где можно учесть особенности процессора.
Дизассемблер и ассемблер
В этом курсе к ассемблеру мы обращаться не будем, упоминаю о нем для полноты картины.
 (1) Среда разработки программных проектов Visual Studio существует только в версиях, предназначенных для профессиональных разработчиков, что требует приобретения дорогостоящей лицензии при установке на компьютер 
 (2) Существует бесплатная общедоступная версия среды разработки – Visual Studio Community свободно устанавливаемая на компьютере, предназначенная для некоммерческого использования, возможности которой лишь немногим уступают профессиональным версиям 
Упражнение 2: Номер 1
Ответ:
Номер 2
Ответ:
 (1) В консольных проектах при выполнении проекта программа руководит действиями пользователя 
 (2) В Windows Forms проектах при выполнении проекта программа руководит действиями пользователя.  
 (3) Windows Forms проекты реализуют принцип визуального событийно-управляемого программирования, где пользователь является инициатором возникновения событий 
Номер 3
Ответ:
 (1) При создании проекта автоматически создается форма (объект Forms), на которой в процессе разработки интерфейса проекта можно размещать элементы управления Controls 
 (3) Каждый элемент управления, размещаемый на форме, имеет набор свойств, которые можно изменять в окне свойств, доступном при работе с элементом управления 
Упражнение 3: Номер 1
Ответ:
 (1) Все элементы управления, размещаемые на форме в WindowsForms-проектах имеют набор событий 
 (2) При проектировании интерфейса программист может включить то или иное событие у некоторых элементов управления.  
 (3) Для включенного события автоматически создается обработчик события – метод с полностью написанным кодом.  
 (4) Для включенного события автоматически создается заготовка обработчика события. Код, выполняемый этим обработчиком, пишет программист при проектировании интерфейса.  
Номер 2
Ответ:
Номер 3
Ответ:
 (1) Выполнение WindowsForms проекта начинается с выполнения методов, реализующих обработчики событий для всех включенных событий 
 (2) Выполнение метода, задающего обработчик события, начинается тогда, когда пользователь в процессе работы с проектом инициирует возникновение события у элемента управления, связанного с обработчиком события 
 (3) При щелчке пользователя по командной кнопке (элементу управления типа Button) возникает событие Click и начинает выполняться обработчик события даже тогда, когда при проектировании интерфейса событие Click не было включено 
 (4) При щелчке пользователя по командной кнопке (элементу управления типа Button) возникает событие Click и начинает выполняться обработчик события, но только тогда, когда при проектировании интерфейса событие Click было включено 
Упражнение 4: Номер 1
Ответ:
 (1) Вызов метода Console.ReadLine() позволяет в консольных проектах прочесть с консоли строку текста 
 (2) Вызов метода Console.ReadLine() позволяет в консольных проектах прочесть с консоли числовые данные без всяких дополнительных преобразований 
 (3) Для того чтобы с консоли прочесть число типа int , необходимо соответствующее число представить на консоли строкой текста, прочесть эту строку методом Console.ReadLine() , а затем преобразовать эту строку в тип int , вызвав, например, метод int.Parse  
Номер 2
Ответ:
 (1) Вызов метода Console.WriteLine(s) , где s – переменная типа string , позволяет в консольных проектах вывести на консоль строку текста 
 (2) Вызов метода Console.WriteLine(x) , где x – переменная типа int , позволяет в консольных проектах вывести на консоль числовые данные без дополнительных преобразований, поскольку преобразование типа int в тип string при выводе выполняется автоматически 
 (3) Для вывода на консоль данных типа int методом Console.WriteLine необходимо обязательное преобразование типа int к типу string , используя, например, метод ToSring() , поскольку автоматическое преобразование не выполняется 
Номер 3
Ответ:
 (4) При условии, что в текстовом окне textBoxName находится текст: Владимир, в текстовом окне textBoxHello появится текст: Привет, Владимир!  
Упражнение 5: Номер 1
Ответ:
Номер 2
Ответ:
 (3) Определенные в библиотеке классов – Framework Class Library, являющейся частью Visual Studio 
Номер 3
Ответ:
Упражнение 6: Номер 1
Ответ:
Номер 2
Ответ:
Номер 3
Ответ:
 (4) Переменная должна быть объявлена и иметь значение, прежде чем она будет использована в вычислениях 
Упражнение 7: Номер 1
Ответ:
Номер 2
Ответ:
Номер 3
Ответ:
 (1) При выполнении оператора присваивания "x = expr" вычисляется значение и тип выражения expr, стоящегов правой части оператора. Полученное значение выражения суммируется со значением переменной в левой части, если тип выражения expr согласован с типом переменной x. При несоответствии типов значение переменной не изменяется 
 (2) При выполнении оператора присваивания "x = expr" вычисляется значение и тип выражения expr, стоящего в правой части оператора. Полученное значение выражения становится новым значением переменной x, при условии, что тип выражения expr согласован с типом переменной x. При несоответствии типов возникает ошибка, обнаруживаемая еще на этапе компиляции 
 (3) При вычислении выражения правой части все переменные в этом выражении должны быть объявлены и иметь значения 
 (4) В результате присваивания переменная левой части получает значение и тип выражения правой части 
Имена нынешнего поколения продуктов от Microsoft сопровождаются окончанием . Net (читается Dot Net ), отражающим видение Microsoft современного коммуникативного мира. Компьютерные сети объединяют людей и технику. Человек, работающий с компьютером или использующий мобильный телефон , естественным образом становится частью локальной или глобальной сети. В этой сети используются различные специальные устройства, начиная от космических станций и заканчивая датчиками, расположенными, например, в гостиницах и посылающими информацию об объекте всем мобильным устройствам в их окрестности. В глобальном информационном мире коммуникативная составляющая любых программных продуктов начинает играть определяющую роль.
Открытость
- статический - FCL (Framework Class Library) - библиотеку классов каркаса;
- динамический - CLR (Common Language Runtime) - общеязыковую исполнительную среду.
Библиотека классов FCL - статический компонент каркаса
Понятие каркаса приложений - Framework Applications - появилось достаточно давно; по крайней мере оно широко использовалось еще в четвертой версии Visual Studio. Десять лет назад, когда я с Ильмиром писал книгу [В.А. Биллиг, И.Х. Мусикаев "Visual C++, 4-я версия. Книга для программистов"], для нас это было еще новое понятие. Мы подробно обсуждали роль библиотеки классов MFC (Microsoft Foundation Classes) как каркаса приложений Visual C. Несмотря на то, что каркас был представлен только статическим компонентом, уже тогда была очевидна его роль в построении приложений. Уже в то время важнейшее значение в библиотеке классов MFC имели классы, задающие архитектуру строящихся приложений. Когда разработчик выбирал один из возможных типов приложения, например, архитектуру Document-View, то в его приложение автоматически встраивались класс Document, задающий структуру документа, и класс View, задающий его визуальное представление. Класс Form и классы, задающие элементы управления, обеспечивали единый интерфейс приложений. Выбирая тип приложения, разработчик изначально получал нужную ему функциональность, поддерживаемую классами каркаса. Библиотека классов поддерживала и более традиционные для программистов классы, задающие расширенную систему типов данных, в частности, динамические типы данных - списки, деревья, коллекции, шаблоны.
За прошедшие 10 лет роль каркаса в построении приложений существенно возросла - прежде всего, за счет появления его динамического компонента, о котором чуть позже поговорим подробнее. Что же касается статического компонента - библиотеки классов, то и здесь за десять лет появился ряд важных нововведений.
Единство каркаса
Каркас стал единым для всех языков среды. Поэтому, на каком бы языке программирования ни велась разработка, она использует классы одной и той же библиотеки. Многие классы библиотеки, составляющие общее ядро, используются всеми языками. Отсюда единство интерфейса приложения, на каком бы языке оно не разрабатывалось, единство работы с коллекциями и другими контейнерами данных, единство связывания с различными хранилищами данных и прочая универсальность.
Встроенные примитивные типы
Структурные типы
Частью библиотеки стали не только простые встроенные типы , но и структурные типы , задающие организацию данных - строки, массивы, перечисления, структуры (записи). Это также способствует унификации и реальному сближению языков программирования.
Архитектура приложений
Модульность
Число классов библиотеки FCL велико (несколько тысяч). Поэтому понадобился способ их структуризации. Логически классы с близкой функциональностью объединяются в группы, называемые пространством имен (Namespace). Для динамического компонента CLR физической единицей, объединяющей классы и другие ресурсы, является сборка (assembly).
Основным пространством имен библиотеки FCL является пространство System, содержащее как классы, так и другие вложенные пространства имен. Так, уже упоминавшийся примитивный тип Int32 непосредственно вложен в пространство имен System и его полное имя, включающее имя пространства - System.Int32 .
В пространство System вложен целый ряд других пространств имен. Например, в пространстве System.Collections находятся классы и интерфейсы, поддерживающие работу с коллекциями объектов - списками, очередями, словарями. В пространство System.Collections , в свою очередь, вложено пространство имен Specialized , содержащее классы со специализацией, например, коллекции, элементами которых являются только строки. Пространство System.Windows.Forms содержит классы, используемые при создании Windows-приложений. Класс Form из этого пространства задает форму - окно, заполняемое элементами управления, графикой, обеспечивающее интерактивное взаимодействие с пользователем.
По ходу курса мы будем знакомиться со многими классами, принадлежащими различным пространствам имен библиотеки FCL .
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 . Чтобы посмотреть примеры кодов, в меню нужно выбрать Справка/Примеры .
Все элементы, необходимые для создания первого приложения, объединены в специальной программе IDE (англ. Integrated Development Environment), а именно:
- Кодовый редактор
- Транслятор (компилятор и/или интерпретатор)
- Средства автоматизированной сборки
- Отладчик
- Community – полнофункциональная, расширяемая и бесплатная версия интегрированной среды разработки для создания современных приложений Android, iOS и Windows, а также веб-приложений и облачных служб.
- Professional – платная версия, содержащая профессиональные инструменты и службы для индивидуальных разработчиков или небольших команд.
- Enterprise – платная версия, представляющая интегрированное комплексное решение для команд любого размера с высокими требованиями к качеству и масштабу.
Установка Visual Studio
После загрузки необходимо запустить установщик. В открывшемся окне нам предложат выбрать те компоненты, которые мы хотим установить вместе с Visual Studio. Стоит отметить, что Visual Studio — очень функциональная среда разработки и позволяет разрабатывать приложения с помощью множества языков и платформ.
Создание проекта в Visual Studio
Откройте Visual Studio и на стартовом экране выберите пункт «Создание проекта».
В следующем окне зададим название проекта. Пусть будет HelloWorld. На этом этапе также можно указать папку, где будет располагаться проект. После этого нажмите кнопку «Создать».
Visual Studio создаст и откроет проект. Окно будет выглядеть так:
Hello world
Под узлом «Зависимости» расположен непосредственно сам файл кода программы — Program.cs. Как раз он и открыт в центральном окне. Вначале разберёмся, что весь этот код собой представляет:
Пространство имён может включать другие пространства или классы. В нашем случае по умолчанию сгенерирован один класс — Program. Классы объявляются похожим способом: сначала идёт ключевое слово class, а потом название класса, и далее блок самого класса в фигурных скобках.
Слово static указывает, что метод Main статический, а слово void — что он не возвращает никакого значения. Далее в скобках у нас идут параметры метода. string[] args — это массив с именем args, который хранит значения типа string, то есть строки. В данном случае они нам пока не нужны, но в реальной программе это те параметры, которые передаются при запуске программы из консоли.
Внутри метода располагаются действия, которые этот метод выполняет. По умолчанию он содержит одно действие: Console.WriteLine("Hello World!"); - выводит в консоль строку "Hello World!".
Теперь мы можем запустить программу на выполнение с помощью клавиши F5 или с панели инструментов, нажав на зелёную стрелку. И если вы все сделали правильно, то при запуске приложения увидите заветную строку.
Теперь сделаем всё поинтересней — изменим код на следующий:
По сравнению с автоматически сгенерированным кодом были внесены несколько изменений. Теперь в методе Main первой строкой выводится приглашение к вводу.
Класс Console, метод которого мы вызываем, находится в пространстве имён System. Это пространство подключено в начале с помощью директивы using. Без подключения пространства имён System невозможно было бы использовать класс Console.
Однако нам необязательно подключать пространство имён. Мы можем даже удалить первую строку, но в этом случае мы тогда должны будем указать полный путь до используемого класса:
Во второй строке определяется строковая переменная name (тип string), в которую пользователь вводит информацию с консоли:
Мы обозначили, что помощью метода ReadLine() можем считать с консоли строку.
Затем введённое имя выводится на консоль:
Чтобы задать вывод значения переменной name в выводимой на консоль строке, применяются фигурные скобки <>. При выводе строки на консоль выражение будет заменяться на значение переменной name — введённое имя.
Знак доллара ($) обозначает, что внутри строки таким образом можно выводить значения переменных. Теперь протестируем проект, запустив его выполнение.
Читайте также: