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ă

Schemă logică structura dacă - altfel

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>
└■

Publicitate

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.