Sunteți pe pagina 1din 39

Programare I

Informatica Economica
Anul II 
FEAA

Octavian Dospinescu - FEAA UAIC


Structuri de date si structuri de
control
• Date si tipuri de date
• Structuri de date simple si complexe (vectori,
tablouri n-dimensionale, liste, cozi, stive etc)
• Constante
• Variabile si lucrul cu variabile
• Structuri de control elementare
• Implementari uzuale pentru structuri de date si
structuri de control (parcurgeri si abordari
specifice)

Octavian Dospinescu - FEAA UAIC


Concepte de baza in programarea
calculatoarelor

• Tipuri de date
• Variabile
• Constante
• Operanzi si operatori
• Structuri de control

Octavian Dospinescu - FEAA UAIC


Concepte de baza in programarea
calculatoarelor

• Tipuri de date
• Variabile
• Constante
• Operanzi si operatori
• Structuri de control

Octavian Dospinescu - FEAA UAIC


Tipuri de date in C#
• Tipurile de date pot fi asimilate cu notiunea
de “domeniu de valori”;
• Fiecare limbaj de programare are propriile
tipuri predefinite;
• Cele mai folosite tipuri sunt cele din
categoriile:
– Numeric;
– Text (Siruri de caractere);
– Logic (Boolean).

Octavian Dospinescu - FEAA UAIC


Tipuri de date numerice
Categorie generalã Tip Domeniu de valori Utilitate
Numeric Byte 0 -> 255 Lucrul cu valori mici (note, procente
etc.)
Sbyte (signed-byte) -128 -> 127 Valori mici cu semn, în intervalul
specificat.
Short -32768 -> 32767 Lucrul cu valori relativ mici cu semn
(temperaturi, lungimi moderate).

Ushort (unsigned-short) 0 -> 65535 Valori relativ mici, pozitive.

Int (integer) -2147483648 -> 2147483647 Valori intermediare.

uint (unsigned-int) 0 -> 424967295 Integer fãrã semn.


long -9223372036854775808 -> Valori mari, întregi.
9223372036854775807

ulong 0 -> 18446744073709551615 Valori întregi foarte mari.

decimal 1.0 x 10-28 -> 1.0 x 1028 Valori foarte mari care se preteazã
la calcule financiare.

float 1.5 x 10-45 -> 3.4 x 1038 Valori mari in virgulã mobilã.

double 5.0 x 10-324 -> 1.7 x 10308 Valori foarte mari în virgulã mobilã.

Octavian Dospinescu - FEAA UAIC


Tipuri logice si text
Categorie generalã Tip Domeniu de valori Utilitate

Logic bool true,false Valori logice (adevãrat/fals).

Text char Un singur caracter.

String Orice şir de caractere Pentru şiruri de caractere (nume,


adrese, mesaje etc.)

Altele Object Boolean, Integer, String Clasa Object este clasa


fundamentalã din care derivã
toate celelalte tipuri de date.

Limbajul C# este case-sensitive, adica este sensibil la marimea


caracterelor (majuscule vs. minuscule). De exemplu, cuvantul string va fi
considerat diferit de String la momentul compilarii.

Octavian Dospinescu - FEAA UAIC


Tipuri de date definite de utilizator
• In limbajul C#, utilizatorul va putea sa isi
defineasca propriile tipuri specifice de date,
pornind de la cele deja existente.

• Pot fi definite si tipuri complexe, de tip


claselor de obiecte.

• Odata definite de utilizator, tipurile respective


se comporta in mod similar cu cele intrinseci.
Octavian Dospinescu - FEAA UAIC
Concepte de baza in programarea
calculatoarelor

• Tipuri de date
• Variabile
• Constante
• Operanzi si operatori
• Structuri de control

Octavian Dospinescu - FEAA UAIC


Variabile – declarare si utilizare
• Noţiunea de variabilã este un cuvânt cheie din
domeniul programãrii calculatoarelor.
• Variabila este capabilã sã stocheze temporar
date care sunt necesare într-un program
informatic.
• O variabilã cã reprezintã un spaţiu de memorie
destinat stocãrii unei valori de un anumit tip.

Octavian Dospinescu - FEAA UAIC


Variabile – caracteristici definitorii

În mediile de programare, o variabilã se


caracterizeazã prin:

• Nume;
• Tip;
• Domeniu de vizibilitate;
• Valoare memoratã.

Octavian Dospinescu - FEAA UAIC


Variabile – caracteristici definitorii

• Numele variabilei este atribuit de programator


şi are rolul de a identifica în mod unic o
variabilã în multitudinea de variabile folosite de
program.

• Domeniul de vizibilitate al unei variabile


presupune existenţa unor „regiuni” în
programul informatic în care variabila şi
conţinutul acesteia pot fi accesate.
Octavian Dospinescu - FEAA UAIC
Variabile – caracteristici definitorii

