Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    [C] esercizietto

    Ciao a tutti, ho trovato un esercizio da sviluppare in C che richiedeva di sviluppare il seguente programmino:
    Un omino ha deciso di fare una escursione in montagna, e vuole percorrere il sentiero più faticoso. la lunghezza massima del sentiero è 100km e viene introdotta in input da tastiera l'altitudine(in metri) ogni 100m e per terminare l'input inserire -1. Il programma deve calcolare il percorso più faticoso, ovvero:
    INPUT:
    100 300 250 50 -1
    OUTPUT
    Il percorso più faticoso è di 250m
    /*poiché c'è una discesa da 300 a 50-->300-50=250*/
    INPUT:
    150 300 400 500 200 350 500 600 800 650 -1
    OUTPUT:
    Il percorso più faticoso è di 600m
    /*poiché c'è una salita da 200 a 800-->800-200=600*/
    parlando con il mio prof mi è stato detto che questo esercizio si può fare benissimo senza vettore e quindi ho pensato ad una soluzione simile:
    codice:
    #include <stdio.h>
    
    #include <stdlib.h>
    
    
    
    #define N 1000+1
    
    
    
    int main ()
    
    {
    
        int n1, n2, h,i=2;
    
        int max1, max2, maxS, maxD, MAX;
    
        max1=max2=maxS=maxD=0;
    
        
    
        printf ("Inserire valore: ");
    
        scanf  ("%d", &n1);
    
        printf ("Inserire valore: ");
    
        scanf  ("%d", &n2);
    
        do {
    
           h = n2 - n1;
    
           if ( h > 0 ) {
    
                if ( max2 > maxD ) {
    
                    maxD=max2;
    
                } 
    
                max2=0;
    
                max1+=h;
    
           }
    
           else {
    
                if ( max1 > maxS )  {
    
                   maxS=max1;
    
                }
    
                max1=0;
    
                max2+=abs(h);
    
           }
    
        n1=n2; 
    
        printf ("Inserire valore: ");
    
        scanf  ("%d", &n2);
    
        i++;
    
        }while ( n2 != -1 && i<N );    
    
        
    
        if ( max1 > maxS ) 
    
             maxS=max1;
    
        if ( max2 > maxD ) 
    
             maxD=max2;
    
        if ( maxD > maxS ) 
    
             MAX=maxD;
    
        else MAX=maxS;        
    
        
    
        printf ("Il percorso piu faticoso e %d\n", MAX);
    
        
    
        return 0;
    
    }
    spero che il problema sia chiaro...cerco di spiegare meglio...
    grazie...

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

    Moderazione

    No. Non hai detto qual è il problema.
    E non hai nemmeno seguito il regolamento per quanto riguarda i titoli delle discussioni.

    Qual è il problema?


    Il titolo lo correggerò appena si saprà qualcosa...


    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

  3. #3
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    Pardon per il titolo...ma non sapevo cosa mettere...è un esercizio proposto da mio prof che mi ha detto di svolgerlo senza utilizzare un vettore...cmq in realtà l'unico problema era trovare un modo per poter salvare anche i livelli di altitudine massimo e minino del percorso più faticoso...tipo nel primo esempio:
    ll percorso più faticoso è di 250m, da 300 a 50
    oppure nel secondo:
    ll percorso più faticoso è di 600m, da 200 a 600
    per quanto riguarda il titolo, non sapevo cosa mettere, magari potrebbe essere "
    [C] Esercizio senza utilizzare un vettore"
    e poi soprattutto volevo sapere se come soluzione potrebbe essere accettabile...
    scusate ancora...

  4. #4
    Originariamente inviato da MrX87
    Pardon per il titolo...ma non sapevo cosa mettere...è un esercizio proposto da mio prof che mi ha detto di svolgerlo senza utilizzare un vettore...cmq in realtà l'unico problema era trovare un modo per poter salvare anche i livelli di altitudine massimo e minino del percorso più faticoso...tipo nel primo esempio:
    ll percorso più faticoso è di 250m, da 300 a 50
    oppure nel secondo:
    ll percorso più faticoso è di 600m, da 200 a 600
    per quanto riguarda il titolo, non sapevo cosa mettere, magari potrebbe essere "
    [C] Esercizio senza utilizzare un vettore"
    e poi soprattutto volevo sapere se come soluzione potrebbe essere accettabile...
    scusate ancora...
    Non ho capito cosa intendi per percorso più faticoso.
    Se intendi dire massimo dislivello allora, quello massimo per il secondo è 800-150=650, non 600 come dici tu.
    ;-)

    EDIT: hm ok, forse tu intendi massimo dislivello relativo

  5. #5
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    Non ho capito cosa intendi per percorso più faticoso.
    Se intendi dire massimo dislivello allora, quello massimo per il secondo è 800-150=650, non 600 come dici tu.
    eh no...come percorso più faticoso io intendo il massimo dislivello che però sia consecutivo...nel senso, per andare da 150 a 800 si fanno non solo tratti in salita ma anche in discesa...a me interessa il massimo dislivello consecutivo...infatti è da 200 a 800 ed è il massimo dislivello (in salita)...senza mai scendere...
    spero di essermi spiegato meglio...

  6. #6
    Originariamente inviato da MrX87
    eh no...come percorso più faticoso io intendo il massimo dislivello che però sia consecutivo...nel senso, per andare da 150 a 800 si fanno non solo tratti in salita ma anche in discesa...a me interessa il massimo dislivello consecutivo...infatti è da 200 a 800 ed è il massimo dislivello (in salita)...senza mai scendere...
    spero di essermi spiegato meglio...
    Ok capito, insomma come nelle altimetrie del ciclismo, la salita o discesa col più alto dislivello.

  7. #7
    io procederei con una macchina a stati: mentre è in [salita|discesa] registrerei gli incrementi della salita/discesa attuale; al cambio dello stato [salita|discesa] confronterei il valore della salita/discesa chiusa, con il valore massimo precedentemente registrato, ecc..

  8. #8
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    ah okay...se ho capito bene vorresti memorizzare il primo valore e tenerlo in memoria fino a quando si sale(scende) poi appena ci si accorge del cambiamento di pendenza, effettuare semplicemente una differenza tra il valore massimo di salita(discesa) con quello iniziale salvato e confrontare il risultato con il massimo precedentemente registrato...poi appena si cambia pendenza(si passa da discesa a salita o viceversa) si aggiorna il valore iniziale e si itera nuovamente allo stesso modo...
    giusto??

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    157
    A quanto ho capito io sì, in pratica ti tieni in memoria una variabile del tipo "maxDislivello" inizialmente settata a 0. Poi guardi quando cambia la salita/discesa nel modo che ti ha detto MacApp e se il dislivello è maggiore salvi il nuovo valore...

    Ma dove diavolo se le va a inventare il prof ste robe??? A mio avviso saremmo più produttivi se riuscissero a tramutare i loro quesiti nello stile

    Sei di notte davanti al tuo gioco online preferito (nel mio caso un fps). Calcola un programma che ti permetta di inserire 1 quando uccidi una persona e 0 quando muori. Per farlo terminare inserisci -1.
    Esempio identico, ma mi piacerebbe molto di più lol

  10. #10
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    bhè si i prof hanno veramente molta fantasia...cmq...per quanto riguarda la soluzione del mio problema...è anche una buona soluzione utilizzare il metodo suggerito da MacApp...proverò a scriverlo anche in quel modo...cmq..quello che volevo sapere io, era se la mia versione è considerabile corretta...o se magari è una soluzione scadente...tipo confrontando le due soluzioni..quella mia e quella impostata da MacApp...qual è la più ottimizzata...?

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.