dacă - altfel
Structura dacă (echivalentă cu if din limbajele de programare) este folosită pentru a controla fluxul execuției algoritmului.
Ea verifică o condiție logică (o expresie care poate fi true sau false).
Dacă expresia este adevărată, se execută instrucțiunile corespunzătoare; în caz contrar, se pot executa alte instrucțiuni.
Cu alte cuvinte, structura dacă - altfel alege între două căi posibile de execuție.
Reprezentare grafică
Ramurile altfel, respectiv altfel dacă pot lipsi, nu sunt obligatorii.
Sintaxă
În pseudocod, forma generală a structurii de control dacă - altfel este:
┌─dacă <condiție> atunci
│ <instrucțiuni>
│ altfel
| <instrucțiuni>
└■
Implementare
Pentru utilizarea structurii există diferite scenarii, în funcție de cerința algoritmului, sau problemei pe care o rezolvăm.
Structura dacă
Enunț: Se citește un număr natural. Stabiliți dacă acesta este par.
citește x [număr natural]
┌dacă x % 2 = 0 atunci
│ scrie "Număr par";
└■
Dacă după citirea lui x se memorează un număr par, condiția din dacă este adevărată, iar astfel se afișează mesajul. În caz contrar, execuția algoritmului continuă după structură, fără a afișa nimic.
Implementarea dacă - altfel
Enunț: Se citește un număr real. Stabiliți dacă este și un număr întreg și afișați un mesaj corespunzător.
citește x [număr real]
┌─dacă [x] = x atunci
│ scrie "Număr întreg";
│ altfel scrie "Număr real";
└■
Condiția din dacă verifică dacă partea întreagă a lui x este egală cu variabila însăși. Pentru numerele care au zecimale (deci partea întreagă nu este egală cu numărul citit), se afișează mesajul din ramura altfel.
Înlănțuirea deciziilor: dacă - altfel dacă - altfel
Pentru mai multe condiții posibile, putem înlănțui mai multe ramuri folosind altfel dacă.
Aceasta funcționează similar cu expresia else if cunoscută în C++, sau alte limbaje de programare.
Enunț: Se citește un caracter. Dacă acesta este o literă, afișați tipul ei (mare sau mică).
citește c [caracter]
┌─dacă c >= 'a' și c <= 'z' atunci
│ scrie "Literă mică";
│┌altfel dacă c >= 'A' și c <= 'Z' atunci
││ scrie "Literă mare";
│└■
│ altfel scrie "Alt caracter"
└─■
Algoritmul se bazează pe verificarea intervalului codului ASCII al caracterului citit. Caracterele din condiții sunt „convertite” în codul numeric corespunzător, fiind posibilă evaluarea expresiilor logice.