Sunteți pe pagina 1din 6

SUBIECTE PCLP

1.BLOCURILE SCHEMEI LOGICE:


In proiectare se stabilesc datele si prelucrarile ce se realizeaza asupra lor.
Datele pot fi:
A) variabile - isi modifica valoarea; se caracterizeaza printr-un nume ( format din litere, cifre
si/sau _, putand incepe cu o litera sau _ ; se face distinctie intre literele mici si mari)
B) constante - pot fi explicite sau simbolice ( ultimele au nume ).

Prelucrarile se reprezinta prin blocuri, iar ordinea de executie e indicata de sageti.


Operatii ( blocuri de baza ):
Blocul de inceput/sfarsit - orice schema logica incepe cu un bloc de inceput si se termina cu blocul
de stop
Blocul de citire ( doua variante ) - se citesc de la dispozitivul de intrare valorile variabilelor
specificate in lista_variabile ( separate prin virgula ) 
Blocul de scriere ( doua variante ) - se scriu la dispozitivul de iesire valorile obtinute in urma
evaluarii expresiilor din lista( separate prin virgula  )
Blocul de atribuire - se evalueaza expresia, iar valoarea obtinuta este memorata in variabila, vechea
valoare pierzandu-se; expresia contine operatori ( + - * / ), operanzi ( variabile, constante ) si ( );
variabila poate apare si in expresie ( ex: x=x+1 )
Blocul de decizie - se evalueaza conditia: daca e adevarata se continua cu prelucrarea indicata de
ramura da, altfel cu ramura nu;  
conditia poate contine operatori relationali: <   >    <=    >=    ==    != 
operatori logici: si   sau.
Secventa - indica executia succesiva a operatiilor de baza si a structurilor de control in ordinea in
care apar in schema logica; in general, orice schema logica cuprinde secventele:
- de initializare a variabilelor
- prelucrari
- tiparirea rezultatelor
Selectia - functie de valoarea de adevar a conditiei, se executa una din secvente, dupa care se trece
la prelucrarea urmatoare; cele doua ramuri se exclud mutual; este posibil ca una din ramuri sa fie
vida.
Ciclul cu test initial - secventa se executa ciclic, cat timp conditia este adevarata; secventa se
numeste corpul ciclului, la fel ca si la urmatoarele doua structuri, derivate; daca la prima evaluare a
conditiei, aceasta este falsa, corpul nu se executa niciodata
Ciclul cu test final - conditia se evalueaza dupa executia secventei ( deci se executa cel putin o data );
se revine la executia secventei, daca este adevarata; 
Ciclul cu contor - o variabila numita generic contor, controleaza ciclarea; se initializeaza cu o valoare
initiala, vali, iar ciclarea se realizeaza cat timp contor<=valf, o valoare finala; la sfarsitul corpului
ciclului, variabila contor este actualizata, fiind marita cu o valoare pas; pentru a nu se cicla la infinit,
trebuie ca pas>0.

2.STRUCTURI ELEMENTARE: STRUCTURA ALTERNATIVE(DECIZIA),


STRUCTURA REPETITIVE (CICLUL)
Blocul de decizie:
• are rolul de a ramifica cursul de execuţie ale unui algoritm
• algoritmul se va executa după acest bloc doar pe una din ramurile sale
• fie pe ramura cu DA
•fie pe ramura cu NU
• decizia de a alege o ramură sau pe cealaltă se face pe baza evaluării condiţiei din bloc.

Conditia unui bloc de decizie:


•o condiţie este o expresie matematică care
• dacă este evaluată la valoarea zero se consideră falsă
• dacă e evaluată la orice altă valoare diferită de zero se consideră adevărată
• spre exemplu
• 7, -1, 22, 107 se consideră toate valori adevărate
• o (zero) se consideră fals
• Pentru exprimarea conditiei se pot folosi operatori matematici
• Relationali
• Mai mic
• Mai mic sau egal <=, Mai mare sau egal >=,
• egal==, diferit!=
• Logici
• SI &&, SAU ||
• Paranteze pentru expresii logice complexe
• Rezultatul trebuie sa fie boolean adica adevarat sau fals.

Ciclul cu test intial


• este formată dintr-o
• condiţie
• secvenţă
• conectate ca in figura
•împreună cu secvenţa şi selecţia pot fi folosite pentru a scrie orice algoritm

Functionare
• cât timp condiţia este adevărată
• se va executa secvenţa în mod repetat
•reamintim că secvenţa reprezintă un şir ordonat de operaţii de bază

Ciclul cu test intial  Scopul unei astfel de construţii este:


• să avem o condiţie adevărată când traversăm iniţial blocul condiţional
• se execută secvenţa care are rolul de a modifica variabilele condiţiei
• după un număr finit de treceri condiţia trebuie să devină falsă
• se blocheaza astfel execuţia secvenţei
• se continua cu rularea schemei logice prin blocurile care ar urma mai jos

Ciclul cu test intial


• dacă condiţia este falsă la prima trecere prin blocul decizional
• atunci secvenţa nu va ajunge să fie executată niciodată
• dacă condiţia este tot timpul adevărată
• algoritmul se va bloca într-o buclă infinită, fără a mai putea ajunge vreodată la blocul de stop.

Ciclul cu test final


• Structura de control ciclu cu test final este format dintro secvenţă şi o condiţie organizate în
această ordine ca în figura
•Această structură este considerată a fi una derivată din structura de control ciclu cu test iniţial.
•Din punct de vedere al funcţionării structura se comportă astfel:
• se execută secvenţa
• după aceea se evaluează condiţia
• dacă condiţia este adevărată se merge din nou şi se execută secvenţa

Ciclul cu test final


•Din punct de vedere grafic nu apar elemente noi
• Sunt aceleasi elemente exact ca în cazul structurii de control cu test initial

• aranjamentul blocurilor legat prin săgeţi este făcut de asemenea natură încât
• prima să fie secvenţa
• după ea să fie plasată condiţia.
• evident că apare şi fenomenul de buclă pe ramura DA a condiţiei care ne conduce din nou la
secvenţă când valoarea logică din condiţie este adevărată Ciclul cu test final
• Se poate observa că această structură va permite execuţia secvenţei cel puţin o dată indiferent de
ce valoarea logică conţine condiţia
• nu este strict necesară
•orice algoritm se poate concepe folosind numai structuri de control ciclu cu test initial
•în practică sunt situaţii când structura cu test final oferă o soluţie mai elegantă din punct de vedere
al concepţiei algoritmului

3.INSTRUCTIUNILE LIMBAJULUI ALGORITHMIC:


Notiunea de algoritm provine din limba araba,
Exemplu de algoritm:
Pasii calculul mediei artimetice a două numere sunt:
• 1 - start;
• 2 - citeşte primul număr;
• 3 - citeşte al doilea număr;
• 4 - calculează suma lor;
• 5 - împarte rezultatul la 2;
• 6 - afişează rezultatul calculat;
• 7 - stop.
Moduri de exprimare a algoritmilor
• Limbaj natural
• fraze coerente in limba romana care permit obtinerea unei solutii pentru o problema data.
• Scheme logice
• diagrame de blocuri
• Pseudocod
• propozitii scurte cu cuvinte cheie predefinite exprimate in engleza sau romana
Schemele logice:
Schemele logice sunt notaţii grafice formate din blocuri legate între ele prin săgeţi. O schemă logică
descrie grafic paşii unui algoritm • Totodată ea specifică prelucrările care se execută asupra datelor
Datele din schemele logice:
• variabile = sunt zone de memorie care îşi schimbă valoarea şi care se caracterizează printr-un
nume • numele poate fi format dintr-o înşiruire de litere mari, litere mici , cifre, semnul underscore
“_”, numele unei variabile începe în mod obligatoriu cu literă
• exemple: Aria, perimetru, delta.

4.STRUCTURA UNUI PROGRAM IN C: FORMA GENERALA, EXEMPLE.


In general, un program este un sir de instructiuni.  In C/C++ programul este o functie numita main.
Efectul instructiunillor din C/C++ este stabilit intr-un fisier numit stdio.h (h vine de la header). Acest
fisier este incarcat implicit pentru a asigura buna functionare a programului. Daca dorim sa folosim
instructiuni mai complexe (gen cin, cout) trebuie sa specificam si headerul care explica functionarea
acestor instructiuni (iostream.h).
De asemenea, trebuie sa stabilim ce variabile folosim, pentru a le putea aloca spatiu si a le da valori.
Spre deosebire de alte limbaje, in C/C++ declararea variabilelor folosite poate fi facuta si pe
parcursul executiei programului.
Structura unui program C/C++ este urmatoarea:

//acesta este un comentariu; el nu influenteaza programul

//declararea headerelor

#include <iostream>

using namespace std;

//declararea variabilelelor

....

//programul principal

int main()

// instructiunile programului

..........

return 0;} //aici se incheie programul

Exemplu:

# include <iostream>

using namespace std;

int a,b,c;

int main()

//citirea datelor initiale; initializarea altor variabile;

cin>>a>>b;

//prelucrarea datelor

c=a+b;

//afisarea datelor
cout<<"afisarea rezultatului"<<endl;

cout<<a<<'+'<<b<<'='<<a+b;

cout<<"Suma calculata este "<<c;

return 0;

5.COMENTARII: FORMA GENERALA, EXEMPLE.


Programul foloseşte un comentariu, delimitat prin /* şi */ care, prin explicaţii în limbaj natural,
creşte claritatea programului. Comentariul este constituit dintr-o linie sau mai multe linii, sau poate
apare în interiorul unei linii. Nu se pot include comentarii în interiorul altor comentarii. În C++ se
utilizează comentarii care încep cu // şi se termină prin sfârşitul de linie.

Un comentariu începe prin /* , se termină prin */ şi se poate întinde pe mai multe linii. Comentariile
nu pot fi incluse unele în altele (imbricate). În C ++ au fost introduse comentariile pe o singură linie,
care încep prin // şi au terminator sfârşitul liniei.

Comentariile: note explicative (comentarii) ataşate unor secvenţe de operaţii, care nu au rol activ în
derularea programului. Comentariile  pot fi scrise pe un singur rând şi sunt precedate de caracterele
//  pot fi scrise pe mai multe rânduri şi sunt cuprinse intre caracterele /* */.
Exemplu:
// acesta este un comentariu pe un rând
/* acesta este
un comentariu
pe mai multe randuri */

6.TIPURI FUNDAMENTALE DE DATE: ENUMEARE, SPATIU MEMORIE,


EXEMPLE.
Dată = orice entitate asupra căreia calculatorul poate opera. Orice dată care apare într-un program C
trebuie declarată, pentru a fi cunoscută la compilare.
Avem:
Date variabile (VARIABILELE) = își modifică valoarea în timpul execuției programului
Exemplu:
int a,b; // se declara doua variabile de tip intreg de maxim 5 cifre
long v1,x,a1; // se declara trei variabile de tip intreg de maxim 9 cifre
int x=12; /*declararea unei variabile x de tip intreg - este o dată
asupra căreia se operează care are valoarea initiala 12*/
Date constante = nu își modifică valoarea în timpul execuției programului.
Exemplu:
const int a=5, b=12; // declar doua constante intregi de maxim 5 cifre care au valorile 5 //
respectiv 12
const long v1=34232321; //declar o constanta de tip intreg care are valoarea 34232321.
Tipul de dată = precizează:
- mulţimea valorilor pe care le poate lua o dată,
- operaţiile care se pot efectua asupra ei şi
- lungimea de reprezentare internă.
7.IDENTIFICATORI: DEFINITIE, EXEMPLE.
Identificatorii: reprezintă o secvenţă de litere, cifre şi _ (linia de subliniere) care trebuie să înceapă cu
_ sau cu o literă; nu pot fi cuvinte cheie (rezervate) ale limbajului.

Identificatori = este o succesiune de litere, eventual cifre care începe cu o literă. În calitate de litere
se folosesc: literele mici şi mari ale alfabetului englez şi caracterul subliniere.
In C++ se face distincţie între literele mici şi cele mari.
Maxx  maxx, ordonat  ORDONAT
Exemplu: Max, _min, distincte, frecv, Max2 - reprezintă identificatori corecţi
2min, 67prim, 7_org, A+B, a&, - nu reprezintă identificatori.
8.CONSTANTE NUMERICE: ZECIMALE, OCTALE, HEXAZECIMALE,
EXEMPLE.
CONSTANTA are un tip şi o valoare fixă pe toată durata execuţiei programului care o conţine.
Tipul şi valoarea unei constante se definesc prin caracterele care compun constanta respectivă.
Constantele se clasifică astfel: • numerice: - întregi - reale • caracter • şir de caractere.

Declararea constantelor
Numerice: - întregi - reale

Sintaxa: const [tip_dată] nume=valoare;


unde: • const este un cuvânt cheie care înseamnă definirea unei constante simbolice;
• tip_dată precizează tipul constante (poate lipsi);
• nume este identificatorul constantei;
• valoare este valoarea constantei.

Exemple:
const int a=0;
const int x=-5;
const b=0;
const float PI=3.14;
const char a=„a‟;
const char sir[]=“info”;

11.Variabile: declarare, initializare, exemple.


Nume asociat cu una sau mai multe locaţii de memorie;
• valoarea păstrată în aceste locaţii se poate modifica în cursul execuţiei programului;
• trebuie declarate – se specifică tipul şi numele.

Declararea variabilelor
Sintaxa: tip_dată nume;
unde: •tip_dată precizează tipul datei memorate în variabila de memorie;
•nume este identificatorul variabilei de memorie.
Exemple:
int a;
int x,y;
char b;
int a,b=1, c=2;
float d=1;
float e=1.234;
char f='a';
long x1,x2;
unsigned int p,q;
char sir[]="info";

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