commit 90f68477644863c2814c3d8e1da48a180c2788df Author: Daniel Hladek Date: Sun Oct 13 10:40:59 2019 +0200 initial diff --git a/README.md b/README.md new file mode 100644 index 0000000..646b42f --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# Poľská kalkulačka + +Vytvorte zásobníkovú kalkulačku. Zásobník bude mať veľkosť 10 miest na uloženie čísla s desatinnou čiarkou. + +Jeden vstup do kalkulačky bude zadaný na jedmom riadku. Vstup do kalkulačky môže byť číslo s desatinnou čiarkou alebo jedna z operácií `+-*/`. + +Ak je na vstupe platné číslo, pridajte ho na koniec zásobmíka. +Ak je vstup operácia, vyberte dva posledné čísla zo zásobníka, vykonajte operáciu a výsledok vložte do zásobníka. +Na konci každého úspešného vstupu alebo operácie zobrazte na nový riadok hodnoty v zásobníku oddelené medzerou. V prípade, že sa nepodarilo načítať číslo alebo operáciu, vypíšte chybové hlásenie a ukončite program. + +V prípade, že je zásobník plný alebo v ňom nie je dostatok hodnôt, vypíšte chybovú správu a ukončite program. + + +Príklad práce s programom: + +Vstup: + +``` +34 +34.5 ++ +23 +- +45 +/ +``` + +Výstup: + +``` +34.00 +34.00 34.50 +68.50 +68.50 23.00 +45.50 +45.50 45.00 +1.01 +no input +``` diff --git a/program.c b/program.c new file mode 100644 index 0000000..da2e742 --- /dev/null +++ b/program.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +#define STACK_SIZE 10 +#define LINE_SIZE 100 + +struct stack { + float values[STACK_SIZE]; + int size; +}; + +// Vypis zasobnika +void print_stack(struct stack* stack); +// Vyber zo zasobnika +float pop_stack(struct stack* stack); +// Pridanie do zasobnika +void push_stack(struct stack* stack,float value); +// Velkost zasobnika +int count_stack(struct stack* stack); + + +int main(){ + struct stack mystack; + memset(mystack,0,sizeof(struct stack)); + return 0; +}