Тема 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 exyab, если 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 x1,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 minx,b , minsina,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 xy *min x,y, 2 xy 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 minx,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, minax,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} если ax если если ax ax 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 в противном случае если ax если если ax ax если 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