Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Functii de comparare

c


Functii de comparare

Functiile de comparare a matricelor sunt folosite cu scopul de afla informatii despre o matrice sau un set de matrice din punctul de vedere al tipului unei matrice, a tipului elementelor ce o compun sau a numarului de aparitii īn cadrul acelei matrice al unei chei definite de utilizator.



Funtia symmet verifica daca o matrice patratica este simetrica. Functia primest 959e48j e ca date de intrare numarul de linii si de coloane al matricei, adica n si m, si matricea X care este verificata. Matricea este definita static. Functia returneaza adresa unei variabile de tip īntreg, *er, unde se scrie 1 daca matricea este simetrica si 0 daca matricea nu este simetrica. De asemenea functia verifica si daca matricea nu este patratica, caz īn care la adresa acelei variabile se scrie 0.

Functia este :

void symmet(int n,int m,int x[30][30],int *er)

Functia check_unit verifica daca matricea este sau nu matricea unitate. Functia are ca parametrii de intrare dimensiunile matricei X, definita static, care este verificata si anume n, numarul de linii, si m, numarul de coloane. Printre acesti parametrii se afla si adresa unei variabile de tip īntreg, *er, unde se scrie 1, daca matricea este matricea unitate ori 0,daca matricea nu este patratica sau nu este matricea unitate.

Functia este :

void check_unit(int n,int m,int x[30][30],int *er)

Functia check_no verifica daca un numar dat de utilizator functiei este sau nu īn matrice. Parametrii de intrare ai functiei sunt dimensiunile unei matrice definita static, n numarul de linii, m numarul de coloane si matricea X. Rezultatul verificarii este cunoscut prin intermediul unei variabile de tip īntreg eror, a carei adresa este parametru de intrare al functiei. Daca numarul cautat este īn matrice, eror are valoare 1 si daca numarul cautat nu este īn matrice atunci eror are valoarea 0. Numarul ce este cautat este citit īn interiorul functiei.

Functia este :

void check_no(int n,int m,int x[30][30],int *eror)

if(*eror==0) printf("\n The number is not in matrix!");

Functia check_line_column primeste ca date de intrare dimensiunile unei matrice, adica numarul de linii n si numarul de coloane m, si matricea respectiva X, definita static. Functia verifica daca un vector citit de la tastatura īn interiorul functiei reprezinta sau nu o coloana a matricei. O variabila numita eror, a carei adresa este parametru de intrare al functiei, ia valorile 1 sau 0 daca este adevarat sau daca nu.

La citirea vectorului, elementele sale sunt validate cu ajutorul functiei valid_no_integer.

Functia este :

void check_line_column(int n,int m,int x[30][30],int *eror)

//se verifica daca vectorul citit este sau nu coloana a matricei

for(j=0;j<m;j++)

}

if(k!=2) printf ("\n The line doesn't represent a column in the matrix");

Functia check_line_line verifica daca un vector citit de la tastatura īn interiorul functiei este sau nu linie intr-o matrice X, definita static,si care este parametru de intrare al functiei. Ca date de intrare functia mai are dimensiunile matricei, n linii si m coloane, si adresa unei variabile de tip īnreg eror, unde se scrie 1 īn caz de adevar si 0 īn caz de neadevar.

La citirea vectorului, elementele sale sunt validate cu ajutorul functiei valid_no_integer.

Functia este:

void check_line_line(int n,int m,int x[30][30],int *eror)

//se verifica daca vectorul citit este sau nu coloana a matricei

for(i=0;i<n;i++)

}

if(k!=2) printf ("\n The line doesn't represent a line in the matrix");

Urmatoarele 2 functii check_columns si check_lines verifica daca o matrice are sau nu coloane respectiv linii egale. Ambele functii au ca parametrii : numarul de linii al matricei, n, numarul de coloane al amtricei, m, matricea X definita static si adresa unei variabile de tip īntreg, eror, unde se scrie 1, daca se verifica egalitatea sau 0, daca nu se verifica.

Principiul care sta la baza celor doua functii este faptul ca se ia fiecare coloana, respectiv linie, si se compara cu urmatoarele afisāndu-se coloanele sau liniile egale.

Functiile sunt :

void check_columns(int n,int m,int x[30][30],int *eror)

}

}

if(l==0) printf("\n The matrix has no equal columns");

si respectiv :

void check_lines(int n,int m,int x[30][30],int *eror)

}

}

if(l==0) printf("\n The matrix has no equal lines");

Functia key_appar_no avānd ca parametrii numarul de linii si de coloane al unei matrice, n respectiv m, matricea respectiva X, definita static, si adresa unei variabile īntregi v ; numara de cāte ori un numar citit de la tastatura se afla īn acea matrice. Numarul de aparitii memorat la adresa variabilei v.

Numarul citit de la tastatura este validat cu ajutorul functiei valid_no_integer.

Functia este :

void key_appar_no(int n,int m,int x[30][30],int *v)

getch();

Urmatoarele doua functii key_appar_no_line si key_appar_no_column numara de cāte ori apare numar citit de la tastatura īntr-o linie respectiv coloana indicata de utilizator. Ambele functii au aceiasi parametrii : n numarul de linii al matricei, m numarul de coloane al matricei, matricea X definita static si adresa unei variabile īntregi v. La adresa acelei variabile se scrie numarul de aparitii al cheii de cautat īn coloana sau linia indicata de utilizator.

Functiile sunt :

void key_appar_no_line(int n,int m,int a[30][30],int *v)

else

si respectiv

void key_appar_no_column(int n,int m,int a[30][30],int *v)

else

Pe lānga aceste functii aflate īn biblioteca matrice.h, īn clasa matrix au fost supraīncarcati operatorii % si = = , pentru a se efectua operatii de comparare asupra obiectelor de tip matrix. Operatorul % supraīncarcat face acelasi lucru ca si functia symmet verificānd daca o matrice este simetrica.

Operatorul == verifica daca doua obiecte de tip matrix sunt egale, adica verifica daca doua matrice sunt egale. Operatorul primeste ca date de intrare adresa obiectului cu care se compara si returneaza 0 daca cele doua obiecte sunt diferite sau 1 daca obiectele sunt egale.

Secventa de cod care realizeaza acest lucru este :

int matrix::operator ==(matrix &b)

else return 0;

Functiile prezentate mai sus si care apartin bibliotecii sunt prezente si īn cadrul clasei matrix , dar ele nu mai au parametrii de intrare, ele returnānd valori de tip integer.

Modelele lor sunt :

int check_line_column();

int check_line_line();

int check_columns();

int check_lines();

int check_unit();

int key_appar_no(int);

int key_appar_no_line(int,int);

int key_appar_no_column(int,int);

Pe lānga aceste modificari de suprafata suferite de definirile functiilor pentru a se lucra cu obiecte, algoritmul folosit de fiecare functie este acelasi īn cadrul bibliotecii si clasei.



Document Info


Accesari: 2637
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )