operazioni successive : moltiplicazione, divisione e potenza(intera) 2


Oggi vediamo come fare le semplici operazioni di addizione e sottrazione, in modo iterativo.

Vediamo prima la più semplice e cioè la moltiplicazione:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
int main(){
     
    //dichiarazioni
     
    int i,num1,num2,tot=0;
     
     
    //acquisizione dati
     
    printf("inserire il primo numero : ");
    scanf("%d",&num1);
    printf("inserire il secondo numero : ");
    scanf("%d",&num2);
         
    //calcoli
     
    for(i=1;i<=num2;i++){
        tot += num1;
    }
     
     
    //visualizzazione risultati
     
    printf("%d * %d = %d con solo operazioni di addizione\n",num1,num2,tot);
}

Il codice è molto semplice: non faccio altro che acquisire i dati ed sommare num2 volte num1 ad tot, inizializzato precedentemente a 0. Naturalmente non può essere usata con numeri negativi.

Invece ora vediamo la divisione:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
int main(){
     
    //dichiarazioni
     
    int i,num1,num2,quoz,resto;
     
     
    //acquisizione dati
     
    printf("inserire il primo numero : ");
    scanf("%d",&num1);
    printf("inserire il secondo numero : ");
    scanf("%d",&num2);
         
    //calcoli
         
    for(i=num2,quoz=0;i<=num1;i+=num2,quoz++)
        ;
     
    resto = num1-(i-num2);
     
    //visualizzazione risultati
     
    printf("%d/%d :\nquoziente = %d\nresto = %d\n",num1,num2,quoz,resto);
}

Qui invece continuo a sommare a i num2, incrementando anche quoz, fin quando i non è > di num1, in questo modo quz mi indica il quoziente intero, mentre per il resto basta invece vedere la differenza tra num1 ed il numero multiplo di num2 precedente, che si può ottenere o con num2*quoz o con i-num2. Naturalmente non può essere usata con numeri negativi.

Infine vediamo il calcolo di potenze intere:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
int main(){
     
    //dichiarazioni
     
    int i,num1,num2,tot=1;
     
     
    //acquisizione dati
     
    printf("inserire il primo numero : ");
    scanf("%d",&num1);
    printf("inserire il secondo numero : ");
    scanf("%d",&num2);
         
    //calcoli
         
    for(i=1;i<=num2;i++){
        tot *= num1;
    }
     
     
    //visualizzazione risultati
     
    printf("%d^%d = %d con moltiplicazioni successive\n",num1,num2,tot);
}

In pratica non faccio altro che moltiplicare num1 per il risultato precedente num2 volte, il risultato precedente è contenuto in tot, che è inizializzato a 1. Naturalmente non può essere usata con numeri negativi.

CC BY-SA 4.0 operazioni successive : moltiplicazione, divisione e potenza(intera) by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


Lascia un commento

2 commenti su “operazioni successive : moltiplicazione, divisione e potenza(intera)