• Valoarea memoratã este conţinutul util al


variabilei sau scopul pentru care acea variabilã
a fost creatã.

• Variabilele pot lua o valoare iniţialã implicitã


(default), însã în general sunt construite pentru
a li se atribui o valoare specificã prin
intermediul operatorului de atribuire.

Octavian Dospinescu - FEAA UAIC


Variabile – reguli de respectat in C#

• orice variabilã trebuie declaratã înainte de a fi


utilizatã;
• orice variabilã trebuie sã fie declaratã pe un tip
sau domeniu de valori;
• o variabilã acceptã doar valori din domeniul sãu
de valori;
• o variabilã poate memora la un moment dat o
singurã valoare din tipul sãu.

Octavian Dospinescu - FEAA UAIC


Variabile = zone de memorie in care
memoram date de diverse tipuri
• In limbajele de programare, datele din memorie se pastreaza
in variabile.
Variabila1

15

Tavy

Variabila2
Memoria Octavian Dospinescu - FEAA UAIC
calculatorului
Variabile – etape in practica
programarii
Folosirea unei variabile presupune operaţii precum:
• declararea variabilei;
• atribuirea de valori;
• citirea valorilor din variabilã.

Declararea unei variabile se realizeazã respectând


şablonul:
• <tip_variabila> nume_varabilã;

Octavian Dospinescu - FEAA UAIC


Variabile – declarare si utilizare
Declararea unei variabile se realizeazã
respectând şablonul:
• <tip_variabila> nume_varabilã;

int nota;
nota = 9;
Console.WriteLine("Ati obtinut: " + nota);

Sau echivalent:

int nota=9;
Console.WriteLine("Ati obtinut: " + nota);

Octavian Dospinescu - FEAA UAIC


Variabile si tipuri de date

Utilizarea variabilelor in C# necesita o declarare


prealabila:

//o variabilă ce poate conţine un număr

int varsta;
//o variabilă ce poate conţine caractere

string nume;
//atribuirea de valori

varsta=20;
nume=“Vasile Popescu”;

Octavian Dospinescu pentru Master SAAS


Variabile – declarare si utilizare
O variabilã poate lua atât valori absolute, cât şi valori
rezultate în urma unor calcule care folosesc valori
memorate în alte variabile la un anumit moment
de timp.

Dacã dorim sã aflãm suma a 2 numere întregi, putem folosi operaţiunea de


atribuire şi operatorul de adunare pentru a obţine rezultatul final.

int x,y;
int suma;
x = 7;
y = 5;
suma = x + y;
Console.WriteLine("Ati obtinut: " + suma);

Octavian Dospinescu - FEAA UAIC


Variabile – declarare si utilizare
O variabilã poate lua atât valori absolute, cât şi valori
rezultate în urma unor calcule care folosesc valori
memorate în alte variabile la un anumit moment
de timp.

Dacã dorim sã aflãm suma a 2 numere întregi, putem folosi operaţiunea de


atribuire şi operatorul de adunare pentru a obţine rezultatul final.

int x=7,y=5;
int suma;
suma = x + y;
Console.WriteLine("Ati obtinut: " + suma);

Octavian Dospinescu - FEAA UAIC


Variabile – aspecte tehnice

La un moment dat, o variabilã poate memora o


singurã valoare din domeniul sãu de valori.

Consecinta: orice atribuire a unei noi valori va


duce la pierderea vechii valori din variabilã.

Octavian Dospinescu - FEAA UAIC


Variabile – exercitiu pentru obtinerea de
aplauze
Intrebare: Ce rezultate obtinem la fiecare afisare?
Timp de gandire: 50 secunde.
int x;
int y;
x = 2;
y = 7;
int suma;
suma = x + y;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);
x = 10;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);
suma = x + y;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);
y = 20;
x = 9;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);
suma = x + y;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);
Octavian Dospinescu - FEAA UAIC
Variabile – rezultat exercitiu pentru
obtinerea de aplauze
Rezultatul obtinut este urmatorul. Explicatii?

int x;
int y;
x = 2;
y = 7;
int suma;
suma = x + y;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma); •X=2 Y=7 suma=9
x = 10;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma); •X=10 Y=7 suma=9
suma = x + y;
•X=10 Y=7 suma=17
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);
y = 20;
x = 9;
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma); •X=9 Y=20 suma=17
suma = x + y;
•X=9 Y=20 suma=29
MessageBox.Show("X=" + x + " Y=" + y + "Suma =" + suma);

Octavian Dospinescu - FEAA UAIC


Variabile – unele motive de pesimism
Erori frecvente in lucrul cu variabile:
• încercarea de a atribui unei variabile o valoare care nu
face parte din tipul sãu

