Calculator în limba română

Programul va putea face calcule simple de tipul operand1 operator operand2,  in care operatorii sunt cei aritmetici (+,-,*,/), plecând de la o propoziție interogativă în limba română, de genul “Cât este suma dintre 3 și patru?” sau “Care este rezultatul înmulțirii lui zece cu paisprezece?”.

Input: un șir de caractere, conținând o întrebare în limba română despre o operație de tipul menționat.

Output: un șir de caractere, reprezentând rezultatul operației, scris cu cuvinte, în limba română

Restricții: operanzii și rezultatul operației sunt numere naturale între 0 și 100

Algoritmul: pentru a rezolva aceasta problema, vom lua un exemplu: “Care este rezultatul inmultirii lui zece cu paisprezece?”

  1. se desparte propoziția în cuvinte, formând un vector de cuvinte: [“Care”, “este”, “rezultatul”, “inmultirii”, “lui”, “zece”, “cu”, “paisprezece”, “?”];
  2. se elimină cuvintele inutile (de exemplu, “Care”, “este”, “rezultatul”, “lui”, “cu”, “?”);
  3. celelalte cuvinte se aduc la o formă standard (de exemplu, “inmultirii” -> “*”, “zece” -> “10”, “paisprezece” -> “14”); pentru a gasi „forma standard” a fiecarui cuvant, vom asocia fiecărui operand o listă de cuvinte care îl reprezintă, de exemplu pentru adunare avem [“+”, “suma”, “plus”, “adunare”, “adunat”, “insumat”, “si cu”, “marit cu”,…];
  4. vectorul de trei cuvinte obținut, se pune în ordine infixată (cu operandul la mijloc) (de exemplu, [“*”, “10”, “14”] -> [“10”, “*”, “14”]);
  5. se evaluează expresia, transformând șirurile de cifre în numere și ținând cont de operator; astfel se obține o valoare numerică (de exemplu, “10” -> 10, “14” -> 14 și aplicând “*” pentru 10 și 14 se obține 140);
  6. se transforma valoarea numerică în cuvânt în limba română (de exemplu, “o suta patru zeci”).

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *