This commit is contained in:
Daniel Hladek 2019-10-13 10:40:59 +02:00
commit 90f6847764
2 changed files with 67 additions and 0 deletions

39
README.md Normal file
View File

@ -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
```

28
program.c Normal file
View File

@ -0,0 +1,28 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#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;
}