View Full Version : Consiglio sul linguaggio C
Latinman83
21-10-2006, 12:30
Salve gente della comunity!sono nuovo, e questo è il mio primo post che metto!sto utilizzando il linguaggio c, con il programma dev-c++;e stavo realizzando un programma semplicissimo sulla divisione, xrò io che sono principiante,lo trovo al quanto arduo. Nella relizazione della moltiplicazione, l'ho risolto semplicemente con il for, ma con la divisione non ci riesco. Mi potete aiutare, magari scrivendomi un vostro esempio in c?grazie x l'attenzione. :)
Latinman83
21-10-2006, 13:01
vi faccio un esempio di cio che ho fatto x la moltiplicazione:
int main(void){
int y;int i;
y=0;
for(i=1;i<=b;i++)
y=y+a;
printf("il risultato dell'operazione e':%d",y);
getchar();
}
x la divsione che devo fare? è l'opposto della moltiplicazione, come devo fare?
L'algoritmo potrebbe essere questo.
Dato un divisore A, un dividendo B (B : A), un valore C inizialmente uguale al divisore, un valore D inizialmente uguale a 1 (che trattiene il quoziente)
finchè C è minore del dividendo B
incrementa di uno il quoziente D
incrementa di A il valore C
se C è uguale al dividendo
il quoziente è D e il resto è zero
se C è maggiore del dividendo
il quoziente è D - 1, il resto è B - (C - A)
Detto altrimenti, fai una somma del valore del divisore con sè stesso tante volte quante servono per arrivare al valore del dividendo o "superarlo appena". Se hai superato il dividendo, allora il quoziente è "tante volte - 1" e la divisione avrà un resto pari al dividendo meno il (divisore sommato a sè stesso "tante volte - 1").
Io la so ricorsiva, se ti va bene...
vi faccio un esempio di cio che ho fatto x la moltiplicazione:
int main(void){
int y;int i;
y=0;
for(i=1;i<=b;i++)
y=y+a;
printf("il risultato dell'operazione e':%d",y);
getchar();
}
x la divsione che devo fare? è l'opposto della moltiplicazione, come devo fare?
Fai la stessa cosa, ma invece di sommare, sottrai, assciurandoti prima con un if che il dividendo non sia inferiore al divisore, in tal caso hai resto.
Ricorsiva sarebbe
/* calcola a/b */
int div(int a, int b)
{
if( b == 0)
// qui dai un errore
if( a == 0 || a < b )
return 0;
return div( a-b, b ) + 1;
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.