Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Programma conversione basi di numeri

    salve.. devo scrivere un programma che converta un numero da base 10 a base b scelta da tastiera..ho provato a fare in questo modo:

    #include "util.h"

    void convertiNumero(stringa s, int &num, int &base, int&riemp){

    int j=-1,i=-1;
    int* app=NULL;
    app=new int [max-1]; //Puntatore ad array

    if (app[j]<=1){ //Se il numero diviso è <=1, procedi alla stampa al contrario della stringa
    stampaStringa (s, riemp); //e svuota l'array dinamico
    delete [] app;
    }

    else{
    app[-1]=num;
    riemp++;
    i++;
    j++;
    if(j==0){ //La prima volta che il ciclo viene eseguito, dividi per il numero dato da tastiera
    app[j]=(app[0])/(base);
    s[i]=(app[0])%(base); //Inserisci nella stringa che verrà stampata a video il resto della divisione tra interi
    }

    else{ //Tutte le altra volte, dividi il numero del ciclo precedente con la base e memorizza il risultato
    app[j]=(app[j-1])/(base);
    s[i]=(app[j-1])%(base);
    }

    convertiNumero (s, app[j], base, riemp); //Ricorsione: ripeti la procedura con un numero inferiore a num finquando app[j]==1

    }

    }

    void stampaStringa (stringa s, int &riemp){

    int i;

    for (i=riemp+1; i>=0; i--)
    cout<<s[i]<<"\t";

    }



    Il programma viene compilato dal dev ma dà dei caratteri strani a video.
    Grazie a chiunque voglia aiutarmi.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    117
    Uno dei problemi che di sicuro c'è è che gli indici degli array vanno oltre i loro limiti (tra 0 e max-1). L'indice di un array non può, ad es. essere -1.

  3. #3
    Originariamente inviato da Cell
    Uno dei problemi che di sicuro c'è è che gli indici degli array vanno oltre i loro limiti (tra 0 e max-1). L'indice di un array non può, ad es. essere -1.
    Veramente gli indici possono essere negativi

  4. #4
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Originariamente inviato da menphisx
    Veramente gli indici possono essere negativi
    Davvero?
    La cosa mi è nuova, potresti spiegarmi come è possibile?

  5. #5
    Originariamente inviato da Pacio88
    Davvero?
    La cosa mi è nuova, potresti spiegarmi come è possibile?
    Semplicemente invece di andare avanti di un byte, va indietro

    codice:
    char mem[1024];
    char *p = &mem[512];
    
    /*
    p[1] => mem[513]
    p[-1] => mem[511]
    */

  6. #6
    Raga, nulla ancora? Ci sto sbattendo da un pò la testa e nn capisco perchè non funzioni...

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Pacio88
    Davvero?
    La cosa mi è nuova, potresti spiegarmi come è possibile?
    Mai sentito parlare di "aritmetica dei puntatori" ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Guybrush1989
    Raga, nulla ancora? Ci sto sbattendo da un pò la testa e nn capisco perchè non funzioni...
    Se non hai avuto ancora risposte e' probabilmente perche' il codice non e' facilmente leggibile ... Usa i tag CODE (o il tasto # del forum) e indenta il codice in modo che sia facilmente leggibile ed esaminabile.

    Inoltre, invia tutte le parti del codice che lo rendano compilabile, compresa la main altrimenti penso che pochi si prenderanno la briga di fare tutto quello che serve al posto tuo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Si l'aritmetica dei puntatori non mi è nuova, diciamo pure che la conosco..
    Ma ahimè a questa cosa degli indici negativi non avevo proprio mai pensato.

    P.S. Oltretutto io e gli indici non siamo molto amici (basti vedere una discussione di qualche giorno fa)

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Pacio88
    Si l'aritmetica dei puntatori non mi è nuova, diciamo pure che la conosco..
    Ma ahimè a questa cosa degli indici negativi non avevo proprio mai pensato.
    Allora non hai approfondito abbastanza l'aritmetica dei puntatori.

    P.S. Oltretutto io e gli indici non siamo molto amici (basti vedere una discussione di qualche giorno fa)
    Ecco ... tutto ha una spiegazione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.