Despre programarea in C/C++

 

Cuprins:

 

A. Structura generala a unui sistem de calcul

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.).

 

 

B. Algoritmi

 

B.1. Notiuni elementare

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

  1. Se notează cu A şi B- cea mai mare, respectiv cea mai mică, dintre datele de intrare
  2. Se împarte A la B şi se notează cu R restul împărţirii
  3. a. Dacă R diferit de 0, se atribuie lui A valoarea lui B şi lui B valoarea lui R. Se revine la pasul 2.

b. Dacă R este 0, atunci cmmdc este B.

 

B.2. Reprezentarea algoritmilor prin scheme logice

 

În PROGRAMARE există 7 instrucţiuni de bază:

 

INSTRUCŢIUNEA

TRANSCRIEREA ÎN C++

SEMNIFICAŢIA

CITIRE date

cin >> var;

citirea unei valori pentru variabila var

AFIŞARE date
sau texte (mesaje)

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!

 

Reprezentarea algoritmilor prin scheme logice (organigrame)

simboluri de organigramă

 

Simboluri de început şi sfârşit

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.

 

Simbolul de paralelogram

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

 

Simbolul dreptunghi

Semnifică o atribuire (modificarea valorii unei date)

 

Exemplu:

 

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:


 

 

 

 

 

C. CodeBlocks

 

C.1. Lansarea în execuţie a unui compilator C/C++

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

 

codeBlocks1

 

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

 

codeBlocks2

 

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

 

codeBlocks3

 

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”)

 

codeBlocks4

 

Vom selecta limbajul C++

 

codeBloks5

 

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

 

codeBlocks6

 

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”

 

codeBlocks9

 

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

 

codeBlocks7

 

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”.

 

codeBlocks10

 

Acesta este un program real, care poate fi lansat pentru prima oară ȋn execuţie prin apăsarea butonului buton (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.

 

codeBlocks11

 

Up Home Structura Site Algoritmi elementari

 

C.2. Noţiuni elementare despre variabile şi constante în C/C++

 

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

 

C.3. Operaţii numerice în C/C++

 

Operatorii aritmetici sunt: +, -, *, /, %.

În exemplele de mai jos, considerăm variabilele:

 

Operatorii aritmetici unari

În C++ există operațiile unare + și -.

+ returnează valoarea operandului, iar
- returnează valoarea operandului cu semn schimbat.

Exemple

Operatorii aritmetici binari

 

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.

Împărțirea întreagă și împărțirea zecimală

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.

Operatorul modulo %

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.

Observații suplimentare

 

Up Home Structura Site Algoritmi elementari