Problema Array

Domande e richieste di un principiante alle prime armi con Ubuntu e il mondo GNU/Linux in generale. Per domande specifiche, utilizzare le altre sezioni.
Regole della sezione
In questa sezione possono inserire nuove discussioni solo coloro che fanno parte del livello "Prode Principiante" e che non hanno superato i 100 messaggi, tutti gli altri possono comunque rispondere regolarmente. Se si fa parte di questo livello e si è registrati al forum prima del 24 aprile 2012, data del passaggio al nuovo forum, consultare questa discussione.

Immagine Come usare UbuntuPrimi passi su Ubuntu Immagine Amministrazione del sistemaComandi di baseInstallare programmiLog di sistemaRiga di comandoSudo
Caos88
Prode Principiante
Messaggi: 6
Iscrizione: sabato 24 agosto 2013, 15:02
Desktop: ubuntu
Distribuzione: Ububtu 13.04

Problema Array

Messaggio da Caos88 »

Salve sono nuova del forum e avrei un piccolo problema che, purtroppo non riesco a risolvere .
In pratica ho un file con degli elementi numerici e dovrei fare la somma delle differenze tra elementi successivi; mi spiego meglio :
supponiamo che nel file ci siano questi valori
1
5
6
100
dovrei sviluppare uno script che faccia : (5-1)+(6-5)+(100-6).
ho provato a scivere questo codice :
cat startingPoints.txt | while read Time
do

array=$dato
i=$(($i+1))
done && i=$i A=array


n=i=$(($i-1))
for((j=1;j<=$(($n-1));j++))
do
somma=$somma+$(($(array[j+1])-$(array[j])))
echo "Cwin = $CWIN ; Somma = $somma"
done
in pratica ho salvato i dati in un array e poi ho creato un ciclo for che scorresse l'array e valutasse queste differenze.
Cio che mi chiedo : non c'è un modo più PULITO per farlo ?
Vi ringrazio in anticipo.
Ultima modifica di Caos88 il giovedì 5 dicembre 2013, 10:04, modificato 2 volte in totale.
dadexix86
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 16364
Iscrizione: domenica 22 marzo 2009, 19:58
Desktop: Unity
Distribuzione: Ubuntu 18.04 x86_64
Località: Paris, France

Re: Problema Array

Messaggio da dadexix86 »

Premessa: conviene utilizzare il tag [code][/code] per scrivere il codice, che così è illeggibile :)

Entrando nel merito, se sommi un elemento e al passo dopo lo sottrai, si cancellano.

Nel tuo esempio devi fare

Codice: Seleziona tutto

5-1 + 6-5 + 100-6
che riordino (la somma commuta) come

Codice: Seleziona tutto

-1+5-5+6-6+100
Che fa

Codice: Seleziona tutto

100-1=99
quindi (questo è vero in generale) basta che fai l'ultimo meno il primo :P
Non si dà supporto tramite mp in forum
L'utilizzo del tasto [Code] quando scrivi in forum risolve i 2/3 dei tuoi problemi
Per problemi con Skype rivolgersi qui. | Un Matematico Migrante
Caos88
Prode Principiante
Messaggi: 6
Iscrizione: sabato 24 agosto 2013, 15:02
Desktop: ubuntu
Distribuzione: Ububtu 13.04

Re: Problema Array

Messaggio da Caos88 »

Uh Grazie mille non ci avevo pensato :)))
Posso chiederti un'altra cosa?
dadexix86
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 16364
Iscrizione: domenica 22 marzo 2009, 19:58
Desktop: Unity
Distribuzione: Ubuntu 18.04 x86_64
Località: Paris, France

Re: Problema Array

Messaggio da dadexix86 »

Sì, certo :)

Ma se non è legata alla domanda metti [Risolto] nel titolo del primo post e aprine un'altra ;)
Non si dà supporto tramite mp in forum
L'utilizzo del tasto [Code] quando scrivi in forum risolve i 2/3 dei tuoi problemi
Per problemi con Skype rivolgersi qui. | Un Matematico Migrante
Caos88
Prode Principiante
Messaggi: 6
Iscrizione: sabato 24 agosto 2013, 15:02
Desktop: ubuntu
Distribuzione: Ububtu 13.04

Re: Problema Array

Messaggio da Caos88 »

oK mi sa che ho cantato vittoria troppo presto ;(
purtroppo per come sono i miei dati non vale la regola :
( S2-S1)+(S3-S2)+ ... + (Sn - Sn-1 ) = Sn - S1
in quanto potrei avere una situazione del genere :
(S4-S1)+(S6-S5)+(S8-S6)
e quindi non valgono le semplificazioni .
I dati di cui devo fare questa somma di differenze si trovano in un file strutturato per colonne , tipo
PRIMA SECONDA TERZA
e la mia colonna di interesse è la PRIMA.
Potreste aiutarmi ? Grazie in anticipo
1001001
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1506
Iscrizione: mercoledì 22 dicembre 2010, 18:09
Desktop: Unity
Distribuzione: Ubuntu 14.04.1 LTS 64bit
Località: Verona

Re: Problema Array

Messaggio da 1001001 »

Ciao! Potresti postare un file di esempio e chiarire come viene deciso quali elementi sommare? Voglio dire, in quali casi hai la situazione ( S2-S1)+(S3-S2)+ ... + (Sn - Sn-1 ) e in quali no? Ad esempio la situazione (S4-S1)+(S6-S5)+(S8-S6) quando si verifica?
"I find your lack of faith disturbing."
Caos88
Prode Principiante
Messaggi: 6
Iscrizione: sabato 24 agosto 2013, 15:02
Desktop: ubuntu
Distribuzione: Ububtu 13.04

Re: Problema Array

Messaggio da Caos88 »

Purtroppo questo non lo so perchè mi è stato gia fornito il file con questi dati e di questi devo fare solo la somma delle differenze tutto qui.
dadexix86
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 16364
Iscrizione: domenica 22 marzo 2009, 19:58
Desktop: Unity
Distribuzione: Ubuntu 18.04 x86_64
Località: Paris, France

Re: Problema Array

Messaggio da dadexix86 »

Ok, ma con quale logica devi sommare o sottrarre le varie righe?
Non si dà supporto tramite mp in forum
L'utilizzo del tasto [Code] quando scrivi in forum risolve i 2/3 dei tuoi problemi
Per problemi con Skype rivolgersi qui. | Un Matematico Migrante
Avatar utente
GjMan78
Rampante Reduce
Rampante Reduce
Messaggi: 5919
Iscrizione: mercoledì 22 novembre 2006, 19:15
Desktop: KdePlasma
Distribuzione: EndeavourOS
Sesso: Maschile
Località: ~/Italia/Lazio/Viterbo/

Re: Problema Array

Messaggio da GjMan78 »

Se ho capito quello che devi fare, cioè ottenere la somma delle differenze di due valori consecutivi

Codice: Seleziona tutto

SOMMA = ( S2-S1)+(S3-S2)+(S4-S3) ... + (Sn - Sn-1 )
la soluzione più logica è quella che hai postato tu stesso nel primo post.
MacBook Pro - Intel i5-3210 - 16 Gbyte Ram DDR3 - SSD 500 Gbyte x 2
»»» 𝗙𝗮𝗶 𝗶𝗹 𝗕𝗮𝗰𝗸𝘂𝗽! ¯\_(ツ)_/¯
Scrivi risposta

Ritorna a “Dilemmi del principiante”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti