Подпись: Лабораторная работа по информатике

Тема:

«Реализация разветвляющихся вычислительных процессов средствами Excel »

Выполнил
Студент ФИТ ПИН 1206
Ахмедов Кирилл

 

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

Реализация разветвляющихся вычислительных процессов средствами Excel.

Разработать алгоритм для вычисления значений функции

и реализовать его в Excel.

Алгоритм

В задаче требуется вычислить функцию, вид которой зависит от значения аргумента. Поэтому разобьем числовую ось значениями, указанными в


формуле на несколько промежутков, указав при этом, какой должен быть

результат вычислений на каждом промежутке:

5 ФНЗФНЗ 150

ФНЗ-функция неопределенна на промежутках

При разработке алгоритма будем рассматривать промежутки числовой оси слева направо. Обозначения: ФНЗ – функция не задана; ФНО – функция не определена.

Записывая основной алгоритм решения задачи, вместо вычислений каждой части функции для упрощения будем писать блок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. Требуется вычислить функцию . При вычислении учитываем, что знаменатель не должен равняться нулю. Таким образом, получаем:

Если x-3 <> 0

печать у

иначе

«ФНО»

все_если

Блок2. Требуется вычислить функцию y=cosx. Здесь никаких ограничений на вычисления нет. Таким образом, получаем:

y = cos x

печать у

Блок3. Требуется вычислить функцию . При вычислении учитываем, что подкоренное выражение должно быть больше или равно. Получаем:

если 205-х>=1

печать у

иначе

«ФНО»

все_если

В основной алгоритм вместо блоков 1,2,3 подставим алгоритмы вычисления соответствующих частей функции. В итоге получаем алгоритм решения исходной задачи.

ввод х

если х<5

если x-3<>0

печать у

иначе

«ФНО»

все_если

иначе

если x<10

«ФНЗ»

иначе

если x<20

печать у

иначе

если х<=150

«ФНЗ»

иначе

если 205-х>=1

печать у

иначе

«ФНО»

все_если

все_если

все_если

все_если

все_если

реализация кода в 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