Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Cerca i due numeri maggiori

    Salve a tutti! Sto cominciando da poco a studiare il c++ tramite il Deitel. Mi sono fermato all'esercizio in cui si richiede di trovare i due numeri maggiori data una serie di numeri (10) tramite ciclo while. Sono riuscito a risolvere l'esercizio senza inizializzare a 0 le variabili largest e largest2 (troppo facile l'esercizio, altrimenti ), in modo da supportare anche i numeri negativi. Può essere corretto il ragionamento usato nel seguente listato?

    Numero.h

    Codice PHP:
    // Dichiarazione classe

    class Numero
    {
       public:
              
    void maxNum(void);
    }; 
    Numero.cpp

    Codice PHP:
    // Definizione classe

    #include <iostream>
    #include <iomanip>
    #include "Numero.h"

    using namespace std;

    void Numero::maxNum(void)
    {
       
    int counter 1;
       
    double number;
       
    double largest;
       
    double largest2;
          
       while(
    counter <= 10)
       {
          
    cout << "Inserisci numero: ";
          
    cin >> number;
          
          if(
    counter == 1)
          {
             
    largest number// il primo numero è sicuramente il più grande essendo unico
          
    } else if(number largest) { // se un numero è maggiore di largest, effettua uno "scalo"
             
    largest2 largest;
             
    largest number;
             
    // al secondo turno, ci sono due numeri, uno maggiore e uno minore (che sarà largest2)
             // assegno largest2 anche nel caso in cui number sia maggiore di largest 2 ma minore di
             // largest
          
    } else if((counter == && number largest) || (number largest2 && number largest)) {
             
    largest2 number;
          }
          
          
    counter++;
       }
       
       
    cout << "Numero maggiore: " << setprecision(2) << fixed << largest << endl;
       
    cout << "Secondo numero maggiore: " << setprecision(2) << fixed << largest2 << endl;
       
       return;

    main.cpp

    Codice PHP:
    /* TROVA I DUE NUMERI MAGGIORI TRA GLI IMPUT INSERITI */

    #include <iostream>
    #include <cstdlib>
    #include "Numero.h"

    using namespace std;

    int main()
    {
       
    Numero x;
       
    x.maxNum();
       
       
    system("PAUSE");
       return 
    0;

    (Nota: il programma funziona, almeno per quanto io abbia provato. Voglio sapere solo se il ragionamento da me usato è corretto).

    Grazie a tutti e

  2. #2
    Il ragionamento e l'algoritmo utilizzato mi pare corretto, ma non vedo la necessità di creare una classe: non ti basta creare la semplice funzione maxNum()?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    Il ragionamento e l'algoritmo utilizzato mi pare corretto, ma non vedo la necessità di creare una classe: non ti basta creare la semplice funzione maxNum()?
    Sì, hai ragione, per l'esempio basta e avanza. Grazie mille per la risposta e

  4. #4
    Originariamente inviato da mikalba
    Sì, hai ragione, per l'esempio basta e avanza.
    E anche non per l'esempio . Personalmente sono dell'idea che le classi vadano usate ogni volta e solo quando servono, per questo linguaggi tipo Java o C# mi fanno venire il nervoso: perché devo creare una classe quando mi serve solo una funzione helper?
    Grazie mille per la risposta e
    Prego; ciao!
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da MItaly
    perché devo creare una classe quando mi serve solo una funzione helper?
    Il tuo è un ragionamento molto "pericoloso"... generalizzando potrebbe essere:

    template <typename XXX, typename YYY>
    perché devo creare XXX quando mi serve solo YYY?
    d'incanto scomparirebbero le classi, le strutture, le funzioni ecc..
    ;-)

  6. #6
    Dai, hai capito benissimo cosa intendo... sono un grande fan della STL e della programmazione object-oriented (soprattutto da quando ho trasformato un mio progetto non piccolissimo da C procedurale a C++ con ampio uso di classi e template STL e ho visto come sia più elegante e semplice da gestire), ma se devo scrivere delle funzioni helper utili per tutto il progetto non mi serve una classe, al massimo un namespace per raggrupparle. L'idea di scrivere una classe per raggrupparle mi infastidisce molto: una classe che le contenga come membri d'istanza sarebbe solo fastidiosa (perché istanziare un oggetto che di fatto non contiene dati?), mentre una classe statica è una contraddizione in termini: voglio dire, le classi vogliono generare oggetti!
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.