IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 5. diel - Podmienky (vetvenia)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Libor Šimo (libcosenior):12.2.2016 15:00

Skoda ze tu nie je vysvetlena podmienka (funkcia) IIf().

Odpovedať
12.2.2016 15:00
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá na Libor Šimo (libcosenior)
Michal Žůrek - misaz:12.2.2016 15:02

iif je v podstatě ternární operátor.

 
Odpovedať
12.2.2016 15:02
Avatar
Odpovedá na Michal Žůrek - misaz
Libor Šimo (libcosenior):12.2.2016 15:05

V cecku je napr.
a = c < d ? c : d;
Ako by to bolo s iif?

Odpovedať
12.2.2016 15:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá na Libor Šimo (libcosenior)
Michal Žůrek - misaz:12.2.2016 15:11

je to funkce s třemi parametry, podmínka co vrátí, když je podmínka pravdivá a co vrátí když podmínka neplatí.

 
Odpovedať
12.2.2016 15:11
Avatar
Odpovedá na Michal Žůrek - misaz
Libor Šimo (libcosenior):12.2.2016 15:15

Uz je mi to jasne.
a = IIf(c < d, c, d)
Je to spravne?
Daju sa aj spajat ako v cecku?
a = IIf(c < d, c, IIf(c = d, d, a))
Sorry, trva mi to dlhsie, pisem na malom tablete.

Editované 12.2.2016 15:18
Odpovedať
12.2.2016 15:15
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovedá na Libor Šimo (libcosenior)
Michal Žůrek - misaz:12.2.2016 16:45

jo jde to, je to obyčejná funkce.

 
Odpovedať
12.2.2016 16:45
Avatar
Jana Morče
Člen
Avatar
Jana Morče:5.6.2017 11:45

Ahoj, dělala jsem tu první kalkulačku bez Select case, ale kalkulačky mi nefungovala bez kontroly správnosti volby (Else). Respektive výsledek skončí vždy (kromě sčítání samozřejmě, to je první If. Což by ale nemělo, neboť aplikace je "vypodmínkovaná" tak, aby reagovala na každou ze 4 možností. Mám to prostě takhle a bez Else funguje jen to sčítání; s Else funguje vše..Děkuji moc za radu..

Module Module1

Sub Main()
Console.Write­Line("Vítejte ve virtuální kalkulačce.")
Console.Write­Line("Zadejte první číslo: ")
Dim a As Single = Console.ReadLine()
Console.Write­Line("Zadejte druhé číslo: ")
Dim b As Single = Console.ReadLine()
Console.Write­Line("Zvolte si operaci:")
Console.Write­Line("1 - sčítání")
Console.Write­Line("2 - odčítání")
Console.Write­Line("3 - násobení")
Console.Write­Line("4 - dělení")
Dim volba As Integer = Console.ReadLine()
Dim vysledek As Single = 0
If volba = 1 Then
vysledek = a + b
If volba = 2 Then
vysledek = a - b
If volba = 3 Then
vysledek = a * b
If volba = 4 Then
vysledek = a / b
End If
End If
End If
End If
If volba > 0 And volba < 5 Then
Console.Write­Line("Výsledek: " & vysledek)
Else
Console.Write­Line("Neplatná volba!")
End If
Console.Write­Line("Děkuji za použití kalkulačky, aplikaci ukončíte libovolnou klávesou..")
Console.ReadKey()

End Sub

End Module

 
Odpovedať
5.6.2017 11:45
Avatar
Odpovedá na Jana Morče
Michal Žůrek - misaz:5.6.2017 20:41

tvé podmínky, když je správně odsadíš vypadíjí přibližně následovně

If volba = 1 Then
        vysledek = a + b
        If volba = 2 Then
                vysledek = a - b
                If volba = 3 Then
                        vysledek = a * b
                        If volba = 4 Then
                                vysledek = a / b
                        End If
                End If
        End If
End If

a jak že to vlastně funguje? Pokud platí první podmínka (volba = 1), tak se jednak provede matematická operace a kontorluje se druhá podmínka, ale ta se má přece kontrolovat pokud první podmínka neplatí.... Po posunutí End If na správne řádky by to mělo vypadat následovně.

If volba = 1 Then
        vysledek = a + b
End If
If volba = 2 Then
        vysledek = a - b
End If
If volba = 3 Then
        vysledek = a * b
End If
If volba = 4 Then
        vysledek = a / b
End If

teď se všechny podmínky zpracují nezávisle na sobě a operace se provede jen pro vybranou volbu (ostatní podmínky, které se kontrolují sekvenčně za sebou nezareagují).

 
Odpovedať
5.6.2017 20:41
Avatar
cinkim
Člen
Avatar
Odpovedá na Michal Žůrek - misaz
cinkim:30.10.2018 16:24

Podmínky jsem pochopil. Ale nechápu proč paní rovnou přiřadila do proměnné výsledek = 0, když se potom v podmínkách provádí výpočty a proměnná se změní. Stačí přeci pouze Dim vysledek As Single.
Nebo se pletu?

 
Odpovedať
30.10.2018 16:24
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!