Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Baze de date


Qdidactic » stiinta & tehnica » informatica » baze de date
Structurile de decizie si selectie



Structurile de decizie si selectie


Structurile de decizie si selectie


Deseori este necesara testare conditiilor specifice inaintea executarii instructiunilor. Structurile de decizie sunt numite si alternative, permit alegerea alternativei, la sfarsitul unei evaluari.

Se disting doua structuri de decizie si selectie:

IFTHENELSE

SELECTCASE

Functia IIF poate fi utilizata si pentru a defini o valoare in functie de o conditie.


INSTRUCTIUNEA IF

    IF

Permite executarea instructiunilor in functie de rezultatul unei conditii.

In general, instructiunile IFTHENELSE pot contine alte structuri de decizie de atatea ori cat este necesar.

Sintaxa multilinie cu indentarea corespunzatoare este mai usor de utilizat.

Sintaxa 1 (pe o singura linie)

If <conditie> Then <instructiuni> [Else <instructiuni>] <instructiuni> poate fi alcatuit de mai multe instructiuni separate de :



Sintaxa 2 (pe mai multe linii)

If <conditie 1 > Then

<secventa de instructiuni 1>

[ElseIf <conditie 2 > Then

<secventa de instructiuni 2>]

[Else

<secventa de instructiuni 3>]

EndIf

Alte posibilitati

If <conditie 1 > Then

<secventa de instructiuni 1>

[Else

If <conditie 2 > Then

<secventa de instructiuni 2>]

[Else

<secventa de instructiuni 3>]

EndIf]

EndIf





Exemplu:

Afisarea rezultatului comparatiei intre A si B:

If A>B Then

MsgBox „A>B”

Else

If A=B Then

MsgBox „A=B”

Else

MsgBox „A<B”

EndIf

EndIf


INSTRUCTIUNEA SELECTCASE

Select Case

Executa secventele de instructiuni specificate in functie de valoarea unei expresii. Permite inlocuirea lui ELSE IF in instructiunile IFTHENELSE in timpul comparatiei intre o expresie si mai multe valori.

Sintaxa:

Select Case <expresia de testat>

[Case <lista de expresii 1>

<secventa de instructiuni 1>]

[Case <lista de expresii 2>

<secventa de instructiuni 2>]

[Case Else

<secventa de instructiuni 3>]


End Select

<lista de expresii> poate lua formele urmatoare:

  • Valoare (Ex. Case 10
  • lista de valori (Ex. Case 1, 5, 10
  • plaja de valori (Ex. Case 1 To 5
  • expresie conditionata(Ex. Case Is >= 5)

Exemplu:

Afisarea unui comentariu despre temperatura

Select Case Temperatura

Case 0

MsgBox(„Ger”)

Case 1 to 10

MsgBox(„Frig”)

Case 10 to 16

MsgBox(„Racoare”)

Case 17, 18, 19

MsgBox(„Temperatura interioara iarna”)

Case 20 to 25

MsgBox(„Agreabil”)

Case Is > 25

MsgBox(„Cald”)

Case Else

MsgBox(„Temperatura nereferentiata”)

End Select


FUNCTIA IIF

IIf

Returneaza o valoare in functie de o conditie.

Sintaxa

IIf (<conditie>, <valoare daca Adevarat>, _ <valoare daca Fals>)

Exemplu

Dim bln As Boolean

Bln = IIF(A=B, True, False)

Este posibila utilizarea mai multor imbricari ale functiei IIF.

Exemplu

Dim IntI As Integer

IntI = IIf(A = B, IIf(B = C, 1, 0),0)


STRUCTURI ITERATIVE

Structurile iterative sau repetitive permit repetarea executiei unui ansamblu de actiuni.

Se pot distinge mai multe tipuri de structuri iterative:

DoLoop

WhileWend

For..Next

For EachNext


DoLoop si WhileWend repeta o prelucrare a datelor pana cand o anumita conditie este realizata, in timp ce For..Next efectueaza o prelucrare de un numar stabilit de ori, in functie de contor.

For EachNext permite parcurgerea elementelor unei colectii.


INSTRUCTIUNEA DOLOOP

Do Loop

Executa o secventa de instructiuni in timp ce (While) sau pana cand (Until) conditia specificata este verificata.

Sintaxa 1: secventa de instructiuni neexecutata (conditia a fost testata inaintea secventei).

Do [<conditions>]

<Secventa de instructiuni>

[Exit Do]

<Secventa de instructiuni>

Loop

Sintaxa 2: secventa de instructiuni executata cel putin odata (conditie testata dupa secventa).

Do

<Secventa de instructiuni>

[Exit Do]

<Secventa de instructiuni>

Loop [<conditions>]

Observatie:

Exit Do este deseori folosita dupa evaluarea unei conditii interne iteratiei si permite iesirea din aceasta fara verificarea conditiei de control.

Exemplu:

Calcularea si afisarea cheltuielilor anuale:

Dim intCpt Integer

Dim CheltAn As Currency

CheltAn = 0

IntCpt = 0

Do

IntCpt = IntCpt + 1

CheltAn = CheltAn + CheltTot(IntCpt)

Loop Until IntCpt = 12

MsgBox („Cheltuieli Anuale = ” & CheltAn)


INSTRUCTIUNEA WHILEWEND

WhileWend

Executa o secventa de instructiuni atata timp cat conditia specificata este verificata.


Sintaxa:

While <conditie>

< secventa de instructiuni>

Wend

Exemplu

Calcularea si afisarea cheltuielilor anuale.

Dim intCpt Integer

Dim CheltAn As Currency

CheltAn = 0

IntCpt = 1

While IntCpt <= 12

CheltAn = CheltAn + CheltTot(IntCpt)

IntCpt = IntCpt + 1

Wend

MsgBox („Cheltuieli Anuale = „ & CheltAn


INSTRUCTIUNEA FORNEXT

ForNext

Permite repetarea executarii unei secvente de instructiuni in functie de un contor.


Sintaxa

For <contor> = <inceput> to <sfarsit> [Step p]

<secventa de instructiuni>

[Exit For]

<secventa de instructiuni>

Next <contor> [, <contor 2>] [,]]

Observatie:

Exit For, deseori amplasata dupa evaluarea unei conditii, permite iesirea fortata dintr-o iteratie.

Exemplu

Calcularea si afisarea cheltuielilor anuale

Dim intCpt Integer

Dim CheltAn As Currency

CheltAn = 0

For IntCpt 1 To 12

CheltAn = CheltAn + CheltTot(IntCpt)

Next

MsgBox („Cheltuieli Anuale = „ & CheltAn)

Cuvantul cheie Step permite incrementarea si decrementarea printr-un pas specificat a variabilei contor.

Exemplu

Variabila contor j este incrementata cu 5 la fiecare iteratie. La sfarsirea iteratiilor, totalul corespunzand sumei de la 5 la 10, 15 si 20.

Dim j As Integer

Dim total As Integer

total = 0

For j =5 To 20 Step 5

Total = total + j

Next j

MsgBox („Totalul este de” & total)


INSTRUCTIUNEA FOR EACHNEXT

For EachNext

Permite parcurgerea tuturor elementelor unui tablou (sau a unei colectii).

Sintaxa

For Each <element> In <tablou>/<colectie>

<secventa de instructiuni>

[Exit For]

<secventa de instructiuni>

Next [element]

Exemplu

Afisarea cheltuielilor lunare (conform exemplului ForNext

Dim Cheltuieli As Currency

For Each Cheltuieli In CheltLunare

MsgBox (“Cheltuieli”)

Next




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright