Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Теперь рассмотрим, как работает оператор ветвления, операторы выбора и как реализуются циклы




ЦЕЛЬ РАБОТЫ

Получить практические навыки использования объектно-ориентированного языка C# приобретение навыков практического применения знаний для создания простейших программ с неразветвлённым вычислительным процессом.


ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

 

Microsoft.NET Framework

Microsoft.NET Framework – это, предложенная компанией Microsoft, программная технология, основной задачей которой является предоставление разработчику набора очень удобных средств для разработки как простых программ, так и web приложений.

Так сложилось, что.net получилась у Microsoft, как некая работа над всеми ошибками – .net вобрал в себя все самое лучшее, что когда либо придумали ее конкуренты:

  • удобные возможности синтаксиса, крайне похожего на С++
  • заимствованные из Java удобства объектной модели
  • простота C++ Builder в плане построения оконных приложений и методов для доступа к переменным
  • безопасный код

и это лишь малая часть тех удобств, которые получили программисты.

Хоть скорость работы идентично реализованных алгоритмов на языках C# и С++ различаются примерно в 2 раза (в пользу С++), при использовании unsafe (небезопасного) кода, C# практически догоняет по скорости выполнения С++, недобирая всего нескольких процентов. Если учесть то, насколько сильно распространена операционная система Windows, а так же насколько удачным получился продукт, то справедливо предположить, что специалисты в данной области будут очень востребованы в ближайшем будущем.

Подобно технологии Java (объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems), среда разработки .NET из исходного кода программы создаёт байт-код, предназначенный для исполнения виртуальной машиной (программной или аппаратной средой, исполняющей некоторый код (например, байт-код или машинный код реального процессора).

Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language), или CIL (Common Intermediate Language) или просто IL. Применение байт-кода предназначено для получения кроссплатформенности на уровне скомпилированного, а не только на уровне исходного текста программы, как, например, в языке С. С помощью JIT-компилятора (just in time, компиляция на лету), непосредственно перед запуском сборки, в среде исполнения CLR происходит преобразование байт кода в машинные коды целевого процессора. Для native сборки (компиляция в родной для ОС код) можно выполнить с помощью утилиты NGen.exe, которая поставляется вместе с .Net Fremework.

Часто разработчикам приходиться писать программы на разных языках программирования. Библиотека классов .NeT Framerowk позволяет разработчикам использовать один программный интерфейс для всех функциональных средств CLR. Универсальность библиотеки классов .net является одной из ее сильнейших сторон.

2 Краткие основы синтаксиса C# (в сравнении с С++)

Теперь мы кратко рассмотрим синтаксис C#, после чего перейдем к созданию собственных оконных приложений, и изучим методы работы с элементами окон, которая в несколько раз проще, удобнее и быстрее, чем разработка под MFC или чистый Win32 API. Как мы уже отметили, синтаксис языка C# крайне похож на С++. Не будем отказывать от традиций и создадим наше первое приложение – Hello World.
Для этого откройте редактор MS Visual Studio (все примеры будут проходить на MS Visual Studio 2008, SP1 с русскоязычным интерфейсом, который более понятен для начинающих программистов), хотя мы и рекомендуем использовать английскую версию.

Во избежание copy-past’ов (т.е. копирования готового кода непосредственно в программу), все исходные коды будут отображаться на изображениях. Заполнение кода в Visual Studio стало крайне удобным, благодаря отлично реализованной системы подсказок, поэтому набор кода не должен составить никаких проблем. Запустите MS Visual Studio, после чего создайте новый проект, используя меню файл, как показано на рисунке 1.
Файл -> Создать -> Проект..



Рисунок 1. Создание нового проекта.

Выберите проекты Visual C#, В шаблонах отметьте Консольное приложение и введите имя для нашего проекта: Hello World. По умолчанию все проекты сохраняются в папке
«Мои документы» текущего пользователя Visual Studio 2008Projects

Рисунок 2. Выбор типа проекта В открывшемся окне редактора будет код шаблона простейшего приложения .net на языке C#.

В него нам необходимо добавить 2 строки кода: первая будет выводить на экран сообщение “Hello World”, вторая будет ожидать строку, введенную пользователем, только после которой программа завершится. Ожидание ввода нам необходимо, что бы успеть прочитать вывод строки программой, иначе мы просто не успеем его увидеть – программа выполнит код и завершиться.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace HelloWorld
{

class Program
{

static void Main(string[] args)
{

// выводим текст в консоль
System.Console.Write("Hello world again");

// ждем ввода строки от пользователя,
// после которого завершиться выполнение программы
String str = System.Console.ReadLine();

}
}

}

