Problema Funzioni, 2*Superiore

di il
3 risposte

Problema Funzioni, 2*Superiore

Ciao, oggi sul libro mi è stato assegnato il seguente esercizio:
Leggi due numeri n ed m, esegui la loro somma, sottrazione, moltiplicazione e divisione. Per ogni operazione utilizza una funzione.
#include <iostream>
using namespace std;

int somma(int a, int b)
{
	int somma;
	somma=a+b;
}

int sottrazione(int a, int b)
{
	int sottrazione;
	sottrazione=a-b;
}

int moltiplicazione(int a, int b)
{
	int moltiplicazione;
	moltiplicazione=a*b;
}

int divisione(int a, int b)
{
	int divisione;
	int resto;
	divisione=a/b;
	resto=a%b;
}

int stampa()
{
	cout<<"La somma dei due numeri è "<<somma<<'\n';
	cout<<"La sottrazione dei due numeri è "<<sottrazione<<'\n';
	cout<<"La moltiplicazione per due dei numeri è "<<moltiplicazione<<'\n';
	cout<<"La divisione per due dei numeri è"<<divisione;
	cout<<", ed ha come resto"<<resto;
}

int main()
{
	int n, m;
	cout<<"Inserisci il primo numero."<<'\n';
	cin>>n;
	cout<<"Inserisci il secondo numero"<<'\n';
	cin>>m;
	int somma(int n, int m);
	int sottrazione(int n, int m);
	int moltiplicazione(int n, int m);
	int divisione(int n, int m);
	int stampa();
}

Mi dice che la variabile "resto" dichiarata nella funzione divisione, non è dichiarata nella funzione stampa.
Potete aiutarmi a correggere?

3 Risposte

  • Re: Problema Funzioni, 2*Superiore

    Facciamola breve: BUTTA VIA TUTTO e riparti da zero!

    Quello che hai scritto e' TUTTO SBAGLIATO. Ma PROPRIO TUTTO!!!!!!!!!
    Si potrebbe scrivere un trattato di 100 pagine sulla quantita di errori presenti.

    Non preoccuparti: all'inizio e' sempre un ""casino""

    Fai cosi:

    1) inizia con UNA SOLA funzione, ad esempio la somma,
    2) NON leggere i parametri da tastiera, ma passali direttamente alla funzione. La lettura la farai dopo

    3) definisci la funzione PRIMA del main
    4) nel main chiama la funzione con i parametri 2 e 3, fatti dare il risultato, che DEVE ESSERE 5, stampa il risultato con cout, E BASTA!

    RICORDA, una funzione DEVE SEMPRE AVERE UN "return". SEMPRE!!!!!!

    Quando questi 4 passi funzioneranno, si potra' procedere al passo successivo.

    NON SCRIVERE UNA RIGA DI CODICE IN PIU' di quanto ti ho scritto: fidati, c'e' tutto quello che serve.

  • Re: Problema Funzioni, 2*Superiore

    Mi so messo a spulciare tutto il libro, ho provato a rifare, ho pensato di scrivere pure il trattato di 100 pagine xD
    Alla fine sono riuscito ad ottenere ciò che volevo.
    #include <iostream>
    using namespace std;
    
    int somma(int a, int b)
    {
    	int risultato;
    	risultato = a + b;
    	return risultato;
    }
    
    int sottrazione(int a, int b)
    {
    	int risultato2;
    	risultato2 = a - b;
    	return risultato2;
    }
    
    int moltiplicazione(int a, int b)
    {
    	int risultato3;
    	risultato3 = a * b;
    	return risultato3;
    }
    
    int divisione(int a, int b)
    {
    	int risultato4;
    	risultato4 = a / b;
    	return risultato4;
    }
    
    int resto(int a, int b)
    {
    	int resto;
    	resto = a % b;
    	return resto;
    }
    
    int main()
    {
    	int n, m;
    	cout<<"Inserisci il primo numero."<<'\n';
    	cin>>n;
    	cout<<"Inserisci il secondo numero."<<'\n';
    	cin>>m;
    	cout<<"La somma è "<<somma(n, m)<<'\n';
    	cout<<"La sottrazione è "<<sottrazione(n, m)<<'\n';
    	cout<<"La moltiplicazione è "<<moltiplicazione(n, m)<<'\n';
    	cout<<"La divisione è "<<divisione(n, m);
    	cout<<", con resto "<<resto(n, m);
    }
  • Re: Problema Funzioni, 2*Superiore

    Bravo
    C'è ancora una piccola miglioria che puoi fare: ti servono davvero le variabili risultato?
Devi accedere o registrarti per scrivere nel forum
3 risposte