[ create a new paste ] login | about

Link: http://codepad.org/Rb5kR7tp    [ raw code | output | fork ]

Lucifer9999 - C++, pasted on May 14:
#include <iostream>            
#include <fstream>
#include <sstream>

#define LNF 50

typedef int vectorI[LNF];
typedef int matriceI[LNF][LNF];
typedef char sir[LNF];

using namespace std;

 void citireMatrice(matriceI mat, int &nElem)
 {
  int l_i=0, l_j=0;
    
   cout << "Introdu numarul de noduri: ";  
   cin >> nElem;
   for (l_i=0; l_i<nElem; l_i++)
   {
    for (l_j=0; l_j<nElem; l_j++) 
	{
	 cout << "Introdu elementul matricii " << "mat[" << l_i+1 << "][" << l_j+1 << "]: ";
     cin >> mat[l_i][l_j];
    } 
   }
   nElem=l_i;    //nElem=l_j;
   cout << endl;   
 }

 void afisareMatrice(matriceI mat, int nElem)                           
 { 
  int l_i, l_j;
    
   for (l_i=0; l_i<nElem; l_i++)
   {
    for (l_j=0; l_j<nElem; l_j++) 
	{
     cout << " " 
	      << mat[l_i][l_j];
    } 
	cout << endl;
   }
 }

 void afisareVector(vectorI vect, int n)
 {                                 
  int l_i;	
	  
   for (l_i=0; l_i<n; l_i++)
   {
    cout << vect[l_i] 
		 << " ";
   }
   cout << endl;
 }
 
 void gradeMaxim(matriceI mat, int nElem, vectorI vectMax, int &nv)
 {
  int l_i, l_j, l_k;
  int gradMax, gradNod;

   gradMax=0;
   l_k=0;
   for (l_i=0; l_i<nElem; l_i++)
   {
    gradNod=0;
    for (l_j=0; l_j<nElem; l_j++)
	{
	 if (mat[l_i][l_j]==1)
		gradNod++;
    }
	if (gradNod>=gradMax)
	{
	 gradMax=gradNod;
	}
   }
   for (l_i=0; l_i<nElem; l_i++)
   {
    gradNod=0;
    for (l_j=0; l_j<nElem; l_j++)
	{
	 if (mat[l_i][l_j]==1)
		gradNod++;
    }
	if (gradNod==gradMax)
	{
     vectMax[l_k++]=l_i+1;	 
	}
   } 
   nv=l_k;
 }

 void gradeMinim(matriceI mat, int nElem, vectorI vectMin, int &nv)
 {
  int l_i, l_j, l_k;
  int gradMin, gradNod;

   gradMin=1000000;
   l_k=0;
   for (l_i=0; l_i<nElem; l_i++)
   {
    gradNod=0;
    for (l_j=0; l_j<nElem; l_j++)
	{
	 if (mat[l_i][l_j]==1)
		gradNod++;
    }
	if (gradNod<=gradMin)
	{
	 gradMin=gradNod;
	}
   }
   for (l_i=0; l_i<nElem; l_i++)
   {
    gradNod=0;
    for (l_j=0; l_j<nElem; l_j++)
	{
	 if (mat[l_i][l_j]==1)
		gradNod++;
    }
	if (gradNod==gradMin)
	{
     vectMin[l_k++]=l_i+1;	 
	}
   } 
   nv=l_k;
 }

 void xGrad(matriceI mat, int nElem, vectorI vectGradeMax, int &nv, int gradDeVerificat)
 {
  int l_i, l_j, l_k, l_q=0;
  int gradNod;
  vectorI vectGrade;

   for (l_i=0; l_i<nElem; l_i++)
   {
    gradNod=0;
    for (l_j=0; l_j<nElem; l_j++)
	{
	 if (mat[l_i][l_j]==1)
	 {
	  gradNod++;
	 }
    }
	vectGrade[l_i]=gradNod;
   }
   for (l_k=0; l_k<nElem; l_k++)
   {
    if (vectGrade[l_k]==gradDeVerificat)
	{
	 vectGradeMax[l_q++]=l_k+1;
	}
   }
   nv=l_q;
 }

 int main(void)
 {
  matriceI Mat; 
  vectorI VectMax, VectMin, VectGradeMax;
  int nEleml, nev;
  int gradCautat;

   citireMatrice(Mat, nEleml);
   afisareMatrice(Mat, nEleml);
   cout << endl;
   gradeMaxim(Mat, nEleml, VectMax, nev);
   cout << "Nodul/nodurile de grad maxim: ";
   afisareVector(VectMax, nev);
   gradeMinim(Mat, nEleml, VectMin, nev);
   cout << "Nodul/nodurile de grad minim: ";
   afisareVector(VectMin, nev);
   cout << endl;
   cout << "Introdu gradul cautat: ";
   cin >> gradCautat;
   xGrad(Mat, nEleml, VectGradeMax, nev, gradCautat);
   if (nev>0)
   {
    cout << "Nodurile de gradul " << gradCautat << " sunt: ";
    afisareVector(VectGradeMax, nev);
   }
   else
   {
    cerr << "Nu exista noduri de gradul cautat!!!" << endl;
   }

   cout << endl;

   return 0;
 }


Output:
1
2
3
4
5
6
7
Introdu numarul de noduri: 

Nodul/nodurile de grad maxim: 
Nodul/nodurile de grad minim: 

Nu exista noduri de gradul cautat!!!
Introdu gradul cautat: 


Create a new paste based on this one


Comments: