Pag 2 di 3 PrimaPrima 123 UltimaUltima
Risultati da 26 a 50 di 51

Discussione: C/c++

  1. #26
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Forse ho capito. Forse.
    E domani c'è il compito in classe sulle stringhe Adesso mi uccido tentando di programmare qualcosa di funzionante

  2. #27
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Arieccomi! Dopo aver passato il compito precedente in linea con il resto dell'anno (7,5) avrei bisogno di una mano.

    Nel programma che ci ha lasciato per casa dato un valore char dobbiamo sostituirlo il carattere che viene 5 volte dopo. Quindi se è A deve diventare F (A+5). Avevo pensato di creare un vettore in char con tutti i caratteri dell'alfabeto e spostarmi in base al confronto prima e incremento dell'indice dopo. Ma non si potrebbe lavorare sul valore ASCII e quindi evitare la creazione del vettore? Per spiegarmi A nel codice ASCII 41, per trovare il valore 5 volte successivo basta fare 41+5. È fattibile come ragionamento?

  3. #28
    La Borga L'avatar di Pozz
    Data Registrazione
    02-06-02
    Località
    Bollate (MI)
    Messaggi
    12,471

    Predefinito Re: C/c++

    una somma normale funziona:

    Codice:
    char a = 'a';
    
    printf("\n a=%c\n",a);
    
    int b =(int)a+5;
    
    
    printf("\n b=%c\n",(char)b);
    
    //output:
     a=a
    
     b=f
    ma è inguardabile
    spero uno che effettivamente sa programmare fornisca una via migliore

    edit:anche la mia scelta delle variabile è abbastanza infelice, vabbuò
    Ultima modifica di Pozz; 29-04-13 alle 17:42:47 Motivo: explicit castssss

  4. #29
    L'Onesto
    Data Registrazione
    16-02-12
    Località
    Solo chi nasce in mezzo al sale conosce l'amaro
    Messaggi
    1,090

    Predefinito Re: C/c++

    Se ho capito bene, dovrebbe bastare leggere in input un char e sommare direttamente 5, e funziona, non ce bisogno di convertire in intero.

    Soluzione sotto spoiler
    Spoiler:

    Codice:
    #include <stdio.h>
    
    int main()
    {
    	char a;
    	printf("Inserisci un carattere:");
    	scanf("%c",&a);
    	printf("Carattere in input:%c \n",a);
    	a=a+5;
    	printf("Carattere + 5 :%c \n",a);
    	return 0;
    }

  5. #30
    ZioYuri78
    ospite

    Predefinito Re: C/c++

    I char sono interi per definizione quindi si, basta fare una somma, ma attenzione, puoi usare solo i caratteri dell'alfabeto o tutti i caratteri della tabella ascii? Perchè nel primo caso quando arrivi alla quartultima lettera dell'alfabeto (in poi) non devi sommare in quanto sfori negli altri caratteri, quindi sarebbe il caso di usare un array e farti un algoritmino semplice semplice. Se invece puoi usare tutti i caratteri della tabella allora nessun problema, somma e vai con dios

    EDIT:

    Per capirci meglio, devi fare tipo la cifratura di Cesare?

  6. #31
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Citazione Originariamente Scritto da ZioYuri78 Visualizza Messaggio
    Per capirci meglio, devi fare tipo la cifratura di Cesare?
    Cosa?
    Comunque no, non posso utilizzare tutti i codici ascii, solo le lettere, ma se è per questo basta fare un calcolo veloce, vedere di quanto sfora e sommare lo sforamento al codice precedente alla A (in modo da ottenere, così, A se sfora di 1 dalla Z ecc...)

  7. #32
    ZioYuri78
    ospite

    Predefinito Re: C/c++

    Citazione Originariamente Scritto da saichisono Visualizza Messaggio
    Cosa?
    Comunque no, non posso utilizzare tutti i codici ascii, solo le lettere, ma se è per questo basta fare un calcolo veloce, vedere di quanto sfora e sommare lo sforamento al codice precedente alla A (in modo da ottenere, così, A se sfora di 1 dalla Z ecc...)
    Esatto, vedo che hai capito allincircasupergiù

    Il cifrario di Cesare è questo:
    http://it.wikipedia.org/wiki/Cifrario_di_Cesare

    In soldoni tu fai lo stesso ma spostandoti di 5 caratteri al posto che di 3

  8. #33
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Se l'avessi saputo prima avrei fatto copia-incolla da wikipedia modificando solo qualcosina

  9. #34
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Buonsalve!
    Torno sul post per altri dubbi.
    Abbiamo iniziato la programmazione ad oggetti, ma dichiarando la classe come file a se e aggiungendola alla libreria nel programma interessato non riesce a trovarmelo, cosa dovrei fare per dire al compilatore che quel file esiste e c'è da qualche parte?
    Per ora abbiamo fatto programmi creando la classe proprio sopra al programma, ma così è un po' nosense...

  10. #35
    Lo Zio
    Data Registrazione
    23-06-08
    Località
    Valle d'Agno
    Messaggi
    2,222

    Predefinito Re: C/c++

    Per fare le cose fatte bene bisogna costruire un makefile ma forse è troppo avanzata come cosa per il momento.

    In generale cmq dovresti compilare la classe eseguendo:
    g++ -c classe.cpp

    Poi il tuo programma:
    g++ -c programma.cpp

    E poi linkare insieme i due file risultanti dai precedenti comandi:
    g++ programma.o classe.o

    Il metodo "stupido" è includere il file .cpp invece che il .h nel programma anche se non ci metto la mano sul fuoco che funzioni... non programmo in c++ da un po' purtroppo o per fortuna, gh.


    Inviato dal mio Nexus 4

  11. #36

    Predefinito Re: C/c++

    per favorire il riutilizzo del software, è buona norma è separare anche l'interfaccia della classe (contenente le dichiarazioni e i prototipi) dall'implementazione vera e propria (contenente le definizioni). Così otterresti due file: TuaClasse.h (interfaccia) e TuaClasse.cpp (implementazione). Poi nel tuo sorgente principale (quello con la funzione main() ), vai a fare include solo di TuaClasse.h, così:

    #include <iostream>
    #include "TuaClasse.h" // le " non sono un errore ed è giusto fare così... e devi includerlo anche nel file TuaClasse.cpp, altrimenti il linker non può lavorare

    using namespace std;

    int main() {blablabla}


    esempi presi dall'ottimo manuale Deitel & Deitel 8th edition:

    main.cpp:

    Codice:
    // Fig. 3.13: fig03_13.cpp// GradeBook class demonstration after separating 
    // its interface from its implementation.
    #include <iostream>
    #include "GradeBook.h" // include definition of class GradeBook
    using namespace std;
    
    
    // function main begins program execution
    int main()
    {
       // create two GradeBook objects
       GradeBook gradeBook1( "CS101 Introduction to C++ Programming", "Lt. Spalman" );
       GradeBook gradeBook2( "CS102 Data Structures in C++", "Lt. Focaccia" );
    
    
       // display initial value of courseName for each GradeBook
       cout << "gradeBook1 created for course: " << gradeBook1.getCourseName() << "\nThis course is presented by: " << gradeBook1.getInstructorName()
           << "\n\ngradeBook2 created for course: " << gradeBook2.getCourseName() << "\nThis course is presented by: " << gradeBook2.getInstructorName()
          << endl;
    
    
       string omega;
       cin >> omega;
    } // end main
    
    
    
    
    
    
    /**************************************************************************
     * (C) Copyright 1992-2012 by Deitel & Associates, Inc. and               *
     * Pearson Education, Inc. All Rights Reserved.                           *
     *                                                                        *
     * DISCLAIMER: The authors and publisher of this book have used their     *
     * best efforts in preparing the book. These efforts include the          *
     * development, research, and testing of the theories and programs        *
     * to determine their effectiveness. The authors and publisher make       *
     * no warranty of any kind, expressed or implied, with regard to these    *
     * programs or to the documentation contained in these books. The authors *
     * and publisher shall not be liable in any event for incidental or       *
     * consequential damages in connection with, or arising out of, the       *
     * furnishing, performance, or use of these programs.                     *
     **************************************************************************/

    GradeBook.h

    Codice:
    // Fig. 3.11: GradeBook.h
    // GradeBook class definition. This file presents GradeBook's public 
    // interface without revealing the implementations of GradeBook's member
    // functions, which are defined in GradeBook.cpp.
    #include <string> // class GradeBook uses C++ standard string class
    using namespace std;
    
    
    // GradeBook class definition
    class GradeBook
    {
    public:
       GradeBook( string, string ); // constructor that initializes courseName
       void setCourseName( string ); // function that sets the course name
       void setInstructorName(string);    // function that sets the instructor's name
       string getCourseName(); // function that gets the course name
       string getInstructorName();    // function that gets the instructor's name
       void displayMessage(); // function that displays a welcome message
    private:
       string courseName; // course name for this GradeBook
       string instructorName;    // name of the course Instructor
    }; // end class GradeBook  
    
    
    
    
    /**************************************************************************
     * (C) Copyright 1992-2012 by Deitel & Associates, Inc. and               *
     * Pearson Education, Inc. All Rights Reserved.                           *
     *                                                                        *
     * DISCLAIMER: The authors and publisher of this book have used their     *
     * best efforts in preparing the book. These efforts include the          *
     * development, research, and testing of the theories and programs        *
     * to determine their effectiveness. The authors and publisher make       *
     * no warranty of any kind, expressed or implied, with regard to these    *
     * programs or to the documentation contained in these books. The authors *
     * and publisher shall not be liable in any event for incidental or       *
     * consequential damages in connection with, or arising out of, the       *
     * furnishing, performance, or use of these programs.                     *
     **************************************************************************/

    GradeBook.cpp

    Codice:
    // Fig. 3.12: GradeBook.cpp// GradeBook member-function definitions. This file contains
    // implementations of the member functions prototyped in GradeBook.h.
    #include <iostream>
    #include "GradeBook.h" // include definition of class GradeBook
    using namespace std;
    
    
    // constructor initializes courseName with string supplied as argument
    GradeBook::GradeBook( string name, string instructor )
    {
       setCourseName( name ); // call set function to initialize courseName
       setInstructorName( instructor);    // call set function to initialize instructorName
    } // end GradeBook constructor
    
    
    // function to set the course name
    void GradeBook::setCourseName( string name )
    {
       courseName = name; // store the course name in the object
    } // end function setCourseName
    
    
    void GradeBook::setInstructorName(string instructor)
    {
        instructorName = instructor;
    }
    
    
    // function to get the course name
    string GradeBook::getCourseName()
    {
       return courseName; // return object's courseName
    } // end function getCourseName
    
    
    string GradeBook::getInstructorName()
    {
        return instructorName;
    }
    
    
    // display a welcome message to the GradeBook user
    void GradeBook::displayMessage()
    {
       // call getCourseName to get the courseName
       cout << "Welcome to the grade book for\n" << getCourseName() 
          << "!" << endl;
    } // end function displayMessage
    
    
    
    
    /**************************************************************************
     * (C) Copyright 1992-2012 by Deitel & Associates, Inc. and               *
     * Pearson Education, Inc. All Rights Reserved.                           *
     *                                                                        *
     * DISCLAIMER: The authors and publisher of this book have used their     *
     * best efforts in preparing the book. These efforts include the          *
     * development, research, and testing of the theories and programs        *
     * to determine their effectiveness. The authors and publisher make       *
     * no warranty of any kind, expressed or implied, with regard to these    *
     * programs or to the documentation contained in these books. The authors *
     * and publisher shall not be liable in any event for incidental or       *
     * consequential damages in connection with, or arising out of, the       *
     * furnishing, performance, or use of these programs.                     *
     **************************************************************************/

    Spero ti possa essere d'aiuto
    Ultima modifica di Drake Aran; 07-02-14 alle 10:58:13

  12. #37
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Grazie mille (y)

  13. #38
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Ultimamente sono mancato spesso a scuola, e mentre non c'ero la prof. ha spiegato le funzioni friend. Ora, per quanto ho capito servono per fare un'operazione tra elementi della stessa classe... ma sono tanto fondamentali? In un programma lasciato di recente c'era questa classe (sto omettendo alcune parti)

    class fattura {
    private:
    int importo;
    struct data{
    int gg;
    int mm;
    } dataemissione, datapagamento;
    public:
    void inserimento ();
    void visualizzazione ();
    };

    Ora, per fare un'operazione tra dataemissione.gg e datapagamento.gg (esempio) dovrei utilizzare una funzione friend per forza? Alla fine sono due variabili distinte
    Mentre facevo il programma non ho fatto caso al problema ed ho svolto il programma come nulla fosse, ma sentendo la prof. spiegare oggi mi è venuto questo dubbio...

  14. #39
    Lo Zio
    Data Registrazione
    23-06-08
    Località
    Valle d'Agno
    Messaggi
    2,222

    Predefinito Re: C/c++

    No. Una funzione friend è una funzione definita fuori dalla classe MA che la classe dichiara amica e quindi può accedere agli attributi e ai metodi privati della classe.

    Codice:
    class A {   
      int a; 
    public:
      A () { a = 0 };   
      friend void foo(); 
    };  
    
    void foo(A a_obj) {   
       a_obj.a = 10;      // Non sarebbe permesso in una funzione non-friend 
    }
    Ho risposto alla tua domanda? Perché, imho, sei partito da una premessa sbagliata e quello che è venuto dopo ha poco senso.
    Btw, mai usate funzioni friend e neanche classi friend. Penso vadano contro ai principi base dell'OOP anche se in alcuni particolari casi sono strettamente necessarie.

  15. #40
    Lo Zio
    Data Registrazione
    23-06-08
    Località
    Valle d'Agno
    Messaggi
    2,222

    Predefinito Re: C/c++

    Aggiungo che le amicizie non si ereditano

    Inviato dal mio Nexus 4

  16. #41
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Citazione Originariamente Scritto da meL.rtcw Visualizza Messaggio
    Aggiungo che le amicizie non si ereditano
    Prima di tutto grazie mille, perdonami se sono ripetitivo, ma se (esempio idiota) oltre A creavi B, serviva una friend per fare A+B?

  17. #42
    Lo Zio
    Data Registrazione
    23-06-08
    Località
    Valle d'Agno
    Messaggi
    2,222

    Predefinito Re: C/c++

    In informatica non esiste un solo modo per fare qualcosa.

    Premesso questo, se hai veramente bisogno di utilizzare dei membri/attributi privati sì ti serve dichiarare una funzione friend.

    Mettiamo il caso di questa classe:
    Codice:
    class A {
       int a;
    public:
       A(int i) { a = i};
    }
    Per sommare due oggetti di A, in questo caso sarebbe a1.a+a2.a, non avendo metodi che ti ritornano a non è possibile non utilizzare una funzione friend:
    Codice:
    A operator+(A a1, A a2) {
        return A(a1.a + a2.a);
    }
    Con A che diventa:
    Codice:
    class A {
       int a;
    public:
       A(int i) { a = i};
       friend A operator+(A, A);
    }

  18. #43
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Citazione Originariamente Scritto da meL.rtcw Visualizza Messaggio
    In informatica non esiste un solo modo per fare qualcosa.
    [/CODE]
    Notato più e più volte!
    A parte questo grazie ancora! Sei stato chiarissimo

  19. #44
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Torno per chiedervi ancora una mano, ma a sto giro porto anche una lieta novella
    Vi comunico con gioia che mi hanno ammesso alle regionali delle olimpiadi di informatica


    Il livello di difficoltà però, è aumentato e supera la formazione scolastica (almeno del mio anno). Molto probabilmente sarà richiesto l'utilizzo di file tramite comandi quali
    fr = forpen("input.txt","r");
    fw = fopen("output.txt","w");

    Se mi aiutaste a capirne il funzionamento e la gestione vi sarei molto grato

  20. #45
    Lo Zio
    Data Registrazione
    23-06-08
    Località
    Valle d'Agno
    Messaggi
    2,222

    Predefinito Re: C/c++

    Intanto leggiti la documentazione a proposito.

    http://www.cplusplus.com/reference/cstdio/fopen/

    Btw, complimenti

    Inviato dal mio Nexus 4

  21. #46
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Thanks
    Ho letto tutto ma non ho afferrato come fare ad utilizzare dentro al programma i valori inseriti in un file
    Praticamente dovrei passare i valori contenuti alle variabili

  22. #47
    ZioYuri78
    ospite

    Predefinito Re: C/c++

    Citazione Originariamente Scritto da saichisono Visualizza Messaggio
    Thanks
    Ho letto tutto ma non ho afferrato come fare ad utilizzare dentro al programma i valori inseriti in un file
    Praticamente dovrei passare i valori contenuti alle variabili
    Devi scriverti un simil-parser in modo che legga il contenuto del file di testo e assegna i vari valori alle variabili.

    Oppure potresti usare un parser xml per semplificarti la vita ( e saltar la rogna di scrivertelo da solo), ad esempio tinyxml è buono, ma se cerchi in internet ne trovi svariati
    http://www.grinninglizard.com/tinyxml/index.html

    Poi sta a te, se il file di testo contiene poca roba allora puoi scrivertene uno da solo ad hoc, è anche un buon esercizio sull'utilizzo delle stringhe , se vuoi risparmiare tempo vai di qui sopra
    Ultima modifica di ZioYuri78; 07-03-14 alle 22:11:07

  23. #48
    Lo Zio
    Data Registrazione
    23-06-08
    Località
    Valle d'Agno
    Messaggi
    2,222

    Predefinito Re: C/c++

    Citazione Originariamente Scritto da saichisono Visualizza Messaggio
    Thanks
    Ho letto tutto ma non ho afferrato come fare ad utilizzare dentro al programma i valori inseriti in un file
    Praticamente dovrei passare i valori contenuti alle variabili
    Usando fgets puoi "bufferizzare" un tot di caratteri.
    A quel punto hai una stringa che puoi gestire come vuoi. Se i valori sono dei numeri devi fare la solita menava del -48*10^x per ricavarti l'integer.
    Stai attento a non troncare accidentalmente qualche strina/numero significativo.

    http://www.cplusplus.com/reference/cstdio/fgets/

    Con fgetc invece leggi un carattere solo.

    Inviato dal mio Nexus 4

  24. #49
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    Grazie ancora, e, chiedo venia, ma se volessi inizializzare un vettore con gli elementi di un file?

  25. #50
    L'Onesto
    Data Registrazione
    13-12-11
    Località
    Messina
    Messaggi
    1,061

    Predefinito Re: C/c++

    silenzio radio?

Pag 2 di 3 PrimaPrima 123 UltimaUltima

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato