[PHP] problema con un esercizio

CafeZero

Nuovo Utente
16 Apr 2018
3
0
1
21
salve a tutti ho un problema con il seguente esercizio:
Si scriva un programma php che lette due sequenze di numeri float (terminate dallo 0), di lunghezza non necessariamente uguale,provenienti da due file di testo di input (input1.txt e input2.txt), le memorizzi in due array distinti. Se necessario all'array che memorizza la sequenza meno lunga,si aggiungano un numero di celle contenenti il valore 0 in modo tale da raggiungere la lunghezza dell'array che memorizza la sequenza maggiore.
il programma infine memorizzi in un terzo array la somma degli elementi corrispondenti dei due array descritti in precedenza e stampi i valori dell'array somma in un file di testo di output(output.txt)...

mi da problemi alla riga 52, riuscite a darmi una mano a sistemarlo? grazie a tutti per la pazienza
 

Allegati

macus_adi

Utente Attivo
5 Dic 2017
1.141
65
48
IT/SW
Questo dovrebbe essere il codice.... non so perchè ti dava errore nella linea 54 in quanto non hai messo il tuo codice.
Verifica con questo scritto al volo!
PHP:
//recupera il contenuto dei file e lo inserisce all'intero di un array
function leggi_file($file){
    $a=explode("\r\n",file_get_contents($file));
    return $a;
}
//aggiunge elementi mancanti in un array
function aggiungi_items(&$ar,$num_item){
    for($i=0;$i<count($num_item);$i++){
        $ar[]=0;
    }
}
//effettua la somma degli elementi dell'array
function somma_elementi_array($ar1,$ar2){
    $ar_sommma=[];
    foreach ($ar1 as $k=>$v){
        $ar_sommma[$k]=floatval(str_replace(',','.',$ar1[$k]))+floatval(str_replace(',','.',$ar2[$k]));
    }
    return $ar_sommma;
}

$file1=leggi_file('files/input1.txt');
$file2=leggi_file('files/input2.txt');

$num_1=count($file1);
$num_2=count($file2);

if($num_1>$num_2){
    aggiungi_items($file2,($num_1-$num_2));
}
if($num_1<$num_2){
    aggiungi_items($file1,($num_2-$num_1));
}
$sum=somma_elementi_array($file1,$file2);

print_r($sum);
Up: solo adesso ho visto il tuo codice nel file es3.txt!
Verifica i permessi sul file di output....!
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.739
141
63
Lombardia
qualcuno ti ha risolto l'esercizio (forse, non ho guardato il codice)

ma penso sia meglio leggere il tuo codice e non risolverti l'esercizio, in ogni caso noto,

le memorizzi in due array distinti.
prima della lettura della seconda array, hai dimenticato di azzerare l'indice $i

avrei addirittura usato due indici diversi per poter ottemperare meglio alla successiva richiesta

Se necessario all'array che memorizza la sequenza meno lunga,
si aggiungano un numero di celle contenenti il valore 0
in modo tale da raggiungere la lunghezza dell'array che memorizza la sequenza maggiore.
che non hai soddisfatto e che credo sia il cuore dell'esercizio

il programma infine memorizzi in un terzo array la somma degli elementi corrispondenti dei due array descritti in precedenza
e stampi i valori dell'array somma in un file di testo di output(output.txt)
seguendo passo passo il problema saresti sicuramente arrivato alla soluzione
soprattutto con i seguenti test,
file 1 > file 2
file 1 < file 2
file 1 = file 2
in modo da avere certezza del tuo codice

buon esercizio ... se vuoi farlo usando il tuo codice

ps, conoscere bene la programmazione e le logiche da applicare, sono un vantaggio professionale