Moltiplicazione tramite somma

antoooo

Nuovo Utente
5 Gen 2022
11
0
1
Ciao a tutti, per esercizio devo scrivere la funzione prodotto($a,$b) come addizione ripetuta e successivamente invocare la funzione da script PHP per una serie di coppie di valori. Ho scritto la funzione.

PHP:
<?php
            function prodotto($a,$b)//definisco la funzione prodotto
            {
            if($b==0)
                return $prodotto=0;
            else
                return $prodotto=$a+prodotto($a,$b-1);
            }
            ?>
(è corretta??). Vorrei far stampare a video le addizioni ripetute, ma non so come. Ad esempio, vorrei far stampare a video la seguente moltiplicazione: 2*8 sia come moltiplicazione che come addizione ripetuta 2+2+2+2+2+2+2+2.
Grazie a tutti per l'aiuto :)
 

illiterate2020

Utente Attivo
28 Set 2020
57
5
8
Ciao mi sembra che il codice che hai scritto non sia corretto,ma dovresti vederlo tu stesso basta testare il codice.
Per quanto riguarda la soluzione devi considerare $a e $b della tua funzione ma in questo modo:
$a come l'elemento che va sommato e $b il numero di volte che va sommato quindi vabene passare $a e $b come parametri alla funzione ma $b lo devi usare per fare un ciclo(ad esempio for) che somma $b volte l'elemento $a.
Spero sia chiara l'idea non ti scrivo il codice perchè sarebbe meglio che provi tu stesso se è un esercizio.
Fammi sapere se riesce, ciao.
 

antoooo

Nuovo Utente
5 Gen 2022
11
0
1
Ciao, innanzitutto grazie per avermi risposto. Si, è un esercizio, ho utilizzato il costrutto if-else perchè negli esempi delle slide il mio docente ha utilizzato questo per definire una funzione, in ogni caso il codice che ho scritto sopra a me sembra funzionare o_O chissà come??:eek:
Il processo logico l'ho capito solo che non riesco a tradurlo correttamente in codice... Ti faccio presente che sono alle prime armi e sto studiando Fondamenti di informatica per Ingegneria Civile, magari ho conoscenze un pò striminzite.
Mi potresti aiutare a capire come fare? Ho quattro coppie di numeri delle quali devo fare la moltiplicazione tramite somma (metodo delle somme successive). Innanzittutto volevo prima definire la funzione per poi capire come applicarla alle coppie di valori.
Ho provato a riscriverla con i suggerimenti che mi hai dato:
PHP:
<?php
        function prodotto($a,$b)//definisco la funzione prodotto
            {
                $i=0;
                $prodotto=0;
            for($i=1; $i<=$b; $i++)
                return $prodotto=prodotto($a,$b-1)+$a;
            }
        ?>
 

illiterate2020

Utente Attivo
28 Set 2020
57
5
8
PHP:
<?php
function prodotto($a,$b)//definisco la funzione prodotto 3 x 4= 3+3+3+3
{
    //se il moltiplicatore $b è zero restituisco zero
    if($b==0)
    {
        return $b;
    }
    else
    {
        //imposto la variabile somma ripetuta a zero
        $somma = 0;
        for($i=1; $i<=$b; $i++)
        {
            //sommo $a b volte utilizzando la var di appaggio somma...
            $somma = $a + $somma;
            //concateno gli addendi della somma
            $addendi .= $a."+";
           
           
        }
        //elimino l'ultimo + dalla stampa
        $addendi =  rtrim($addendi, "+ ");
        //aggiungo l'uguale
        $addendi = $addendi." = ";
        //stampo gli addendi
        echo $addendi;
        //restituisco la somma            
        return $somma;
    }
}
$prodotto = prodotto(3,4);
echo $prodotto;

echo "<br><br>";
$prodotto = prodotto(3,0);
echo $prodotto;

echo "<br><br>";
$prodotto = prodotto(8,5);
echo $prodotto;


echo "<br><br>";
$prodotto = prodotto(9,9);
echo $prodotto;
?>

In bocca al lupo per l'esame ,ciao.
 
Ultima modifica:
  • Like
Reactions: antoooo

antoooo

Nuovo Utente
5 Gen 2022
11
0
1
Ciao illiterate2020, grazie per l'aiuto, è stato illuminante!! Hai nidificato il cilco for in else!! Avevo provato anch'io, ma ho abbandonato l'idea credendo fosse errato:oops: inizio a capirci qualcosina in più.
Ti spiacerebbe spiegarmi questo passaggio:
PHP:
 {
            //sommo $a b volte utilizzando la var di appaggio somma...
            $somma = $a + $somma;
            //concateno gli addendi della somma
            $addendi .= $a."+";
          
          
        }

non si dovrebbe definire la variabile $addendi.=$a."+"; ?? Se si in quale punto del codice?all'inizio del ciclo for è corretto?
un'altra cosa:
$addendi = rtrim($addendi, "+ ");
la funzione rtrim è la prima volta che la incontro, mi potresti dire dove posso trovare una lista di funzioni già definite?
E se avessi voluto definire due array per le coppie di valori, come avrei pouto fare? Sarebbe stato più semplice o complicherei ulteriormente le cose??
Grazie ancora del tuo prezioso aiuto.
 

illiterate2020

Utente Attivo
28 Set 2020
57
5
8
Codice:
Ciao riguardo la prima riga è quella che si occupa di fare la moltiplicazione come somma ripetuta
infatti allo scorrere del ciclo i volori di $a vengono aggiunti alla variabile somma...quindi è la riga
che fa i calcoli(le somme ripetute)
            //sommo $a b volte utilizzando la var di appaggio somma...
            $somma = $a + $somma;
Riguardo la seconda riga è semplicemente quella che peremette di stampare gli addendi creando una stringa
$addendi che sarebbe ad esempio 3+3+3+3 che ripeto è semplicemente una stringa di testo
            //concateno gli addendi della somma
            $addendi .= $a."+"
Per quanto riguarda le funzioni di php le puoi trovare su php.net che è la documentazione ufficiale di php,
in questo caso secondo me è superfluo usare array ti complichi solo la vita, ciao.
 
  • Like
Reactions: antoooo
Discussioni simili
Autore Titolo Forum Risposte Data
ivarello Moltiplicazione Automatica Javascript 5
max_400 Unire 2 query - calcoli matematici: somma, moltiplicazione, percentuale PHP 7
metalgemini Moltiplicazione con decimali PHP 2
$ Form Dinamico con moltiplicazione Javascript 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
S Deploy stampanti tramite GPO - Windows Server 2019 Windows e Software 1
T Recupero valori tramite $_GET PHP 4
MarcoGrazia Validazione remota tramite plugin (jquery validate) Snippet Javascript 0
A form PHP prenotazione tramite query PHP 2
M Risolto Effettuare un redirect tramite DNS (Era: DNS Redirect) Domini 1
R Importazione csv su mysql tramite array PHP 2
E Gestione profilo utente tramite Form PHP 3
M più insert tramite while loop PHP 1
L upload image tramite url e cache PHP 10
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
R abilitare menu a tendina tramite relativa chekbox PHP 17
I Salvataggio snapshot IPCAM tramite PHP PHP 5
A Inserimento dati nel database tramite form + altre operazioni PHP 18
P inserimento icone social tramite html HTML e CSS 1
L creare oggetti da una classe tramite un form Javascript 0
I Non riesco ad accedere ftp tramite IP in LAN Reti LAN e Wireless 6
D INVIARE PAGINA XHTML TRAMITE EMAIL HTML e CSS 1
A [PHP] Bloccare utente tramite indirizzo IP PHP 3
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
M Premi irrisori tramite crediti virtuali Leggi, Normative e Fisco 0
I [PHP] inviare form con allegato tramite una mail PHP 1
L PopUp tramite PHP se la mail inserita è già registrata nel database PHP 3
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
O [PHP] Ricerca record tramite post PHP 7
S Sponsorizzazione del proprio profilo Instagram tramite Story (25k) Annunci servizi di Social Media Marketing 0
G [PHP] Creare appuntamento ed inviarlo tramite mail (Outlook e Gmail) PHP 0
Wallace911 Array multidimensionale ottenuto tramite json jQuery 1
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
Instagramsocialmedia FATE ATTENZIONE furti di identità anche qui sul forum e tramite email Annunci servizi di Social Media Marketing 0
F Controllo dati sui campi di input tramite php PHP 1
G [PHP] Aprire una cartella tramite un link PHP 1
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
T [Visual Basic] Criptazione tramite matrice Visual Basic 0
F [Javascript] Aprire file tramite jquery Javascript 0
Cavalinho08 OFFRO GUADAGNO TRAMITE SOCIAL Offerte e Richieste di Lavoro e/o Collaborazione 2
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
K [PHP] Invio dati tramite url PHP 2
ESABOT Problema passaggio dati tra activity tramite intent Sviluppo app per Android 1
Emix [PHP][MYSQL] Ricerca avanzata tramite form PHP 6
E [PHP] GUMP: mostrare gli errori tramite array PHP 1
F [HTML] Modulo d'ordine che arriva tramite email editabile ed inviabile. HTML e CSS 6
bubino8 [Javascript] Riconoscere Browser tramite JS Javascript 5
giannit Verificare se un utente è connesso tramite db mysql PHP 15

Discussioni simili