Questo tra i primi programmini che ho scritto come esercizi è certamente uno dei più complessi. Non per la sue regole di sintassi (che sono più o meno ripetitive) tanto per l’algoritmo ingengato per realizzarlo. Tecnicamente come programma non ha una grande utilità, ma vi presento la sua sorgente a scopo educativo:

#include <stdio.h>

void azzera();
void somma();
void sottrai();
void moltiplica();
void dividi();

float n=0;   //variabile del numero da inserire
float x=0;   //variabile del numero base
char e;    //variabile per il controllo della continuazione o uscita de programma
int c;   //variabile per il controllo della funzione da scegliere

int main()
{
    printf("Manihack Calculator 3.0 - Coded by Shin Darth nn");
    printf("Inserisci un numero: ");
    scanf("%f",&x);
    do
    {
        system("cls");
        printf("Valore del numero attuale: %f nn",x);
        printf("Scrivi: nn");
        printf("[1] per azzerare n");
        printf("[2] per sommare n");
        printf("[3] per sottrarre n");
	printf("[4] per moltiplicare n");
	printf("[5] per dividere n");
	printf("[6] per uscire nn");
        printf("Numero della funzione scelta: ");
        scanf("%d",&c);
        switch (c)
        {
            case 1:

                azzera();
                break;
            case 2:
		somma();
		break;
            case 3:
                sottrai();
                break;
	    case 4:
		moltiplica();
	        break;
	    case 5:
		dividi();
	        break;
	    case 6:
		break;
	    default:
                printf("nErrore: Hai scelto un numero non valido. nn");
                break;
        }
        printf("nRitornare al menu' principale e continuare? SI=y EXIT=n n");
        scanf("%s",&e);
    }
    while (e=='y');
}

void azzera()
{
    system("cls");
    printf("Valore del numero attuale: %f nn",x);
    x=0;
    system("cls");
    printf("Valore del numero attuale: %f nn",x);
    printf("Valore azzerato. nn");
}

void somma()
{
    char b;
	do
	{
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Inserisci un numero per sommarlo al valore corrente: ");
		scanf("%f",&n);
		x+=n; //assegna a x la somma tra x e n
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Vuoi continuare a sommare? SI=y  MENU' PRINCIPALE=n n");
		scanf("%s",&b);
	}
	while (b=='y');
}

void sottrai()
{
	char b;
	do
	{
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Inserisci un numero per sottrarlo al valore corrente: ");
		scanf("%f",&n);
		x-=n; //assegna a x la differenza tra x e n
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Vuoi continuare a sottrarre? SI=y  MENU' PRINCIPALE=n n");
		scanf("%s",&b);
	}
	while (b=='y');
}

void moltiplica()
{
	char b;
	do
	{
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Inerisci un numero per moltiplicarlo al valore corrente: ");
		scanf("%f",&n);
		x*=n; //assegna a x il prodotto tra x e n
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Vuoi continuare a moltiplicare? SI=y  MENU' PRINCIPALE=n n");
		scanf("%s",&b);
	}
	while (b=='y');
}

void dividi()
{
	char b;
	do
	{
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Inerisci un numero per dividerlo al valore corrente: ");
		scanf("%f",&n);
		x/=n; //assegna a x il risultato della divisione tra x e n
		system("cls");
		printf("Valore del numero attuale: %f nn",x);
		printf("Vuoi continuare a dividere? SI=y  MENU' PRINCIPALE=n n");
		scanf("%s",&b);
	}
	while (b=='y');
//Linea vuota alla fine del file per evitare il warning di gcc
}

About OpenProgrammers

Programmatore per passione. Mi piace condividere qualsiasi idea o informazione utile, per questo motivo ho realizzato il blog.