Sunteți pe pagina 1din 37

CURS PREGATIRE

BACALAUREAT 2022
CAPITOLUL I - PSEUDOCOD
CE ESTE PSEUDOCODUL?

- Pseudocodul este un limbaj prin care se descrie un algoritm in limbaj natural. De regula,
acesta este limbajul in care se proiecteaza un program, intrucat este limbajul inteles de
toata lumea.
- Pseudocodul utilizeaza structuri similare cu cele ce pot fi implementate in limbajele de
programare clasice (“if”, “while”, “for”, “do … while”), foloseste variabile in acelasi mod
cum le folosim si in programe.
- In general, pseudocodul este utilizat pentru proiectarea algoritmilor in asa fel incat acesta
sa fie inteles de toti programatorii, indifferent de limbajele de programare pe care acestia
il utilizeaza.
INFORMATII SUPLIMENTARE

- Asemeni tutoror limbajelor, fie ca sunt ele de programare, fie ca sunt limbaje omenesti,
pentru a fi inteles de toata lumea, acesta are cateva reguli dupa care se scrie.
- Conceptele similare cu cele utilizate in limbajele normale de programare sunt
urmatoarele:
- Expresii
- Instructiuni
- Variabile
- Operatii
- Structuri
UN SCURT EXEMPLU
DE PSEUDOCOD
• Pentru Bacalaureat, pseudocodul se
scrie in limba romana.
• Desigur, acest lucru nu este asa in
general, limba folosita pentru a scrie
pseudocod in 90% dintre cazuri fiind
engleza.
DECLARAREA VARIABILELOR IN PSEUDOCOD

• Un lucru care nu seamana cu limbajele de programare conventionale il reprezinta


declararea variabilelor.
• Desi in C++/C/Pascal/Java si alte limbaje conventionale, codul nu functioneaza fara
declararea variabilelor si asocierea unui tip de date, in pseudocod, datele nu se declara.
• Acest lucru va duce clar la crearea unei confuzii referitoare la tipul de date aferente
variabilelor. Din acest punct de vedere, s-au creat o conventie:
• La operatiile (+,-,*,/) se foloseste tipul de date care da rezultatul corect
• Mereu se foloseste cel mai restrictiv tip de date
UTILIZAREA VARIABILELOR

- Avand in vedere ca nu se declara, acestea se folosesc direct in cod unde sunt necesare
- Desigur, in general, se vor citi direct sau pentru a anunta cititorul ca acestea urmeaza sa
fie folosite, se vor face niste initializari de genul: ok 0
- In acest mod anuntam cititorul ca exista o variabila ok cu valoarea initiala 0
- De asemenea, pentru a evita confuziile, nu exista valori locale, toate fiind globale. Acest
lucru ne scuteste de a cauta pentru fiecare variabila locul unde a fost folosita si de a intui
locul unde aceasta ar fi putut fi declarata. Astfel, orice variabile folosim, se poate
considera ca acestea au fost “declarate” la inceputul programului
OPERATII CU VARIABILE IN PSEUDOCOD

• In pseudocod se folosesc aceleasi operatii ca in limbajele clasice (+, -, *, /)


• O operatie diferita este operatia modulo care in Pseudocod figureaza ca fiind MOD, iar
de asemenea operatia ‘/’ poate fi intalnita ca operatia DIV
• Exemplu: a b DIV c semnifica faptul ca a este rezultatul impartirii lui b la c.
• De multe ori se utilizeaza parantezele patrate pentru a indica faptul ca rezultatul este de
tip intreg: [a] – partea intreaga a lui a
OPERATII CU VARIABILE IN PSEUDOCOD

• Radicalul este o alta operatie care se foloseste diferit in Pseudocod, acesta fiind notat ca
in matematica si nu cu functia sqrt. Astfel sqrt(a) este, in pseudocod, √a
• Operatiile rationale se scriu ca in matematica si nu ca in expresiile c/c++/pascal:
• = - egalitatea
• ≠ - neegalitatea
• < - mai mic
• > - mai mare
• ≤ - mai mic sau egal
• ≥ - mai mare sau egal
OPERATII CU VARIABILE IN PSEUDOCOD

• Operatii logice: Not, Si, Sau care sunt de fapt variantele traduse in romana de la NOT,
AND, OR (!, &&, ||) – se folosesc in expresii si de regula opereaza pe valori binare:
• Exemple:
• 1 And 1 = 1 (SI)
• 1 And 0 = 0 (SI)
• 0 Or 1 = 1 (SAU)
• 0 Or 0 = 0 (SAU)
• Not 1 = 0
INSTRUCTIUNI PERMISE

• Instrucțiunile sunt componentele algoritmului care au efect, atunci când se


execută. Ele modifică valorile unor variabile, citesc sau afișează date, repetă
anumite acțiuni, etc.
• De regulă fiecare instrucțiune se scrie pe o linie (sau mai multe în cazul celor
complexe), dar există situații când, pentru a economisi spațiu, două sau mai
multe instrucțiuni simple se scriu pe același rând, separate prin “;”. Aceasta
metoda se foloseste doar in subiectele de bac!
INSTRUCTIUNI

• Orice algoritm poate fi reprezentat prin intermediul a trei tipuri de structure


• Structura liniara
• Structura alternativa
• Structura repetitive:
• Struct. Rep cu numar cunoscut de pasi (for)
• Struct. Rep cu nr necunoscut de pasi (while / do … while)
• Test final (do … while)
• Test initial (while)
CITIREA VARIABILELOR

• Pentru citirea variabilelor se foloseste instructiunea citeste <lista variabile>, unde <lista
variabile> este un sir de variabile separate prin “,”. Se preiau valori consecutive de la
tastatura si se memoreaza pe pozitia aferenta.
• Exemplu: citeste a, b, c - cin >> a >> b >> c (C++)
• Citirea datelor este frecvent însoțită de precizări privind datele citite (tip, valori
posibile. etc.)
• Acest lucru nu tine de cod, ci este mai mult o precizare pentru cititor pentru a stii
la ce sa se astepte – (sir, numar natural, caracter etc.)
AFISAREA VARIABILELOR

• Pentru afisarea datelor se foloseste instructiunea scrie <lista expresii>, unde <lista
expresii> reprezinta un sir de expresii sepataye prin “,” care vor fi afisate de la stanga
spre dreapta. Se evalueaza in ordinea si se afiseaza pe ecran.
• Exemplu scrie “a”, 5 - cout << “a” << 5
• De asemenea putem da expresii mai complicate a caror rezultat va fi evaluat si afisat:
scrie a + b – cout << a + b
ATRIBUIREA VARIABILELOR

• Pentru atribuire, asa cum am precizat si anterior se foloseste instructiunea


<variabila> <expresie> / <valoare> / <variabila>
• Exemple:
• A 10
• B A
• C A+B
STRUCTURA ALTERNATIVA (CONDITIONALA)

• Instructiune DACA (if) se foloseste in pseudocod sub urmatoarea forma:

• Prima este de forma DACA – ALTFEL, iar a doua e de forma DACA, fara ALTFEL (else)
• Modul de executie este identic cu cel din limbajele de programare clasice
STRUCTURA REPETITIVA CU NUMAR CUNOSCUT
DE PASI
STRUCTURA REPETITIVA CU NUMAR CUNOSCUT
DE PASI

Suma si produsul primelor n numere


STRUCTURA REPETITIVĂ CU NUMĂR
NECUNOSCUT DE PASI ȘI TEST INIȚIAL
STRUCTURA REPETITIVĂ CU NUMĂR
NECUNOSCUT DE PASI ȘI TEST INIȚIAL
STRUCTURA REPETITIVĂ CU NUMĂR
NECUNOSCUT DE PASI ȘI TEST FINAL
STRUCTURA REPETITIVĂ CU NUMĂR
NECUNOSCUT DE PASI ȘI TEST FINAL
SFARSITUL MODULULUI DE TEORIE

URMEAZA CATEVA EXPLICATII, IAR APOI


EXERCITII
ECHIVALENȚA STRUCTURILOR
REPETITIVE
• Numeroase exerciții propun un algoritm și se cere scrierea unui algoritm
echivalent care să folosească o structură repetitivă de alt tip. Doi algoritmi sunt
echivalenți dacă pentru orice set de date de intrare (conforme cu restricțiile
problemei) ei obțin aceleași rezultate.
• Urmatoarele slide-uri descriu câteva reguli de transformare a structurilor repetitive
din algoritmii pseudocod.
PENTRU → CÂT TIMP

PENTRU → EXECUTĂ … CÂT TIMP


PENTRU → REPETĂ … PÂNÂ CÂND

CÂTTIMP → EXECUTĂ … CÂT TIMP


CÂT TIMP → REPETĂ … PÂNÂ CÂND

REPETĂ … PÂNĂ CÂND → CÂT TIMP


EXERCITII
CE FACE ACEST
PSEUDOCOD?
• Acest program afiseaza
multiplii lui x sau a lui y din
intervalul [1, n].
• Daca nu gaseste niciun astfel
de numar, afiseaza 0
• Ce afiseaza pentru n = 15, x =
3, y = 4
• 3 4 6 8 9 15
TRANSFORMAREA IN C++
CE FACE ACEST
PSEUDOCOD?
• Pentru x si y dat, parcurge in
ordine descrescatoare numerele
dintre x si y si de fiecare data
inmulteste un produs cu 3. Cat
timp produsul este mai mic decat
minimul dintre x si y afiseaza 11,
iar apoi afiseaza 121
• Ce afiseaza pentru x = 8, y = 5?
• 1111121121
TRANSFORMARE IN C++
VOM REZOLVA UN EXERCITIU COMPLET
CE FACE ACEST
PSEUDOCOD?
• Citeste 2 numere naturale si afiseaza atatea
stelute cate numere impare sunt intre ele
• De asemenea, le interschimba in asa fel incat
sa se parcurga numerele de la mic la mare
• Ce se afiseaza daca se citeste m = 2, n = 9?
• **** (4 stelute) – pentru numerele 3, 5, 7, 9
SUBPUNCTUL B.

• Dacă pentru n se citește numărul 79, scrieți două numere nenule care pot fi citite pentru
m astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afișeze
de 40 de ori caracterul *.
• E clar ca pentru a afisa de 40 de ori *, trebuie ca intre m si 79 sa fie 40 de numere
impare. Astfel, putem considera cele 2 numere ca fiind 79 + 78 si 79 + 79, adica 157, 158.
• De asemenea, daca ne uitam spre 0, vedem ca intre 1 si 79 sunt exact 80 de numere
impare, motiv pentru care si 1 este un raspuns valid.
• Astfel, oricare 2 numere dintre 1, 157 si 158 sunt valide
TRANSFORMAREA IN C++ (SUBPUNCTUL C.)
TRANSFORMAREA PSEUDOCODULUI (SUB. D.)
• Va rugam NU distribuiti acest curs nimanui
• Curs create de Somesan Paul-Ioan
FINALUL • Bibliografie:
ACESTUI CURS • Pbinfo.ro
• Subiecte de Bac 2021 date in sesiunile oficiale

• Materialele sunt proprietatea ACADEMIEI ZECELAINFO

S-ar putea să vă placă și