PDA

Visualizza la versione completa : [C]Programma che esagua una moltiplicazione senza il *


robyy94
14-11-2010, 21:23
Ciao a tutti.
Ho iniziato a studiare a scuola il C, e sono alle prime armi.
Come compito ho quello di creare un programma che esagua la moltiplicazione di due numeri senza l'utilizzo del * ... quindi deve essere fatta per mezzo di addizioni.

Ad esempio 2 * 3 = 2 + 2 + 2= 6


Il programma deve essere fatto in c e non c++ e deve avere un ciclo while.
Ovviamente non vi chiedo di farmi il programma intero... vorrei soltanto un aiuto per capire cosa devo fare.
Grazie in anticipo.

Neptune
14-11-2010, 21:46
Originariamente inviato da robyy94
Ciao a tutti.
Ho iniziato a studiare a scuola il C, e sono alle prime armi.
Come compito ho quello di creare un programma che esagua la moltiplicazione di due numeri senza l'utilizzo del * ... quindi deve essere fatta per mezzo di addizioni.

Ad esempio 2 * 3 = 2 + 2 + 2= 6


Il programma deve essere fatto in c e non c++ e deve avere un ciclo while.
Ovviamente non vi chiedo di farmi il programma intero... vorrei soltanto un aiuto per capire cosa devo fare.
Grazie in anticipo.

Una moltiplicazione, come anche tu hai scritto, non altro che sommare un numero n-volte.

Quindi se devi fare n-volte una stessa cosa, in questo caso una somma, non ti viene in mente nessun costrutto del C per farlo?

robyy94
14-11-2010, 21:56
Originariamente inviato da Neptune
Una moltiplicazione, come anche tu hai scritto, non altro che sommare un numero n-volte.

Quindi se devi fare n-volte una stessa cosa, in questo caso una somma, non ti viene in mente nessun costrutto del C per farlo?


Ci ho riflettuto un p ... ma non mi venuto in mente niente.. posso chiederti un ulteriore aiuto?

MItaly
14-11-2010, 22:38
Originariamente inviato da robyy94
Ci ho riflettuto un p ... ma non mi venuto in mente niente.. posso chiederti un ulteriore aiuto?
for

robyy94
14-11-2010, 22:41
Originariamente inviato da MItaly
for

Purtroppo il for non l'ho ancora studiato ... Guardo qualche guida online e provo ...

robyy94
14-11-2010, 22:54
Ho guardato un p di guide .. ma non riesco ad applicarle.

Il ciclo for va rappresentato cos:for(valore_iniziale, condizione_di_test, incremento)
{
(<istruzioni da eseguire all'interno del ciclo>)
}

Al posto di valore_iniziale , condizione_di_test, cosa dovrei mettere?
Credo che sia veloce da fare come programma ... se qualcuno pu farmelo in modo che guardando un esempio gia pronto possa studiarlo lo ringrazio anticipatamente

Neptune
14-11-2010, 23:29
Originariamente inviato da robyy94
Ho guardato un p di guide .. ma non riesco ad applicarle.

Il ciclo for va rappresentato cos:for(valore_iniziale, condizione_di_test, incremento)
{
(<istruzioni da eseguire all'interno del ciclo>)
}

Al posto di valore_iniziale , condizione_di_test, cosa dovrei mettere?
Credo che sia veloce da fare come programma ... se qualcuno pu farmelo in modo che guardando un esempio gia pronto possa studiarlo lo ringrazio anticipatamente

Ma se guardi bene su internet ne troverai migliaia di codici che usano un ciclo for.

Ad ogni modo non hai un manuale di riferimento? anche su internet?

Comunque qui trovi un p di tutto sui vari tipi di cicli, for compreso:

http://programmazione.html.it/guide/lezione/1098/controlli-iterativi-while-for-break/

E' una mini-guida introduttiva sul C a cui puoi far riferimento anche in futuro se non hai nient'altro di cartaceo sottomano. Comunque ti consiglierei di non andare a tentoni e di seguire un manuale almeno considerando che il primo linguaggio che impari.

MdE2005
15-11-2010, 08:46
Originariamente inviato da robyy94
Ciao a tutti.
Ho iniziato a studiare a scuola il C...

Il programma deve essere fatto in c e non c++ e deve avere un ciclo while.

Ovviamente non vi chiedo di farmi il programma intero...

Fa piacere vedere che viene insegnato alle scuole superiori :D

Il ciclo while perfetto in questo caso, in quanto matematicamente il tuo problema cos risolvibile: dato un numero in input, esegui la somma di s stesso n volte ; ovviamente come si capisce che il ciclo stato eseguito n volte? Con una variabile contatore, cio una variabile numerica (byte o int) che viene incrementata di 1 ad ogni ciclo: quando tale variabile uguale a n si ha l'uscita dal ciclo.


Ciao :)

torn24
15-11-2010, 16:13
anche io sono un principiante con il linguaggio c
ho provato a risolvere il tuo problema seguendo i consigli dati nel forum
ti hanno proposto di usare un ciclo for ma nel problema ti stato chiesto
esplicitamente il ciclo while credo tu debba usare quello e comunque nel c
i due costrutti non sono tanto differenti logicamente fanno la stessa cosa
cambia la sintassi , anche se il piu' usato il cilclo for
posto una funzione che ti potrebbe essere di aiuto cerca di capirne il funzionamento
altrimenti era meglio non fare propio l'esercizio

int molt(int a, int b)
{
int i=1;
int r=0;
while(i<=b)
{
i++;
r+=a;

}

return (r);

}

MdE2005
15-11-2010, 17:03
Secondo te non sappiamo risolvere questo problema? Abbiamo dato degli indizi all'utente, in modo che svolgesse l'esercizio autonomamente. Inoltre, se leggi il mio precedente post, avevo gi descritto il funzionamento di DoWhile.
Cerca piuttosto di controllare la punteggiatura nei messaggi..

Loading