#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <math.h>
void operazioni(){
printf("Cosa vuoi fare? \n");
printf("1) Somma \n");
printf("2) Sottrazione \n");
printf("3) Prodotto \n");
printf("4) Divisione \n");
printf("5) Elevamento a potenza\n");
printf("6) Conversioni \n\n");
printf("Digita qui il numero dell'operazione: ");
}
void convers(){
printf("\nConversione: \n");
printf("1) Celsius - Fahreneit\n");
printf("2) Fahreneit - Celsius \n");
printf("3) Celsius - Kelvin\n");
printf("4) Kelvin - Celsius\n");
}
void continuare();
void continuare1();
// PROTOTIPAZIONE SOMMA
float somma(float num1, float num2, float ris);
// PROTOTIPAZIONE SOTTRAZIONE
float sottrazione(float num1, float num2, float ris);
// PROTOTIPAZIONE MOLTIPLICAZIONE
float moltiplicazione(float num1, float num2, float ris);
// PROTOTIPAZIONE DIVISIONE
float divisione(float num, float nuM, float ris);
// PROTOTIPAZIONE POTENZA
float potenz(float numero, float potenza, float risultato, float n, float p, float ris);
// PROTOTIPAZIONE CONVERSIONE
float conve(float numero, float ris, int v);
// PROTOTIPAZIONE CONVERSIONE1
float conve1(float numero, float ris, int v);
// FUNZIONE CONTINUARE
void continua();
// PROTOTIPAZIONE CALCOLO
float calcolo(float ritorno, float ris);
// PROTOTIPAZIONE CALCOLO1
float calcolo1(float ritorno, float ris);
// \/\/\/\/\/\/\/\/\/\/\/\ //
// \/\/\/\/\/\/\/\/\/\/\/\ //
main(){
float ritorno; // VAR per CALCOLO
int valore, v;
float num1, num2, ris; // SOMMA - SOTTRAZIONE - MOLTIPLICAZIONE
float num, nuM; // DIVISONE
float numero, potenza, risultato, n, p; // POTENZA
calcolo(ritorno, ris);
getchar();
return(ritorno);
}
// \/\/\/\/\/\/\/\/\/\/\/\ //
// \/\/\/\/\/\/\/\/\/\/\/\ //
float somma(float num1, float num2, float ris){
float risultato = ris;
float *pointer = &num1;
pointer = (float*)malloc(sizeof(int));
printf("Inserisci il primo numero: ");
scanf("%f", &num1);
float *pointer1 = &num2;
pointer1 = (float*)malloc(sizeof(int)*11);
printf("Inserisci il secondo numero: ");
scanf("%f", &num2);
float *pointer2 = &ris;
pointer2 = (float*)malloc(sizeof(int));
ris = num1 + num2;
printf("%-9.4f \n", ris);
free(pointer);
free(pointer1);
free(pointer2);
return(risultato);
}
float sottrazione(float num1, float num2, float ris){
float risultato = ris;
float *pointer = &num1;
pointer = (float*)malloc(sizeof(int));
printf("Inserisci il primo numero: ");
scanf("%f", &num1);
float *pointer1 = &num2;
pointer1 = (float*)malloc(sizeof(int));
printf("Inserisci il secondo numero: ");
scanf("%f", &num2);
float *pointer2 = &ris;
pointer2 = (float*)malloc(sizeof(int));
ris = num1 - num2;
printf("%-9.4f \n", ris);
free(pointer);
free(pointer1);
free(pointer2);
return(risultato);
}
float moltiplicazione(float num1, float num2, float ris){
float risultato = ris;
float *pointer = &num1;
pointer = (float*)malloc(sizeof(int));
printf("Inserisci il primo numero: ");
scanf("%f", &num1);
float *pointer1 = &num2;
pointer1 = (float*)malloc(sizeof(int));
printf("Inserisci il secondo numero: ");
scanf("%f", &num2);
float *pointer2 = &ris;
pointer2 = (float*)malloc(sizeof(int));
ris = num1 * num2;
printf("%-9.4f \n", ris);
free(pointer);
free(pointer1);
free(pointer2);
return(risultato);
}
float divisione(float num, float nuM, float ris){
float risultato = ris;
float *pointer = #
pointer = (float*)malloc(sizeof(int));
printf("Inserisci il primo numero: ");
scanf("%f", &num);
float *pointer1 = &nuM;
pointer1 = (float*)malloc(sizeof(int));
printf("Inserisci il secondo numero: ");
scanf("%f", &nuM);
float *pointer2 = &ris;
pointer2 = (float*)malloc(sizeof(int));
ris = num / nuM;
printf("%-9.4f \n", ris);
free(pointer);
free(pointer1);
free(pointer2);
return(risultato);
}
float potenz(float numero, float potenza, float risultato, float n, float p, float ris){
double ritorno = ris;
float *pointer = №
pointer = (float*)malloc(sizeof(int));
printf("Inserisci la base: ");
scanf("%f", &numero);
float *pointer1 = &potenza;
pointer1 = (float*)malloc(sizeof(int));
printf("Inserisci la potenza: ");
scanf("%f", &potenza);
n = numero;
p = potenza;
float *pointer2 = &ris;
pointer2 = (float*)malloc(sizeof(int));
ris = pow(n, p);
printf("%-8.0f \n", ris);
free(pointer);
free(pointer1);
free(pointer2);
return(ritorno);
}
float conve(float numero, float ris, int v){
float ritorno = ris;
convers();
printf("\nDigita il numero della conversione: ");
scanf("%i", &v);
float *pointer = №
pointer = (float*)malloc(sizeof(int));
float *pointer1 = &ris;
pointer1 = (float*)malloc(sizeof(int));
switch(v){
case 0:
printf(" ");
break;
case 1:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = numero * 1.8 + 32;
printf("%-8.4f", ris);
break;
case 2:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = (numero - 32) / 1.8;
printf("%-8.4f", ris);
break;
case 3:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = numero + 273.15;
printf("%-8.4f", ris);
break;
case 4:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = numero - 273.15;
printf("%-8.4f", ris);
break;
default:
printf("Hai sbagliato!! Riprova:\n\n");
conve1(numero, ris, v);
}
free(pointer);
free(pointer1);
return(ritorno);
}
float conve1(float numero, float ris, int v){
float ritorno = ris;
convers();
printf("\nDigita il numero della conversione: ");
scanf("%i", &v);
float *pointer = №
pointer = (float*)malloc(sizeof(int));
float *pointer1 = &ris;
pointer1 = (float*)malloc(sizeof(int));
switch(v){
case 0:
printf("");
break;
case 1:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = numero * 1.8 + 32;
printf("%-8.4f", ris);
break;
case 2:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = (numero - 32) / 1.8;
printf("%-8.4f", ris);
break;
case 3:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = numero + 273.15;
printf("%-8.4f", ris);
break;
case 4:
printf("\nNumero da convertire: ");
scanf("%f", &numero);
ris = numero - 273.15;
printf("%-8.4f", ris);
break;
default:
printf("Hai sbagliato!! Riprova:\n\n");
conve(numero, ris, v);
}
free(pointer);
free(pointer1);
return(ritorno);
}
float calcolo(float ritorno, float ris){
operazioni();
ritorno = ris;
int v, valore;
float num1, num2; // SOMMA - SOTTRAZIONE - MOLTIPLICAZIONE
float num, nuM; // DIVISONE
float numero, potenza, risultato, n, p; // POTENZA
ritorno = ris;
scanf("%d", &valore);
switch(valore){
case 0:
printf("");
break;
case 1:
somma(num1, num2, ris);
break;
case 2:
sottrazione(num1, num2, ris);
break;
case 3:
moltiplicazione(num1, num2, ris);
break;
case 4:
divisione(num, nuM, ris);
break;
case 5:
potenz(numero, potenza, risultato, n, p, ris);
break;
case 6:
conve(numero, ris, v);
break;
default:
printf("Hai sbagliato!! Riprova:\n\n");
calcolo1(ritorno, ris);
}
continuare();
return(ritorno);
}
float calcolo1(float ritorno, float ris){
operazioni();
ritorno = ris;
int v, valore;
float num1, num2; // SOMMA - SOTTRAZIONE - MOLTIPLICAZIONE
float num, nuM; // DIVISONE
float numero, potenza, risultato, n, p; // POTENZA
ritorno = ris;
scanf("%d", &valore);
switch(valore){
case 0:
printf("");
break;
case 1:
somma(num1, num2, ris);
break;
case 2:
sottrazione(num1, num2, ris);
break;
case 3:
moltiplicazione(num1, num2, ris);
break;
case 4:
divisione(num, nuM, ris);
break;
case 5:
potenz(numero, potenza, risultato, n, p, ris);
break;
case 6:
conve(numero, ris, v);
break;
default:
printf("Hai sbagliato!! Riprova:\n\n");
calcolo(ritorno, ris);
}
continuare();
return(ritorno);
}
void continuare(){
float ritorno, ris;
int i;
int *pointer = &i;
pointer = (int*)malloc(sizeof(int)*1);
printf("\nVuoi continuare?\n");
printf("0) Si\n");
printf("1) No\n");
scanf("%i", &i);
switch(i){
case 0:
calcolo(ritorno, ris);
break;
case 1:
break;
default:
fprintf(stderr, "Hai sbagliato!!");
continuare1();
}
free(pointer);
}
void continuare1(){
float ritorno, ris;
int i;
int *pointer = &i;
pointer = (int*)malloc(sizeof(int)*1);
printf("\nVuoi continuare?\n");
printf("0) Si\n");
printf("1) No\n");
scanf("%i", &i);
switch(i){
case 0:
calcolo(ritorno, ris);
break;
case 1:
break;
default:
fprintf(stderr, "Hai sbagliato!!");
continuare();
}
free(pointer);
}