Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446

    [C] Richiesta codice applicazione “elementare”

    Salve a tutti!
    Ho assolutamente bisogno di una piccola “applicazione” scritta in C.
    Per me e veramente importante, perciò vi ringrazio per la disponibilità!

    --------------
    Il testo del “esercizio” e il seguente:

    Realizzare un programma in C che preveda l’inserimento e la visualizzazione delle temperature giornaliere di una settimana in una località, e le memorizzi in un opportuno array. Il programma deve calcolare e restituire a schermo:

    * Le temperature massima e minima, indicando per ognuna l’indice corrispondente al giorno della settimana in cui sono state rilevate (1 per lunedì, 2 per martedì, ecc.);

    * Il valore medio delle temperature settimanali;

    * il numero di volte in cui è stato rilevato il valore massimo;

    * Il numero di volte in cui è stato rilevato il valore minimo;

    * il numero di valori maggiori o uguali alla media.

    Infine si chiede di ordinare l’array delle temperature in ordine crescente, utilizzando un algoritmo a scelta, e di visualizzare a schermo l’array risultante dopo l’ordinamento.

    -------------

    Vorrei precisare che il sorgente deve essere più semplice possibile e commento più possibile!
    Perciò, vi ringrazierei se fosse più “elementare” che potete.

    Vi ringrazio per l’ennesima volta !!!

  2. #2
    Puoi partire da questa base:

    codice:
    #include <stdio.h>
    
    main() {
    
     float temp[7], media;
    
     
     printf ("Inserisci la temperatura di Lunedi\n");
     scanf ("%f", &temp[0] );
    
     printf ("Inserisci la temperatura di Martedi\n");
     scanf ("%f", &temp[1] );
    
     printf ("Inserisci la temperatura di Mercoledi\n");
     scanf ("%f", &temp[2] );
    
     printf ("Inserisci la temperatura di Giovedi\n");
     scanf ("%f", &temp[3] );
    
     printf ("Inserisci la temperatura di Venerdi\n");
     scanf ("%f", &temp[4] );
     
     printf ("Inserisci la temperatura di Sabato\n");
     scanf ("%f", &temp[5] );
    
     printf ("Inserisci la temperatura di Domenica\n");
     scanf ("%f", &temp[6] );
    
     printf("Report temperature:\n");
    
     printf("Lun: %f\n", temp[0] );
     printf("Mar: %f\n", temp[1] );
     printf("Mer: %f\n", temp[2] );
     printf("Gio: %f\n", temp[3] );
     printf("Ven: %f\n", temp[4] );
     printf("Sab: %f\n", temp[5] );
     printf("Dom: %f\n", temp[6] );
    
     media = (temp[0]+temp[1]+temp[2]+temp[3]+temp[4]+temp[5]+temp[6])/7;
     printf ("La media e' stata di %f gradi\n", media); 
    
    return 0;
    }
    A quest'ora non mi viene in mente un buon modo per confrontare i valori alla ricerca del maggiore e del minore e farlo con una serie di if-else è troppo palloso

    Quando hai trovato i due valori ci fai un paio di controlli e lo finisci in un attimo.

  3. #3
    Ah, questo schifo:

    codice:
     printf("Lun: %f\n", temp[0] );
     printf("Mar: %f\n", temp[1] );
     printf("Mer: %f\n", temp[2] );
     printf("Gio: %f\n", temp[3] );
     printf("Ven: %f\n", temp[4] );
     printf("Sab: %f\n", temp[5] );
     printf("Dom: %f\n", temp[6] );
    Forse era più bello messo così:

    codice:
    for (i=0; i<6; i++) 
     {
      printf("%f\n", temp[i] );
     }
    Solo che non ti vien scritto prima il giorno della settimana... boh, fai come vuoi

  4. #4
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    Originariamente inviato da maiosyet_2


    Quando hai trovato i due valori ci fai un paio di controlli e lo finisci in un attimo.
    Per me il C e arabo !!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    47
    Per cercare la temp minima e massima della settimana fai cosi`:

    min=99999;
    max=0;
    for (i=0;i<DIM;i++)
    {
    if (temp[i]<min)
    {
    min=temp[i];
    }
    if (temp[i]>max)
    {
    max=temp[i];
    }

    ora ti spiego come funziona.
    Nel ciclo for usi una variabile i come contatore e dim e` una costante (#define DIM 7 all` inizio el prgoramma dopo gli include) che ha come numero i giorni della settimana.
    Nel ciclo for confrotni la temperatura di ogni giorno, individuando la minima e la massima.Se vuoi sapere a che guorno corrispondono ti salvi la posizione dove i minimo e` e stampi il nome del giorno(contenuto in un altro array) utilizzando come indice la variabile.
    es:

    min=99999;
    max=0;
    for (i=0;i<DIM;i++)
    {
    if (temp[i]<min)
    {
    min=temp[i];
    k=i;
    }
    if (temp[i]>max)
    {
    max=temp[i];
    p=i;
    }
    printf ("la temperatura minima della settimana si e` verificata nel giorno %s", giorni[k]);
    printf ("La temp. massima della sett. si e` verificata nel giorno %s", giorni[p]);

    Spero di essermi spiegato in modo semi comprensibile, cmq se e` un compito per scuola e` meglio che ti fai la tua bozza da solo la prox volta, senno` non impari piu`.

    Fammi sapere se hai dei problemi, ciaooooo

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    47
    codice:
    for (i=0; i<6; i++) 
     {
      printf("%f\n", temp[i] );
     }
    Solo che non ti vien scritto prima il giorno della settimana... boh, fai come vuoi
    vero, ma se lui stampasse nel for cosi:
    codice:
    for (i=0; i<6; i++) 
     {
      printf ("%s:", giorni[i]);
      printf("%f\n", temp[i] );
     }
    si sarebbe risolto il problema.
    Giorni[i] e` un array che contiene i giorni della settimana, la stampa verrebbe cosi`:

    lundei`: 20
    martedi`: 15..............

    e cosi` via,

    nel codice di prima che ho postato, dove trova il max e il min aggiungi per il min:

    l++;

    per il max:

    d++;

    in modo da trovare anche quante volte si trova la temperatura uguale nella settimana, capito?

    Se poi il tuo prof vuole vedere tutti i gg in cui si e` verificata quella temperatura dovrsti cercare un modo furbo per salvare l`indice dei fari gg. Se te lo chiedera` ci pensero`, ho un` idea in mente, ma magari esistono modi meno incasinati....
    fammi sapere
    ciao!!!!

  7. #7
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    Scusate se non mi sono fatto più vivo !!


    Allora, ora che mi ricordo si deve usare un algoritmo tipo Simple short o double short (o roba simile ).

    Per il resto non so che dire… il testo completo e quello che ho già scritto…

  8. #8
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    up

  9. #9
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    Originariamente inviato da Cesar
    Scusate se non mi sono fatto più vivo !!


    Allora, ora che mi ricordo si deve usare un algoritmo tipo Simple short o double short (o roba simile ).

    Per il resto non so che dire… il testo completo e quello che ho già scritto…
    algoritmi di ordinamento tipo simple short o double short non esistono...
    forse era bubble sort, insertion sort, quick sort, merge sort...
    ce ne sono altrettanti però intanto è un'indizio...

    ma l'ordinamento non lo dovevi fare a piacere...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  10. #10
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    Originariamente inviato da byaur
    algoritmi di ordinamento tipo simple short o double short non esistono...
    forse era bubble sort, insertion sort, quick sort, merge sort...
    ce ne sono altrettanti però intanto è un'indizio...


    sisisi! bubble sort !


    ma l'ordinamento non lo dovevi fare a piacere...
    già... mi sono spiegato male io.. avevo dimenticato di specificare che era a scelta tra questi due!

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.