Calcolatrice

Ecco a voi il codice, in linguaggio C, per creare una calcolatrice semplice. In questo progetto si potrà utilizzare qualsiasi tipo di numero (virgola e non) ed è ottimo per apprendere le basi del linguaggio attraverso la definizione delle variabili int e char, dei cicli do-while e dei controlli if.

Solo numeri Interi (v 1.0) – Scorri giù per la versione completa

#include

int main(void) {

int n1;
int n2;

char op;
char esci;

do { // inizio ciclo
printf("Inserisci il primo numero intero: ");
scanf("%i", &n1);
printf("Inserisci il secondo numero intero: ");
scanf("%i", &n2);

printf("Inserisci l'operazione che vuoi eseguire (+ - * /): ");
fflush(stdin); // necessaria per l'input da tastiera per variabili CHAR
scanf("%c", &op);

if (op == '+') {
printf("La somma tra %i e %i e': %i", n1, n2, n1 + n2);
}

if (op == '-') {
printf("La differenza tra %i e %i e': %i", n1, n2, n1 - n2);
}

if (op == '*') {
printf("Il prodotto tra %i e %i e': %i", n1, n2, n1 * n2);
}

if (op == '/') {
printf("Il quoziente tra %i e %i e': %i", n1, n2, n1 / n2);
}

printf("\nContinui? (S/N) ");
fflush(stdin);
scanf("%c", &esci);
} // fine ciclo

while (esci == 'S' || esci == 's'); // ripeti il ciclo (almeno una volta viene eseguito) finchè l'utente non vuole uscire

return 0;

}

Versione completa (v 2.0)

#include <stdio.h> // richiama le librerie
#include <stdlib.h>

int main(void) { // main() deve essere sempre presente

float n1;
float n2;

char op;
char esci;

/*
altri esempi di variabili:
char
int
short - num intero corto
long - num intero lungo
float
double - num reale lungo
*/

printf("Ciao, questa e' una calcolatrice\n\n");

do { // inizio ciclo
printf("Inserisci il primo numero: ");
scanf("%f", &n1);
printf("Inserisci il secondo numero: ");
scanf("%f", &n2);

printf("\n\n");

printf("Inserisci l'operazione che vuoi eseguire (+ - * /): ");

fflush(stdin); // necessaria per l'input da tastiera per variabili CHAR
scanf("%c", &op);

printf("\n\n");

if (op == '+') {
printf("La somma tra %.2f e %.2f e': %.2f", n1, n2, n1 + n2);
}

if (op == '-') {
printf("La differenza tra %.2f e %.2f e': %.2f", n1, n2, n1 - n2);
}

if (op == '*') {
printf("Il prodotto tra %.2f e %.2f e': %.2f", n1, n2, n1 * n2);
}

if (op == '/') {
printf("Il quoziente tra %.2f e %.2f e': %.2f", n1, n2, n1 / n2);
}

printf("\n\nContinui? (S/N) ");
fflush(stdin);
scanf("%c", &esci);

printf("\n\n");

// system("cls";  per pulire lo schermo
} // fine ciclo

while (esci == 'S' || esci == 's'); // ripeti il ciclo (almeno una volta viene eseguito) finchè l'utente non vuole uscire

printf("\n\ncopyright - caprioli.info/proression\n\n");

exit(0);

}

Versione completa (v 3.0)

#include <stdio.h> // richiama le librerie
#include <stdlib.h>

