joi, 30 iunie 2016

Tipuri de date in limbajul de programare "asamblare".

1. Tipuri de date
BYTE (1 octet)
Acest tip de date ocupă 1 octet şi poate fi reprezentat atât în memoria internă, cât şi într-un registru de 8
biţi al procesorului. Interpretările tipului byte pot fi:
• întreg pe 8 biţi cu sau fără semn;
• caracter ASCII.
Directiva pentru definirea datelor de acest tip este DB (Define Byte).
WORD (2 octeţi)
Acest tip de date ocupă 2 octeţi şi poate fi reprezentat atât în memoria internă, cât şi într-un registru de
16 biţi al procesorului. Interpretările tipului word pot fi:
• întreg pe 16 biţi cu sau fără semn;
• secvenţă de două caractere ASCII;
• adresă de memorie de 16 biţi.
Directiva pentru definirea datelor de acest tip este DW (Define Word). Partea mai puţin semnificativă este
memorată la adrese mici. De exemplu dacă presupunem întregul 1234H la adresa 1000H, atunci octetul
34H se va găsi la adresa 1000H, iar octetul 12H la adresa 1001H. Similar, se memorează şi secvenţele de
două caractere ASCII.
DOUBLE-WORD (4 octeţi)
Acest tip de date ocupă 4 octeţi şi poate fi reprezentat atât în memoria internă, cât şi într-o pereche de
registre de 16 biţi sau într-un registru de 32 de biţi (la procesoarele de 32 de biţi). Interpretările tipului
dword pot fi:
• întreg pe 32 de biţi cu sau fără semn;
• număr real în simplă precizie;
• adresă de memorie de 32 de biţi.
Directiva pentru definirea datelor de acest tip este DD (Define Double-Word). Valorile mai puţin
semnificative se memorează la adrese mici. În cazul adreselor pe 32 de biţi, adresa de segment este
memorată la adrese mari, iar deplasamentul (offset-ul), la adrese mici.
QUAD-WORD (8 octeţi)
Acest tip de date ocupă 8 octeţi şi poate fi reprezentat atât în memoria internă cât şi într-o pereche de
registre de 32 de biţi (numai la procesoarele de 32 de biţi). Interpretările tipului qword pot fi:
• întreg pe 64 de biţi cu sau fără semn;
• număr real în dublă precizie;
Directiva pentru definirea datelor de acest tip este DQ (Define Quad-Word). 
3
TEN-BYTES (10 octeţi)
Acest tip de date ocupă 10 octeţi şi poate fi reprezentat atât în memoria internă, cât şi într-unul din
registrele coprocesoarelor matematice. Interpretările tipului tbyte pot fi:
• număr întreg reprezentat ca secvenţă de cifre BCD (împachetate), cu semn memorat explicit;
• număr real în precizie extinsă.
Directiva pentru definirea datelor de acest tip este DT (Define Ten-Bytes).

duminică, 19 iunie 2016

Limbaje populare de programare.

Domeniul IT este unul foarte dinamic, in continua dezvoltare, care ofera numeroase oportunitati de angajare. Pentru a veni in ajutorul tinerilor care isi doresc sa lucreze in domeniul IT, dar si a specialistilor care sunt interesati de evolutia pietei, HiPo.ro a realizat o analiza a tendintelor privind utilizarea diferitelor limbaje de programare.

In prezent, cele mai populare 10 limbaje de programare sunt: Java, C, C++, PHP, C#, Objectiv C, Visual Basic, Python, Perl si Java Script. In graficul de mai jos poti vedea detalii legate de ponderea fiecarui limbaj de programare in ceea ce priveste popularitatea sa in randul specialistilor din domeniul IT din intreaga lume, a locurilor de munca disponibile, precum si a ofertelor de cursuri de specializare.

Java, un limbaj de programare orientat pe obiect, puternic tipizat, este printre cele mai solicitate limbaje in cerintele job-urilor din Romania, dar si din Europa. Limbajul imprumuta o mare parte din sintaxa de la C si C++, dar are un model al obiectelor mai simplu. Cele mai multe aplicatii distribuite sunt scrise in Java, fiind utilizat si pe dispozitive mobile gen telefon, agenda electronica, palmtop. In urma clasificarilor realizate, Java isi mentine primul loc in topul celor mai utilizate limbaje de programare, la fel cum se intampla si acum 5 ani. Job-urile care cer cunoasterea limbajului de programare Java sunt printre cele mai ofertante, atat din punct de vedere al numarului de locuri de munca disponibile, dar si al pachetului salarial oferit.

C, un limbaj de programare standardizat, compilat, de nivel mediu, este apreciat pentru eficienta codului obiect pe care il poate genera si pentru portabilitatea sa. Sintaxa limbajului C sta la baza multor limbaje de programare populare, precum: C++, Java, JavaScript, C#. Ca si in cazul limbajului Java, acesta se situeaza pe locul doi, la fel ca in 2006.

C++ este un limbaj de programare general, un limbaj multi-paradigma, cu verificare statica a tipului variabilelor, care suporta programare procedurala, abstractizare a datelor si programare orientata pe obiective. A devenit un limbaj foarte popular in anii '90, ramanand la fel pana in prezent, conform statisticilor.

PHP, unul dintre cele mai importante limbaje de programare web open-source si server-side, este folosit pe scara larga in dezvoltarea paginilor si aplicatiilor web. Popularitatea sa se datoreaza simplitatii sale, eficientei, securitatii, flexibilitatii si, nu in ultimul rand, gratuitatii sale.

C# este un limbaj de programare orientat pe obiect, derivat din C++. Avantajele sale sunt: dezvoltarea rapida de aplicatii, functionare inter-platforme, acces la resursele caracteristice platformei si suport pentru platformele COM si .Net. Acest limbaj se bucura de o popularitate ridicata datorita simplificarii scrierii de programe, fiind o cerinta obligatorie cunoasterea sa pentru numeroase job-uri disponibile pe piata muncii in acest moment.

Objective C este o extensie a limbajului de programare C, utilizat pentru dezvoltarea aplicatiilor pentru Apple OS X si iOS. Piata muncii din Romania tine pasul cu evolutia tehnologiei, existand job-uri ofertante pentru programatori si specialisti care sa dezvolte tehnologii pentru iPhone si iPad.

Visual Basic este un alt limbaj de programare prezent in cerintele job-urilor, fiind axat pe componenta de interfata a programului, programatorul realizand cu usurinta interfete standardizate de tip Windows, fara a fi necesara scrierea unui cod. Poate fi utilizat la crearea de programe simple, educationale, dar si la crearea de aplicatii complexe, precum diverse jocuri.

Python este un limbaj de programare dinamic multi-paradigma, folosit de companii precum Google si Yahoo. Este un limbaj popular datorita faptului ca permite crearea rapida a aplicatiilor care nu cer viteze inalte de procesare a datelor, dar si pentru ca este utilizat ca limbaj de criptare folosit in cadrul aplicatiilor scrise in alte limbaje.
Folosit pentru o gama larga de aplicatii precum administrarea de sisteme, dezvoltarea web, aplicatii de retea, interfete grafice, 
Perl este un limbaj de programare general, ale carui caracteristici sunt: simplitatea utilizarii, suportul pentru programarea procedurala si obiectuala, precum si suportul integrat pentru procesarea de text.

Java Script este un limbaj de programare orientat pe obiect, fiind bazat pe conceptul prototipurilor. Este utilizat atat pentru construirea paginilor web, cat si pentru scriptarea acestora. Programatorii pot utiliza Java Script pentru a verifica datele introduse de utilizatori sau pentru a crea meniuri si efecte animate.

In ordinea clasificarii lor in topul celor mai populare limbaje de programare, pe urmatoarele pozitii se situeaza: Ruby, Delphi, Lisp, Transact-SQL, PL/SQL, Lua, RPG, Pascal, Assembly si Ada.
Comparand clasificarea realizata in 2006 de Tiobe Software (companie specializata in monitorizarea modificarilor aparute in acest domeniu) cu cea din 2011, se poate remarca o constanta in timp a popularitatii limbajelor de programare clasate pe primele pozitii, ceea ce poate reprezenta un indicator al viitoarelor tendinte din aceasta arie a domeniului IT.

sâmbătă, 11 iunie 2016

Instructiuni C++ ?

