skuska2
This commit is contained in:
parent
e7b4ea33f3
commit
80b330f482
@ -26,11 +26,11 @@ double odcitaj(double a, double b) { return a - b; }
|
|||||||
double nasob(double a, double b) { return a * b; }
|
double nasob(double a, double b) { return a * b; }
|
||||||
double del(double a, double b) { return a / b; }
|
double del(double a, double b) { return a / b; }
|
||||||
|
|
||||||
double sinus(double x) { return sin(x); }
|
double sin(double x) { return sin(x); }
|
||||||
double cosinus(double x) { return cos(x); }
|
double cos(double x) { return cos(x); }
|
||||||
double odmocnina(double x) { return sqrt(x); }
|
double sqrt(double x) { return sqrt(x); }
|
||||||
double mocnina(double zaklad, double exponent) { return pow(zaklad, exponent); }
|
double pow(double zaklad, double exponent) { return pow(zaklad, exponent); }
|
||||||
double logaritmus(double x) { return log(x); }
|
double log(double x) { return log(x); }
|
||||||
|
|
||||||
// Funkcia na konverziu infixového výrazu na postfixový (Shunting-yard algoritmus)
|
// Funkcia na konverziu infixového výrazu na postfixový (Shunting-yard algoritmus)
|
||||||
void infix_na_postfix(const char *infix, char *postfix) {
|
void infix_na_postfix(const char *infix, char *postfix) {
|
||||||
@ -69,7 +69,9 @@ void infix_na_postfix(const char *infix, char *postfix) {
|
|||||||
double vyhodnot_postfix(const char *postfix) {
|
double vyhodnot_postfix(const char *postfix) {
|
||||||
double stack[100];
|
double stack[100];
|
||||||
int top = -1;
|
int top = -1;
|
||||||
char *token = strtok(strdup(postfix), " ");
|
char *postfix_copy = malloc(strlen(postfix) + 1);
|
||||||
|
strcpy(postfix_copy, postfix);
|
||||||
|
char *token = strtok(postfix_copy, " ");
|
||||||
|
|
||||||
while (token) {
|
while (token) {
|
||||||
if (isdigit(token[0]) || (token[0] == '-' && isdigit(token[1]))) {
|
if (isdigit(token[0]) || (token[0] == '-' && isdigit(token[1]))) {
|
||||||
@ -87,5 +89,6 @@ double vyhodnot_postfix(const char *postfix) {
|
|||||||
}
|
}
|
||||||
token = strtok(NULL, " ");
|
token = strtok(NULL, " ");
|
||||||
}
|
}
|
||||||
|
free(postfix_copy);
|
||||||
return stack[top];
|
return stack[top];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user