| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Erstatning for array og info ang. bin/hex Fra : felixnielsen@hotmail~ | 
  Dato :  21-01-06 16:44 |  
  |  
 
            Jeg har et lille problem som jeg tænker at der måske er nogle kloge
 hoveder herinde der kan løse.
 Problemmet består i at jeg skal til at skrive et lille program der der
 kan ricikere at skulle have med ekstremt store heltal at gøre og i
 sidste ende "uendelig" mange af dem, derfor kan jeg naturligvis ikke
 bruge arrays til at holde styr på dem, dels fordi at man jo skal
 angive et antal pladser i arrayed når det initialiseret, men også
 fordi at det af åbenlyse årsager vil være spild af hukkommel da elle
 pladserne jo, så vidt jeg ved, bliver initialiseret som værende samme
 type variabel, fx int, selv om mange af værdierne vil være så små
 at de med fordel kunne blive gemt i en variabel af en type der ikke
 kræver såmeget plads.
 Jeg tænker at man måske kunne bruge en form for database, det er ikke
 noget jeg har rodet særlig meget med, men det er mit intryk at det
 ville være en dårlig løsning.
 Derudover har jeg læst lidt om construct og classes, men slet ikke nok
 til at kunne vurdere om det er noget der kan bruges (og så virker det
 også noget forvirende   
Jeg kunne tænke mig at høre nogle forslag om hvilken metode der ville
 være mest passende at bruge, også gerne andre metoder end dem jeg har
 foreslået.
 Der ud over overvejer jeg også kraftigt at lave udregningerne i binær
 eller hex da det kan vise sig at være mere fordelagtigt, men er der
 nogen funktioner inkludere som man evt. kan bruge til det?
 Sidst men ikke mindst. Jeg er håbløs nybegynder, så hvis det er
 være mulig at skrive evt. svar på et sprog der ikke indeholder alt
 formange mærkelige ord og geek expressions ville det være en stor
 hjælp   
På forhånd tak.
            
              |   |   
            
        
 
            
         
           felixnielsen@hotmail~ (21-01-2006) 
         
	
            | Kommentar Fra : felixnielsen@hotmail~ | 
  Dato :  21-01-06 17:33 |  
  |  
 
            Jeg har ige skrevet et lille stykke kode, det på ingen måde korrekt,
 men jeg håber at det illustrer mit problem og så kan det o også
 være at der er nogen der kan regne ud hvad menningen med galskaben er
  
int X = ?;
 int temparray[?];
 int i = 0;
 int ii = 0;
 int primearray[?] = {2,3,5,7,11,13,17,19...};
 bool isprime = false;
 while (X != -1) {
    if (X % P[i]) {
       X = X / Primearray[i];
       temparray[ii] = P[i];
       ii++;
    }
    elseif (X == 1) {
       if (ii == 1) {
          isprime = true;
       }
       i = -1;
    }
    else {
    i++;
    }
 }
 if (isprime == true) {
    cout << temparray[0] << "is prime";
 }
 else {
    cout << temparray[0] << "*" << temparray[1] << "*" <<temparray[2]
 (ect.)
 }
 lidt rodet og med masser af fejl og kan helt sikkert skrives
 smartere...   
            
             |   |   
            
        
 
            
         
           felixnielsen@hotmail~ (21-01-2006) 
         
	
            | Kommentar Fra : felixnielsen@hotmail~ | 
  Dato :  21-01-06 17:44 |  
  |   
            lige et par hurtige rettelse og tilføjelser.
 
 int X = ?;
 int temparray[?];
 int i = 0;
 int ii = 0;
 int primearray[?] = {2,3,5,7,11,13,17,19...};
 bool isprime = false;
 while (X != -1) {
    if (X % P[i] == 0) {
       X = X / Primearray[i];
       temparray[ii] = P[i];
       ii++;
    }
    elseif (X == 1) {
       if (ii == 1) {
          isprime = true;
       }
       i = -1;
    }
    else {
    i++;
    }
 }
 if (isprime == true) {
    cout << temparray[0] << "is prime";
 }
 else {
    for (i = 0; i < ii; i++) {
       if (i != ii-1) {
          cout << temparray[i] << " * ";
       }
       else {
          cout << temparray [i] << endl;
       }
    }
 }
 
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (21-01-2006) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  21-01-06 19:01 |  
  |  
 
            felixnielsen@hotmail.com skrev:
 > Problemmet består i at jeg skal til at skrive et lille program der der
 > kan ricikere at skulle have med ekstremt store heltal at gøre og i
 > sidste ende "uendelig" mange af dem, derfor kan jeg naturligvis ikke
 > bruge arrays til at holde styr på dem
 Du kan lave et array med dynamisk tildeling:
 if (antal poster == maksimum)
    opret nyt array med 100 ekstra poster;
    kopier det gamle array til det nye;
    nedlæg det gamle array;
 > Der ud over overvejer jeg også kraftigt at lave udregningerne i binær
 > eller hex da det kan vise sig at være mere fordelagtigt, men er der
 > nogen funktioner inkludere som man evt. kan bruge til det?
 Udgregninger laves automatisk, og du kan ikke tvinge nogen
 bestemt metode ned over C medmindre du skriver det hele helt fra
 bunden, og det vil være vanvid.
 Du kan derimod bestemme hvilken form resultaterne skal
 præsenteres på for mennesker, og det er ikke svært. Du kan endda
 vise flere slags på én gang.
 -- 
 Bertel
 http://bertel.lundhansen.dk/      http://fiduso.dk/
            
             |   |   
            
        
 
            
         
           felixnielsen@hotmail~ (22-01-2006) 
         
	
            | Kommentar Fra : felixnielsen@hotmail~ | 
  Dato :  22-01-06 00:09 |  
  |  
 
            Ja, det var da et løsning forslag, det løser dog ikke problemmet med
 den enorme hukkommelses tildelling, men det er måske slet ikke så
 slem endda.
 hvad angår bin/hex, så er jeg lidt ligeglad hvordan computeren laver
 beregningerne, det jeg mente var at jeg fx.  godt kunne tænke mig at
 skrive FF*FF istedet for 255*255 i nogle tilfælde, det må da kunne
 lade sig gøre.
 ellers tak for svaret   
            
             |   |   
            
        
 
            
         
           Kent Friis (22-01-2006) 
         
	
            | Kommentar Fra : Kent Friis | 
  Dato :  22-01-06 00:19 |  
  |   
            Den 21 Jan 2006 15:09:23 -0800 skrev felixnielsen@hotmail.com:
 > Ja, det var da et løsning forslag, det løser dog ikke problemmet med
 > den enorme hukkommelses tildelling, men det er måske slet ikke så
 > slem endda.
 >
 > hvad angår bin/hex, så er jeg lidt ligeglad hvordan computeren laver
 > beregningerne, det jeg mente var at jeg fx.  godt kunne tænke mig at
 > skrive FF*FF istedet for 255*255 i nogle tilfælde, det må da kunne
 > lade sig gøre.
 
 I C skriver man 0xff (0x betyder at det er hex).
 
 Mvh
 Kent
 -- 
 Hard work may pay off in the long run, but laziness pays off right now.
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (22-01-2006) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  22-01-06 00:39 |  
  |  
 
            felixnielsen@hotmail.com skrev:
 > Ja, det var da et løsning forslag, det løser dog ikke problemmet med
 > den enorme hukkommelses tildelling, men det er måske slet ikke så
 > slem endda.
 På mit system fylder en double 8 byte.
    printf("%d",sizeof(double));
 En pointer fylder 4 byte, og dertil kommer dem den peger på.
 -- 
 Bertel
 http://bertel.lundhansen.dk/      http://fiduso.dk/
            
             |   |   
            
        
 
            
         
           felixnielsen@hotmail~ (22-01-2006) 
         
	
            | Kommentar Fra : felixnielsen@hotmail~ | 
  Dato :  22-01-06 14:37 |  
  |   
            Tak for svarende endnu engang.
 ang. hex, så virker det jo meget simpelt, men er det muligt at jeg
 lige kan få et hint til hvordan man udskriver i hex?
 
 Og den sidste post men pointers forstår jeg beklageligvis ikke helt
 menningen med, er det menningen at det skal være et godt råd eller
 sådan?
 
  
            
             |   |   
            
        
 
            
         
           Kent Friis (22-01-2006) 
         
	
            | Kommentar Fra : Kent Friis | 
  Dato :  22-01-06 15:05 |  
  |   
            Den 22 Jan 2006 05:37:22 -0800 skrev felixnielsen@hotmail.com:
 > Tak for svarende endnu engang.
 > ang. hex, så virker det jo meget simpelt, men er det muligt at jeg
 > lige kan få et hint til hvordan man udskriver i hex?
 
 printf med %x plejer at kunne gøre det.
 
 Mvh
 Kent
 -- 
 Hard work may pay off in the long run, but laziness pays off right now.
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (22-01-2006) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  22-01-06 16:33 |  
  |  
 
            felixnielsen@hotmail.com skrev:
 > Og den sidste post men pointers forstår jeg beklageligvis ikke helt
 > menningen med, er det menningen at det skal være et godt råd eller
 > sådan?
 Hvis du ikke forstår det, skal du bruge et array og ikke
 spekulere mere over det. Forklaringen bliver ret omfattende, men
 kort fortalt kan man bruge pointere hvis man gerne vil undgå at
 forudbestille et meget stort array fordi det ikke er sikkert at
 det er nødvendigt, mens et lille array måske er for lille. Med
 pointere kan man oprette plads efterhånden som der bliver brug
 for den.
 Med den fidus jeg gav dig i mit første svar, kan du dog også
 tilpasse et array løbende.
 -- 
 Bertel
 http://bertel.lundhansen.dk/      http://fiduso.dk/
            
             |   |   
            
        
 
            
         
           felixnielsen@hotmail~ (22-01-2006) 
         
	
            | Kommentar Fra : felixnielsen@hotmail~ | 
  Dato :  22-01-06 16:02 |  
  |   
            sry, jeg er som sag nybegynder, mener du printf%x? eller evt. printf
 ($etellerandet, %x); eller hvordan?
 
  
            
             |   |   
            
        
 
            
         
           Kent Friis (22-01-2006) 
         
	
            | Kommentar Fra : Kent Friis | 
  Dato :  22-01-06 16:20 |  
  |   
            Den 22 Jan 2006 07:01:39 -0800 skrev felixnielsen@hotmail.com:
 > sry, jeg er som sag nybegynder, mener du printf%x? eller evt. printf
 > ($etellerandet, %x); eller hvordan?
 
 Har du overvejet en C begynderbog? Evt må der findes en online.
 
 Mvh
 Kent
 -- 
 Hard work may pay off in the long run, but laziness pays off right now.
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (22-01-2006) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  22-01-06 16:35 |  
  |  
 
            felixnielsen@hotmail.com skrev:
 > sry, jeg er som sag nybegynder, mener du printf%x? eller evt. printf
 > ($etellerandet, %x); eller hvordan?
 tal=217;
 printf("%x",tal);
 Sådan udskrives tallet i hexformat.
 -- 
 Bertel
 http://bertel.lundhansen.dk/      http://fiduso.dk/
            
             |   |   
            
        
 
            
         
           felixnielsen@hotmail~ (22-01-2006) 
         
	
            | Kommentar Fra : felixnielsen@hotmail~ | 
  Dato :  22-01-06 16:43 |  
  |   
            Nå så fik jeg det på plads og endnu engang tak for alle svarende.
 og ja, jeg har seriøst overvejet at købe en begynderbog, men det
 kræver penge som jeg ikke har, hvad angår toturials på nettet så
 har jeg læst en hel del om emnet, men som vi alle ved er mange af dem
 af rigtigt dårlig kvalitet.
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |