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

    domande varie per un programmino...

    ...ho iniziato da poco a programmare e stavo scrivendo un piccolo programmino per aiutarmi con i problemi di fisica...(nulla di eccezzionale...però giusto per provare...)
    ....e qui mi sono giunti un po' di dubbi del tipo: io ho creato un menu dove scegliere il tipo di operaizone da eseguire, ma dopo che l'ha eseguita come faccioa tornare a questo menu....? cioè quando finisce un operaizone mi finisce l'esecuzione del programma...ma io vorrei tornare al menu iniziale...how is it possible?
    ....e poi...non riesco a definire delle variabili che non siano di tipo "int"(...non so se sono io che sbaglio la sintassi o che altro....) perché ho bisogno di inserire una costante che sia 1/273.15 e se la dichiaro con #define mi esce un altro numero...cioè..invece che 0.00003 ecc ecc mi esce 7856...ecc ecc....come si fa?

    va beh...per agevolarvi vi posto il sorgente (così se c'è qualche anima buona che ha voglia anche di darmi qualche suggermiento su quello che ho scritto..... :tongue:

    (non ridete quando lo leggete....non è il massimo....)


    #include <stdio.h>

    /* dichiariazione variabili */


    int x;
    int P;
    int N;
    int m;
    int v;
    int V;
    int vlc;
    int ttd;
    int quad;
    int acce;
    int sper;
    int vret;
    int hret;
    int csre;
    int cdre;
    int frsx;
    int frdx;
    int tond;

    /* fine dichiariazione variabili */


    /* valori variabili */

    quad=253;
    acce=133;
    sper=250;
    vret=179;
    hret=196;
    csre=218;
    cdre=191;
    frsx=17;
    frdx=16;
    tond=248;

    /* fine valori variabili */


    main(){

    /* menu */


    printf("\n\n PROBLEMA:\n\n");
    printf(" 1.Scambi termici\n");
    printf(" 2.Conduzione\n");
    printf(" 3.Trasformazioni TermoDinamiche\n");
    printf(" 4.Cinetica dei gas\n");
    printf(" 5.Costanti\n");
    printf(" 6.Esci\n\n");
    printf(" Scegli:");
    scanf("%d", &x);

    /* fine menu */


    /* scelta */

    switch(x){

    case 1:


    printf("\n\n SCAMBI TERMICI\n\n");
    printf(" Q = C%cdT =>", sper);
    printf(" C = c%cm =>", sper);
    printf(" Q = c%cm%cdT\n\n", sper, sper);
    printf(" Variabili:\n\n");
    printf(" Q: quantit%c di calore\n", acce);
    printf(" C: capacit%c termica\n", acce);
    printf(" c: calore specifico\n");
    printf(" m: massa\n");
    printf(" dT: delta temperatura\n");
    break;


    case 2:


    printf("\n\n CONDUZIONE\n\n");
    printf(" Q A\n");
    printf(" %c%c%c%c = K%c%c%c%c%cdT\n", hret, hret, hret, hret, sper, hret, hret, hret, sper);
    printf(" dt d\n\n");


    printf(" %c%C%c%c%C%C%c\n", csre, hret, hret, hret, hret, hret, cdre);
    printf(" %c %c\n", vret, vret);
    printf(" %c%c%c%c%c%c%c\n", vret, frsx, hret, hret, hret,frdx, vret);
    printf(" T1 %c d %c T2\n", vret, vret);
    printf(" %c %c\n", vret, vret);
    printf(" %c %c\n", vret, vret);

    printf("\n\n Variabili:\n");
    printf(" Q: quantit%c di calore", acce);
    printf(" dt: delta del tempo\n");
    printf(" k: coefficente di conducibilit%c\n", acce);
    printf(" A: superficie interessata allo scambio\n");
    printf(" d: spessore della parete di scambio\n");
    printf(" dT: delta della temperatura\n");
    break;


    case 3:

    /* menu trasformazioni */

    printf("\n\n TRASFORMAZIONI TERMODINAMICHE\n\n\n");


    printf(" 1.Primo principio della termodinamica\n");
    printf(" 2.Prima legge di Gay-Lussac\n");
    printf(" 3.Seconda legge di Gay-Lussac\n");
    printf(" 4.Legge di Boyle\n");
    printf(" 5.Energia cinetica\n");
    printf(" 6.Temperatura\n");
    printf(" 7.Legge dei gas perfetti\n\n");
    printf(" Scegli:");
    scanf("%d", &ttd);

    switch(ttd){

    case 1:
    printf("\n\n PRIMO PRINCIPIO DI TERMODINAMICA\n\n");
    printf(" dE = Q - L\n\n\n");
    printf(" Variabili:\n\n");
    printf(" dE: delta Energia interna\n");
    printf(" Q: quantit%c di calore\n", acce);
    printf(" L: lavoro\n\n");
    break;

    case 2:
    printf("\n\n PRIMA LEGGE GAY-LUSSAC\n\n");
    printf(" V = Vo%c(1 - at)\n\n", sper);
    printf(" Variabili:\n\n");
    printf(" V: volume finale\n");
    printf(" Vo: volume iniziale\n");
    printf(" a: costante alfa\n", tond);
    printf(" t: temperatura\n");
    break;

    case 3:
    printf("\n\n SECONDA LEGGE GAY-LUSSAC\n\n");
    printf(" P = Po%c(1 - at)\n\n", sper);
    printf(" Variabili:\n\n");
    printf(" P: pressione finale\n");
    printf(" Po: pressione iniziale\n");
    printf(" a: costante alfa\n", tond);
    printf(" t: temperatura\n");
    break;

    case 4:
    printf("\n\n LEGGE DI BOYLE\n\n");
    printf(" p%cV = costante\n\n", sper);
    printf(" Variabili:\n\n");
    printf(" P: pressione\n");
    printf(" V: volume\n");
    break;

    case 5:
    printf("\n\n ENERGIA CINETICA\n\n");
    printf(" 3 \n");
    printf(" Ec = %c%cKb%cT\n", hret, sper, sper);
    printf(" 2\n");
    break;

    case 6:
    printf("\n\n TEMPERATURA\n\n");
    printf(" 2 1\n");
    printf(" Ec = %c%c%c%c%c%cEc\n", hret, sper, hret, hret, hret, sper);
    printf(" 3 Kb\n");
    break;

    case 7:
    printf("\n\n LEGGE DEI GAS PERFETTI\n\n");
    printf(" p%cV = n%cR%cT\n", sper, sper, sper);
    break;

    }

    /* fine menu trasformazioni */
    break;


    case 4:

    /* menu cinetica */

    printf("\n LEGGE DI CLAUSIUS:\n\n");
    printf(" 1 N%cm%cv%c\n", sper, sper, quad);
    printf(" P= %c%c%c%c%c%c%c%c%c\n", hret, sper, hret, hret, hret, hret, hret, hret, hret);
    printf(" 3 V\n\n");
    printf(" Variabili:\n\n\n P: Pressione\n\n N: Numero di particelle\n m: Massa\n v: Velocit%c\n V: Volume\n\n", acce);

    printf("Scegli la variabile da calcolare:\n\n");
    printf(" 1: P\n 2: N\n 3: m\n 4: v\n 5: V\n\n Scegli:");
    scanf("%d", &vlc);

    switch(vlc){

    case 1:

    printf("Inserisci N:");
    scanf("%d", &N);
    printf("Inserisci m:");
    scanf("%d", &m);
    printf("Inserisci v:");
    scanf("%d", &v);
    printf("Inserisci V:");
    scanf("%d", &V);

    P=(N*m*(v*v))/(3*V);

    printf("P= %d", P);

    break;

    case 2:

    break;

    case 3:

    break;

    case 4:

    break;

    case 5:

    break;

    }

    /* fine menu cinetica */

    break;

    case 5:
    printf("\n\n COSTANTI:\n\n");
    printf(" 1\n");
    printf(" Alfa = %c%c%c%c%c%c%c%c\n", hret, hret, hret, hret, hret, hret, hret, hret);
    printf(" 273.15\n\n");
    break;

    case 6:

    break;

    /* fine scelta */

    }


    }


    ciao grazie
    ...in vino veritas sed in cervisia stat virtus...

    http://www.dreamtheater.net

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173

    Alllora...

    ... Sei in seconda?? Te lo chiedo x' anke io sto facendo gli stessi argomenti e sono in Seconda?? (Se nn lo 6 nn offenderti please!!)

    Allora, per far si che quando finisci l'esecuzione del prg ritorna al menu in questo caso puoi usare la finzione:
    goto location1;
    location1 lo poni appena prima della prima istruzione del menu, quindi:
    location1:
    printf("\n\n PROBLEMA:\n\n");

    ......

    //Fine sequenza istr. case
    goto location1;
    Per quanto riguarda la costante dichiarala sfruttando la parola chiave const, del tipo:
    const double n;
    Spero d esserti stato si aiuto!!!
    CIAO

  3. #3
    4.567556987856987965 non è un intero!
    codice:
    scanf("%d",&var);
    Vuole un intero... quindi non puoi dargli un numero con la virgola..

    Usa "double";

    codice:
    scanf("%lf",&var);
    (%lf sono dati di tipo double)

    Per ripetere la sequenza del menu devi fare un ciclo do-while.

    codice:
    #include <stdio.h>
    #include <string.h>
    
    int main(){
            char c[2];
            do {
                     printf("Paperino...\n");
                      printf("pluto...\n");
                       printf("minny\n");
                        printf("Premi il numero 1 e INVIO se vuoi uscire\n");
                         scanf("%s",c); 
            } while (strcmp(c,"1"));
    
            return(0);
    }
    PS: I goto in questo tipo di programmi sono da lamer.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173

    lamer.....

    ........... Saranno da lamer, ma se ha iniziato da poco!!!!, forse è meglio essere + semplici, va be cmq, scusatemi !

    Per un menu che si repite nn sarebbe meglio e:

    [QUOTE]
    int ch;

    while(1)
    {
    printf("\nMENU");
    printf("\nMENU");
    printf("\nMENU");

    ch = getchar();

    switch( ch )
    {
    printf("\nMENU");

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173

    scusatemi....

    int ch;

    while(1)
    {
    printf("\nMENU");
    printf("\nMENU");
    printf("\nMENU");

    ch = getchar();

    switch( ch )
    {
    case '1': nomefunzione();
    break;

    default:
    printf(".....");
    break;
    }
    }
    CIAO

  6. #6

    Re: lamer.....

    Originariamente inviato da eagle_fly
    ........... Saranno da lamer, ma se ha iniziato da poco!!!!, forse è meglio essere + semplici, va be cmq, scusatemi !
    codice:
    int ch; 
    
     while(1) 
    { 
    printf("\nMENU"); 
    printf("\nMENU"); 
    printf("\nMENU"); 
    
     ch = getchar(); 
    
     switch( ch ) 
    { 
    case '1': nomefunzione(); 
    break; 
    
     default: 
    printf("....."); 
    break; 
    } 
    }
    E come fai ad uscire dal while? con un break;?
    Imoh anche questo è very lame, significa che non si è capito cosa sia un linguaggio ad alto livello, e soprattutto cosa siano i cicli!

    Cmq non ho mai visto nessun programmatore serio che programmi cosi..o almeno se lo fà non è un programmatore serio

    Ripeto: In questi programmini evitate il break e continue o goto o altre..

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173

    guarda il msg dopo

    ..........................................!!!!

    Va be!!!

    CIAO :-(

  8. #8
    Non dispiacerti, è solo un consiglio...poi ognuno programma alla sua maniera mi sembra logico.

    Ti dico..io se presento un programma cosi al mio prof di Informatica (4 ITIS), lo deleta sul colpo

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173

    In effetti hai ragione.....

    ........grazie mi hai fatto riflettere su molte cose!!!

    GRAZIE

  10. #10
    ...grazie a tutti....proverò...poi vi dirò...

    ah...per "eagle_fly" sono in 4 (liceo)...

    ciao milhouse
    ...in vino veritas sed in cervisia stat virtus...

    http://www.dreamtheater.net

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.