• Telefon : +40 728 88 22 88
  • Program de lucru : Vezi orarul!
  • Adresă : Bacău, str. Mihai Eminescu, nr. 1, bloc. A1

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”).

3 Comments

Leave a Reply