Cod c++ util pentru liceu si BAC

Motivatie

Consider ca foarte multi elevi se confrunta in liceu cu probleme de Informatica ce necesita o lista destul de lunga de comenzi / algoritmi C++. In mare, informatica din liceu este predata exact ca matematica – prezentari de algoritmi (formule) si rezolvare de probleme prin aplicarea lor. Daca ma intrebati pe mine, este departe de ceea ce inseamna cu adevarat sa inveti programare si nu are nicio tangenta cu ceea ce fac software developerii in viata de zi cu zi (de aceea interesul multor elevi este foarte scazut).

Unelte

Majoritarea dintre voi veti folosi Mingw sau Codeblocks in timpul orelor de informatica. Daca aveti de ales, va sugerez cea de-a doua optiune – datorita interfetei mai usor de folosit. Daca, in schimb, vreti sa scrieti algoritmi si sa rezolvati probleme de informatica fara sa fie nevoie sa instalati aceste aplicatii, puteti folosi https://www.onlinegdb.com/online_c++_compiler. Ruleaza in browser si il puteti folosi chiar pe dispozitive mobile (telefoane / tablete – chiar si televizoare smart).

Bucati de cod si explicatii

Inainte de toate, trebuie sa intelegeti structura fisierului main.cpp pe care o veti folosi de fiecare data cand incepeti sa rezolvati probleme:

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    cout << "Ai introdus:" << n;
    return 0;
}

#include <iostream> – se numeste un import de librarie. Practic, aceasta linie spune compilatorului sa foloseasca toate functiile predefinite in aceasta librarie atunci cand ruleaza codul scris de noi.

iostream – sau input-output stream – este o librarie de baza C++ care iti permite sa scrii si sa citesti in si din consola aplicatiei tale. Datorita acestei librarii, poti folosi comenzile cin pentru citire si cout pentru afisare. Interesant, nu?

using namespace std – are in spate o explicatie mai elaborata, insa ce trebuie tu sa retii este faptul ca unele comenzi se afla sub diferite zone ale limbajului. In cazul de fata, comenzile cin si cout se afla in zona std, asa ca trebuie sa mentionam prin aceasta linie ca toate comenzile pe care le folosim in programul nostru se afla sub aceeasi zona, zona std. Aceasta linie este optionala, insa atunci cand nu o scriem, va trebui sa folosim std:: in fata comenzilor cin si cout -> ceea ce duce la o repetare inutila a acestora.

int main() – este functia noastra de inceput. Ea se mai numeste si entrypoint deoarece este executata prima data atunci cand rulam aplicatia noastra. In C++, fiecare functie are o valoarea returnata (in cazul nostru int – numar intreg), un nume (in cazul nostru main) si o serie de parametri aflati intre parantezele rotunde(in cazul nostru niciunul ()). Cel mai probabil, in timpul anilor de liceu, nu va trebui sa scrii functii de sine statatoare noi, ci va trebui sa scrii tot codul sub aceasta functie entrypoint.

return 0 – este valoarea returnata. Stim din explicatia anterioara ca acel int din int main() corespunde valorii returnate (o functie poate returna sau nu o valoare celui care o apeleaza). Suntem obligati sa returnam un numar intreg atunci cand definim functia main, iar noi alegem sa returnam 0 din obisnuinta.

Variabile

Pentru a putea rezolva problemele propuse, de cele mai multe ori avem nevoie sa lucram cu date de intrare si date de iesire. Acestea trebuiesc salvate in memoria calculatorului nostru – si vom face asta folosindu-ne de variabile.

Poti sa te gandesti la variabile ca la niste cutii. Fiecare cutie poate tine doar un obiect, iar pentru ca un obiect sa incapa in cutie, va trebui sa fie de un anumit tip.

In C++ avem cateva tipuri de astfel de cutii de baza, care se numesc primitive:

  • int – numere intregi (pozitive sau negative)
  • double – numere reale (pozitive sau negative)
  • long – numere intregi mari
  • long long – numere intregi foarte mari
  • short – numere intregi mici
  • char – un singur caracter (litera sau simbol) aflat intre apostroafe ‘ ‘
  • bool – adevarat / fals (true/false)

In fiecare cutie din aceste tipuri de mai sus se poate adauga un singur obiect de acelasi tip.

int a = -5;
double b = 4.5;
char c = 'c';
bool d = true;

Siruri / arrays

Limbajul C++ ne permite sa avem insiruiri de astfel de cutii (variabile). Daca avem nevoie sa tinem minte o lista de numere, de exemplu, vom putea declara un array de cutii de tip int in care sa tot adaugam numere. Trebuie sa avem grija la lungimea unui astfel de array, deoarece ea nu se va mari / micsora in functie de cate numere adaugam in acesta.

De asemenea, trebuie sa avem grija cum numaram elementele dintr-un array, deoarece, in programare, numararea incepe de la 0, nu de la 1. De exemplu, daca vom declara un sir de lungime 5, vom putea adauga variabile in acesta incepand cu pozitia 0 si terminand cu pozitia 4.

int numerePare[5] = {2, 4, 6, 8, 10};
cout << numerePare[1] // va afisa 4

Cei mai multi elevi gresesc la numararea elementelor dintr-un array, deci ai grija la acest detaliu.

Operatii matematice

Operatiile matematice sunt destul de simple:

  • Adunarea se poate face cu semnul „+” pus intre 2 sau mai multe variabile / numere.
  • Scaderea se poate face cu semnul „-” pus intre 2 sau mai multe variabile / numere.
  • Impartirea se poate face cu semnul „/” pus intre 2 sau mai multe variabile / numere.
  • Inmultirea se poate face cu semnul „*” pus intre 2 sau mai multe variabile / numere.
  • Restul impartirii se afla folosind semnul „%” (citit MOD) pus intre 2 sau mai multe variabile / numere.
int rezultat = 10 / 2; //5
int restulImpartirii = 12 % 5; //2
int inmultire = 10 * 10; //100
int adunare = 10 + 7 + 2; //19
int scadere = 10 - 2; //8

Structuri decizionale

Cand construim logica unui program, avem de cele mai multe ori nevoie de ramificatii. Aceste ramificatii pot fi introduse de structura decizionala if. Daca numarul pe care mi l-ai dat este par, afiseaza „Par”, asltfel, afiseaza „Impar”.

int numar = 10;
if (numar % 2 == 0){
   cout << "Par";
}
else {
   cout << "Impar";
}

Aici trebuie doar sa ai grija la comparatori:

  • Pentru a verifica egalitatea, foloseste „==” (nu „=”).
  • Pentru a verifica daca un numar este mai mare decat altul, foloseste „>”.
  • Pentru a verifica daca un numar este mai mic decat altul, foloseste „<„.
  • Pentru a verifica daca un numar este mai mare sau egal sau mai mic sau egal, foloseste „>=” sau „<=”.
  • Pentru a verifica daca un numar este diferit de altul, foloseste „!=”.

Structuri repetitive

Pentru a executa o comanda de mai multe ori, poti folosi structurile repetitive din C++ :

  • for
  • while
  • do – while
//executa o linie de 5 ori
for (int i = 0; i < 5; i++){}
//executa o linie cat timp a < b
while (a < b){}
//executa o linie cat timp a < b, dar cel putin o data
do{}
while (a < b);

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *