Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 1234_Прогр.doc
Скачиваний:
61
Добавлен:
14.05.2015
Размер:
399.36 Кб
Скачать

Вариант 1. Создание проекта линейной и ветвящейся задачи

Теперь приступаем к коду. Наша первая программа просто выведет некоторое фиксированное слово в консольное окошко. Вот ее листинг.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication4

{

class Program

{

static void Main(string[] args)

{

//

// TODO: Add code to start application here

//

Console.WriteLine("Привет из C#");

Console.ReadLine();

//---------------------------------------------

}

}

)

Запускаем программу, нажав Ctrl+F5. Результат будет таким:

Разберем текст программы поподробнее. Как вы знаете из предыдущего урока, в .NET Runtime существуют пространства имен. Одно из таких пространств - это System. Вообще-то оно добавляется автоматически в любой проект на C#. Так как мы добавили в нашу программу строчку

...

using System;

...

то мы можем вместо длинных имен использовать более короткие. В частности, вместо System.Console можно писать просто Console. Что мы делаем в строчке

...

Console.WriteLine("Привет из C#");

...

Далее мы в нашей программе объявляем класс Class1. Что такое классы, мы посмотрим в последующих уроках, сейчас же достаточно сказать, что в C# не существует глобальных функций, так что нам ничего не остается, как завести сначала класс и затем функцию Main в нем (функция Main обязательно должна быть в каждой программе на C#, и именно с этой функции и начинается выполнение программы. Обратите также внимание, что эта функция пишется с прописной (большой) буквы. C# различает строчные и прописные буквы, так что это важно). Кроме того, эта функция объявлена с модификатором static. Это означает, что она не относится к конкретному экземпляру класса Class1, а принадлежит всему классу. В нашей функции Main мы просто выводим на экран некоторую строчку методом WriteLine. Для того, чтобы наше консольное приложение сразу не закрыло окно приложения после вывода текста на экран, сразу после метода WriteLine(вывод строки на консоль), мы применили методReadLine(ввод произвольной текстовой строки, завершаемый нажатием клавишиEnter), чтобы консольное приложение ожидало ввода произвольной строки завершаемой нажатием клавишиEnter.

Для улучшения структурирования программного кода в C# используется пространства имен. Для объявления пространства имен используется следующая конструкция:

namespace имя{

определения типов

}

В последующем для обращения к типу, объявленному в пространстве имен, используется конструкция имя.тип. Пространства имен могут быть вложенными. Для подключения классов из какого-либо пространства имен используется конструкция using имя. Если подключено пространство имен, то можно ссылаться на тип и без указания пространства имен.

Рассмотрим более сложную программу, с условиями ветвления. Текст программы введем как продолжение предыдущего примера.

Найти значение следующего выражения:

На языке C# Программа для реализации этого выражения будет выглядеть следующим образом:

//Рассмотрение условий ветвления

double x = 4.0; //варьируем

double y = 1;

double a = 2;

double c = 1;

double b = 0; //варьируем

double f;

if(x < 0 && b != 0)

f = a*(x*x) + b;

else

if(x > 0 && (b == 0))

f = (x-a)/(x-c);

else

f = x/c;

Console.WriteLine(f);

Console.ReadLine();

If служит для разветвления программы на два направления. Если некоторое условие выполняется, то программа идет в одну сторону, если не выполняется - то в другую. Вот сразу пример, определяющий, четное или нечетное число ввел пользователь:

...

class Class1

{

...

static void Main(string[] args)

{

int k = Int32.Parse(Console.ReadLine());

if(b)

{

Console.WriteLine("Четное число");

}

else

{

Console.WriteLine("Нечетное число");

}

Console.ReadLine();

}

}

Как и в других C-подобных языках, фигурные скобочки можно не писать в случае одного оператора. Также написание веточка else тоже не является необходимым - все зависит от конкретной задачи.

Оператор switch примеряется тогда, когда программа должна разделится более чем на два направления (т. е. будем двигаться или сюда, или сюда, или сюда). Вот пример:

int k = Int32.Parse(Console.ReadLine());

Console.WriteLine(k.ToString());

switch (k){

case 1:

case 2:

Console.WriteLine("Неудовлетворительно");

break;

case 3:

Console.WriteLine("Удовлетворительно");

break;

case 4:

Console.WriteLine("Хорошо");

break;

case 5:

Console.WriteLine("Отлично");

break;

default:

Console.WriteLine("Ошибка");

break;

}

В приведенном примере в зависимости от введенного пользователем числа на экран выводится та или иная оценка. Если число k не лежит в промежутке от 1 до 5, то выполняются операторы в веточке default и выводится надпись "Ошибка". Ветока default не обязательна. Обратите внимание на оператор break. Если его не написать, то будут выполнятся операторы из следующей веточки case до строки с break'ом (т. е. в данном примере если пользователь введет 1 или 2, то программы выведет "Неудовлетворительно"). Обратите внимание, что если в некоторой веточке case или default есть операторы, то написание break обязательно. Так, в следующих двух кусках кода есть ошибки:

...

case1:

Console.WriteLine("Совсем неудовлетворительно");

//Ошибка! Тут пропушен break

case2:

Console.WriteLine("Неудовлетворительно");

break;

...

...

default:

Console.WriteLine("...");

//Ошибка! Тут пропушен break

}