Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №2

.pdf
Скачиваний:
38
Добавлен:
21.05.2015
Размер:
539.46 Кб
Скачать

Лабораторная работа №2. Разветвляющиеся алгоритмы. Оператор IF.

1 Цель работы

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

2 Порядок выполнения работы

Получить задание на выполнение лабораторной работы согласно своему варианту (раздел 6). Разработать и отладить программу. Составить и защитить отчет о лабораторной работе у преподавателя.

3 Содержание отчета

наименование и цель работы;

задание на лабораторную работу согласно варианту;

схема алгоритма, текст программы на алгоритмическом языке;

результаты работы программы.

4 Краткая теория

4.1 Условный оператор IF

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

Условные операторы позволяют выбрать один из двух вариантов выполнения действий в зависимости от какого-либо условия. Условие – это логическое выражение, т.е. выражение, результатом которого является логическое значение «истина» (true) или «ложь» (false).

Оператор if выбирает один из двух вариантов последовательности вычислений.

 

 

 

 

 

 

 

 

if (условие)

 

 

 

 

 

 

 

 

оператор1;

 

 

 

 

 

 

 

 

else

 

+

 

условие

 

 

 

оператор2;

 

 

 

 

 

 

 

 

 

оператор 1

 

 

оператор 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если условие истинно, выполняется оператор1, если ложно, то выполняется оператор2.

if (x > y) a = x;

else

a = y;

В этом примере переменной a присваивается значение максимума из двух величин x и y.

Конструкция else необязательна. Можно записать:

if (x < 0)

x = -x; ABS = x;

В данном примере оператор x = -x; выполняется только в том случае, если значение переменной x было отрицательным. Присваивание переменной ABS выполняется в любом случае. Таким образом, приведенный фрагмент программы изменит значение переменной x на его абсолютное значение (модуль) и присвоит переменной ABS новое значение x.

Если в случае истинности условия необходимо выполнить несколько операторов, их нужно заключить в фигурные скобки:

if (x < 0)

{

x = -x;

Console.WriteLine("Изменить значение x на

противоположное по знаку");

}

ABS = x;

Теперь, если x отрицательно, то не только его значение изменится на противоположное, но и будет выведено соответствующее сообщение. Фактически, заключая несколько операторов в фигурные скобки, мы сделали из них один сложный оператор или блок. Прием заключения нескольких операторов в блок работает везде, где нужно поместить несколько операторов вместо одного.

Условный оператор можно расширить для проверки нескольких условий:

if (x<0)

Console.WriteLine("Отрицательная величина");

else

if (x>0)

Console.WriteLine("Положительная величина");

else

Console.WriteLine("Ноль");

Т.е. конструкции else ... if могут быть вложенными друг в друга. При этом каждое else соответствует ближайшему if.

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

Отношение определяется как пара арифметических выражений, соединенных (разделенных) знаком операции отношения (сравнения). Знаки операций отношения:

!= не равно; == равно; < меньше; > больше;

<= меньше или равно; >= больше или равно;

Результатом операции отношения является значение логического типа (true или false). Так, значением операции отношения 6<=44 будет true (истина).

Операции >, >=, <, <= имеют один приоритет и выполняются последовательно, слева направо (если нет скобок).

Операции сравнения на равенство == и != также имеют одинаковый, но более низкий приоритет.

Арифметические операции имеют более высокий приоритет, чем операции отношений.

В языке C# предусмотрены следующие логические операции: ! – отрицание, т.е. логическое НЕ; && – конъюнкция, т.е. логическое И; || – дизъюнкция, т.е. логическое ИЛИ. Они перечислены по убыванию старшинства (приоритета). Как правило, логические операции применяются к отношениям. До выполнения логических операций вычисляются значения отношений, входящих в логическое выражение. Например, если а, b, с - переменные, соответствующие длинам сторон треугольника, то для них должно быть истинно следующее логическое выражение:

а+b>с && а+с>b && b+с>а

4.3 Основные приемы визуального проектирования Windows-

приложений в среде Microsoft Visual Studio

Чтобы приступить к разработке Windows-приложения в среде Microsoft Visual Studio, нужно создать проект соответствующего типа – Windows Forms Application. Это можно сделать, выбрав пункт меню File–>New–

>Project. В открывшемся диалоговом окне слева выбираем язык программирования – C#, справа (тип приложения) – Windows Forms Application. Внизу в строке Name можно задать имя приложения (произвольное, но не очень длинное), а с помощью строки Location и кнопки Browse – указать, где будет располагаться папка с приложением.

Внешний вид уже настроенного окна приведен на рисунке 2.1.

Рисунок 2.1 – Создание нового Windows-приложения

После нажатия кнопки ОК будет создана папка с файлами проекта, а в окне Visual Studio откроется окно визуального проектирования главной формы. По умолчанию она называется Form1.

Чтобы поместить на форму компоненты (элементы управления), следует использовать кнопку ToolBox, которая обычно располагается сбоку (слева или справа) от формы. Если подвести к ней курсор мыши, откроется окно со списком доступных элементов управления (рис. 2.2).

Рисунок 2.2 – Фрагмент окна со списком элементов управления

Чтобы поместить какой-то компонент на форму, щелкаем по нему мышью, а затем щелкаем по требуемому месту на форме (либо просто «перетаскиваем» его мышью на форму). В дальнейшем, когда компонент уже находится на форме, можно мышью отрегулировать его размер и местоположение.

Для настройки свойств формы и элементов управления используется

окно Properties (рис. 2.3).

Рисунок 2.3 – Окно настройки свойств Properties

Для каждого элемента управления имеется свой набор свойств, но некоторые свойства (наиболее часто используемые) присутствуют у многих компонентов. Они приведены в таблице 2.1. Чтобы настроить свойства компоненту, нужно сначала его обязательно выделить мышью.

Таблица 2.1 – Основные свойства элементов управления

Свойство

Назначение

Name

Имя элемента управления в тексте программы

Text

Заголовок окна формы либо текст, связанный с

 

элементом управления (заголовок кнопки, текст

 

надписи, подпись возле флажка и т.п.)

ForeColor

Цвет переднего плана (цвет текста)

BackColor

Цвет фона

 

 

 

Enabled

Позволяет

сделать

элемент

управления

 

доступным/недоступным

 

 

Visible

Позволяет

сделать

элемент

управления

 

видимым/невидимым

 

 

Font

Шрифт элемента управления

 

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

Перечень наиболее часто используемых событий приведен в таблице

2.2.

Таблица 2.2 – Основные события элементов управления

Событие

Когда возникает

 

События мыши

Click

При щелчке мышью внутри элемента управления

DoubleClick

При двойном щелчке мышью

MouseEnter

Когда курсор мыши попадает внутрь элемента управления

MouseLeave

Когда курсор мыши покидает элемент управления

MouseDown

При нажатии кнопки мыши

MouseUp

При отпускании кнопки мыши

MouseMove

При движении курсора мыши

 

События клавиатуры

KeyDown

При нажатии клавиши клавиатуры

KeyPress

При нажатии клавиши клавиатуры

KeyUp

При отпускании клавиши клавиатуры

 

Другие события

Enter

Когда элемент управления получает фокус

Leave

Когда элемент управления теряет фокус

Paint

Когда элемент управления должен быть перерисован

Resize

При изменении размера элемента управления

Load

При первоначальной загрузке формы

Closing

Непосредственно перед закрытием формы (закрытие еще

 

можно отменить)

Closed

Непосредственно после закрытия формы

Activate

Когда форма становится активной

Если при наступлении некоторого события программа должна «что-то делать», то следует создать обработчик данного события. Для этого на форме надо выделить нужный компонент, в окне Properties нажать на

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

Рисунок 2.4 – Пример созданного обработчика события

В данном примере мы создали обработчик события «Нажатие на кнопку» (Click) для кнопки button1. Внутри фигурных скобок нужно написать код, который должен выполниться, если пользователь нажмет на эту кнопку. Например, если это кнопка «Выход», то:

private void button1_Click(object sender, EventArgs e)

{

Close();

}

Чтобы после этого вернуться к форме, жмем на вкладку «Form1.cs

[Design]».

Примечание. Наиболее популярные обработчики событий, например Click для кнопки или Load для формы можно создать также двойным щелчком по соответствующему компоненту.

Важно! Чтобы скопировать проект Windows-приложения в другую папку (например, на флешку), следует нажать на кнопку Save All (, Сохранить все), закрыть Visual Studio и скопировать ВСЮ папку с проектом в нужное место.

5 Пример программы

 

cos 2

x

при 0 x 2,

Вычислить значение выражения:

y

sin x2

иначе.

 

1

 

 

 

 

 

Блок-схема алгоритма решения задачи:

Начало

Ввод x

+x>0 && x<2

 

 

 

 

 

y= cos2 x

 

y=1-sin x2

 

 

 

 

 

 

 

 

 

 

Вывод y

Конец

Для программной реализации алгоритма спроектируем форму следующего вида (рис. 2.5).

Рисунок 2.5 – Экранная форма решения задачи

Метка label2 предназначена для вывода результата. Ее текст устанавливается программно. Поэтому вначале ее содержимое (свойство Text) нужно установить равным пустой строке.

Программный код решения задачи будет записываться в обработчике события Click кнопки button1:

label2.Text = "y = " + y.ToString("F2");.

private void button1_Click(object sender, EventArgs e)

{

double x = Convert.ToDouble(textBox1.Text); double y;

if (x > 0 && x < 2)

y = Math.Pow(Math.Cos(x), 2);

else

y = 1 - Math.Sin(x * x); label2.Text = "y = " + y.ToString();

}

ПРИМЕЧАНИЕ. В последней строке кода программы для вывода результата использована функция преобразования в строку ToString(), особенностью которой является использование форматирования. Например, для того, чтобы числовой результат был округлен с точностью до второго знака после запятой необходимо использовать эту функцию с параметром "F2"; для того, чтобы числовой результат был округлен с точностью до третьего знака после запятой необходимо использовать эту функцию с параметром "F3" и т.д. Таким образом, последняя строка кода может быть записана так:

6 Варианты заданий для самостоятельного решения

В заданиях, предполагающих нахождение минимумов и максимумов нескольких значений, запрещается использование функций Min и Max класса

Math.

1.Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр.

2.Найти среднее арифметическое трех чисел. Если оно больше некоторого числа А, то возвести его в квадрат, иначе удвоить.

 

 

 

 

 

 

 

 

 

 

 

2

2x, при 3

x 10;

 

 

x x

 

 

 

y

 

 

 

 

3.

Вычислить:

cos x sin x, если x 3 или x 10..

 

 

 

 

 

 

 

4.

Вычислить

y a min( x, y, z) b ,

где x,y,z,a,b-вводятся, причем а,b

 

должны быть кратны 5, иначе выдать соответствующее сообщение.

5.

Составить алгоритм и программу вычисления функции (х вводится)

 

x sin 3

x 2 , при x 2

 

0.5;

 

 

 

 

 

 

 

 

 

6.

y

x 3 , иначе.

 

.

 

 

x cos 2

 

 

 

 

 

 

 

 

 

 

 

 

7.Вычислить: y=min{max{a,b},c}, a, b, c, d – даны.

8.Составить алгоритм и программу вычисления функции, x, a, b, c – вводится с клавиатуры.

2x 1, если а b c 20; y

3x3 1, иначе.

9. Вычислить y=min{a,b,c}+max{d,f}, где a, b, c, d, f – даны.

10.Составить алгоритм и программу нахождения корней уравнения ax2+bx+c=0. Предусмотреть варианты двух, одного корня, а также, когда действительных корней нет.

11.Вычислить y=max{a,b,min{c,d}}, a, b, c, d – числа.

12.Составить алгоритм и программу вычисления функции, x вводится с клавиатуры.

x 2 2x 3, если x -1.2 0; y0 1, если х -1.2 0;

x( 8-x( 7-x)), если х -1.2 0.

13.Вычислить:

max( a,b)

y 1 min(c, d ) (а,b,c,d – вводятся).

14.Известно, что из четырёх чисел a, b, c, d одно отлично от трех других, равных между собой. Найти сумму данного числа с любым из трех оставшихся.

15.Вычислить: U = max(x,y)+2*(min(x,y,z)), ( x, y, z – вводится с клавиатуры).

16.Составить алгоритм и программу вычисления функции, x – вводится с клавиатуры.

x3 x 2 3, при x [1;5]; y

2x 2 x3 , иначе.

17.Вычислить: (a, b, c, d – вводятся с клавиатуры)

y

max( a,b) min 2

(b, c)

.

1

max 3 (c, d )

 

 

18.Даны координаты двух точек. Определить, какую из осей пересекает отрезок, соединяющий две этих точки.

19.Вычислить (x вводится с клавиатуры).

x x 2 16, при 5 x 10; y

cos(x) e sin(x), если x 5 или x 10.

20.Составить алгоритм и программу вычисления функции, x, y – вводится с клавиатуры.

 

 

 

, если x - sin(x - 3) 5;

 

x sin x 2 10

y0

 

1, если x - sin(x - 3) 5;

 

3 cos x, если x - sin(x - 3) 5.