O instructiune este o serie de comenzi date de catre programator calculatorului pentru a fi executate.
Instructiunea de atribuire
Forma generala:
variabila=valoare;
Unde :
variabila este numele variabilei utilizate
valoare este valoarea luata de acea variabila
Exemplu:
a=5;
Variabilei a i s-a atribuit valoarea 5 .
Instructiunea de incrementare/decremantare
A incrementa inseamna a adauga o valoare unei variabile, adica a mari valoarea initiala. A decrementa inseamna total invers, a o micsora.
O forma simplista este :
i=i+1;
iar una mai „sofisticata” este:
i++ ;
sau ++i;
Efectul operatorilor unari este acelasi,insa momentul difera. ++i intai incrementeaza variabila si dupa face operatiile cu valoarea incrementate pe cand i++ face operatiile cu valoarea neincrementata si abia apoi o incrementeaza.
Pentru a decrementa folosim – .
i – – ;
sau – – i;
Instructiunea compusa
Forma generala:
{
instructiune 1;
instructiune 2;
…..
instructiune n;
}
Utilizam aceasta instructiune cand avem de efectuat mai multe „operatii” , cauze ale unei anumite instructiuni (de obicei de decizie sau while-do etc. ) .
Instructiunea If
Aceasta instructiune este o instructiune de decizie.
Forma generala:
if (c0nditie) insctructiune ;
Putem citi acest lucru astfel: daca este indeplinita conditia atunci executa instructiune.
Instructiunea if cuprinde si o ramura else, optionala.
Forma generala:
if (conditite) instructiune 1 ;
else instructiune 2;
Daca ( , ) conditia este adevarata atunci executa instructiune 1, altfel executa instructiune 2.
Exemplu
if (5>3) cout<<„adevarat ! „;
else cout<<„fals”;
Daca 5 > 3 atunci scriem „adevarat !” , altfel scriem „fals” .
Exemplu:
a=7;
b=4;
c=2;
if (a>b+c) cout<<„a este mai mare decat b+c”;
else cout<<„a nu este mai mare decat b+c”;
Am atribuit valori variabilelor a,b si c. Daca a>b+c atunci afisam „a este mai mare decat b+c”, altfel afisam „a nu este mai mare decat b+c”;
If-uri imbricate:
Daca vrem sa verificam o conditie pe mai multe ramuri putem utiliza instructiuneile if imbricate, care nu sunt altceva decat niste instructiunui imbinate.
Exemplu:
if (a>b) a=b;
else if (b>a) b=1;
else if (a==b) cout<<„sunt egale”;
Uneori aceasta metoda este anevoioasa, pentru a verifica mai multe cazuri putem folosi instructiuncea switch, care va fi prezenata imediat.
Instructiunea switch
Aceasta instructiune este corespondenta instructiunii case din Pascal.
Forma generala:
switch (variabila)
{
case valoare 1: instructiune 1;
case valoare 2 : instructiune 2;
case valoare n: instructiune n;
default: instructiune default;
}
Pentru a pricepe mai bine principiul de executie al acestei instructiuni, voi da un exemplu:
a=3;
switch (a)
{
case 1: cout<<„a este egal cu 1”;
case 2: cout<<„a este egal cu 2”;
case 3: cout<<„a este egal cu 3”;
default: cout<<„a este mai mare decat 3”;
}
Daca a==1 atunci afisam mesajul corespunzator, daca a==2 atunci afisam mesajul corespunazator, la fel si pentru a==3. Daca a nu indeplineste niciuna din conditiile din „case-uri”, atunci instructiunea default afiseaza „a este mai mare decat 3”. Ramura default este obligatorie pentru instructiunea switch.
Switch este deosebit de utila atunci cand trebuie sa verificam proprietati ale unei variabile pe mai multe cazuri.
Instructiunea while
In engleza, while inseamna in timp ce. Numele cred ca deja va sugereaza despre ce este vorba. 😉
Forma generala
while (conditie)
{
instructiune 1;
instructiune 2;
instructiune 3;
…..
instructiune n;
}
Iarasi un exemplu va face mai clara situatia.
a=3;
b=2;
while (a>b)
{
s=a+b;
a=b;
b=4;
}
Cat timp a>b suma va lua valoarea a+b, a ia valoarea b, iar b devine 4.
Aceasta este o instrctiune, la fel ca cea care urmeaza a fi prezentata:
Instructiunea do…while
Forma generala
do
{
instructiune 1;
instructiune 2;
instructiune 3;
….
instructiune n;
}while (conditie);
Executa instructiunile atata timp cat conditiile din while sunt adevarate. Diferente dintre while si do while este urmatoarea : Daca in cazul primeia daca conditia este falsa nu se executa niciodata instructiunile in cazul celei de-a doua se va executa o data tot sirul de instructiuni dupa care se va opri executia.
Instructiunea for
Aceasta est eo instructiune repetitiva de asemena, dar cu un numar finit de pasi. Este cea mai folosita instructiune repetitiva. Poate fi simulata cu ajutorul instructilor while sau while-do, dar majoritatea programatorilor prefera sa o foloseasca in forma sa „pura”.
Forma generala
for (variabila=valoare;cat timp conditie;instructiune)
{
instructiune 1;
instructiune 2;
….
inctructiune n;
}
Exemplu:
for (i=0;i<3;i++)
{
cout<<„executam instructiunea for”;
}
Prima data i este 0. Verificam daca i este mai mic decat 3, daca este atunci i=i+1, adica 1 si executam instructiunea de afisare. I este 1, verificam daca 1<3, daca este adevarat atunci i=i+1, adica i=2 acum. Executam instructiunea dintre { }. Verificam daca 2<3, daca da atunci i++, adica i=3. Executam inca o data ceea ce este intre { Â }. Verifica daca 3<3, nu este asa ca ne oprim.
Instructiunea for este folosita in foarte multe situatii, de exemplu atunci cand citit/afisam/lucram asupra unui vector sau a unei matrice.
Exercitii propuse:
1) Cu ajutorul instructiunii switch, pentru fiecare zi a saptamanii afisati un mesaj corespunzator/
2) Intr-o instructiune for incercati sa afisati valorile lui i, 1<=i<=10.
3) Transformati secventa din pseudocod in cod C++ si creati programul, compilati-l.
i<-1
cat timp (i<4)
inceput cat timp
daca (i%2=0) scrie „i este par”
altfel scrie „i este impar”
sfarsit cat timp
b<-7
daca (b>5) scrie „b este mai mare”
altfel scire „b este mai mic”
4) Cu ajutorul unei instructiuni de atribuire, dati variabilelor a,b,c,d,e valorile 1,2,3,4,5 si afisati suma valorilor a si b, b si c, c si d, d si e, a si e.