Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    3

    Calcolo ritardo medio Perl

    Salve a tutti sono nuovo di questo forum e volevo chiedervi un aiuto se potevate.

    Allora....io ho un file di testo di questo tipo:

    Partenza 0.4
    Partenza 0.43
    Partenza 0.56
    Arrivo 0.6
    Partenza 0.67
    Arrivo 0.8
    ....
    ......
    ........

    Dovrei fare uno script in Perl che calcola il tempo medio di ritardo.
    Ovvero dovrei calcolare la differenza tra il primo arrivo(0.6) e la prima partenza(0.4), poi la differenza relativa al secondo arrivo(0.8) e alla seconda partenza(0.43) e così via....sommare tutte queste differenze, e infine diverle per il numero di differenze che ho calcolato.

    Spero che qualcuno possa aiutarmi......grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Bell'esercizio. Molto valido dal punto di vista didattico.

    Inizio dell'analisi:
    1. leggere tutti gli input ed inserirli in una tabella opportuna
    2. fare i calcoli (se il punto 1 e` stato fatto bene, questo e` un giochetto).

    Punto 1. Se i dati sono come li hai proposti qui, con un dato per ogni riga, ciascuno contenente il tipo di dato e il suo valore, la cosa e` semplice:
    a) preparare due vettori per inserire i dati
    b) leggere la riga
    c) spezzare in due campi
    d) interpretare il primo campo
    e) leggere (trasformare in valore numerico) il secondo campo
    f) aggiungere dato al vettore corretto

    funzioni necessarie:
    a) my
    b) read, die, while
    c) split
    d) if (ma in perl si puo` usare anche implicito, o usare altre funzioni)
    e) =, ma puo` essere fatto direttamente nel punto f
    f) push (ma anche altre)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    3
    Il mio problema sta proprio nel creare in sostanza i due vettori, con gli istanti di tempo, di arrivi e partenze che si vanno riempiendo ogni volta che si verifica la condizione "arrivo" o "partenza" . Il resto dovrei saperlo fare......Help!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Premessa: non puoi usare una hash, dato che non sarebbe ordinata. E creare una hash di vettori oppure un vettore di hash forse non ne vale la pena per un problema cosi` semplice.

    Comunque per creare i vettori:
    codice:
    my @part = ();
    my @arr = ();
    mentre per aggiungere un dato ai vettori:
    codice:
    push @part, $valore;
    push @arr, $valore
    Quindi inserendo anche lo split e l'if - ad esempio:
    codice:
    ... deve stare dentro il loop ...
      ($tipo,$val) = split(/ /, $_);
      push (@part, $val) if $tipo eq 'Partenza';
      push (@arr, $val) if $tipo eq 'Arrivo';
    naturalmente le variabili devono essere gia` definite (ad esempio fuori dal loop), oppure si puo` ricrearle ogni volta con il my:
    my($tipo,$val) = split(/ /, $_);

    Ho presupposto che hai appena letto la riga, e quindi e` in $_, altrimenti devi modificare la variabile nel codice sopra.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    3
    grazie mille ho risolto tutto!!!!

    -------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 © 2024 vBulletin Solutions, Inc. All rights reserved.