Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Inserimento a pettine!

  1. #1

    Inserimento a pettine!

    Salve a tutti, mi servirebbe una mano su un programma che non sono proprio riuscito a fare:
    Effettuare l'inserimento a pettine
    esempio:
    ANDREA
    CASA
    !
    ACNADSRAEA

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da ferdinando994 Visualizza il messaggio
    Salve a tutti, mi servirebbe una mano su un programma che non sono proprio riuscito a fare:
    Effettuare l'inserimento a pettine
    esempio:
    ANDREA
    CASA
    !
    ACNADSRAEA

    Grazie in anticipo
    Cosa hai scritto? Errori? Idee?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Purtroppo no, non so proprio come impostare il ragionamento, sono consapevole che dovrei almeno proporre qualche linea di codice, ma mi servirebbe un vostro consiglio!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Allora comincia ad impostare il programma in modo da inserire da tastiera le due frasi (o parole).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    codice:
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    using namespace std;
    
    
    const int MAX_ELEM=30;
    const int MAX_DIM=20;
    typedef char stringa[MAX_ELEM+1];
    
    
    void lettura (stringa, stringa);
    void stampa (stringa, stringa);
    
    
    int main (){
        stringa s1, s2;
        lettura (s1,s2);
        stampa (s1,s2);
        system ("pause");
    }
    
    
    void lettura (stringa s1, stringa s2){
        cout<<"Inserire la prima stringa: ";
        cin>>s1;
        cout<<"\nInserire la seconds frase: ";
        cin>>s2;
    }
    
    
    void stampa (stringa s1, stringa s2){
        cout<<"\nLa prima stringa e': "<<s1;
        cout<<"\nLa seconda stringa e' :"<<s2 <<"\n";
    }
    Ultima modifica di MItaly; 22-04-2014 a 22:19 Motivo: Indentazione, tag CODE

  6. #6

    Moderazione

    • Il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione;
    • il linguaggio di riferimento va sempre specificato (anche nel titolo, sotto forma di "tag");


    Questa volta correggo io, in futuro ricordatene.


    ---edit---
    Ah, il cross-posting con altri forum non è esplicitamente vietato, ma non ci si fa troppo bella figura a tenere il piede in più scarpe in questo modo...
    Ultima modifica di MItaly; 22-04-2014 a 22:21
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Grazie mille, mi scuso!

  8. #8
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    ho corretto un po' il tuo codice e ho inserito una prima, parziale, implementazione della funzione "pettine".

    codice:
    #include <iostream>
    #include <string.h>
    using namespace std;
    
    
    
    
    const int MAX_ELEM=30;
    const int MAX_DIM=20;
    
    
    
    
    void lettura (string *s1, string *s2);
    void stampa (string s1, string s2);
    string pettine (string s1, string s2);
    
    
    
    
    int main ()
    {
        string s1, s2;
        lettura(&s1, &s2);
        stampa (s1,s2);
    
    
        string mix = pettine(s1, s2);
        cout<<"Mix: "<<mix<<endl;
    
    
        return 0;
    }
    
    
    
    
    void lettura(string *s1, string *s2)
    {
        cout<<"Inserire la prima stringa: ";
        cin>>*s1;
        cout<<"Inserire la seconda stringa: ";
        cin>>*s2;
    }
    
    
    
    
    void stampa (string s1, string s2)
    {
        cout<<"\nLa prima stringa e': "<<s1;
        cout<<"\nLa seconda stringa e': "<<s2 <<"\n";
    }
    
    
    
    
    string pettine(string s1, string s2)
    {
        int l1 = s1.length();
        int l2 = s2.length();
        int lMin;
        string result;
        if(l1<=l2) lMin = l1;
        else lMin = l2;
        for(int i=0; i<lMin; i++)
        {
            result += s1[i];
            result += s2[i];
        }
        return result;
    }

    Come vedi il mescolamento termina sulla lunghezza della stringa più corta. Da qui puoi provare a modificare il comportamento della funzione perché faccia quello che vuoi tu con i caratteri rimanenti della stringa più lunga.


  9. #9
    Grazie millee!!

  10. #10
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Prego, però mi raccomando: cerca di capire il funzionamento del codice e se hai dubbi facci sapere.


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.