Uploaded by batlroyal

YaP-LR-01C

advertisement
Тема 1.4. Лабораторная работа
«Программирование алгоритмов разветвляющихся
структур»
Цель данной работы состоит в получении навыков разработки проектов, использующих
алгоритмы разветвляющихся структур.
1.4.1. Вопросы, подлежащие изучению
1.
2.
3.
4.
5.
Стандартные алгоритмы разветвляющихся структур.
Программирование структур разветвления.
Блочный и строчный операторы If.
Использование оператора Switch Case
Алгоритмы, использующие разветвляющиеся структуры.
1.4.2. Задание
Выбрать вариант задания из таблицы 1.4.-1 по усмотрению преподавателя.
Провести формализацию поставленной задачи.
Составить схему алгоритма решения поставленной задачи.
Разработать интерфейс пользователя.
Написать программный код функций пользователя в соответствии со схемами
алгоритмов. Обмен данными между функциями должен осуществляться через параметры,
без использования глобальных переменных.
6. Написать программный код проекта. Событийная функция должна содержать только
операторы вызова пользовательских (общих) процедур.
7. Подготовить тесты для контрольного решения задачи.
8. Выполнить созданный проект.
9. Получить решение.
10. Доказать правильность полученных результатов на заранее разработанных тестах для
всех ветвей программы.
1.
2.
3.
4.
5.
1.4.3. Варианты заданий
Таблица 1.4.-1
1)
max{x3,lg(xy)cd },
e= 
3min x,y,max cx,dy

2cd  x,


2)

если xy  3
, если 0  xy  3
если xy  0

z= 1 exyab,
если xy  0


b-min
ax,y
,
если xy  0




max x3, e y , ln y 2 ,еcли xy  0



3)

x b2  c 2 ,
z= 

2
min b,x ,x  c ,

max lnb,x  c ,


если x  1
если x  0
в противном случае
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 32
4)

a b
max  , , y ,
z= 
x x


3 2
min ax ,by ,

 2x  y ,




5)
если x  0 и y  0
в противном случае

3
2
если y  0 и xy2  0
max{y , 1  (zx) } ,
g= 

2
min a  x,max y,z  , если y  0 и xy  0

 bey,
в противном случае


x  a
min  x , a  x,sinx , если 0  x  1

f= 

если x  1
max x,ax}

если x  0
ax  b,


6)
если x  0 и y  0


7)
8)



3 x1,max lgx,x  y
min x ,e
d= 

2
1 x ,

2
max{c x,dcos(x  y)} ,


,если x  0 и e-x  y
если x  0 и e-x  y
в противном случае

 b2  c2 ,
если 3  x  4


z=
2
min a,max{x ,y,c , если x  3


3
в противном случае
max ax  c,y ,


a
,sin2y ,если x  y
min a  cosx,
b

y




9)
z= 


3
2
2
max a ,ln(x  y ) ,


3
a  cos (x  y),


10)
если x  y  5

cx 2
min{cos(1 
), sin2x} ,
если 0  x  1
b
d= 

max c,x,min x , b  c ,если x  1

ebx c ,
если x  0



11)
если y  x  y  5

bx+1,
если 0<x<1


h  min |bx| , x3 ,x  b , если x  0

max cosbx, x  c ,
в противном случае


max x,y ,
если x  0

P= 
если -1  x  0
minx,b ,

minsina,cosb,max x2 ,a  b ,в противном случае



12)

Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 33
13)

 x  y  z,

r= min x , y , z ,



3
max x,y   a,




xy
если z
3
x y
если z
4

14)
если 3  z
x y
4

 x dy3 ,
если x  1 , y > 2


r=
min y , x , c , если x  0

max lg2bx , yc3 ,
в противном случае


15)


asinx  bcosx,
s= 

3 x 3
max x ,e ,10 ,


 sinx
,max ax ,x3
min 
 x


16)

если x  2
если x  3
 , xln2x } , в противном случае

(1 x2  a)*max x,y ,если xy  0
t= 

2
если xy  2
min x ,siny,cos(ay) ,

 2 x
в противном случае
a  ,
y


17)
18)
lnx  min{x , z} ,
u= 
если z>0 и x  0

2 2 2
max x ,z  a ,min{x,z} , если z<0 и x  0


 x+z , в противном случае

2 3
если x  3
min bx ,cx ,max c , x ,

f=

2 x
если x  3
max{b-cx , e }

b2

,
в противном случае
arctg 2
c  x2



19)
min{x , z} ,
если z<0 и x<0


z  max x,3 x+z,cos xz , если z>0 и x>0


 x+z , в противном случае
20)
a  b  c

xy
*min  x,y,

2
xy

v= 

2 3
max x ,y ,

 y(a  b  c),




21)
 3
 x  a siny,
h= 
max x,y,z ,


3
min x , by, |z| ,


,
если x  3 и y<0
если x  0 и y  1
в противном случае
y
z
если z | x |y  z  10
если x
в противном случае
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 34
22)
min x,y ,

z=  max cosx, siny, bx

minx,b 

b  y  sinx,


,
если
xy  2
если
xy  5
в противном случае
23)
max{c, x  min{y, z}, y-z} если yz>0 и x  0


h  min x,y2 },
если yz<0 и x  0

1 ,
в противном случае

24)

 x-a
2
min  x , a + x, sin x , если x  [0,1]

l= 
x
если x<0
max x,a ,

если x>1
0,




 
25)
ay2cosx,

Z= 
3
min |ax|,x ,x  c

max bx,x-a ,


26)
если xy  2
, если xy  0
в противном случае

если y>2 и x  0
 x+ a,
minax,y,sin xy , если y  2 и x  0

max ex ,x  ay , в противном случае

min{max{cy, x }, y, z}, если yz>0 и x  0
z= 
3
если yz<0 и x  0
min tgx,z },

15 ,
в противном случае

z= 

27)
28)

min{cos2ax,sin3 x, a-x}


l  ea x ,

max{ln|a+x|, |x|, 1}

если
ax
если
если
ax
ax
29)
max{sin2bx,cos2b, b+x} ,


l  0,

min{x, |bx|, ln|x|} ,


30)
min{ |cos(ax)|, sin2x}

y=  ax
e ,

max{a+x, |x|, ax}

31)
max{min{c+y,


h  min sin x,z3 },

1 ,


x }, y, x+z},
если
2 x  2
если x  -2
в противном случае
если
ax
если
если
ax
ax
если yz>0 и x  0
если yz<0 и x  0
в противном случае
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 35
1.4.1. Содержание отчета
Тема и название работы.
Задание на разработку проекта и вариант задания.
Формализация задания
Разработка проекта:
4.1.Графический интерфейс пользователя;
4.2. Таблица свойств объектов;
4.3. Схемы алгоритмов процедур пользователя;
4.4. Программный код с использованием процедур.
5. Результаты выполнения проекта.
6. Доказательство правильности работы программы.
1.
2.
3.
4.
1.4.5. Пример выполнения задания
1.
2.
Тема и название работы:
Программирование алгоритмов разветвляющихся структур – Вычисление значения
сложной условной функции.
Задание на разработку проекта и вариант задания:
Создать проект с именем Проект-1-4-Лаб для вычисления значения функции r=f(x,y,z):
min(x 2 ,sin y,cos z),

r  max(ex  y ,ln z2 ),
 x  y  z,

если y  x
если x  y  z
в противном случае
Разработать приложение для решения задачи и получить результаты.
Формализация задания:
Алгоритм решения данной задачи представляет собой комбинацию вычисления
сложной функции с условием и выбора наименьшего (наибольшего) из нескольких
значений. Он использует все виды разветвлений и программируется с использованием
как однострочных, так и блочных операторов If. Данная задача решается с помощью
процедуры-функции Razv(), которая, получив в качестве входных параметров
аргументы x,y,z, возвращает вычисленное значение. Вызов этой процедуры-функции
Razv() производит процедура vivod(), которая осуществляет вывод полученного
значения заданной функции в текстовое поле TextBox1.
4. Разработка проекта:
4.1. Разработка графического интерфейса пользователя
Разработанная форма интерфейса пользователя приведена на рис. 1.4-1.
3.
Рис. 1.4-1
4.2. Установка свойств объектов
Свойства объектов управления разработанной формы приведены в таблице 1.4-2.
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 36
Таблица 1.4-2
Имя объекта Свойство
Значение свойства
form1
Name
Form1
Text
ЛР по теме:Разветвляющиеся
label1
Разветвлсст.струры.
Text
Вычислить
значение r=f(x,y,z)
ImageAlign MiddleCenter
label2
Text
X=
ImageAlign MiddleCenter
Объект
Форма
Метка
Метка
Метка
Метка
Метка
Текстовое поле
Текстовое поле
Текстовое поле
Текстовое поле
Кнопка
label3
label4
label5
textbox1
textbox2
textbox3
textbox4
button1
Кнопка
button2
Text
Text
Text
Name
Name
Name
Name
Name
Text
Name
Text
Y=
Z=
R=
TextBox1
TextBox2
TextBox3
TextBox4
Button1
Вычислить r=f(x, y, z)
Button2
Конец
4.3. Разработка схемы алгоритма
Схема алгоритма представлена на рис. 1.4-2.
Начало
Ввод
x, y, z
Да
Нет
y<x
r1=Siny
r2=Cosz
r=x2
Да
r1<r
Нет
Да
y≤z
Нет
r1=Lnz2
r2=ex+y
r=r1
Да
r=r2
r2<r
Нет
Да
r=r1
r=x+y+z
Нет
r1>r2
r=r2
Вывод
r
Конец
Рис. 1.4-2
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 37
4.4. Написание программного кода с использованием процедур
Программный код решаемой задачи представлен на рис. 1.4-3.
private void button1_Click(object sender, EventArgs e)
{
double x = Convert.ToDouble(textBox1.Text),
y = Convert.ToDouble(textBox2.Text),
z = Convert.ToDouble(textBox3.Text);
double r1, r2, r;
if (y < x)
{
r1 = Math.Sin(y);
r2 = Math.Cos(z);
r = x * x;
if (r1 < r) r = r1;
if (r2 < r) r = r2;
}
else
{
if (y <= z)
{
r1 = Math.Log(z * z);
r2 = Math.Exp(x + y);
if (r1 > r2) r = r1;
else r = r2;
}
else
r = x + y + z;
}
textBox1.Text = Convert.ToString(r);
}
Рис. 1.4-3
5.
Результаты выполнения проекта
Результаты работы проекта Проект-1-4-Лаб представлены на рис. 1.4-4.
Рис. 1.4-4
6.
Доказательство правильности работы программы
Разработаны следующие тестовые исходные данные для контрольного решения
задачи, проверяющие все ветви процедуры функции:
x=2
y=1
z=1
x=1
y=2
z=3
x=1
y=3
z=2
При тестовых данных результаты ручного расчета и вычисления на ПК совпадают.
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 38
1.4.6. Контрольные вопросы по теме
«Программирование алгоритмов разветвляющихся
структур»
1. Что такое разветвляющаяся структура?
2. Какие имеются типы разветвляющихся структур?
3. Когда необходимо вкладывать одну структуру стандартного разветвления в другую
структуру стандартного разветвления?
4. Можно ли вложить структуру стандартного разветвления в структуру усеченного
разветвления?
5. Как описываются логические переменные?
6. Какие логические константы известны?
7. Что такое простое условие?
8. Что такое сложное условие?
9. Каковы правила вычисления логических выражений?
10. Чем отличается строчный оператор If от блочного оператора If?
11. Когда используется оператор Switch?
12. В каких случаях необходимо использовать оператор If, а в каких оператор Switch ?
13. Каковы правила записи оператора If?
14. Каковы правила записи оператора Switch?
15. Какие операторы относятся к условным операторам?
16. Как называется оператор If?
17. Как называется оператор If -else?
18. Для чего предназначен оператор If?
19. Что может быть в операторе условного перехода между словами If?
20. Какими могут быть разветвляющиеся алгоритмы?
21. Какими операторами реализуются разветвляющиеся алгоритмические структуры?
22. Когда скобки тела оператора должны обязательно присутствовать в операторе
условного перехода If?
23. Какова последовательность операторов, в результате выполнения которых будет
найдено наибольшее значение двух переменных?
24. Какова последовательность операторов, в результате выполнения которых будет найдено
наибольшее значение трех переменных?
25. Может ли условное выражение ! (X<= 10 | | X >= 20 ) использоваться для проверки
условий?
26. Чему будет равно значение выражения R = ! (a || b || (x> 2 && y< 0)) при a = False,
b = False, x = 3, y=2?
27. Какие идентификаторы являются именами операций?
28. Как можно проверить правильность работы разветвляющихся программ?
Тема 1.4. ЛР «Программирование алгоритмов разветвляющихся структур»
Страница 39
Download