Non so se i tuoi professori ti spieghino il linguaggio di programmazione ANSI C facendoti credere che sia il c++.
Ti riscrivo il programma utilizzando il c++.
#include <iostream>
using namespace std;
int main()
{
float x=0 , y=0 , z=0 ;
float risultato=0 ;
cout<<"Calcolo dell' espressione 2x + 3y * 4z"<<endl;
cout<<"Inserire il valore di x: ";
cin>>x;
cout<<"Inserire il valore di y: ";
cin>>y;
cout<<"Inserire il valore di z: ";
cin>>z;
cout<<"Il programma calcolera' l'espressione 2x + 3y * 4z \n";
risultato=2*x;
risultato=risultato+3*y;
risultato=risultato*4*z;
cout<<risultato;
system("PAUSE");
}
Ora ti spiego il problema, quando tu esegui le espressioni algebriche segui le regole gerarchiche. Invece il calcolatore non conosce queste regole quindi devi strutturare le operazioni separandole, hai inteso?. Un esempio pratico che puoi benissimo fare con la tua calcolatrice: Prova a calcolare il valore in modo sequenziale dell' esspressione 2*4 + 3*2 *4 * 2.
Facendolo su carta e penna ti verrà 112 mentre con la calcolatrice un risultato non vero!... questo perche tu prima fai la moltiplicazione poi la somma dei valori moltiplicati.
Questo è il tuo codice in C# corretto:
#include <stdlib.h>
#include <stdio.h>
int main()
{
system("color E3") ;
float x=0 , y=0 , z=0 ;
float risultato=0 ;
printf("PROGRAMMA ESPRESSIONE - VERSIONE 1 \n") ;
printf("Inserisci il valore di X") ;
scanf("%f" ,&x) ;
printf("Inserisci il valore di Y") ;
scanf("%f" ,&y) ;
printf("Inserisci il valore di Z") ;
scanf("%f",&z) ;
printf("\n \n") ;
printf("Il programma calcolera' l'espressione 2x + 3y * 4z \n") ;
risultato=2*x; //Qui le correzioni,..
risultato=risultato+3*y; // ..qui
risultato=risultato*4*z; //e qui
printf("Il Risultato e'") ;
printf("%f" ,risultato) ;
printf("\n") ;
system("pause") ;
}
Tutto chiaro?