Esercizio svolto soluzione di una prova di esame dell'esame di Programmazione 1 - Linguaggio C++
Un file di testo è così strutturato:
2+3+12=9+8;
2+3+4=9;
22=3+4+5+10;
3+85+1=4+44;
alcune uguaglianze sono corrette altre no; infatti nel file l'ultima riga il primo membro la somma non coincide con la somma del secondo membro.
Scrivere un programma in C++ che letti i dati dal files, attraverso una funzione calcoli la frazione di somme corrette a video.
Soluzione:
Il progetto si compone di tre files due con header e un main. Ecco il primo header:
#include <iostream>
#include <fstream>
using namespace std;
struct Somme {
int num1[20];
int num2[20];
int ris2;
int addendi1;
int addendi2;
int corretto=0;
int ris1;
};
void leggi_file (fstream& f, struct Somme s[], int& l);
int controllo (struct Somme s);
void stampa(struct Somme s[],int l);
float rapporto (struct Somme s[], int l);
La struct contiene i numeri del primo membro e del secondo all'interno di due array, le somme sono memorizzate nei campi ris1, ris2, mentre le variabili addendi1 e addendi2 sono il numero degli addendi delle due somme. La variabile corretto indica se le somme del primo e del secondo mebro di ogni riga del files coincidono.