SlideShare a Scribd company logo
1 of 9
Obiectele cu care lucrează algoritmii

Constantele

Constantele sunt date ale căror valori nu se modifică pe parcursul execuţiei
algoritmului. Aceste constante pot fi, în funcţie de limbaj, numere întregi sau reale,
caractere şi şiruri de caractere, valori logice (adevărat şi fals).

Variabilele

Spre deosebire de constante, variabilele conţin date care se pot modifica pe
parcursul executării algoritmului. Ele se utilizează pentru a păstra datele de intrare
(datele iniţiale), rezultatele parţiale şi rezultatele finale ale algoritmului. Fiecărei
variabile i se asociază o locaţie (sau grup de locaţii) de memorie unde i se păstrează
aloarea. O variabilă este, de fapt, numele simbolic (identificatorul) unei locaţii din
memoria maşinii virtuale.
Nu trebuie să se confunde noţiunea de variabilă din algoritmi cu aceea din matematică:
într-un algoritm, o variabilă va fi întotdeauna o valoare, pe când în matematică ea
reprezintă o nedeterminată cu care se pot face operaţii fără să-i fie cunoscută
valoarea.
Variabilele pot fi naturale, întregi, reale, logice sau pot lua ca valori şiruri de caractere.
(Tipul variabilelor diferă de la un limbaj la altul). Ele se notează cu litere sau cuvinte
care să le sugereze semnificaţia (de exemplu: a, i, index, primulElement).

Expresii

Constantele şi variabilele pot să apară în expresii împreună cu operatorii uzuali
aritmetici, relaţionali sau logici. Notaţia operatorilor aritmetici este cea folosită în
matematică: +, -, *, / (pentru împărţire).Notaţia operatorilor logici:
      • negaţia
      • SAU
      • ŞI
Notaţia operatorilor relaţionali: =, ≠, <, >, ≤, ≥. Constantele şi variabilele pot să apară
în expresii împreună cu operaţorii şi parantezele rotunde. Nu se vor folosi paranteze
pătrate.

În funcţie de tipul operanzilor şi cel al operatorilor, expresiile pot fi: aritmetice,
relaţionale sau logice.

a) O expresie aritmetică este o expresie care cuprinde: constante, variabile sau funcţii
aritmetice elementare, legate, eventual, prin operatori aritmetici.
b) O expresie relaţională este formată din două expresii aritmetice legate printrun
singur operator relaţional (de exemplu: b>0 sau a ≠ b). Valoarea de adevăr
(rezultatul) unei expresii relaţionale este adevă rat sau fals.
c) O expresie logică cuprinde constante, variabile sau expresii relaţionale legate prin
operatori logici. Rezultatul unei astfel de expresii este adevă rat sau fals. De exemplu:
(a ≠ 0) ŞI (b ≠ 0) este o expresie logică formată din două expresii relaţionale care
are valoarea adevă rat numai dacă atât a cât şi b au valori diferite de 0. Dacă a = 0 sau
b = 0 atunci expresia logică are valoarea fals.
În descrierea algoritmilor apar noduri de decizie, în cere trebuie să executăm o
operaţie sau alta în funcţie de îndeplinirea sau neîndeplinirea unei anumite condiţii.
Aceste condiţii care apar în algoritmi vor fi întotdeauna exprimate prin
expresiirelaţionale sau logice.

Operaţiile (instrucţiunile) de bază (elementare) care apar în algoritmi

În cele ce urmează vom nota cu var numele unei variabile generice din algoritm.
Instrucţiunile de bază pe care le poate executa maşina virtuală pe care sunt executaţi
algoritmii sunt:
– citirea: se înregistrează într-o anumită celulă de memorie (asociată unei variabile) o
valoare citită de la un dispozitiv de intrare (de exemplu tastatura (implicit) sau de pe
disc, dintr-un fişier). În urma acestei instrucţiuni de iniţializează variabila cu numele
simbolic indicat. Forma generală este:

citeşte var

De exemplu, citirea a trei variabile pe care le numim a, b, c:

citeşte a, b, c

– scrierea: din memorie se copie pe un dispozitiv de ieşire (ecranul monitorului
(implicit) sau un pe un disc, într-un fişier) valoarea variabilei al cărui nume este indicat
în instrucţiune. În urma acestei operaţii valoarea variabilei nu se şterge din memorie.
Operaţia de scriere are sens doar dacă variabila a fost anterior definită (există în
memorie o celulă asociată variabilei var care are înscrisă în ea valoarea
variabilei). Forma generală este:

scrie var

De exemplu:

scrie a

sau

scrie "Sistem incompatibil"

– atribuirea (înlocuirea), specificată prin ←. Forma generală este

v ← e;

unde v este un nume simbolic de variabilă, e este o expresie (o formulă, o regulă de
calcul care specifică un rezultat) alcătuită din variabile şi numere legate între ele prin
operatori aritmetici, logici, funcţii elementare şi paranteze. Se execută succesiunea
specificată de operaţii asupra valorilor unor celule ale memoriei (e), iar rezultatul se
depune într-o celulă de memorie, de asemenea specificată v.
Exemplu:

i ← i + 1;

A ← B;

r ← m % n; restul împărţirii lui m la n.

O variabilă se poate defini fie prin operaţia de citire, fie prin operaţia de atribuire;
operaţiile aritmetice, logice şi de scriere au sens doar pentru variabilele ce au fost
definite anterior. Când se construieşte un algoritm, trebuie avut grijă ca toate variabilele
să fie definite. Nu se vor scrie instrucţiuni în care figurează variabile care nu au fost
definite anterior.

– decizia. Este operaţia prin care se verifică o condiţie a cărei valoare de adevăr
determină ramificarea algoritmului; în cazul în care condiţia este adevărată
algoritmul se continuă cu o anumită operaţie (instrucţiune), în caz contrar cu o alta.


 Reprezentarea algoritmilor prin intermediul schemelor logice

 Simboluri folosite

 Reprezentarea grafică bidimensională a unui algoritm cu ajutorul unor simbolur
 speciale se numeşte schemă logică program sau schemă logică (organigramă). Pentru
 reprezentarea schemelor logice au fost stabilite anumite simboluri geometrice care
 sugerează prin forma lor diferitele operaţii care trebuie executate şi ordinea de
 execuţie. Ea reprezintă în acelaşi timp şi o imagine a fluxului de informaţii care există
 atunci când calculatorul execută programul bazat pe algoritmul descris. Schemele
 logice au fost inventate de Herman Goldstine (S.U.A.) în 1946.
 Alcătuirea schemei logice permite ca programatorul să înţeleagă logica programului, să
 realizeze modularizarea programului (prin împărţirea programului în părţi mai mici şi
 mai detaliate), să verifice îndeplinirea tuturor condiţiilor posibile din program, să
 traducă algoritmul într-un limbaj de programare (de exemplu în C).

 Simbolurile folosite la construirea schemelor logice se pot împărţi în mai multe
 categorii:

 a. Simbolul linie ş i vârf de să geată.




 Acesta simbolizează direcţia fluxului de informaţie în calculator şi succesiunea
 diferitelor operaţii. Liniile de flux se pot încrucişa. Liniile care se încrucişează nu
 înseamnă că sunt conectate. Dacă ele sunt conectate trebuie să apară vârfuri de săgeţi
lângă punctul de joncţiune pentru a marca conexiunea. Se reprezintă printr-unsegment
de dreaptă de orice lungime care trebuie să lege alte două simboluri. Direcţia normală
a fluxului este de la stânga la dreapta şi de sus în jos. Când direcţia fluxului este de
sens opus direcţiei normale se folosesc vârfuri de săgeată. Pentru mai multă claritate
mulţi programatori folosesc vârfurile de săgeată în toate cazurile.

b. Simbolul proces

Reprezintă execuţia unei operaţii sau a unui grup de operaţii în urma căreia se schimbă
valoarea, forma sau localizarea informaţiei. Operaţiile de prelucrare includ operaţii
aritmetice, operaţii logice sau mutarea datelor dintr-o zonă a memoriei în alta. Forma
acestui simbol este un dreptunghi cu raportul de formă 2/3.




c. Simboluri de intrare – ieş ire

reprezintă funcţia generală de intrare – ieşire, adică de introducere a informaţiei în
calculator pentru prelucrare (intrare) şi de extragere a informaţiei prelucrate (ieşire).
Arată punctele de intrare a datelor şi de ieşire a rezultatelor. Mediul suport de intrare
sau de ieşire nu este specificat.




d. Simboluri terminal

care reprezintă începutul, sfârşitul programului(a) sau a unei proceduri (funcţii) (b) sau
un punct de întrerupere sau de întârziere într-un program. Orice schemă logică trebuie
să înceapă cu un simbol terminal START şi să se termine cu un simbol terminal STOP.
(a) Început şi sfârşit program                 (b) Început şi sfârşit funcţie

