Rezolvare completă PbInfo #2641 AF

Cerința

Gigel are ca temă la matematică să precizeze valoarea de adevăr a unor expresii de forma nr1 semn nr2 = nr3, unde nr1, nr2 și nr3 sunt numere naturale, iar semn poate fi +, -, x sau : reprezintând adunarea, scăderea, înmulțirea și împărțirea. Ajutați-l pe Gigel să rezolve tema la matematică.

Date de intrare

Fișierul de intrare af.in conține pe prima linie numărul de expresii n, iar pe următoarele n linii cele n expresii. Cele trei numere, semnul operației și egal sunt separate câte un spațiu.

Date de ieșire

Fișierul de ieșire af.out va conține pe fiecare linie valoarea de adevăr (Adevarat sau Fals) a expresiei corespunzătoare din fișierul de intrare.

Restricții și precizări

  • 1 ≤ n ≤ 10
  • 0 ≤ nr1, nr2, nr3 și rezultatul operației din membrul stâng ≤ 1017
  • nr1 ≥ nr2
  • rezultatul operația nr1 : nr2 este câtul împărțirii lui nr1 la nr2
  • dacă expresia este de forma nr1 : 0 = nr3 atunci este considerată falsă.

Exemplu

af.in

4
1 + 1 = 2
3 x 3 = 6
5 - 1 = 4
8 : 2 = 3

af.out

Adevarat
Fals
Adevarat
Fals

Explicație

1 + 1 = 2;
3 × 3 ≠ 6;
5 – 1 = 4;
8 : 2 ≠ 3

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema AF:

#include <fstream>

using namespace std;

ifstream fin("af.in");
ofstream fout("af.out");

long long nr1, nr2, nr3;
char sign, eq;
short n;

inline void TrueOrFalse();

int main()
{
    fin >> n;
    while(n--)
    {
        fin >> nr1 >> sign >> nr2;
        fin >> eq >> nr3;
        TrueOrFalse();
        fout << '\n';
    }
    return 0;
}

inline void TrueOrFalse()
{
    if(sign == '+')
            if(nr1 + nr2 == nr3)
                fout << "Adevarat";
            else
                fout << "Fals";

       if(sign == '-')
            if(nr1 - nr2 == nr3)
                fout << "Adevarat";
            else
                fout << "Fals";

       if(sign == 'x')
            if(nr1 * nr2 == nr3)
                fout << "Adevarat";
            else
                fout << "Fals";

        if(sign == ':')
            if(nr2 == 0)
                fout << "Fals";
            else
                if(nr1 / nr2 == nr3)
                    fout << "Adevarat";
                else
                    fout << "Fals";
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2641 AF

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2641 AF de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!