После того как вы набрали данный код, достаточно нажать F5 и подтвердить необходимость компиляции.
Программа будет запущена, после чего вы сможете увидеть результат ее работы (рисунок 3)



Рисунок 3. Программа вывела строку и ожидает ввода от пользователя.

Теперь более подробно коснемся синтаксиса С#. Объектно-ориентрованным языкам свойственно иметь две большие категории типов: типы которые присущи языку («базовые типы») и классы, которые программист может создать самостоятельно.

В соответствии с логикой – это кажется в полнее нормально и удобно, хотя на практике, оказывается, несет в себе ряд проблем несовместимости типов между собой. Проблема возникает в том случае, если, к примеру вы хотите создать метод, принимающий аргументы любого типа, которые может поддерживать данный язык программирования.

В .NET и С# нет такой проблемы, т.к. любая сущность CTS (Common Type System – уникальная система типов, принятая в.NET) является объектом. Причем базовым классом является System.Object. Все типы в C#.NET делятся на РАЗМЕРНЫЕ

ТИПЫ и ССЫЛОЧНЫЕ ТИПЫ.

Размерные типы содержат реальные данные и следовательно не могут быть равны null.
Именование типов очень напоминает С++
Int, long, char,
За исключением того, что для беззнаковых чисел упрощено именование: теперь для этого используется первый символ “ u ” перед названием типа, вместо слова «unsigned» использовавшегося в С++.

На практике, написать uint намного удобнее, чем unsigned int.
Ссылочные типы крайне похожи на ссылки в С++. Правда, в отличи от указателя в С++, ссылочный тип гарантирует, что ссылка указывает на объект заданного типа в памяти, либо может быть равна null.
К примеру

string str = “This is a test”;

Т.е., в данном случае, на практике было выделено место в памяти и str содержит ссылку на него.
Массивы и классы в C# являются ссылочными типами.
Типы и псевдонимы (с помощью которых, как правило происходит объявление)

СТS Тип Имя псевдонима в С# Описание
System. Object object Класс, базовый для всех типов (CTS)
System. String string Строка
System. SByte sbyte 8 -разрядный байт (со знаком)
System. Byte byte 8 -разрядный байт (без знака)
System. Ы16 short 16-разрядное число (со знаком)
System. UM16 ushort 16-разрядное число (без знака)
System. Int32 int 32-разрядное число (со знаком)
System. UInt32 uint 32-разрядное число (без знака)
System. Int64 long 64-разрядное число (со знаком)
System. UInt64 ulong 64-разрядное число (без знака)
System.Char char 16-разрядный символ (Unicode)
System. Single float 32-разрядное число с плавающей точкой, (стандарт IEEE)
System. Double double 64-разрядное число с плавающей точкой, (стандарт IEEE)
System. Boolean bool Булевское значение (true/false)
System. Decimal decimal Данный 128 разрядный тип используется в основном, когда требуется крайне высокая точность (до 28 знака)

Теперь рассмотрим, как работает оператор ветвления, операторы выбора и как реализуются циклы

Оператор выбора (условный оператор IF).

Как известно, оператор выбора используется для последующего выполнения или не выполнения некоторого оператора или группы операторов, в зависимости от условия. Если предлагаемое условие истинно, то вложенный оператор или блок кода выполняется. Альтернативная ветвь, которая может присутствовать (а может и нет) выполниться, если условие ложно.

 

if (resault == 777)
{

System.Console.WriteLine("Congratulations, you win!!!!"); // выведет: «поздравляем, вы победили»

}
else
{

System.Console.WriteLine("please, try again "); // выведет: «пожалуйста, попробуйте снова»
System.Console.WriteLine("we are confident - you will be lucky"); //выведет: «мы уверены- вам повезет»

}

Так же, можно использовать упрощенный синтаксис, подобно С++ используя оператор?: (resault == 777)? true: false;

Оператор ветвления

Оператор ветвления может иметь большое количество ветвей, выбор которых осуществляется с помощью значения управляющего выражения. Это очень удобный способ реализации кода, когда существует некий параметр, в зависимости от которого должны выполняться те или иные ветви кода. В C# он реализуется следующим образом:


switch (value)
{

default:
{
System.Console.WriteLine("для этого варианта действие не определено”);
break;
}

case 1:
{
System.Console.WriteLine("Цифра 1”);
break;
}

case 2:
System.Console.WriteLine("Цифра 2”);
break; case 3:
{
System.Console.WriteLine("Цифра 3”);
break;
}

}

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...