e. Simbolul conector

Se foloseşte pentru a reprezenta o linie continuă când folosirea liniei continue este
limitată de dimensiunea hârtiei sau din considerente de estetică ale schemei logice.
Pentru a identifica conectorii de intrare şi de ieşire se folosesc simboluri de identificare
– litere sau cifre. Astfel conectorii reprezintă un mijloc elegant de a lega două puncte
ale schemei logice fără a folosi liniile. O altă funcţie a conectorilor este aceea că permit
reprezentarea unei scheme logice pe mai multe pagini.




     (a) Conector pe pagină                      (b) Conectori pentru scheme logice
                                                    reprezentate pe mai multe pagini

f. Simbolul proces predefinit (procedura sau funcţ ia)

Se foloseşte pentru a reprezenta una sau mai multe operaţii specificate în detaliu în
altă parte (procedură, funcţie, o altă schemă logică).




g. Simbolul decizie.

Se foloseşte pentru a reprezenta o decizie sau o operaţie de tip comutare ce determină
una sau mai multe alternative posibile. Simbolul decizie are o intrare şi două sau mai
multe ieşiri. Decizia este reprezentată printr-un romb în interiorul căruia se găseşte o
condiţie (simplă – formată dintr-o expresie relaţională sau compusă formată dintr-o
expresie logică). Valoarea de adevăr a unei condiţii este fie adevărat (şi algoritmul se
continuă pe ramura DA), fie fals (şi algoritmul se continuă pe ramura NU).




Exemplu
De pe dispozitivul de intrare (tastatura) se citesc trei numere întregi. Să se
afişeze valoarea celui mai mare număr dintre cele trei.

Analiza problemei

Datele de intrare sunt trei numere întregi (pe care le notăm de exemplu cu a, b şi c).
Pentru această problemă avem o singură dată de ieşire: valoarea cea mai mare dintre
cele trei.
Cum determinăm valoarea cea mai mare? Dacă trebuie să facem acest lucru
manual (fără ajutorul calculatorului) vom compara primele două numere şi apoi
valoarea cea mai mare dintre cele două o comparăm cu valoarea celui de al treilea
număr. Schema logică care ilustrează acest algoritm este dată în Figura 3a (cazul în
care nu folosim o subrutină – funcţie pentru calculul maximului) şi Figura 3b (cazul în
care pentru determinarea maximului folosim o funcţie).
Figura 3a. Schema logică pentru calculul maximului dintre 3 numere
                               (Varianta fără funcţii)
Figura 3b. Schema logică pentru calculul maximului dintre 3 numere
                                   (Varianta cu funcţii)
Exerciţii:

1. Scrieţi schema logică a unui algoritm care este capabil să furnizeze soluţia ecuaţiei
de gradul I : ax+b=0, dacă se introduc valorile a,b şi c.
2. Scrieţi schema logică a unui algoritm care aranjează în ordine:
a) crescătoare;
b) descrescătoare
3 valori a, b şi c. Puteţi utiliza şi algoritmul de determinare a maximului prezentat mai
sus. Generalizaţi pentru n elemente.
3) Scrieţi un lagoritm care să calculeze n! Dacă se introduce o valoare n naturală.
4) Scrieţi un algoritm care să aranjeze în ordine alfabetică 3 nume.

Reprezentarea algoritmilor prin pseudocod

