test
This commit is contained in:
		
							parent
							
								
									5715573e8f
								
							
						
					
					
						commit
						0a71ff2d13
					
				| @ -78,18 +78,18 @@ bool je_platna_operacia(char operacia) { | ||||
|     return operacia == '+' || operacia == '-' || operacia == '*' || operacia == '/'; | ||||
| } | ||||
| 
 | ||||
| // Funkcia na validáciu, či je vstup platným číslom
 | ||||
| 
 | ||||
| bool je_platne_cislo(const char *vstup) { | ||||
|     char *koniec; | ||||
|     strtof(vstup, &koniec); // Prevedie reťazec na číslo
 | ||||
|     strtof(vstup, &koniec);  | ||||
| 
 | ||||
| 
 | ||||
|     // Ak ukazovateľ koniec nesmeruje na '\0', vstup obsahuje neplatné znaky
 | ||||
|     return *koniec == '\n' || *koniec == '\0'; | ||||
| } | ||||
| 
 | ||||
| // Funkcia na kontrolu, či je v zásobníku dostatok operantov pre operáciu
 | ||||
| 
 | ||||
| bool dost_operantov(KalkulackaZasobnik *kalkulacka) { | ||||
|     return kalkulacka->vrchol >= 1; // Potrebujeme aspoň 2 operanty na operáciu
 | ||||
|     return kalkulacka->vrchol >= 1;  | ||||
| } | ||||
| 
 | ||||
| int main() { | ||||
| @ -105,59 +105,39 @@ int main() { | ||||
|         } | ||||
| 
 | ||||
|         if (je_platne_cislo(vstup)) { | ||||
|             float hodnota = strtof(vstup, NULL); | ||||
|             float hodnota = strtof(vstup, NULL);  | ||||
|             vloz(&kalkulacka, hodnota); | ||||
|             zobraz_zasobnik(&kalkulacka); | ||||
|         } | ||||
|         else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) {  | ||||
|         else if (strlen(vstup) == 2 && je_platna_operacia(vstup[0])) {a | ||||
|             char operacia = vstup[0]; | ||||
| 
 | ||||
|             if (!dost_operantov(&kalkulacka)) {  | ||||
|                 printf("not enough operands\n"); | ||||
|                 continue; | ||||
|                 continue;  | ||||
|             } | ||||
| 
 | ||||
|             bool uspech = false; | ||||
|             switch (operacia) { | ||||
|                 case '+': | ||||
|                     if (scitat(&kalkulacka)) { | ||||
|                         zobraz_zasobnik(&kalkulacka); | ||||
|                     } else { | ||||
|                         printf("no input\n"); | ||||
|                         return 0; | ||||
|                     } | ||||
|                     uspech = scitat(&kalkulacka); | ||||
|                     break; | ||||
|                 case '-': | ||||
|                     if (odcitat(&kalkulacka)) { | ||||
|                         zobraz_zasobnik(&kalkulacka); | ||||
|                     } else { | ||||
|                         printf("no input\n"); | ||||
|                         return 0; | ||||
|                     } | ||||
|                     uspech = odcitat(&kalkulacka); | ||||
|                     break; | ||||
|                 case '*': | ||||
|                     if (nasobit(&kalkulacka)) { | ||||
|                         zobraz_zasobnik(&kalkulacka); | ||||
|                     } else { | ||||
|                         printf("no input\n"); | ||||
|                         return 0; | ||||
|                     } | ||||
|                     uspech = nasobit(&kalkulacka); | ||||
|                     break; | ||||
|                 case '/': { | ||||
|                     float a, b; | ||||
|                     if (vyber(&kalkulacka, &a, &b)) { | ||||
|                         if (a == 0) { | ||||
|                             printf("division by zero\n"); | ||||
|                             return 0; | ||||
|                         } else { | ||||
|                             vloz(&kalkulacka, b / a); | ||||
|                             zobraz_zasobnik(&kalkulacka); | ||||
|                         } | ||||
|                     } else { | ||||
|                         printf("no input\n"); | ||||
|                         return 0; | ||||
|                     } | ||||
|                 case '/': | ||||
|                     uspech = delit(&kalkulacka); | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             if (uspech) { | ||||
|                 zobraz_zasobnik(&kalkulacka); | ||||
|             } else { | ||||
|                 printf("no input\n"); | ||||
|                 return 0; | ||||
|             } | ||||
|         } else { | ||||
|             printf("bad input\n"); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user