Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Baze de date


Index » educatie » » informatica » Baze de date
» Reprezentarea algoritmilor prin schema logica


Reprezentarea algoritmilor prin schema logica


Reprezentarea algoritmilor prin schema logica

Schema logica reprezinta o modalitate de reprezentare a algoritmilor ce nu depinde de sistemul de calcul, in speta limbajul de programare sub care urmeaza a fi introdus programul aferent acestuia.

Acest mod de reprezentare a algoritmilor presupune utilizarea unor semne conventionale pentru reprezentarea structurilor logice si a operatiilor care le compun. Vom prezenta, in continuare, toate aceste semne conventionale:

- marcheaza inceputul schemei logice.



- marcheaza operatii de intrare / iesire (introducerea / extragerea datelor in / din memoria calculatorului)

- operatie de calcul (atribuire) sau un bloc de operatii

STOP    - inchide descrierea prin schema logica a unui algoritm

- conector de pagina

Structura alternativa este reprezentata sub urmatoarea forma:

NU

 

DA

 


Interpretarea unei astfel de structuri, cunoscuta in literatura de specialitate sub forma de IF-THEN-ELSE, este urmatoarea:

daca conditia C este adevarata

atunci se executa grupul de operatii A

altfel se executa grupul de operatii B.

De remarcat faptul ca C este o expresie logica sau relationala, adica o expresie ce se incadreaza foarte bine in categoria propozitiilor logice ce pot fi doar false sau adevarate. Pentru a intelege mai bine aceasta notiune, vom defini in continuarre notiunea de expresie, sub cele trei forme pe care le putem intalni in descrierea unui algoritm.

Expresie aritmetica: succesiune de operanzi si operatori aritmetici prin evaluarea careia se ajunge la o valoare numerica. Forma generala:

<operator_unar> < operand_1>< operator_aritmetic_1> < operand_2>    < operand_n-1> < operator_aritmetic_n> < operand_n>

unde : operand_i reprezinta variable sau constante numerice, iar operator_aritmetic_i poate fi unul dintre operatorii aritmetici binari (care opereaza asupra a doi operanzi): + (adunare), * (inmultire), / (impartire), - (scadere), ^ (ridicare la putere), mod (restul impartirii intregi a doua numere), div (catul intreg al impartirii a doua numere). Operator_unar reprezinta un operator aritmetic ce opereaza asupra unui singur operand: + si - operatori care fixeaza semnul operandului pe care il preced.

Expresiile aritmetice apar, de regula, in doua situatii in descrierea unui algoritm:

in membrul drept al unei operatii de atribuire de forma:

v : = < expresie_aritmetica >

in constructia unor expresii relationale si / sau logice.

In ambele situatii este necesara evaluarea expresiilor aritmetice. Aceasta se face tinand cont de prioritatile operatiilor aritmetice cunoscute din aritmetica, prioritati ce pot fi modificate cu ajutorul caracterelor "(" si ")". În urma evaluarii expresiilor aritmetice se obtin valori numerice. In cazul unei operatii de atribuire, valoarea obtinuta prin evaluare este memorata de variabila v aflata in membrul stang al atribuirii.

O expresie relationala are urmatoarea sintaxa :

<expr_aritmetica_1><operator_relational><expr_aritmetica_2>    unde operator relational poate fi: <, <=, >, >=, =, <> (diferit), cu semnificatia binecunoscuta din matematica.

Evaluarea unei expresii relationale se face astfel: se evalueaza expresiile aritmetice expr_aritmetica_1 si expr_aritmetica_2; daca relatia dintre valorile obtinute este cea indicata prin operatorul relational prezent in descrierea expresiei relationale, atunci expresia relationala conduce la valoarea de adevar "adevarat", iar in caz contar la valoarea "fals". Aceste doua valori le vom numi in continuare valori logice de adevar, cu semnificatia cunoscuta din logica matematica bivalenta.

O expresie logica are urmatoarea sintaxa:

<expr_relationala_1><operator_logic><expre_relationala_2> . unde operator logic poate fi OR (sau), AND (si) si NOT (negatia), cu semnificatia cunoscuta din logica matematica. Notand cu A si F valorile logice de "adevarat " si respectiv "fals", definim operatorii logici conform urmatoarelor tabele:

AND

A

F

OR

A

F

NOT

A

F

A

A

F

A

A

F

A

F

F

F

A

F

Putem interpreta aceste tabele de definire a operatiilor logice astfel:

Doua expresii relationale legate prin operatorul logic, OR conduc la valoarea "fals" daca si numai daca ambele sunt "false".

Doua expresii relationale legate prin operatorul logic AND conduc la valoarea "adevarat" daca si numai daca ambele sunt "adevarate".

