Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по языкам.doc
Скачиваний:
14
Добавлен:
15.08.2019
Размер:
679 Кб
Скачать
☆
  1. Лабораторная работа №2. Инструкции управления

    1. Цель работы

Целью лабораторной работы является:

  1. Знакомство с логическими выражениями.

  2. Знакомство с инструкциями выбора.

  3. Знакомство с циклами.

    1. Теоретическая часть

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

Операторы сравнения и логические операторы

Значение

К операторам сравнения относятся операторы:

Оператор

сравнения

Значение

==

Равно

! =

Не равно

>

Больше

<

Меньше

>=

Больше или равно

<=

Меньше или равно

К логическим операторам относятся операторы: Логические операторы языка C+

Логический

оператор

Бинарные операторы

&&

И

Или

Унарные операторы

!

Не


Логические условия

Операторы сравнения и логические операторы используют для записи логических условий используемых в инструкциях условий и циклах.

Пример логического условия:

10>9 && 3<23 && 4==4

Логическое условие возвращает True, если оно истинно и False в противном случае.

Инструкции выбора

К инструкциям выбора относятся инструкции if, if...else и переключатель, или как его ещё называют инструкцией множествен­ного выбора (switch). Инструкция выбора заставляет исполняться тот или иной фрагмент программного кода в зависимости от входя­щего в эту инструкцию условия.

Общий синтаксис условной инструкции if:

if(ycAoeue) инструкция_1 или блок_инструкий_1;

Общий синтаксис условной инструкции if...else:

if (условие) инструкция_1 или блок_инструкий_1; else инструкция _2 или блок_инструкий_2;

Циклы for, while и do-while

  • P-S - Цикл - это инструкция языка программирования, позволяю­

щий многократно повторять одну и ту же последовательность инструкций (тело цикла). Различают:

  • циклы с предусловиями;

  • циклы с постусловием.

Предусловие - условие, истинность которого проверяется в начале выполнения тела цикла.

  • - Постусловие - условие, истинность которого проверяется по­

сле выполнения тела цикла.

Цикл for является циклом с предусловием.

Общий синтаксис цикла:

for (установка_началъного_значения счетчика ; условие выполнения_цикла; изменение счетчика) телоцикла;

Цикл while, как и цикл for является циклом с предусловием.

Общий синтаксис цикла:

while(условuе)

телоцикла

Цикл do-while является циклом с постусловием и имеет сле­дующий синтаксис:

do

{

инструкция;

} while (условие);

С клавиатуры вводятся значения переменных х и у. Вычислить значение логического выражения х2 +у2 > 4. Решение этой задачи

показано в листинге 2.1, а результат работы программы показан на рис. 2.1.

Листинг 2.1. Файл Ex002.cs

using System; class Ex002 {

static void Main()

{

double x, y; bool flag;

Console.Write("BBедите значение x> "); x = Convert.ToDouble(Console.ReadLine()); Console.Write("BBедите значение y> "); y = Convert.ToDouble(Console.ReadLine());

flag=x*x+y* y > 4.0;

Console.WriteLine("y^o вие xA2 + yA2 > 4 я в ляется {0}"

flag);

Console.ReadKey();

}

}

Рис. 2.1. Результаты работы программы Ex002

Наглядность результатов работы приложения можно улучшить, если при выводе результатов использовать инструкцию if...else. Исходный текст такой программы показан в листинге 2.2, а результаты работы на рис. 2.2

Листинг 2.2. Файл Ex002a.cs

using System; class Ex002 {

static void Main()

{

double x, y; bool flag;

Console.Write("BBедите значение x> "); x = Convert.ToDouble(Console.ReadLine()); Console.Write("BBедите значение y> "); y = Convert.ToDouble(Console.ReadLine());

flag=x*x+y* y > 4.0;

Console.Write("Уcлoвие xA2 + yA2 > 4 является "); if(flag)

Console.WriteLine("истинным.");

else

Console.WriteLine("ложным."); Console.ReadKey();

}

}

Я1 C:\Windows\system32\cmd.exe

CD

СЁ),

Введите значение x> 1 Введите значение y> 1

Условие хл2 + ул2 > 4 является ложным.

ж

<

v

ill


Рис. 2.2. Результаты работы программы Ex002a

Выполнить табуляцию функции:

Г2х3 + 4х,п их<а , _ ,, .

У = 1 m (2.1)

(, 50,п их>а

вблизи одной из точек а пересечения графиков функций f = 2х3 + 4х и f2 = 50. Приближенно, такую точку можно найти графически (рис. 2.3). Из рисунка следует, что а ~ 2,7. Для определения этой точки возможно применение среды MathCad. Программа, решающая поставленную задачу представлена в листинге 2.3.

Листинг 2.3. Файл Ex003.cs

using System; class Ex002 {

static void Main()

{

double x, x1, x2, dx; double y; int i; int n;

Console.Write("BBедите значение x1> ”); x1 = Convert.ToDouble(Console.ReadLine()); Console.Write(”BBедите значение x2> ”); x2 = Convert.ToDouble(Console.ReadLine()); Console.Write(”BBедите значение n> ”); n = Convert.ToInt32(Console.ReadLine()); dx = (x2 - x1) / n; // приращение аргумента. Console.WriteLine(” x y”);

Console.WriteLine("==================");

// Выполнение табуляции. for (i = 0; i <= n; i++)

{

x = x1 + dx * i; if (x < 2.7)

y=2*x*x*x+4.0*x;

else

y = 50;

Console.WriteLine(” {0:f3}, {1:f6}”, x, y);

}

Console.ReadKey();

}

}

У =

50

\

/

Ул

/

У

= 2

х3 -

f 4х


y

Рис. 2.4. Результаты работы программы Ex003

50

40

30

20

X

2,2 2,4 2,6 2,8 Рис. 2.3. График функции (2.1)

При выводе результатов расчетов, в программе используется форматирование данных. Влияние различного форматирования на

вывод числа показано в прил. 2, В прил. 3 приводятся некоторые стандартные математические методы языка C# необходимые для вы­полнения лабораторной работы.