Pseudocodul este o schiţă a unui program scrisă intr-o astfel de formă încât
să poată fi convertit cu uşurinţă într-un program real. Pseudocodul nu poate fi
executat sau compilat şi nu există reguli stricte de formare sau de sintaxă. El este doar
un pas – dar un pas important – în producerea formei finale a programului. Principalul
avantaj al pseudocodului este acela că permite programatorului să se concentreze
asupra algoritmului fără a lua în consideraţie detaliile unui limbaj de programare
particular. De fapt, se poate scrie un algoritm în pseudocod fără a şti ce limbaj de
programare va fi folosit pentru implementarea finală a algoritmului.
Limbajul pseudocod este folosit în faza de proiectare a programelor pentru descrierea
 algoritmilor; el este o alternativă la schemele logice. Ca şi acestea, pseudocodul
 precizează fluxul de transmitere a informaţiei în program şi nu datele implicate în
 algoritm. Limbajul pseudocod nu este un limbaj de programare.

 Pseudocodul are numeroase variante, deosebindu-se de la proiectant la proiectant.
 Toate variantele au însă ca trăsături comune utilizarea enunţurilor nestandard, precum
 şi a operaţiilor prescrise de programarea structurată.
 Pentru definirea unui limbaj pseudocod (ca şi pentru scheme logice) se defineşte o
 maşină virtuală care poate interpreta comenzile date în pseudocod (Figura 1).
 Instrucţiunile de bază sunt aceleaşi ca şi la schemele logice, numai că de această dată
 nu le vom asocia simboluri grafice. În plus, în pseudocod avem şi enunţurile
 nestandard cu forma generală:

 text (l_var);

 unde l_var este lista variabilelor de intrare (variabile ale căror valori, calculate anterior
 sunt folosite pentru prelucrarea indicată în enunţ).
  Un algoritm în pseudocod poate fi un:

 1). Modul program cu sintaxa:

      program
             <secvenţă>
      sf. Program

2). Modul funcţie cu sintaxa

      funcţie nume_f(lista de parametri)
             <secvenţă>;
      sf. funcţie

More Related Content

What's hot (15)

Limbajul c
Limbajul cLimbajul c
Limbajul c
 
UML
UMLUML
UML
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
C++
C++C++
C++
 
Tablouri bidimensionale
Tablouri bidimensionaleTablouri bidimensionale
Tablouri bidimensionale
 
Functia delta excel
Functia delta excelFunctia delta excel
Functia delta excel
 
Cap06
Cap06Cap06
Cap06
 
Informatica metoda trierii
Informatica metoda trieriiInformatica metoda trierii
Informatica metoda trierii
 
Tehnici de programare
Tehnici de programareTehnici de programare
Tehnici de programare
 
Cap01
Cap01Cap01
Cap01
 
C09 uml
C09 umlC09 uml
C09 uml
 
functii in Excel
functii in Excelfunctii in Excel
functii in Excel
 
Tema2final
Tema2finalTema2final
Tema2final
 
Tema2 algoritmi
Tema2 algoritmiTema2 algoritmi
Tema2 algoritmi
 
Proiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfelProiect a 2b_balan_liliana altfel
Proiect a 2b_balan_liliana altfel
 

Similar to Reprezentarea algoritmilor ap 21feb2011

Similar to Reprezentarea algoritmilor ap 21feb2011 (15)

manual-de-programare-c
manual-de-programare-cmanual-de-programare-c
manual-de-programare-c
 
Formule Excel.pptx
Formule Excel.pptxFormule Excel.pptx
Formule Excel.pptx
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Curs_modul1.doc
Curs_modul1.docCurs_modul1.doc
Curs_modul1.doc
 
2006 intro java_v01
2006 intro java_v012006 intro java_v01
2006 intro java_v01
 
utilizarea functiilor in Excel
utilizarea functiilor in Excelutilizarea functiilor in Excel
utilizarea functiilor in Excel
 
initiere matlab
initiere matlabinitiere matlab
initiere matlab
 
Cap02
Cap02Cap02
Cap02
 
Cap.9
Cap.9Cap.9
Cap.9
 
Functii si-proceduri
Functii si-proceduriFunctii si-proceduri
Functii si-proceduri
 
Recursivitatea
RecursivitateaRecursivitatea
Recursivitatea
 
Programare r 1
Programare r 1Programare r 1
Programare r 1
 
Tema
TemaTema
Tema
 
Tipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiTipuri De Date Si Proprietati
Tipuri De Date Si Proprietati
 
Tipuri De Date Si Proprietati
Tipuri De Date Si ProprietatiTipuri De Date Si Proprietati
Tipuri De Date Si Proprietati
 

