C++ zadatak - memorijska efikasnost

Teme vezane za console/GUI programiranje u C/C++ jeziku
7 post(ov)a • Stranica: 1/1.

C++ zadatak - memorijska efikasnost

PostPostao/la Armin » 24 ruj 2013, 15:10

Ovo je zadatak za članove foruma, da vidim kako bi riješili ovakav tip problema. Zadatak je napraviti C++ program u kojem bi korisnik mogao unijeti matricu dimenzija NxM tipa double. Način unosa je do vas.

Matrica mora biti formirana tako da ukoliko je neki element matrice 0, da ne zauzima memorijski prostor. Uraditi i ispis za ovakav tip matrice. Dozvoljeno je koristiti sve standardne C++ biblioteke ukoliko je potrebno. Ne smiju se koristiti vanjske biblioteke (kao Lapack i slično). I nemojte koristit tuđi kod, cilj je da sami riješite problem.
"Ne žalim što su drugi pokrali moje ideje. Žalim što nemaju svoje"
Nikola Tesla

Re: C++ zadatak - memorijska efikasnost

PostPostao/la gagiD » 26 ruj 2013, 01:49

Evo ja sam ko nesto pokuso s nizom al nije to to :/

cpp code
#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
int m;
cin>>m;
double *p = new double[m];
for ( int i=0 ; i<m ; i++ ) {
cin>>*(p+i);
}
for ( int i=0 ; i<m ; i++ ) {
if ( p[i] == 0 ) {
delete (p+i);
}
}
return 0;
}

Re: C++ zadatak - memorijska efikasnost

PostPostao/la Armin » 26 ruj 2013, 10:14

Ni blizu :D
"Ne žalim što su drugi pokrali moje ideje. Žalim što nemaju svoje"
Nikola Tesla

Re: C++ zadatak - memorijska efikasnost

PostPostao/la gagiD » 26 ruj 2013, 20:24

Nesto ovako?

cpp code
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
int m;
cin>>m;
double *p=(double*)calloc(1,sizeof(double));
for ( int i=0 ; i < m ; i++ ) {
double tmp;
cin>>tmp;
if ( tmp != 0 ) {
p[i] = tmp;
realloc(p,sizeof(double));
}
}
return 0;
}

Re: C++ zadatak - memorijska efikasnost

PostPostao/la Armin » 27 ruj 2013, 09:29

Uradi sve što se traži u zadatku i prikaži primjer poziva.
"Ne žalim što su drugi pokrali moje ideje. Žalim što nemaju svoje"
Nikola Tesla

Re: C++ zadatak - memorijska efikasnost

PostPostao/la HepeK » 27 ruj 2013, 10:43

Malo da se uključim. Ovako nesto se koristi u matlabu pod nazivom sparsna matrica. Naime, dobije se novi tip matrice koji zapisuje lokaciju i vrijednost nenultog elementa dok se ostali elementi ne zapisuju tj nule su.
"Ko nema u glavi ima na internetu"
Što čujem - poštujem, dok ne vidim - ne vjerujem.

Re: C++ zadatak - memorijska efikasnost

PostPostao/la Armin » 27 ruj 2013, 19:40

Da, ovo su sparsne matrice. Najlakši pristup ovome je preko vezanih listi. Dovoljno rečeno :)
"Ne žalim što su drugi pokrali moje ideje. Žalim što nemaju svoje"
Nikola Tesla


7 post(ov)a • Stranica: 1/1.

Na mreži

Trenutno korisnika/ca: / i 1 gost.