Informatică, întrebare adresată de pmarian98, 9 ani în urmă

#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

Răspunsuri la întrebare

Răspuns de boiustef
5

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

   ifstream f("af.in");

   ofstream g("af.out");

   char semn, egal;

   long long int a, b, c, i, n, ok;

   f >> n;

   for (i=1; i<=n; ++i)

   {

      ok=0;

      f >> a >> semn >> b >> egal >> c;

      if (ok==0 && semn=='+' && a+b==c) ok=1;

      if (ok==0 && semn=='-' && a-b==c) ok=1;

      if (ok==0 && semn=='x' && a*b==c) ok=1;

      if (ok==0 && semn==':') {

           if (b==0) ok=0;

           else if (a/b==c) ok=1;}

       if (ok) g << "Adevarat" << "\n";

       else g << "Fals" << "\n";

   }

   return 0;

}



Lorraine: Mie imi da 0 puncte la solutia asta, desi in codeblocks merge. Ai cumva solutia oficiala?
Alte întrebări interesante