******************************************** *** Lineární rovnice: ******************************************** *** - obecně = KDYŽ(C6 <>0; -C7/C6; KDYŽ(C7= 0; "Vyhovuje každé x"; "Nevyhovuje žádné x" ) ) *** - legenda = KDYŽ(C6 <>0; "Lineární rovnice"; KDYŽ(C7= 0; "Vyhovuje každé x"; "Nevyhovuje žádné x" ) ) *** - řešení = KDYŽ(C6 <>0; -C7/C6; "" ) ******************************************** *** Kvadratická rovnice: ******************************************** *** Diskriminant = C15*C15 - 4* C14*C16 *** - Obecně 1. kořen = KDYŽ(C14 = 0; KDYŽ(C15 <>0; -C16/C15; KDYŽ(C16= 0; "Vyhovuje každé x"; "Nevyhovuje žádné x" ) ); KDYŽ(C19 >= 0; (-C15 + ODMOCNINA(C19))/(2*C14); "" ) ) *** - 1. kořen = KDYŽ(C14 = 0; ""; KDYŽ(C19 >= 0; (-C15 + ODMOCNINA(C19))/(2*C14); "" ) ) *** - 2. kořen = KDYŽ(C14 = 0; ""; KDYŽ(C19 >= 0; (-C15 - ODMOCNINA(C19))/(2*C14); "" ) ) *** - legenda = KDYŽ(C14 = 0; KDYŽ(C15 = 0; KDYŽ(C16 = 0; "Vyhovuje každé x"; "Nevyhovuje žádné x" ); "Lineární rovnice" ); KDYŽ(C19 < 0; "Kvadratická rovnice s komplexními kořeny"; KDYŽ(C19 = 0; "Kvadratická rovnice s dvojitým reálným kořenem"; "Kvadratická rovnice s reálnými kořeny" ) ) ) ******************************************** *** VBA Lineární rovnice ******************************************** ' clen = 0 ... výsledek = jen text ' clen = 1 ... výsledek = kořen rovnice nebo nic Function LinRce(a As Double, b As Double, clen As Integer) As Variant If clen = 0 Then If a = 0 Then If b = 0 Then LinRce = "Vyhovuje každé x" _ Else LinRce = "Nevyhovuje žádné x" Else LinRce = "Lineární rovnice" End If Else If a = 0 Then LinRce = "" Else LinRce = -b / a End If End Function ******************************************** *** VBA Kvadratická rovnice ******************************************** ' clen = 0 ... výsledek = jen text ' clen = 1 ... výsledek = 1. kořen rovnice nebo nic ' clen = 2 ... výsledek = 2. kořen rovnice nebo nic Function KvaRce(a As Double, b As Double, c As Double, clen As Integer) As Variant Dim D As Double Dim X1 As Variant Dim X2 As Variant If clen = 0 Then If a = 0 Then KvaRce = LinRce(b, c, clen) Else D = b * b - 4 * a * c If D < 0 Then KvaRce = "Kvadratická rovnice s komplexními kořeny" Else If D = 0 Then KvaRce = "Kvadratická rovnice s dvojitým reálným kořenem" _ Else KvaRce = "Kvadratická rovnice s reálnými kořeny" End If End If Else If a = 0 Then If clen = 2 Then KvaRce = "" Else KvaRce = LinRce(b, c, clen) Else D = b * b - 4 * a * c If D < 0 Then X1 = "" X2 = "" Else X1 = (-b + D ^ (1 / 2)) / (2 * a) X2 = (-b - D ^ (1 / 2)) / (2 * a) End If If clen = 1 Then KvaRce = X1 Else KvaRce = X2 End If End If End Function 'Výpočet faktoriálu cyklem s krokem Function MyForFaktor(n As Integer) As Integer Dim i As Integer Dim f As Integer f = 1 For i = 1 To n f = f * i Next i MyForFaktor = f End Function 'Výpočet faktoriálu s podmínkou na začátku Function MyWhileFaktor(n As Integer) As Integer Dim i As Integer Dim f As Integer f = 1 i = 1 Do While i <= n f = f * i i = i + 1 Loop MyWhileFaktor = f End Function 'Výpočet faktoriálu s podmínkou na konci Function MyUntilFaktor(n As Integer) As Integer Dim i As Integer Dim f As Integer f = 1 i = 1 Do f = f * i i = i + 1 Loop Until i > n MyUntilFaktor = f End Function 'Výpočet faktoriálu s rekurzí Function MyRekFaktor(n As Integer) As Integer If n = 1 Then MyRekFaktor = 1 Else MyRekFaktor = n * MyRekFaktor(n - 1) End If End Function