Operatorul NOT transforma valoarea "fals" in "adevarat" si invers (negatia logica).

Prin evaluarea unor expresii relationale sau logice se obtine deci una din valorile de adevar "adevarat" sau "fals".

Sa revenim acum la structura alternativa a carei sintaxa am definit-o anterior. Aceasta permite descrierea modalitatii de luare a unor decizii functie de valoarea de adevar a conditiei prezenta in structura alternativa. Pentru a intelege si fixa si mai bine semnificatia si, in acelasi timp, necesitatea utilizarii unei structuri alternative, sa consideram urmatoarea problema: "cunoscand valorile pe DB si CR ale unui cont contabil, sa se descrie un algoritm care stabileste natura soldului contului' (problema are un caracter pur didactic). Prezentam in continuarea algoritmul aferent descris in schema logica.



Structura repetitiva este utilizata in descrierea repetarii unui grup de operatii. În descrierea unui algoritm pot fi utilizate trei tipuri de structuri repetitive:

Structura repetitiva cu numar cunoscut de iteratii utila in cazul in care este cunoscut un numar n de repetari al unui grup de operatii. În schema logica ar putea fi descrisa astfel:

i :=

 


Numarul n este cunoscut sau determinat anterior, iar A semnifica un grup oarecare de operatii. Variabila i este un contor care numara executiile grupului de operatii A, el incremetandu-se dupa fiecare executie a grupului de operatii A. Este o repetitiva de tipul REPEAT-n-TIMES.

Structura repetitiva anterior conditionata - nu se cunoaste numarul de iteratii; acesta depinde de valoarea de adevar a unei conditii: se reia executia unui grup de operatii atata timp cat acea conditie ramane adevarata. In schema logica se poate reprezenta astfel:



Analizand aceasta structura, cunoscuta si sub numele DO-WHILE, putem face urmatoarele observatii:

(a1) Daca conditia C este apriori falsa, grupul de operatii A nu se executa nici macar o data.

(a2) În cadrul grupului de operatii A, conditia C trebuie sa fie influentata, adica sa devina, la un moment dat falsa. În caz contrar se genereaza un ciclu infinit (executia grupului de operatii A nu se incheie niciodata).

Structura repetitiva posterior conditionata - nu se cunoaste numarul de iteratii. Acesta depinde de valoarea de adevar a unei conditii: se reia executia unui grup de operatii pana cand o conditie data devine adevarata. In schema logica se poate reprezenta atfel:


Analizand aceasta structura, cunoscuta si sub numele REPEAT-UNTIL, putem face urmatoarele observatii:

(p1)Grupul de operatii A se executa cel putin o data indiferent de valoarea de adevar a conditiei C.

(p2) Este valabila observatia (a2)

Exemple de algoritmi reprezentati prin schema logica

(E1) Se citesc de la tastatura valoarea vanzarilor pe o perioada de n zile (n-dat) ale unui magazin. Sa se calculeze si afiseze valoarea medie a vanzarilor zilnice in perioada analizata.


NU

 

DA

 


(E2) Se citesc de la tastatura tranzactiile zilnice ale unei firme (data si valoarea tranzactiei din ziua respectiva). Introducerea datelor se face pana cand numarul zilei este > 31 sau < 0 . Sa se afiseze valoarea tranzactiilor pentru fiecare din cele trei decade ale lunii respective (prin decada se intelege un numar de 10 zile astfel:

1-10 ale lunii - decada I

11-20 ale lunii - decada II

21-30 ale lunii - decada III).

De aceasta data nu se mai cunoaste numarul datelor introduse si deci nu vom mai putea folosi in descrierea algoritmului o structura repetitiva de genul celei de la exemplul (E1). Vom utiliza o structura repetitiva anterior conditionata:


( E3) Se citesc de la tastatura notele obtinute de catre un elev la o disciplina de scoala, numarul acesta putand fi variabil (cel putin 2) notele se citesc pana la introducerea valorii 0. Citind si nota la teza, sa se calculeze si afiseze media elevului la disciplina respectiva, folosind formula:

å nota I / nr. note) * 3 + teza ) / 4

Vom folosi pentru reprezentarea algoritmului in schema logica o structura repetitiva posterior conditionata. Lasam drept exercitiu pentru cititor reprezentarea in schema logica a algoritmului aferent problemei enuntate.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate

Baze-de-date


Access
Adobe photoshop
Autocad
Baze de date
C
Calculatoare
Corel draw
Excel
Foxpro
Html
Internet
Java
Linux
Mathcad
Matlab
Outlook
Pascal
Php
Powerpoint
Retele calculatoare
Sql
Windows
Word






termeni
contact

adauga