Лабораторная работа по информатике Тема: «Реализация разветвляющихся вычислительных процессов средствами Excel » Выполнил Студент ФИТ ПИН 1206 Ахмедов Кирилл ЛАБОРАТОРНАЯ РАБОТА №2. РЕАЛИЗАЦИЯ РАЗВЕТВЛЯЮЩИХСЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ СРЕДСТВАМИ EXCEL. Разработать алгоритм для вычисления значений функции 1 2x , x 5 y cos x, 10 x 20 205 x , x 150 и реализовать его в Excel. АЛГОРИТМ В задаче требуется вычислить функцию, вид которой зависит от значения аргумента. Поэтому разобьем числовую ось значениями, указанными в формуле на несколько промежутков, указав при этом, какой должен быть результат вычислений на каждом промежутке: 5 y ФНЗ 10 1 2x 20 y cos x ФНЗ 150 y 205 x ФНЗ-функция неопределенна на промежутках При разработке алгоритма будем рассматривать промежутки числовой оси слева направо. Обозначения: ФНЗ – функция не задана; ФНО – функция не определена. Записывая основной алгоритм решения задачи, вместо вычислений каждой части функции для упрощения будем писать блок1, блок2 и блок3. Поставим в соответствие каждому блоку алгоритм вычисления конкретной функции с учетом её области определения. Последний этап разработки алгоритма решения исходной задачи – подстановка в основной алгоритм вместо блоков 1,2,3 соответствующих вычислительных алгоритмов. РАЗБИТИЕ ФУНКЦИЙ НА БЛОКИ блок 1=1/2x блок 2 = cos x блок 3 = (205 – x)^0,5 СОСТАВЛЕНИЕ АЛГОРИТМА ввод х если х<5 блок1 иначе еслиx<10 «ФНЗ» иначе еслиx<20 блок2 иначе если х<=150 «ФНЗ» иначе блок3 все_если все_если все_если все_если ВЫЧИСЛЕНИЯ В КАЖДОМ ИЗ БЛОКОВ Блок1. Требуется вычислить функцию y нулю. Таким образом, получаем: Если x-3 <> 0 y 1 2x печать у иначе «ФНО» все_если 1 . При вычислении учитываем,что знаменатель не должен равняться 2x Блок2. Требуется вычислить функцию y=cosx. Здесь никаких ограничений на вычисления нет. Таким образом, получаем: y = cos x печать у Блок3. Требуется вычислить функцию y 205 x . При вычислении учитываем, что подкоренное выражение должно быть больше или равно. Получаем: если 205-х>=1 y 205 x печать у иначе «ФНО» все_если В основной алгоритм вместо блоков 1,2,3 подставим алгоритмы вычисления соответствующих частей функции. В итоге получаем алгоритм решения исходной задачи. ввод х если х<5 если x-3<>0 y 1 2x печать у иначе «ФНО» все_если иначе если x<10 «ФНЗ» иначе если x<20 y cos x печать у иначе если х<=150 «ФНЗ» иначе если 205-х>=1 y 205 x печать у иначе «ФНО» все_если все_если все_если все_если все_если РЕАЛИЗАЦИЯ КОДА В VBA И В EXCEL 1.Excel =ECKB(B2-3=0;”ФНО” ЕСЛИB2<5ИB2-3<>0;1/(1\2*2B); ЕСЛИ(B2<10;"ФНЗ"; ЕСЛИ(B2<20;cos(B2); ЕСЛИ(B2<150;"ФНЗ"; ЕСЛИ((250-B2)>0; (250-B2);"ФНО" ) ) ) ) ) ) 2.VBA(ObjectRange) Private Sub CommandButton1_Click() Dim res As range Dim x, yAs Single x = range("B4").Value If x < 5 and 2*x<>0 Then y= 1/(2*x) Else Ifx -3=0 Then range("C4").Value = "FNO" ' Else Ifx<10Then range("C4").Value = "ФНЗ" Else Ifx<20 Then y = cos x range("C4").Value = y Else Ifx<= 150 Then range("C4").Value = "ФНЗ" Else If250 - x<> 0 and 250 – x >0Then y = sqr(250-x) range("C4").Value = y Else range("C4").Value = "FNO" End If End If End If End If EndIf EndSub 3.VBA(cells) Private Sub CommandButton1_Click() Dimx, yAsSingle x = cells(2,4).Value If x < 5 and 2*x <>0 Then y= 1/(2*x) Else Ifx -3 = 0 Then cells(3,4).Value = "FNO" ' Else Ifx<10Then cells(3,4).Value= "ФНЗ" Else Ifx<20 Then y = cos x cells(3,4).Value= y Else Ifx<= 150 Then cells(3,4).Value= "ФНЗ" Else If 250 - x<> 0 and 250 – x >0Then y = sqr(250-x) cells(3,4).Value= y Else cells(3,4).Value = "FNO" End If End If End If End If EndIf EndSub 4.VBA(MsgBox) Private Sub CommandButton1_Click() Dimx, yAsSingle x = cells(2,4).Value If x < 5 and 2*x <>0 Then y= 1/(2*x) MsgBox "y=" &CStr(y) Else If 2*x= 0 Then cells(3,4).Value = "FNO" ' Else Ifx<10Then cells(3,4).Value= "ФНЗ" Else Ifx<20 Then y = cos x MsgBox "y=" & CStr(y) Else Ifx<=1 50 Then cells(3,4).Value= "ФНЗ" Else If 250 - x<> 0 and 250 – x >0Then y = sqr(250-x) MsgBox "y=" &CStr(y) Else cells(3,4).Value = "FNO" End If End If End If End If EndIf EndSub