Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    12

    Programma campo minato/prato fiorito

    buongiorno a tutti, come ormai saprete sono alle prime armi con la programmazione e mi trovo un po' in difficoltà nell'esecuzione di alcuni programmi in c++.
    l'ultimo che mi è stato assegnato (dopo la battaglia navale sulla quale sto ancora lavorando) è stato il programma relativo al prato fiorito, o campo minato.

    mi trovo abbastanza in difficoltà perchè per la prima volta devo fare i conti con gli headers, che a quanto ho capito dovrebbero corrispondere a librerie come ad esempio la <iostream>, ma create dal programmatore.

    il problema è che non so proprio come iniziare il programma

    c'è qualche anima buona che mi darebbe una mano per favore?

    grazie in anticipo

  2. #2
    Il linguaggio deve essere inserito nel titolo

    Qui non si risolvono problemi scolastici, e soprattutto non stai chiedendo come si usa un'istruzione o una funzione, ma un programma intero e anche lievemente articolato.
    Se hai un problema in particolare, posta pure, altrimenti dubito che ti ritroverai il programma già fatto.


    Ciao

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Re: Programma campo minato/prato fiorito

    Originariamente inviato da Fora91
    c'è qualche anima buona che mi darebbe una mano per favore?
    Cerca di specificare esattamente qual è il tuo problema.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    12
    scusate, si vede che non mi sono spiegato bene, non voglio trovarmi il programma già pronto, ma vorrei sapere almeno da dove partire, per quello chiedevo se qualcuno poteva darmi una mano a parole per come impostare l'header.
    mi rendo conto di chiedere qualcosa di impegnativo da parte vostra, ma sono veramente disperato, perchè il mio prof per spiegare usa dei pdf molto schematizzati e io non riesco veramente a capirci niente

  5. #5
    Originariamente inviato da Fora91
    scusate, si vede che non mi sono spiegato bene, non voglio trovarmi il programma già pronto, ma vorrei sapere almeno da dove partire, per quello chiedevo se qualcuno poteva darmi una mano a parole per come impostare l'header.
    mi rendo conto di chiedere qualcosa di impegnativo da parte vostra, ma sono veramente disperato, perchè il mio prof per spiegare usa dei pdf molto schematizzati e io non riesco veramente a capirci niente
    Il problema è a monte, ovvero la tua conoscenza del linguaggio in questione: "impostare l'header" non significa niente
    Puoi usare l'OOP in questo progetto? In caso affermativo potresti creare una classe che rappresenta la mina, con almeno 2 proprietà: 1) posizione nella griglia 2) proprietà booleana che indica se è stata selezionata oppure no
    Poi potresti scrivere una classe superiore che gestisce proprio questi oggetti "Mine", che li dispone nella griglia di button e che provvede a scrivere i vari numeri nei button premuti (quelli che indicano quante mine ci sono nelle vicinanze).
    Questa è solo un'idea..


    Ciao

  6. #6
    boh, vedi se può aiutarti, cerco di essere piu possibile terra terra pertanto banalizzo alcune questioni e sorvolo su tanti aspetti:

    Un programma in C o C++ banale si può scrivere in un unico file con estensione .c o .cpp

    Un progetto un po meno banale richiede per forza di cose di utilizzare librerie esterne oppure di mettere insieme diversi moduli C/C++

    Il compilatore prende ognuno di questi moduli C/C++ e li compila in file con estensione .obj

    Il linker prende tutti i moduli .obj e li compila in un unico file .exe

    Facciamo un po un esempio banale. Scrivi una libreria aritmetica con la funzione

    codice:
    /*file somma.c*/
    int somma (int a, int b)
    {
        return a+b;
    }
    ora vuoi usare questa funzione nel tuo programma, che metterai nel file programma.c

    codice:
    /*programma.c*/
    
    int main (int argc, char ** argv)
    {
    	return somma(1, 1);
    }
    Dai i due files in pasto al compilatore.

    Il compilatore compila somma.c senza problemi.

    quando il compilatore compila programma.c si arrabbia perchè la funzione somma non è definita.

    per fare si che la funzione somma sia definita in programma.c, bisogna che programma.c sia a conoscenza del prototipo della funzione, per cui dovrei modificare programma.c come segue


    codice:
    /*programma.c*/
    
    int somma(int a, int b);
    
    int main (int argc, char ** argv)
    {
    	return somma(1, 1);
    }
    se ora compilo il compilatore è felicissimo e compila perfettamente, il linker poi risolverà la chiamata di somma facendola puntare al codice scritto nel file somma.obj che verrà in qualche modo unito insieme al codice di programma.obj in programma.exe

    VENIAMO AI MITICI FILE HEADER. Ad ogni modifica del modulo somma.c dovresti anche ricordarti di modificare il file "programma.c" e non solo, ti dovresti anche ricordare di modificare tutti gli altri file con estensione .c che utilizzano la funzione somma, come ad esempio programma_nuovo.c, programma_nuovissimo.c e programma_ultimo_definitivo.c, siccome il tempo è danaro non vorresti dovere fare a mano questo lavoraccio infame.

    Per semplificare questa gestione insieme al file somma.c crei anche il file somma.h che contiene tutti i prototipi di funzione (ed altro) che sono resi disponibili in somma.c e lo includi nei file .c in cui ne avrai bisogno.

    per cui per finire il tuo programma sarà composto da 3 files:

    codice:
    /*somma.h*/
    int somma(int a, int b);
    codice:
    /*somma.c*/
    #include "somma.h"
    
    int somma(int a, int b)
    {
    	return a+b;
    }
    codice:
    /*programma.c*/
    
    #include "somma.h"
    
    int main(int argc, char**argv)
    {
    	return somma(1,1);
    }
    Come vedi il discorso degli Headers non c'entra nulla con il campo fiorito, è solo un discorso di organizzazione dei files sorgenti, capito?

    Ciao.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    12
    ah perfetto! adesso provo a compilarlo!grazie!!

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.