Octavian Dospinescu - FEAA UAIC


Variabile – unele motive de pesimism
Erori frecvente in lucrul cu variabile:
• posibilitatea depãşirii domeniului de valori pe care
este declaratã o anumitã variabilã

Octavian Dospinescu - FEAA UAIC


Concepte de baza in programarea
calculatoarelor

• Tipuri de date
• Variabile
• Constante
• Operanzi si operatori
• Structuri de control

Octavian Dospinescu - FEAA UAIC


Constante – declarare si utilizare

O constantã reprezintã tot un spaţiu de memorie pe un


anumit domeniu de valori, iar caracteristica sa
principalã se referã la faptul cã i se poate atribui o
singurã valoare care va fi constantã pe parcursul
execuţiei programului.

const double pi=3.14159;

Octavian Dospinescu - FEAA UAIC


Constante – declarare si utilizare

Ulterior declarãrii iniţiale, putem folosi o constantã în orice calcul


acceptat de compilator, însã nu vom putea sub nici o formã sã
modificãm valoarea sa.
const double pi=3.14159;
int raza;
double lungimeCerc;
raza = 10;
lungimeCerc = 2 * pi * raza;
MessageBox.Show("Lungimea cercului este " + lungimeCerc);
raza = 15;
lungimeCerc = 2 * pi * raza;
MessageBox.Show("Lungimea cercului este " + lungimeCerc);

Octavian Dospinescu - FEAA UAIC


Constante – unele motive de pesimism
Erori frecvente in lucrul cu constante:
• Incercarea de a modifica valoarea unei constante

Octavian Dospinescu - FEAA UAIC


Concepte de baza in programarea
calculatoarelor

• Tipuri de date
• Variabile
• Constante
• Operanzi si operatori
• Structuri de control

Octavian Dospinescu - FEAA UAIC


Operanzi si operatori

• un operator are rolul de a executa o anumitã


operaţiune
• operanzii sunt valorile asupra cãrora se aplicã
operandul

Octavian Dospinescu - FEAA UAIC


Operatorii se pot aplica pe un numar diferit
de operanzi

În funcţie de numãrul de operanzi, putem avea:


• operatori unari (aplicaţi asupra unui singur operand);
• operatori binari (aplicaţi asupra a doi operanzi);
• operatori terţiari (aplicaţi asupra a trei operanzi).

Octavian Dospinescu - FEAA UAIC


Operatori aritmetici
Operator Semnificaţie

Adunare
+
Scãdere
-
Înmulţire
*
Împãrţire
/
Modulo (restul împãrţirii)
%
Incrementare
++
Decrementare
-- Octavian Dospinescu - FEAA UAIC
Operatori relationali
Operator Semnificaţie
== Egal cu
!= Diferit de
< Mai mic
> Mai mare
<= Mai mic sau egal
>= Mai mare sau egal
Octavian Dospinescu - FEAA UAIC
Operatori logici

Operator Semnificaţie
&& SI logic
|| SAU logic
! Negatie logicã

Octavian Dospinescu - FEAA UAIC


Operatori de atribuire
Operatorul cu ajutorul cãruia putem sã atribuim
valori variabilelor este operatorul de atribuire,
care poate avea diverse forme.

Operatorul de atribuire „=” se foloseşte într-o


manierã de forma variabila=expresie. Dupã
evaluarea expresiei, rezultatul va fi atribuit
variabilei.

Octavian Dospinescu - FEAA UAIC


Operatori echivalenti pentru atribuire
+= -= *= /= %=
Atribuire Echivalent
X=X+5 X+=5
X=X-5 X-=5
X=X*5 X*=5
X=X/5 X/=5
X=X%5 X%=5

Octavian Dospinescu - FEAA UAIC


Operatorul conditional
Operatorul condiţional are forma: expresie1?expresie2:expresie3

Modul lui de funcţionare este urmãtorul:


• dacã expresie1 este adevãratã, atunci va fi returnatã valoarea
lui expresie2;
• dacã expresie1 este falsã, atunci va fi returnatã valoarea lui
expresie3.

Octavian Dospinescu - FEAA UAIC


Operatorul conditional
Operatorul condiţional are forma: expresie1?expresie2:expresie3

Exemplu: presupunem cã un student se prezintã în sesiunea


normalã şi obţine o anumitã notã. Apoi se prezintã şi in sesiunea
de mãriri şi obţine o altã notã. Regulamentul precizeazã cã în
catalog va fi trecutã cea mai mare notã din cele obţinute.

int notaSesiune;
int notaMarire;
notaSesiune = 8;
notaMarire = 7;
MessageBox.Show("nota catalog=" + (notaMarire > notaSesiune ?
notaMarire : notaSesiune));

Octavian Dospinescu - FEAA UAIC

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