Sunteți pe pagina 1din 4

Colegiul National Mihai Viteazul

Proiect Informatica <Matrice>

Elev: Dobrescu Andrei Clasa: a XI-a E

Varianta BAC: 56 ( Prtea a II-a)


Textul Problemei:
5. Scriei un program C/C++ care citete de la tastatur dou numere naturale n i k (2<n<25, 0<k<n) i construiete n memorie o matrice cu n linii i n coloane format numai din valori 1 i 2 astfel nct: elementele aflate pe primele k coloane sunt egale cu 1, iar elementele aflate pe ultimele n-k coloane sunt egale cu 2 ca n exemplul de mai jos. Programul afieaz pe ecran matricea construit, fiecare linie a matricei pe o linie a ecranului i elementele de pe aceeai linie separate prin cte un singur spaiu. Exemplu: pentru n=5, k=3 se construiete n memorie i se afieaz matricea alturat. (10p.) 1 1 1 2 2 1 1 1 2 2 1 1 1 2 2 1 1 1 2 2 1 1 1 2 2

Tipuri de variabile: Vom folosi variabilele intregi(int) i, j, k, n si v[25][25].

Metoda de rezolvarea a problemei: 1. Folosim biblioteca <iostream.h>. 2. Deschidem programul (int main() {) si declaram variabilele (intregi) i, j, k, n,v[25][25]. 3. Scriem instructiuniile de citire pentru k si n. (k<n) 4. Folosim instructiunea pentru (for), plecand de la i=0 cu i<n si crescator din 1 in 1, in care introducem o a doua instructiune pentru (for) plecand de la j=0 cu j<n si crescator din 1 in 1. 5. Aici, punem conditia(if) ca j sa fie mai mic decat k. Daca conditia este indeplinita, in matrice, pe linia i si coloana j se va introduce valoarea 1. In caz contrar (else) se va introduce valoarea 2. 6. Pentru afisarea matricei obtinute, folosim din nou combinatia de pentru in pentru (for in for) din punctual 5., in cel de-al doilea pentru(for) afisand valorile din matrice de pe linia i si coloana j urmate de un spatiu liber, iar in primul pentru

(for), care il include si pe cel de-al doilea , folosim instructiunea de rand liber (cout<<endl;) 7. Incheiem programul (return 0; }) si rulam pentru verificare.

Rezolvarea propriu-zisa
#include <iostream> using namespace std; int main() { int i,j,k,n,v[25][25]; cout<< "Numarul de linii si coloane(n)="; cin>>n; cout<<"k="; cin>>k; for(i=0;i<n;i++) { for(j=0;j<n;j++) if(j<k) v[i][j]=1; else v[i][j]=2; } for(i=0;i<n;i++) { for(j=0;j<n;j++) cout<<v[i][j]<<" ";
3

cout<<endl; } return 0; }