Calculatorul reprezintă un sistem electronic (ansamblu de dispozitive şi circuite diverse) complex care prelucrează datele introduse într-o formă prestabilită, efectuează diverse operaţii asupra acestora şi furnizează rezultatele obţinute (figura 1.1.).


Algoritmul este conceptul fundamental al informaticii. Orice echipament de calcul poate fi considerat o maşină algoritmică. Într-o definiţie aproximativă algoritmul este un set de paşi care defineşte modul în care poate fi dusă la îndeplinire o anumită sarcină. Exemplu de algoritm: algoritmul de interpretare a unei bucăţi muzicale (descris în partitură). Pentru ca o maşină de calcul să poată rezolva o anumită problemă, programatorul trebuie mai întâi să stabilească un algoritm care să conducă la efectuarea la sarcinii respective.
Exemplu:
Algoritmul lui Euclid pentru determinarea celui mai mare divizor comun (cmmdc) a 2 numere întregi pozitive.
Date de intrare: cele 2 numere întregi
Date de iesire: cmmdc
b. Dacă R este 0, atunci cmmdc este B.
INSTRUCŢIUNEA |
TRANSCRIEREA ÎN C++ |
SEMNIFICAŢIA |
CITIRE date |
cin >> var; |
citirea unei valori pentru variabila var |
AFIŞARE date |
cout<< var; |
afişarea valorii variabilei var, sau a unui text (mesaj) |
ATRIBUIRE |
var = val; |
se atribuie valoarea val variabilei var |
IF - ELSE |
if(condiţie) instrA; else instrF; |
Mai tarziu! |
ciclul FOR |
for(i = valIniţială; i <= valFinală; i++) instrucţiune; |
Mai tarziu! |
WHILE |
while(condiţie) instrucţiune; |
Mai tarziu! |
DO WHILE |
do instrucţiune while(condiţie) |
Mai tarziu! |

Simbolul START desemnează începutul unui program sau al unui subprogram.
Simbolul STOP desemnează sfârşitul unui program sau al unui subprogram. Prezenţa lor este obligatorie.

Semnifică procese (operaţii) de intrare/ieşire (citirea sau scrierea)

Semnifică o atribuire (modificarea valorii unei date)
Se citesc 2 valori numerice reale, care reprezintă dimensiunile (lungimea şi lăţimea unui dreptunghi). Să se calculeze şi să se afişeze aria dreptunghiului!

Implementarea in C++
#include <iostream>
using namespace std;
int main()
{
double L, l;
cout << "Lungime = "; cin >> L;
cout << "Latime = "; cin>>l;
double aria = L * l;
cout << endl;
cout << "Aria = "<< aria << endl;
return 0;
}
Exemplu de rulare:

Să presupunem că avem instalat produsul CodeBlocks. Se lansează CodeBlocks. Ecranul va arăta ca mai jos:

Selectarea unui proiect nou se face alelgând File-New-Project…

Vom alege să realizăm o aplicaţie de consolă

ceea ce va avea ca efect apariţia ecranului de mai jos (care poate fi evitat dacă bifăm căsuţa “Skip this page next tipe”)

Vom selecta limbajul C++

apoi vom introduce numele noului nostru proiect (ȋn exemplul de mai jos am ales numele “test”)

Dacă vom apăsa butonul “Finish”, vom putea trece la editarea programului. Expandând folderul “Sources”, din ecranul de mai jos. vedem fişierul “main.cpp”

şi, apăsând butonul “Next”, se ajunge la validarea finală.

Prin dublu click pe “main.cpp”, se va intra ȋn panoul de editare, unde găsim programul initial, care nu face altceva decât să afişeze pe ecran mesajul consacrat “Hello world”.

Acesta este un program real, care poate fi lansat pentru prima oară ȋn execuţie prin apăsarea butonului
(Build and run).
De-a lungul procesului de editare (modificare a programului), de câte ori vrem să rulăm încă o dată programul, se întâlnesc două situaţii:
Rezultatele rulării se văd ȋn imaginea de mai jos, demonstrând că totul este ȋn ordine.

Up Home Structura Site Algoritmi elementari
Limbajele C/C++ lucrează cu variabile şi constante.
Declararea variabilelor. O variabilă constă din două componente: tipul variabilei şi numele variabilei. Definirea sau declararea unei variabile are forma:
tip variabilă;
De exemplu, pentru a declara o variabila care sa aiba numele "salariu" si care sa fie de tip intreg, se poate folosi declaratia:
int salariu;
Tipurile fundamentale (predefinite, sau de bază sunt:
Tipurile boolean, caracter, întreg, real şi tipurile enumerate sunt tipuri aritmetice, deoarece valorile lor pot fi interpretate ca numere. Tipurile boolean, caracter, întreg şi enumerările sunt şi ele tipuri întregi.Calculatoarele pot lucra în mod direct cu întregi, reali şi caractere.
Ne vom ocupa, momentan, doar de tipurile întregi şi reale.
Pentru a declara o variabilă întreagă cu numele “a”, de tip întreg, putem alege dintre:
Domeniul de valori pe care le poate lua variabila a este dat în tabelul următor:
Denumire tip |
Reprezentare |
Interval de valori |
altfel spus |
int |
4 octețicu semn |
-231 ... 231-1 |
-2147483648 ... 2147483647 |
unsigned int |
4 octeți fără semn |
0 ... 232-1 |
0 ... 4294967295 |
long int |
4 octeți cu semn |
-231 ... 231-1 |
-2147483648 ... 2147483647 |
unsigned long int |
4 octeți fără semn |
0 ... 232-1 |
0 ... 4294967295 |
short int |
2 octeți cu semn |
-215 ... 215-1 |
-32768 ... 32767 |
unsigned short int |
2 octeți fără semn |
0 ... 216-1 |
0 ... 65535 |
long long int |
8 octeți cu semn |
-263 ... 263-1 |
|
unsigned long long int |
8 octeți fără semn |
0 ... 264-1 |
|
char |
1 octet cu semn |
-27 ... 27-1 |
-128 ... 127 |
unsigned char |
1 octet fără semn |
0 ... 28-1 |
0 ... 255 |
Pentru mai multe informaţii despre variabile, constante, expresii, se pot consulta numeroase materiale pe internet, dintre care, unul la nivel de începător, ar putea fi găsit la adresa următoare.
Up Home Structura Site Algoritmi elementari
Operatorii aritmetici sunt: +, -, *, /, %.
În exemplele de mai jos, considerăm variabilele:
În C++ există operațiile unare + și -.
+ returnează valoarea operandului, iar
- returnează valoarea operandului cu semn schimbat.
Exemple
Adunarea, scăderea și înmulțirea se comportă conforma așteptărilor, ca la matematică. Operația de împărțire și operația modulo necesită niște explicații suplimentare.
Operația de împărțire are două moduri de lucru, în funcție de tipul operanzilor.
Exemple
Ultima împărțire este deosebită. Cei doi operanzi au tipuri diferite: M = 3 este de tip int, iar 2.0 este de tip double. Aici intervine operația de conversie implicită: în mod automat, operandul M se consideră ca fiind de tip double, împărțirea este împărțire reală și are rezultatul 1.5.
Operația modulor are sens numai dacă ambii operanzi sunt de tip întreg – împărțirea cu rest are sens numai în această situație. Iată câteva exemple:
N % M = 2 : restul împărțirii lui 11 la 3 este 2
30 % 10 = 0
Operatorul modulo este util în multe situații. El poate fi utilizat pentru a afla ultima cifră a unui număr natural: ultima cifră a lui 276 este 276 % 10 adică 6, sau pentru a verifica dacă un număr N este divizor al lui M. În caz afirmativ, M % N este 0.