Aiuto con una funzione c++

di il
27 risposte

Aiuto con una funzione c++

Salve a tutti, ho un problema con un programma da scrivere in C++.
Sia dato il file di testo dati.txt che contiene (come da esempio) per ogni riga due stringhe (che rappresentano il nome di una città ed un mese) ed un numero intero (che rappresenta la temperatura massima registrata in quella città durante quel mese).
Si progettino quattro funzioni:
- leggi_dati, che legge dal file dati.txt i nomi di città e mesi e le relative temperature, e li memorizza in un vettore di strutture (vett_temperature). Ciascuna struttura conterrà quindi tre campi: due stringhe, per memorizzare il nome della città ed il mese, ed un intero, per memorizzare la temperatura massima;


Vorrei delucidazioni in merito a questa funzione.
Grazie mille.

27 Risposte

  • Re: Aiuto con una funzione c++

    Per la delucidazione, cioe' la rimozione del lucido, puoi usare della carta abrasiva con grana che dipende dalla superfice che devi delucidare e dalla durezza della stessa.

    http://www.utensiliprofessionali.com/schleifen.htm



    In altri termini: devi essere piu' specifico!
  • Re: Aiuto con una funzione c++

    A me sembra abbastanza semplice, ma non mi è chiarissimo se parliamo di C++ o di C.
    Ritengo, data la banalità del testo, che sia C
  • Re: Aiuto con una funzione c++

    Nel testo pare ci sia scritto tutto, una funzione che legge da un file di testo che contiene diverse città con diversi mesi e temperature (ad esempio:
    Napoli Dicembre 14
    Roma Dicembre 13
    Milano Gennaio 4
    Bologna Dicembre 6
    Napoli Giugno 27
    )
    e memorizza città mese e temperatura massimo in un vettore. Cosa non e' chiaro?
  • Re: Aiuto con una funzione c++

    @alfo10 cosa NON E' CHIARO per TE.

    Per noi, l'esercizio e' banale!
  • Re: Aiuto con una funzione c++

    Ho scritto che si riferisce alla programmazione in c++.
    Sono alle prime armi in C++ mi fa piacere che per voi sia banale, ma se ho scritto qui e' perchè mi serve un aiuto.
    Potreste dirmi come costruire questa funzione? Gli argomenti da mettere ?
  • Re: Aiuto con una funzione c++

    alfo10 ha scritto:


    Nel testo pare ci sia scritto tutto, una funzione che legge da un file di testo che contiene diverse città con diversi mesi e temperature (ad esempio:
    Napoli Dicembre 14
    Roma Dicembre 13
    Milano Gennaio 4
    Bologna Dicembre 6
    Napoli Giugno 27
    )
    e memorizza città mese e temperatura massimo in un vettore. Cosa non e' chiaro?
    Non è chiaro cosa sia un "vettore".
    Perchè in C è una cosa, in C++ può anche essere diverso.
    Ritenendo, lo ribadisco, un problema di tipo didattico quasi certamente penso voglia un programma C con un vettore inteso come array di struct.
    Però se invece devi scrivere un "vero" programma C++ allora la situazione diventa leggermente diversa, potendo usare la libreria che ti mette a disposizione tante belle cose, tra cui un "vettore-coi-controcaxxi".
    Tutto qui.

    PS per inciso il testo è meno banale di quanto sembri, nel senso che ci vuole un parser un minimo evoluto, per discriminare ad esempio il caso
    CASTEL SANTANGELO Dicembre 7

    In sostanza dovresti parsare al contrario, cioè andando dalla fine verso la testa della stringa, per trovare gli spazi di delimitazione della temperatura e della data, e poi andare dall'inizio fino al punto j-esimo precedente per prendere la città.
    Insomma un lavoro di circa 10 minuti anzichè i 3 necessari nel caso semplice.

    Riassumendo: devi fare un programma C, o C++?
  • Re: Aiuto con una funzione c++

    alfo10 ha scritto:


    Ho scritto che si riferisce alla programmazione in c++.
    Sono alle prime armi in C++ mi fa piacere che per voi sia banale, ma se ho scritto qui e' perchè mi serve un aiuto.
    Potreste dirmi come costruire questa funzione? Gli argomenti da mettere ?
    Cominciamo col dire (non mi hai convinto molto), hai mai visto negli esempio qualcosa tipo
    
    #include <vector>
    std::vector<int> miovettorino;
    ?

    EDIT: prima di andare a pranzo provo a spiegartelo, vediamo se ci "prendo".
    La differenza tra C e C++, in questo esempio, si riferisce alle modalità di lettura del file di testo (e vabbè), e dalla possibilità di utilizzare qualcosa di "comodo" per gestire il vettore.

    "comodo" significa che mentre in C devi fare "a mano" (cioè allocare-riallocare il vettore dinamicamente, verificare l'overflow etc.etc) in C++ ti basta usare un "componente" (classe) già esistente, e quindi ti risparmi un bel po' di fatica.

    Siccome immagino che lo scopo dell'esercizio sia quello di farti "faticare", ritengo probabile che invece di usare le strutture C++ ti tocchi usare quelle C, ma è una mia ipotesi, magari invece siete abituati ad usare vettori e template sempre, è qualcosa che non so, dipende da chi ti fa il corso.
  • Re: Aiuto con una funzione c++

    +m+ ha scritto:


    alfo10 ha scritto:


    Ho scritto che si riferisce alla programmazione in c++.
    Sono alle prime armi in C++ mi fa piacere che per voi sia banale, ma se ho scritto qui e' perchè mi serve un aiuto.
    Potreste dirmi come costruire questa funzione? Gli argomenti da mettere ?
    Cominciamo col dire (non mi hai convinto molto), hai mai visto negli esempio qualcosa tipo
    
    #include <vector>
    std::vector<int> miovettorino;
    ?
    No, tra l'altro le uniche librerie usate fin'ora, con gli esempi e tutto sono:
    
    #include <iostream>
    #include <cstdlib>
    #include <fstream>
    #include <cstdio>
    
  • Re: Aiuto con una funzione c++

    alfo10 ha scritto:


    +m+ ha scritto:


    alfo10 ha scritto:


    Ho scritto che si riferisce alla programmazione in c++.
    Sono alle prime armi in C++ mi fa piacere che per voi sia banale, ma se ho scritto qui e' perchè mi serve un aiuto.
    Potreste dirmi come costruire questa funzione? Gli argomenti da mettere ?
    Cominciamo col dire (non mi hai convinto molto), hai mai visto negli esempio qualcosa tipo
    
    #include <vector>
    std::vector<int> miovettorino;
    ?
    No, tra l'altro le uniche librerie usate fin'ora, con gli esempi e tutto sono:
    
    #include <iostream>
    #include <cstdlib>
    #include <fstream>
    #include <cstdio>
    
    Caspita hai postato insieme a me. Vado a magnà, penso che intanto puoi prepararti su questi argomenti C

    1) cos'è una struttura (struct) e come si definisce
    2) cos'è una stringa C, e come si "manipola"
    3) cos'è un vettore di struct, e come lo si dichiara
    4) come si aggiungono i dati in 3, e cosa succede se son troppi
    e poi
    5) come si "decodifica" una stringa (parsing) del tuo caso [te l'ho già scritto sopra, ma OK]
    e
    6) come si leggono le stringhe da un file di testo
    e magari (6+4) => come fare una doppia passata per dichiarare 4 della dimensione giusta, con una sorta di wc -l dei poveri

    Penso sia quanto ti serve per un approccio bottom-up che nel tuo caso ritengo il più adatto
  • Re: Aiuto con una funzione c++

    Ribadisco ancora di dover programmare in C++. Abbiamo sempre programmato in C++, mai usato C.
    Questi argomenti che mi hai elencato mi sono tutti chiari, a parte qualcosa che non ho proprio fatto perchè non rientra nel mio programma di studi. Ho difficoltà più che altro con le funzioni, mi risultato difficili impostarle più che altro.
    Il mio programma deve essere diviso in funzioni da inserire nel main. Ho problemi a definire questa funzione ad esempio:
    
    void leggi_dati (argomento?, argomento?);
    
    che inserisco al posto di argomento? Questo e' uno dei miei problemi principali, quello di lavorare con le funzioni.
  • Re: Aiuto con una funzione c++

    Ribadisci di usare c++ ma i dati dove li memorizzi? Con il c++ in un vector. Va bene?.
    .
  • Re: Aiuto con una funzione c++

    In un array.

    oregon ha scritto:


    Ribadisci di usare c++ ma i dati dove li memorizzi? Con il c++ in un vector. Va bene?.
    .
  • Re: Aiuto con una funzione c++

    Ok, quindi in un classico array del C (utilizzabile anche in C++, ma nato con il C). Quindi il tuo codice sarà "misto" C/C++. Basta dirlo.

    Comincia con la prima funzione leggi_dati. Questa dovrà leggere i dati nell'array che suppongo sarà anche utilizzato dalle altre funzioni. Quali sono queste altre funzioni e cosa fanno?
  • Re: Aiuto con una funzione c++

    oregon ha scritto:


    Ok, quindi in un classico array del C (utilizzabile anche in C++, ma nato con il C). Quindi il tuo codice sarà "misto" C/C++. Basta dirlo.

    Comincia con la prima funzione leggi_dati. Questa dovrà leggere i dati nell'array che suppongo sarà anche utilizzato dalle altre funzioni. Quali sono queste altre funzioni e cosa fanno?
    Le altre funzioni sono:
    - calcola_media_temp che riceve in ingresso un vettore di strutture (vett_temperature), il suo riempimento (riemp) ed una stringa (citta) che rappresenta il nome di una città, e restituisce come valore di ritorno la media delle temperature rilevate in quella città durante i vari mesi;
    - calc_temp_maggiori che riceve in ingresso un vettore di strutture (vett_temperature), il suo riempimento (riemp) ed una temperatura (temp) e restituisce come parametro di uscita un vettore contenente tutte le temperature maggiori di temp;
    - stampa_vett che stampa a video un vettore di interi;
    e si scriva un programma che, utilizzando la funzioni sopra descritte, legga dal file dati.txt le temperature registrate in varie città in diversi mesi dell'anno e da tastiera il nome di una città, calcoli la media delle temperature rilevate nei vari mesi per quella città, ottenga il vettore delle temperature maggiori di tale media, e stampi a video con un opportuno messaggio (si veda l'esempio) la media calcolata e gli elementi del vettore che contiene i valori superiori alla media.
Devi accedere o registrarti per scrivere nel forum
27 risposte