diff --git a/librerie/exercise5/matrix/csr/matrixcsr.cpp b/librerie/exercise5/matrix/csr/matrixcsr.cpp index 757a07a..4abaddd 100755 --- a/librerie/exercise5/matrix/csr/matrixcsr.cpp +++ b/librerie/exercise5/matrix/csr/matrixcsr.cpp @@ -116,10 +116,7 @@ bool MatrixCSR::operator!=(const MatrixCSR& toCompare) const noexcept{ template void MatrixCSR::RowResize(const ulong& new_row_size){ - if(new_row_size == 0){ - Clear(); - } - else if(new_row_size > rows){ + if(new_row_size > rows){ R.Resize(new_row_size+1); for(ulong i=rows+1 ; i::RowResize(const ulong& new_row_size){ template void MatrixCSR::ColumnResize(const ulong& new_column_size){ - if(new_column_size == 0){ - Clear(); - } - else if(new_column_size < columns){ + if(new_column_size < columns){ Node** prev; Node* toDelete; Node** toModify; diff --git a/librerie/exercise5/matrix/vec/matrixvec.cpp b/librerie/exercise5/matrix/vec/matrixvec.cpp index d83a6c6..1ce8d50 100755 --- a/librerie/exercise5/matrix/vec/matrixvec.cpp +++ b/librerie/exercise5/matrix/vec/matrixvec.cpp @@ -70,22 +70,17 @@ bool MatrixVec::operator!=(const MatrixVec& toCompare) const noexcept{ } template -void MatrixVec::RowResize(const ulong& newdim){ - if(newdim == 0){ - Clear(); - }else{ - Vector::Resize(newdim * columns); - rows = newdim; - size = newdim * columns; +void MatrixVec::RowResize(const ulong& new_row_dim){ + if(new_row_dim != rows){ + Vector::Resize(new_row_dim * columns); + rows = new_row_dim; + size = new_row_dim * columns; } } template void MatrixVec::ColumnResize(const ulong& new_column_dim){ - if(new_column_dim == 0){ - Clear(); - } - else if(new_column_dim != columns){ + if(new_column_dim != columns){ ulong limit = (new_column_dim < columns)? new_column_dim : columns; Data* tmp = new Data[rows * new_column_dim]{}; for(ulong i=0 ; i #include - void menu(){ DataType chosenDataType; @@ -67,32 +66,38 @@ void UseChosenType(Implementation chosenImplementation, DataType chosenDataType) if(chosenDataType == DataType::integer){ MatrixVec mtx; mtx = GenerateIntegerMat(mtx); + cout<<"\nThe matrix has been randomly generated.\n"; IntegerFunctions(mtx); }else if(chosenDataType == DataType::ffloat){ MatrixVec mtx; mtx = GenerateFloatMat(mtx); + cout<<"\nThe matrix has been randomly generated.\n"; FloatFunctions(mtx); }else if(chosenDataType == DataType::sstring){ MatrixVec mtx; mtx = GenerateStringsMat(mtx); + cout<<"\nThe matrix has been randomly generated.\n"; StringFunctions(mtx); } }else if(chosenImplementation == Implementation::yale){ if(chosenDataType == DataType::integer){ MatrixCSR mtx; mtx = GenerateIntegerMat(mtx); + cout<<"\nThe matrix has been randomly generated.\n"; IntegerFunctions(mtx); }else if(chosenDataType == DataType::ffloat){ MatrixCSR mtx; mtx = GenerateFloatMat(mtx); + cout<<"\nThe matrix has been randomly generated.\n"; FloatFunctions(mtx); }else if(chosenDataType == DataType::sstring){ MatrixCSR mtx; mtx = GenerateStringsMat(mtx); + cout<<"\nThe matrix has been randomly generated.\n"; StringFunctions(mtx); } } @@ -360,7 +365,7 @@ void Double(T& mtx){ void (*fun)(int&, void*) = MultiplyAnElement; int par = 2; mtx.MapPreOrder(fun,(void*)&par); - cout<<"Done.\n"; + cout<<" Done.\n"; } void MultiplyAnElement(int& data, void* par){ data *= *(int*)par; @@ -371,11 +376,11 @@ void ProductsElementsLessThan(T& mtx){ int n, acc=1; void (*func)(const int&, const void*, void*) = AccumulateProduct; - cout<<"Multipy all elements of the matrix whose value is less than "; + cout<<" Multipy all elements of the matrix whose value is less than "; cin>>ws>>n; mtx.FoldPreOrder(func, (void*)&n, (void*)&acc); - cout<<"\nThe result is "< class Matrix, typename Data> void CheckExistence(Matrix& mtx){ Data elementToLookFor; - cout<<"\n\nCheck existence in the matrix of: "; + cout<<"\n\n Check existence in the matrix of: "; cin>>ws; cin>>elementToLookFor; - cout<<"The element " << ( (mtx.FoldableContainer::Exists(elementToLookFor))? "does" : "does not") << " exist\n\n"; + cout<<" The element " << ( (mtx.FoldableContainer::Exists(elementToLookFor))? "does" : "does not") << " exist\n\n"; } template