[ osmania @ 19.11.2007. 12:34 ] @
radim u devc++

evo code 1: samo mi se ugasi kad pokrene funkciju stk() zasto?????

Code:
#include <iostream>
#include <math.h>
using namespace std;

unsigned x = 0;
int show = 1;

const int size = 100000;
const int calls = 20;

void stk()
{
  int a[size];
  x++;
  if(show)
    cout << x << " " << flush;
  stk();
}

int main()
{
  cout << "Je Call: " << size << " * "
    << sizeof(int) << " Byte  = " << size * sizeof(int) << " Byte " << endl;
  cout << "ca " << calls << " calls, stacksize ca "
    << (calls * size * sizeof(int)) / 1000000 << " MB" << endl;
  cout << endl << "show count? ";
  cin >> show;
  stk();
  return 0;
}


a ovaj code mi se zakuca kad dodje da uradi power () zasto????


Code:
#include <iostream>
#include <math.h>
using namespace std;

int mult(int m, int n)
{
  if(n == 0 || m == 0)                    
    return 0;
  if(n<0) {
      n=-n;
      m=-m;
  }
                          
   return m + mult(m, n - 1);                

  //n = -n;                                
  //return -mult(m, n);                        
}

int power(int m, unsigned int n)
{
  if(m == 0)                            
    return 0;
  if(n == 0)                            
    return 1;
  return mult(m, power(m, n - 1));                
}

int main()
{
  int z;
  int m, n;
  do {
    cout << "m,n: ";
    cin >> m >> n;
    cout << "Mult: " << mult(m, n) << endl;
    if(n >= 0)
      cout << "Power: " << power(m, n) << endl;

    cout << endl;
    cout << "Nochmals? (0=Abbruch) ";
    cin >> z;
  } while(z != 0);
  return 0;
}
[ perun_ @ 19.11.2007. 12:43 ] @
Ponovo neko prekoracenje memorije. Gde li samo nalazis ove ludacke kodove..tztztztz
[ osmania @ 19.11.2007. 12:50 ] @
stari ovo je sve vjezbanje tako moram da skontam sta i kako sta funkcionise, znaci moram da znam sta i koja funkcija radi trazi stoka na faxu da citamo code ko bukvar....
nego gdje je greska u codu?
zasto puke mi code?
hvala puno?
[ perun_ @ 19.11.2007. 12:54 ] @
Greske u kodu i nema. Niti prijavljuje gresku pri prevodjenju, niti upada u beskonacnu petlju i slicno, radi ono sto treba da radi.. E jedino sto se prekoraci memorija (koliko ja vidim).. Unosi manje brojeve i radice.. Ne znam sta da ti kazem...
[ osmania @ 19.11.2007. 13:12 ] @
znam da radi sve akko treba ali pokrene se petlja power i onda samo windows mi izbaci gresku ugasi program, to je jedino sto me buni a desava mi se vec u 3 programa koji pozove funkciju???? ne znam sta da uradim ? 7 i 9 nisu veliki brojeve svi u u int opsegu9 na 7 ili 7 na 9 je u int opsegu???
[ perun_ @ 19.11.2007. 13:54 ] @
To da ulazi u int sam napisao u onom drugom topic-u. Nije do toga... Vec oko silnih poziva f-ja.. Ti mislis to se " 'nako bezveze.."?
[ Black3maj @ 19.11.2007. 14:29 ] @
za prvi kod funkcija stk poziva samu sebe (rekurzija) to je ok,ali problem je sto ce ta funkcija pozvati samu sebe svaki put tj upadas u beskonacnu petlju nemas neki uslov za iskakanje iz rekurzije.

Za drugi kod pokusaj da umesto
Code:
#include <math.h>

pises
Code:
#include <cmath>

posto radis u c++.
[ osmania @ 19.11.2007. 17:00 ] @
uspio sam na SUN serveru da pokrenem ovo preko SSH
i evo sta mi je reklo

Segmentation Fault (core dumped)

jel ovo zaglavi u memoriji ili???

[ perun_ @ 19.11.2007. 21:11 ] @
Kompajlirao si ga uz pomoc gcc kompajlera (verovatno sa g++). Tacno je da je po tom (a i po mnogim drugim) pitanju bolji od windows-og kompajlera. Vec dva puta sam ti napisao da se u vezi onog 7 na 9 dolazi do greske usled prekoracenja na memoriji (vezano za stack i mnostvo poziva f-ja power i mult). Dokaz tome je sto sa power(3,3) savrseno dobro radi.
[ osmania @ 19.11.2007. 22:09 ] @
evo mene ponovo sa nekim vec poznatim rezultatima.
Ovako prvo onaj stack koji sam citav dan skoro radio radi se u tome da on puni stack sa int a[size] i napuni ga. I kad ganapuni onda ga i prepuni u biti trebalo je da pokaze za koliko puta da se funkcija stack napuni u biti zavisno od size ali sta mi je cudno bilo uvjek je vrijednost oko 2 MB, u biti cim funkcija napuni dva MB onda iskace eh sada pitanje je zasto 2 MB. Jel to definicija stack ili???


A sto se tice one drugoog zadatka:uvjesto ove linije coda:

Code:
return mult(m, power(m, n - 1));


staviti ovo

Code:
return m*power(m, n - 1);


i nema nikakvih problema mada mi jos nije jasno zasto onda dodje core pumping :)

hvala puno ekipi koja saradjuje...
pozz