Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Ce înseamnă variabilă globală și locală în C++?

Probabil că ați auzit de variabile globale sau de variabile locale când ați lucrat cu funcții (subprograme) — ce înseamnă ele defapt?

Ce este o varibailă locală?

O variabilă este locală dacă este declarată în cadrul unei funcții. Astfel, această variabilă nu poate fi accesată decât în cadrul aceleiași funcții.

Ce este o variabilă globală?

O variabilă este globală dacă este declarată în afara oricărei funcții. Astfel, variabila poate fi accesată de către orice funcție a programului.

Exemple

Să analizăm următorul program în C++:

#include <iostream>

using namespace std;

int main()
{
    int n, s = 0;
    cin >> n;
    for(int i = 1; i <= n; i++) {
        s = s + i;
    }
    cout << "Suma este egala cu " << s;
    return 0;
}

În acest cod, variabilele n și s sunt declarate în funcția main. Prin urmare, dacă am adăuga o funcție care să afișeze variabila s, următorul cod nu ar funcționa, deoarece variabila s este locală:

#include <iostream>

using namespace std;

void afisare() {
    cout << "Suma este egala cu " << s; //Eroare, deoarece s este variabilă locală, fiind declarată în main().
}

int main()
{
    int n, s = 0;
    cin >> n;
    for(int i = 1; i <= n; i++) {
        s = s + i;
    }
    afisare();
    return 0;
}

Pentru ca programul să funcționeze, vom declara variabila s global:

#include <iostream>

using namespace std;

int s = 0; //Am declarat variabila s global

void afisare() {
    cout << "Suma este egala cu " << s; //Funcționează, deoarece s este variabilă globală
}

int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++) {
        s = s + i;
    }
    afisare();
    return 0;
}

Observații

  • Variabilele globale fără valoare inițială specificată vor avea valoarea 0, spre deosebire de variabilele locale, care au ca valoare inițială o valoare aleatorie;
  • Dacă există o variabilă globală și creăm una locală cu aceeași nume, atunci variabila considerată va fi cea locală.

Alte resurse sau bibliografie

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Cuprinsul lecției

Se încarcă…

Citește și

Interclasarea a doi vectori în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Instrucțiunea do while (structuri repetitive)Suma numerelor naturale dintr-un interval dat în C++Transformarea unui număr din baza 10 în baza 2 în C++Cel mai mare divizor comun (CMMDC) a două numere în C++Distanța dintre două puncte în C++Ce înseamnă endl în C++?Funcții predefinite în C++ (matematice, șiruri de caractere)Divide et Impera (metodă de programare C++)Verifică dacă un număr dat este o putere de 2 în C++Aflarea sumei primelor N sume GaussVerifică dacă o literă este mică sau mare în C++Verifică dacă un număr aparține șirului Fibonacci în C++Verificarea unui an bisect în C++Numărul minim de peroane pentru o gară în C++Șiruri de caractere în C++. Tot ce trebuie să știiCea mai lungă secvență de elemente crescătoare în C++Cel mai frecvent element dintr-un șir în C++Maximul și minimul a trei valori în C++Tipul struct în C++. Ce sunt structurile de date neomogeneVerifică dacă un număr este par sau impar fără modulo în C++Câte numere naturale sunt într-un interval dat? (C++)Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortCodul ASCII (tabel complet)Vectorii în C++: declarare și parcurgereCopiuțe: Cifrele unui numărIndicatorul lui Euler în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicTutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Aria și circumferința unui cerc în C++Ce este o variabilă unsigned în C++?Cum să afișezi partea întreagă a unui număr real în C++Combinatorică în C++: permutări, aranjamente, combinări și alteleSuma divizorilor unui număr în C++Numărul de cifre ale factorialului unui numărVerifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Numărul de divizori primi ai unui număr în C++Cel mai puțin semnificativ bit în C++Verifică dacă trei puncte sunt coliniare C++Inversarea unui vector în C++Ce este o funcție void în C++?Maximul și minimul a două valori în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Valoarea absolută (modulul) unui număr în C++Oglinditul unui număr în C++Numărul combinărilor în C++ (formula combinărilor)Transformarea unei litere mari în literă mică în C++Oglinditul recursiv al unui număr în C++Afișarea divizorilor primi ai unui număr în C++Operații cu numere mari în C++ - Toate funcțiile explicateIndicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Mediana unui șir de valori în C++Instrucțiunea de decizie în C++: if, else, switch, caseCăutare binară în C++Maximul și minimul unui vector în C++Transformarea unui număr din baza 2 în baza 10 în C++Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Suma 1 + 2 + 3 + ... + N în C++Interschimbarea a două variabile în C++ (3 metode)Citirea și afișarea matricelor în C++Verifică dacă un caracter este cifră în C++Inversarea unui șir de caractere în C++Șirul lui Fibonacci în C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleVerifică dacă un caracter este literă în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cum să calculezi instant 2 la puterea N în C++Instrucțiunea break (structuri repetitive)Ce înseamnă variabilă globală și locală în C++?Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorRidicarea la putere în timp logaritmic în C++. Exponențiere rapidăDe ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Factorialul unui număr în C++Funcții în C++. Ce sunt subprogrameleAria unui triunghi folosind coordonatele acestora în C++Matrice pătratice în C++. Diagonala principală și secundarăVectorii în C++: citire și afișareRadicalul unui număr în C++ (rădăcina pătrată)Algoritm recursiv pentru căutare binară (clasa a X-a)Verificare dacă șir de caractere este palindrom în C++Bordarea unei matrice în C++Cel mai mic număr cu suma cifrelor N în C++Al N-lea termen Fibonacci în C++Verificare număr prim în C++ (Clasa a IX-a)Numărul de divizori al unui număr în C++Transformarea unei litere mici în literă mare în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleRădăcina cubică a unui număr în C++ (cube root)Al N-lea termen dintr-o progresie geometricăCiurul lui Eratostene în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Materia pentru olimpiada de informatică - tot ce trebuie să știiVerifică dacă o literă este vocală în C++Instrucțiunea while (structuri repetitive)Numărul de apariții al unui număr într-un vector în C++Citește un șir de caractere cu spații în C++Numărul permutărilor în C++ (formula permutărilor)Pointer în C++. Variabile de tipul char * (char steluță)CMMDC recursiv a două numere naturale în C++Comentarii în C++Al N-lea termen dintr-o progresie aritmeticăAfișarea elementelor unui vector recursiv în C++Cifra maximă și minimă a unui număr în C++Cum să citești și să afișezi în fișiere în C++Do while vs while în C++ - Care e diferența?Complexitatea unui algoritm (timp și spațiu) în C++Calculul combinărilor de n luate câte k (nCk) în C++Numere triunghiulare. Verificarea unui număr triunghiularAflă secolul unui an citit de la tastatură în C++Instrucțiunea continue (structuri repetitive)Structuri repetitive (while, do while, for, etc)Generarea șirului Fibonacci generalizat în C++CMMMC a două numere în C++ (cel mai mic multiplu comun)Suma elementelor unui vector recursiv în C++Instrucțiunea for (structuri repetitive)Cel mai semnificativ bit în C++Maximul și minimul a n valori în C++Cifra de control a unui numărVectori de frecvență (de apariții) în C++Cifra maximă a unui număr recursiv în C++Prima cifră a unui număr în C++Verificare dacă un număr este palindrom în C++Recursivitate în C++

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont