DOMANDA Ancora stringhe

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.
... MI si ferma a "string ConcAltStringhe( string a, string b)"
...
"mi si ferma a": che cosa vuole dire? NULLA. Devi imparare per prima cosa a usare il compilatore, senza di quello non vai da nessuna parte. E come cercare di guidare un'auto con il serbatoio vuoto e non c'e' nessun forum che ti faccia il pieno di benzina.
Il compilatore "si ferma" perche' ha trovato un errore, e TI DICE che errore sia. Impara a leggere e capire l'errore e ti accorgerai che hai dimenticato una linea nel tuo nuovo codice, istruzione che ERA PRESENTE nelle versioni che hai postato prima.

Nessuno e' riuscito a fare l'esercizio perche' non sapete pensare. Una volta che avete imparato cosa siano i vettori (perche' una stringa non e' niente altro che un vettore) dovete imparare a USARLI, e quello lo imparate solo facendo esercizi (come appunto questo). PENSARE signifca guardare una linea di codice e CAPIRE cosa faccia, che risultato dia. Una volta che avete capito quello, tutto il resto e' facile, almeno per questo tipo di esercizi che si fanno in un minuto.
 
Un altro consiglio utile può essere quello di disegnare su carta i vari passi che l'algoritmo deve compiere, segnati le posizioni degli indici dei vari array ad ogni passo, ti aiuterà a capire il codice da scrivere.
 
"mi si ferma a": che cosa vuole dire? NULLA. Devi imparare per prima cosa a usare il compilatore, senza di quello non vai da nessuna parte. E come cercare di guidare un'auto con il serbatoio vuoto e non c'e' nessun forum che ti faccia il pieno di benzina.
Il compilatore "si ferma" perche' ha trovato un errore, e TI DICE che errore sia. Impara a leggere e capire l'errore e ti accorgerai che hai dimenticato una linea nel tuo nuovo codice, istruzione che ERA PRESENTE nelle versioni che hai postato prima.

Nessuno e' riuscito a fare l'esercizio perche' non sapete pensare. Una volta che avete imparato cosa siano i vettori (perche' una stringa non e' niente altro che un vettore) dovete imparare a USARLI, e quello lo imparate solo facendo esercizi (come appunto questo). PENSARE signifca guardare una linea di codice e CAPIRE cosa faccia, che risultato dia. Una volta che avete capito quello, tutto il resto e' facile, almeno per questo tipo di esercizi che si fanno in un minuto.


Dunque informatica non è l'unica materia a scuola e dire che non sappiamo pensare è un po' azzardato ritengo...
Io penso che un forum cosi' specifico serva ad aiutare a crescere e a colmare lacune che uno puo' avere non perchè non studia ma perchè non è portato in questa materia, infatti ho ottimi voti in altre materie, non sono proprio "scemo".....
Quello che dico che in certi casi se uno vuole aiutare quando si fanno errori per voi grossolani perchè sapete "fare in un minuto l'esercizio" a volte magari a fianco del codice errato potete scrivere (se avete voglia) due righe sull'errore e la correzione , non si tratta di rifare tutto l'esercizio.
A questo punto forse è meglio non scrivere piu' nel forum se non sono al vostro livello, mi spiace veramente ma percepisco questo.
Io intanto ringrazio.
 
A questo punto forse è meglio non scrivere piu' nel forum se non sono al vostro livello, mi spiace veramente ma percepisco questo.
E' comprensibile che sia questa la tua impressione ma dal mio punto di vista domande come le tue sono le benvenute.

La cosa che immagino faccia regire un pò male certi utenti è l'idea che non ci sia l'impegno o la voglia di sforzarsi a capire i problemi, perchè spesso la soluzione è già nel messaggio d'errore o nell'uso del debug.
 
Un altro consiglio utile può essere quello di disegnare su carta i vari passi che l'algoritmo deve compiere, segnati le posizioni degli indici dei vari array ad ogni passo, ti aiuterà a capire il codice da scrivere.
Esattamente. Ecco perché dico che qui il problema sta nel chi non vuole "pensare". Basta un poco, carta e penna, vedere cosa succede in un vettore all'interno di un ciclo, vedere come gli indici corrono e come i vettori vengono cambiati dopo ogni ciclo. Cosa che si può fare anche (e meglio) con l'aiuto di un debugger che ormai è incluso in ogni IDE.
 
Dunque io ho fatto cosi' viene giusto

Codice:
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
#include <string>

using namespace std;

string Concatena( string a, string b)
// es. abcd e efgh aebfcgdh
{

    int dim=a.length();
    int dim1=b.length();
     string risulta;

    if(dim==dim1)
    {
        for(int i=0;i<dim;i++)
        {
           risulta = risulta+ a[i];
           risulta= risulta+ b[i];
          
        }
    }
    return risulta;

    }
int main()
{
  srand(time(NULL));


  string a;
  cin>>a;
  string b;
  cin>>b;
  cout<<Concatena(a,b);



    return 0;
}
 
Perchè utilizzi srand?
Che cosa succede se le stringhe hanno lunghezze differenti?
 
Hai ragione sdrand l'avevo dimenticato dentro non c'entra nulla, per il discorso "Se le stringhe hanno lunghezze diverse, il programma restituisce la stringa vuota " ti chiedo aiuto come scriverlo. Ho provato a mettere (dopo return risulta) return "" o return stringa () (avevo trovato online questi modi per un'empty string ) ma non viene diverso se non lo mettessi se le stringhe fossero di lunghezza diversa....

Codice:
if(dim!=dim1)
{
return "";
}
[\code]

in pratica cosi' (tra l'altro mi comprare erroe nella riga return risulta""; mi viene scritot che manca un ; )


Codice:
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
#include <string>

using namespace std;

string Concatena( string a, string b)
// es. abcd e efgh aebfcgdh
{

    int dim=a.length();
    int dim1=b.length();
    string result;

    if(dim==dim1)
    {
        for(int i=0;i<dim;i++)
        {
           risulta = risulta + a[i];
           risulta= risulta + b[i];

        }
    }
    return risulta;
if(dim!=dim1)
   {
    return risulta"";
   }
    }

int main()
{



  string a;
  cin>>a;
  string b;
  cin>>b;
  cout<<Concatena(a,b);



    return 0;
}

[\code]
 
Ultima modifica:
Hai ragione, ho fatto confusione tra linguaggi. C++ inizializza direttamente la stringa a "", quindi non serve inizializzarla esplicitamente.
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top