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

Citirea și afișarea matricelor în C++

Am învățat în această lecție cum se declară și cum se parcurg matricele în C++. În această lecție vom învăța cum se citesc și cum se afișează pe ecran matricele pătratice.

Să ne reamintim cum arată o matrice: o matrice cu n linii și m coloane are n * m elemente, dispuse astfel:

https://i.ibb.co/TWKGsH2/image.png

Vom lucra cu matrici indexate de la 1 (adică cu elementele de la 1 la n și de la 1 la m, nu de la 0), deoarece sunt mai ușor de abordat.

Elementele matricei se parcurg linie cu linie, de sus în jos (deci de la 1 la n), iar pentru fiecare linie în parte, vom parcurge elementele acesteia (coloanele) de la 1 la m. Astfel, utilizăm două structuri repetitive for pentru a parcurge pe rând elementele matricei — ca mai apoi să le citim sau să le afișăm pe ecran.

Citirea unei matrici

Citirea matricei folosește o parcurgere pentru a lua elementele pe rând și a le citi de la tastatură. Iată un exemplu:

cin >> n >> m; //Citim dimensiunile matricei

//Citim matricea, parcurgem cum am învățat anterior
for(int i = 1; i <= n; i++)
    for(int j = 1; j <= m; j++)
        cin >> a[i][j];

Afișarea unui tablou bidimensional

Afișarea unui tablou este similară, însă după ce afișăm fiecare linie în parte, trebuie să afișăm un endl pentru a trece la următoarea linie.

//Afișăm matricea, parcurgem cum am învățat anterior
for(int i = 1; i <= n; i++) {
    for(int j = 1; j <= m; j++)
        cout << a[i][j] << " ";
    cout << endl;
}

Program complet în C++

Iată un cod în C++ care citește de la tastatură o matrice și o afișează pe ecran:

#include <iostream>

using namespace std;

int n, m, a[101][101]; //n = nr linii, m = nr coloane, a = matricea

int main()
{
    cin >> n >> m; //Citim numărul de linii și de coloane

    //Citim matricea
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= m; j++) {
            cin >> a[i][j];
        }
    }

    //Afișăm matricea
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= m; j++) {
            cout << a[i][j] << " ";
        }
        cout << "\n";
    }
    return 0;
}

Probleme propuse

# Problemă Dificultate
633. Livada Ușoară (2 )
692. Fibosnek Grea (8 )
132. Suma valorilor impare din matrice Ușoară (2 )
149. Izolare Ușoară (2 )
137. Permutare in matrice Ușoară (2 )
Vrei mai multe probleme? Pe această pagină găsești întreaga listă de probleme propuse.

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

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