Reprezentarea algoritmilor ap 21feb2011

  • 1. Obiectele cu care lucrează algoritmii Constantele Constantele sunt date ale căror valori nu se modifică pe parcursul execuţiei algoritmului. Aceste constante pot fi, în funcţie de limbaj, numere întregi sau reale, caractere şi şiruri de caractere, valori logice (adevărat şi fals). Variabilele Spre deosebire de constante, variabilele conţin date care se pot modifica pe parcursul executării algoritmului. Ele se utilizează pentru a păstra datele de intrare (datele iniţiale), rezultatele parţiale şi rezultatele finale ale algoritmului. Fiecărei variabile i se asociază o locaţie (sau grup de locaţii) de memorie unde i se păstrează aloarea. O variabilă este, de fapt, numele simbolic (identificatorul) unei locaţii din memoria maşinii virtuale. Nu trebuie să se confunde noţiunea de variabilă din algoritmi cu aceea din matematică: într-un algoritm, o variabilă va fi întotdeauna o valoare, pe când în matematică ea reprezintă o nedeterminată cu care se pot face operaţii fără să-i fie cunoscută valoarea. Variabilele pot fi naturale, întregi, reale, logice sau pot lua ca valori şiruri de caractere. (Tipul variabilelor diferă de la un limbaj la altul). Ele se notează cu litere sau cuvinte care să le sugereze semnificaţia (de exemplu: a, i, index, primulElement). Expresii Constantele şi variabilele pot să apară în expresii împreună cu operatorii uzuali aritmetici, relaţionali sau logici. Notaţia operatorilor aritmetici este cea folosită în matematică: +, -, *, / (pentru împărţire).Notaţia operatorilor logici: • negaţia • SAU • ŞI Notaţia operatorilor relaţionali: =, ≠, <, >, ≤, ≥. Constantele şi variabilele pot să apară în expresii împreună cu operaţorii şi parantezele rotunde. Nu se vor folosi paranteze pătrate. În funcţie de tipul operanzilor şi cel al operatorilor, expresiile pot fi: aritmetice, relaţionale sau logice. a) O expresie aritmetică este o expresie care cuprinde: constante, variabile sau funcţii aritmetice elementare, legate, eventual, prin operatori aritmetici. b) O expresie relaţională este formată din două expresii aritmetice legate printrun singur operator relaţional (de exemplu: b>0 sau a ≠ b). Valoarea de adevăr (rezultatul) unei expresii relaţionale este adevă rat sau fals. c) O expresie logică cuprinde constante, variabile sau expresii relaţionale legate prin operatori logici. Rezultatul unei astfel de expresii este adevă rat sau fals. De exemplu: (a ≠ 0) ŞI (b ≠ 0) este o expresie logică formată din două expresii relaţionale care
  • 2. are valoarea adevă rat numai dacă atât a cât şi b au valori diferite de 0. Dacă a = 0 sau b = 0 atunci expresia logică are valoarea fals. În descrierea algoritmilor apar noduri de decizie, în cere trebuie să executăm o operaţie sau alta în funcţie de îndeplinirea sau neîndeplinirea unei anumite condiţii. Aceste condiţii care apar în algoritmi vor fi întotdeauna exprimate prin expresiirelaţionale sau logice. Operaţiile (instrucţiunile) de bază (elementare) care apar în algoritmi În cele ce urmează vom nota cu var numele unei variabile generice din algoritm. Instrucţiunile de bază pe care le poate executa maşina virtuală pe care sunt executaţi algoritmii sunt: – citirea: se înregistrează într-o anumită celulă de memorie (asociată unei variabile) o valoare citită de la un dispozitiv de intrare (de exemplu tastatura (implicit) sau de pe disc, dintr-un fişier). În urma acestei instrucţiuni de iniţializează variabila cu numele simbolic indicat. Forma generală este: citeşte var De exemplu, citirea a trei variabile pe care le numim a, b, c: citeşte a, b, c – scrierea: din memorie se copie pe un dispozitiv de ieşire (ecranul monitorului (implicit) sau un pe un disc, într-un fişier) valoarea variabilei al cărui nume este indicat în instrucţiune. În urma acestei operaţii valoarea variabilei nu se şterge din memorie. Operaţia de scriere are sens doar dacă variabila a fost anterior definită (există în memorie o celulă asociată variabilei var care are înscrisă în ea valoarea variabilei). Forma generală este: scrie var De exemplu: scrie a sau scrie "Sistem incompatibil" – atribuirea (înlocuirea), specificată prin ←. Forma generală este v ← e; unde v este un nume simbolic de variabilă, e este o expresie (o formulă, o regulă de calcul care specifică un rezultat) alcătuită din variabile şi numere legate între ele prin operatori aritmetici, logici, funcţii elementare şi paranteze. Se execută succesiunea specificată de operaţii asupra valorilor unor celule ale memoriei (e), iar rezultatul se depune într-o celulă de memorie, de asemenea specificată v.
  • 3. Exemplu: i ← i + 1; A ← B; r ← m % n; restul împărţirii lui m la n. O variabilă se poate defini fie prin operaţia de citire, fie prin operaţia de atribuire; operaţiile aritmetice, logice şi de scriere au sens doar pentru variabilele ce au fost definite anterior. Când se construieşte un algoritm, trebuie avut grijă ca toate variabilele să fie definite. Nu se vor scrie instrucţiuni în care figurează variabile care nu au fost definite anterior. – decizia. Este operaţia prin care se verifică o condiţie a cărei valoare de adevăr determină ramificarea algoritmului; în cazul în care condiţia este adevărată algoritmul se continuă cu o anumită operaţie (instrucţiune), în caz contrar cu o alta. Reprezentarea algoritmilor prin intermediul schemelor logice Simboluri folosite Reprezentarea grafică bidimensională a unui algoritm cu ajutorul unor simbolur speciale se numeşte schemă logică program sau schemă logică (organigramă). Pentru reprezentarea schemelor logice au fost stabilite anumite simboluri geometrice care sugerează prin forma lor diferitele operaţii care trebuie executate şi ordinea de execuţie. Ea reprezintă în acelaşi timp şi o imagine a fluxului de informaţii care există atunci când calculatorul execută programul bazat pe algoritmul descris. Schemele logice au fost inventate de Herman Goldstine (S.U.A.) în 1946. Alcătuirea schemei logice permite ca programatorul să înţeleagă logica programului, să realizeze modularizarea programului (prin împărţirea programului în părţi mai mici şi mai detaliate), să verifice îndeplinirea tuturor condiţiilor posibile din program, să traducă algoritmul într-un limbaj de programare (de exemplu în C). Simbolurile folosite la construirea schemelor logice se pot împărţi în mai multe categorii: a. Simbolul linie ş i vârf de să geată. Acesta simbolizează direcţia fluxului de informaţie în calculator şi succesiunea diferitelor operaţii. Liniile de flux se pot încrucişa. Liniile care se încrucişează nu înseamnă că sunt conectate. Dacă ele sunt conectate trebuie să apară vârfuri de săgeţi
  • 4. lângă punctul de joncţiune pentru a marca conexiunea. Se reprezintă printr-unsegment de dreaptă de orice lungime care trebuie să lege alte două simboluri. Direcţia normală a fluxului este de la stânga la dreapta şi de sus în jos. Când direcţia fluxului este de sens opus direcţiei normale se folosesc vârfuri de săgeată. Pentru mai multă claritate mulţi programatori folosesc vârfurile de săgeată în toate cazurile. b. Simbolul proces Reprezintă execuţia unei operaţii sau a unui grup de operaţii în urma căreia se schimbă valoarea, forma sau localizarea informaţiei. Operaţiile de prelucrare includ operaţii aritmetice, operaţii logice sau mutarea datelor dintr-o zonă a memoriei în alta. Forma acestui simbol este un dreptunghi cu raportul de formă 2/3. c. Simboluri de intrare – ieş ire reprezintă funcţia generală de intrare – ieşire, adică de introducere a informaţiei în calculator pentru prelucrare (intrare) şi de extragere a informaţiei prelucrate (ieşire). Arată punctele de intrare a datelor şi de ieşire a rezultatelor. Mediul suport de intrare sau de ieşire nu este specificat. d. Simboluri terminal care reprezintă începutul, sfârşitul programului(a) sau a unei proceduri (funcţii) (b) sau un punct de întrerupere sau de întârziere într-un program. Orice schemă logică trebuie să înceapă cu un simbol terminal START şi să se termine cu un simbol terminal STOP.
  • 5. (a) Început şi sfârşit program (b) Început şi sfârşit funcţie e. Simbolul conector Se foloseşte pentru a reprezenta o linie continuă când folosirea liniei continue este limitată de dimensiunea hârtiei sau din considerente de estetică ale schemei logice. Pentru a identifica conectorii de intrare şi de ieşire se folosesc simboluri de identificare – litere sau cifre. Astfel conectorii reprezintă un mijloc elegant de a lega două puncte ale schemei logice fără a folosi liniile. O altă funcţie a conectorilor este aceea că permit reprezentarea unei scheme logice pe mai multe pagini. (a) Conector pe pagină (b) Conectori pentru scheme logice reprezentate pe mai multe pagini f. Simbolul proces predefinit (procedura sau funcţ ia) Se foloseşte pentru a reprezenta una sau mai multe operaţii specificate în detaliu în altă parte (procedură, funcţie, o altă schemă logică). g. Simbolul decizie. Se foloseşte pentru a reprezenta o decizie sau o operaţie de tip comutare ce determină una sau mai multe alternative posibile. Simbolul decizie are o intrare şi două sau mai multe ieşiri. Decizia este reprezentată printr-un romb în interiorul căruia se găseşte o condiţie (simplă – formată dintr-o expresie relaţională sau compusă formată dintr-o expresie logică). Valoarea de adevăr a unei condiţii este fie adevărat (şi algoritmul se continuă pe ramura DA), fie fals (şi algoritmul se continuă pe ramura NU). Exemplu
  • 6. De pe dispozitivul de intrare (tastatura) se citesc trei numere întregi. Să se afişeze valoarea celui mai mare număr dintre cele trei. Analiza problemei Datele de intrare sunt trei numere întregi (pe care le notăm de exemplu cu a, b şi c). Pentru această problemă avem o singură dată de ieşire: valoarea cea mai mare dintre cele trei. Cum determinăm valoarea cea mai mare? Dacă trebuie să facem acest lucru manual (fără ajutorul calculatorului) vom compara primele două numere şi apoi valoarea cea mai mare dintre cele două o comparăm cu valoarea celui de al treilea număr. Schema logică care ilustrează acest algoritm este dată în Figura 3a (cazul în care nu folosim o subrutină – funcţie pentru calculul maximului) şi Figura 3b (cazul în care pentru determinarea maximului folosim o funcţie).
  • 7. Figura 3a. Schema logică pentru calculul maximului dintre 3 numere (Varianta fără funcţii)
  • 8. Figura 3b. Schema logică pentru calculul maximului dintre 3 numere (Varianta cu funcţii) Exerciţii: 1. Scrieţi schema logică a unui algoritm care este capabil să furnizeze soluţia ecuaţiei de gradul I : ax+b=0, dacă se introduc valorile a,b şi c. 2. Scrieţi schema logică a unui algoritm care aranjează în ordine: a) crescătoare; b) descrescătoare 3 valori a, b şi c. Puteţi utiliza şi algoritmul de determinare a maximului prezentat mai sus. Generalizaţi pentru n elemente. 3) Scrieţi un lagoritm care să calculeze n! Dacă se introduce o valoare n naturală. 4) Scrieţi un algoritm care să aranjeze în ordine alfabetică 3 nume. Reprezentarea algoritmilor prin pseudocod Pseudocodul este o schiţă a unui program scrisă intr-o astfel de formă încât să poată fi convertit cu uşurinţă într-un program real. Pseudocodul nu poate fi executat sau compilat şi nu există reguli stricte de formare sau de sintaxă. El este doar un pas – dar un pas important – în producerea formei finale a programului. Principalul avantaj al pseudocodului este acela că permite programatorului să se concentreze asupra algoritmului fără a lua în consideraţie detaliile unui limbaj de programare particular. De fapt, se poate scrie un algoritm în pseudocod fără a şti ce limbaj de programare va fi folosit pentru implementarea finală a algoritmului.
  • 9. Limbajul pseudocod este folosit în faza de proiectare a programelor pentru descrierea algoritmilor; el este o alternativă la schemele logice. Ca şi acestea, pseudocodul precizează fluxul de transmitere a informaţiei în program şi nu datele implicate în algoritm. Limbajul pseudocod nu este un limbaj de programare. Pseudocodul are numeroase variante, deosebindu-se de la proiectant la proiectant. Toate variantele au însă ca trăsături comune utilizarea enunţurilor nestandard, precum şi a operaţiilor prescrise de programarea structurată. Pentru definirea unui limbaj pseudocod (ca şi pentru scheme logice) se defineşte o maşină virtuală care poate interpreta comenzile date în pseudocod (Figura 1). Instrucţiunile de bază sunt aceleaşi ca şi la schemele logice, numai că de această dată nu le vom asocia simboluri grafice. În plus, în pseudocod avem şi enunţurile nestandard cu forma generală: text (l_var); unde l_var este lista variabilelor de intrare (variabile ale căror valori, calculate anterior sunt folosite pentru prelucrarea indicată în enunţ). Un algoritm în pseudocod poate fi un: 1). Modul program cu sintaxa: program <secvenţă> sf. Program 2). Modul funcţie cu sintaxa funcţie nume_f(lista de parametri) <secvenţă>; sf. funcţie