int main(void) { // main() deve essere sempre presente

float n1;
float n2;

int m1;

int esp;

int espr;

int i;

char op;
char esci;

printf("Ciao, questa e' una calcolatrice\n\n");

do { // inizio ciclo
printf("Inserisci il primo numero: ");
scanf("%f", &n1);
printf("\n");
printf("ATTENZIONE: in caso di elevamento a potenza \n            il seguente numero sara' considerato come esponente\n");
printf("\n");
printf("Inserisci il secondo numero: ");
scanf("%f", &n2);

printf("\n\n");

printf("Inserisci l'operazione che vuoi eseguire (+ - * / ^): ");
fflush(stdin); // necessaria per l'input da tastiera per variabili CHAR
scanf("%c", &op);

if (op != '*' && op != '-' && op != '+' && op != '/' && op != '^') {

do {

printf("Errore, devi inserire un'operazione valida!");
fflush(stdin); // necessaria per l'input da tastiera per variabili CHAR
scanf("%c", &op);

}

while (op != '*' && op != '-' && op != '+' && op != '/' && op != '^');
}

printf("\n\n");

if (op == '+') {
printf("La somma tra %.2f e %.2f e': %.2f", n1, n2, n1 + n2);
}

if (op == '-') {
printf("La differenza tra %.2f e %.2f e': %.2f", n1, n2, n1 - n2);
}

if (op == '*') {
printf("Il prodotto tra %.2f e %.2f e': %.2f", n1, n2, n1 * n2);
}

if (op == '/') {

if (n2 == 0) { // inizio controllo

do { // inizio ciclo

printf("Errore, il denominatore non puo' essere uguale a 0, cambia valore!\n");
scanf("%f", &n2);

} // fine ciclo

while (n2 == 0);

} // fine if

printf("Il quoziente tra %.2f e %.2f e': %.2f", n1, n2, n1 / n2);
m1 = (int)n1 % (int)n2;
printf(" e con il resto di: %i", m1);
}

if (op == '^') {

esp = (int) n2;

espr = (int) n1;

for(i = 1; i <= (esp - 1); i++)
espr = espr * n1;

printf("il risultato e': %i", espr);

}

printf("\n\nContinui? (S/N) ");
fflush(stdin);
scanf("%c", &esci);

printf("\n\n");

// system("cls";  per pulire lo schermo
} // fine ciclo

while (esci == 'S' && esci == 's'); // ripeti il ciclo (almeno una volta viene eseguito) finchè l'utente non vuole uscire

printf("\n\ncopyright - caprioli.info/proression\n\n");

exit(0);

}

Versione completa con switch/case (v 4.0)

#include <stdio.h> // richiama le librerie
#include <stdlib.h>
#include <math.h> // la utilizzo per utilizzare l'elevamento a potenza successivo

int main(void) { // main() deve essere sempre presente

    float n1;
    float n2;

    int m1;

    int esp;

    int espr;

    int i;

    char op;
    char esci;

    printf("Ciao, questa e' una calcolatrice\n\n");

    do { // inizio ciclo

        printf("Inserisci il primo numero: ");
        scanf("%f", &n1);
        printf("\n");
        printf("ATTENZIONE: in caso di elevamento a potenza \n            il seguente numero sara' considerato come esponente\n");
        printf("\n");
        printf("Inserisci il secondo numero: ");
        scanf("%f", &n2);

        printf("\n\n");

        printf("Inserisci l'operazione che vuoi eseguire (+ - * / ^): ");
        fflush(stdin); // necessaria per l'input da tastiera per variabili CHAR
        scanf("%c", &op);

        if (op != '*' && op != '-' && op != '+' && op != '/' && op != '^') {

            do {

                printf("Errore, devi inserire un'operazione valida!");
                fflush(stdin); // necessaria per l'input da tastiera per variabili CHAR
                scanf("%c", &op);

            }

            while (op != '*' && op != '-' && op != '+' && op != '/' && op != '^');
        }

        printf("\n\n");

        switch (op) {

        case '+':
            printf("La somma tra %.2f e %.2f e': %.2f", n1, n2, n1 + n2);
            break;

        case '-':
            printf("La differenza tra %.2f e %.2f e': %.2f", n1, n2, n1 - n2);
            break;

        case '*':
            printf("Il prodotto tra %.2f e %.2f e': %.2f", n1, n2, n1 * n2);
            break;

        case '/':

            if (n2 == 0) { // inizio controllo

                    do { // inizio ciclo

                        printf("Errore, il denominatore non puo' essere uguale a 0, cambia valore!\n");
                        scanf("%f", &n2);

                    } // fine ciclo

                    while (n2 == 0);

            } // fine if

            printf("Il quoziente tra %.2f e %.2f e': %.2f", n1, n2, n1 / n2);
            m1 = (int)n1 % (int)n2;
            printf(" e con il resto di: %i", m1);

        break;

        case '^':

            espr = pow(n1, n2);

            printf("il risultato e': %i", espr);

        }

        printf("\n\nContinui? (S/N) ");
        fflush(stdin);
        scanf("%c", &esci);

        printf("\n\n");

        // system("cls");  per pulire lo schermo
    } // fine ciclo

    while (esci == 'S' || esci == 's'); // ripeti il ciclo (almeno una volta viene eseguito) finchè l'utente non vuole uscire

    printf("\n\ncopyright - caprioli.info/proression\n\n");

    system("PAUSE");

    exit(0);

}

Per ogni dubbio, non esitate a scrivere!



  1. No trackbacks yet.

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


Warning: fsockopen() [function.fsockopen]: unable to connect to www.sweetcaptcha.com:80 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. ) in D:\inetpub\webs\caprioliinfo\progression\wp-content\plugins\sweetcaptcha-revolutionary-free-captcha-service\library\sweetcaptcha.php on line 81