Oppure

Loading
02/05/16 12:22
Luixx
Salve, ho questi frammenti di codice:
float r_add = add(a,b);
  printf("A+B = %.2f \n", floorf(r_add*100) / 100);

   float r_sott = sott(a,b);
   printf("A-B = %.2f \n", floorf(r_sott*100) / 100);
      
    float r_molt = molt(a,b);
    printf("A*B = %.2f \n", floorf(r_molt*100) / 100);

    float r_div = div(a,b);
    printf("A/B = %.2f \n", floorf(r_div*100) / 100);


in uno switch .. posso convertirlo in una funzione con dei parametri , invece di ripetere tutte le volte le istruzioni.

grazie mille , aspetto risposta.



aaa
02/05/16 13:16
mariognai
Ciao, per me sembrerebbe inutile trasformare tutto in una funzione perchè già le istruzioni add, sott, molt e div sono funzioni con dei parametri a e b.
Spero di essere stato chiaro e utile :rofl:
aaa
02/05/16 13:52
Luixx
guarda nel frattempo ho fatto cosi.. vedi se va bene.

void stampa_risultato(char tipo, float a , float b)
{
        if(tipo=='a')
        {
            float r_add = add(a,b);
            printf("A+B = %.2f \n", floorf(r_add*100) / 100);
      
        }else if(tipo=='s')
        {
            float r_sott = sott(a,b);
            printf("A-B = %.2f \n", floorf(r_sott*100) / 100);
        }
        else if(tipo=='m')
        {
            float r_molt = molt(a,b);
            printf("A*B = %.2f \n", floorf(r_molt*100) / 100);
        }
        else if(tipo=='d')
        {
            float r_div = div(a,b);
            printf("A/B = %.2f \n", floorf(r_div*100) / 100);
        }
}

e si usa cosi:
stampa_risultato('a', a,b);


per farlo a modo come potrei farlo?

Il mio scopo e ridurre le funzioni al ciclo del menu del programma principale.

ti ringrazio molto e buona giornata.
aaa
02/05/16 14:25
Luixx
ver 2:

void stampa_risultato(char tipo, float a , float b)
{
    switch(tipo)
    {
        case 'a':
        {
            float r_add = add(a,b);
            printf("A+B = %.2f \n", floorf(r_add*100) / 100);
            break;
        }case 's':
        {
            float r_sott = sott(a,b);
            printf("A-B = %.2f \n", floorf(r_sott*100) / 100);
            break;
        }
        case 'm':
        {
            float r_molt = molt(a,b);
            printf("A*B = %.2f \n", floorf(r_molt*100) / 100);
            break;
        }
        case 'd':
        {
            float r_div = div(a,b);
            printf("A/B = %.2f \n", floorf(r_div*100) / 100);
            break;
        }
    }
}


e risolto. più/meno.
aaa
02/05/16 14:46
AldoBaldo
Ancor più sintetico potrebbe essere:

void stampa_risultato( char tipo, float a, float b ) {
    switch(tipo) {
        case 'a':
            printf("A+B = %.2f \n", floorf((a+b)*100.0f) / 100.0f);
            break;
        case 's':
            printf("A-B = %.2f \n", floorf((a-b)*100.0f) / 100.0f);
            break;
        case 'm':
            printf("A*B = %.2f \n", floorf((a*b)*100.0f) / 100.0f);
            break;
        case 'd':
            printf("A/B = %.2f \n", floorf((a/b)*100.0f) / 100.0f);
            break;
        default: ;
    }
}
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
02/05/16 14:52
Luixx
ok, grazie mille e ho risolto con l'ultima versione di "AldoBaldo" anche se io dove c'è a+b, ho messo add(a,b)
perché dopo con le mie funzioni matematiche faccio fare altro.

Grazie di nuovo e buona giornata.
aaa