From f720dabad9f4f8b536c7109141133522b9332e39 Mon Sep 17 00:00:00 2001 From: Denys Sanchuk Date: Tue, 4 Mar 2025 13:43:31 +0000 Subject: [PATCH] Aktualizovat du2/program.c --- du2/program.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/du2/program.c b/du2/program.c index 0d99a52..9071eeb 100644 --- a/du2/program.c +++ b/du2/program.c @@ -1,7 +1,6 @@ #include #include #include -#include #include int je_cislo(const char *str) { @@ -10,36 +9,40 @@ int je_cislo(const char *str) { return *endptr == '\0'; } -double citaj_cislo(int poradie) { +double citaj_cislo(int poradie, int *chyba) { char buffer[100]; + if (fgets(buffer, sizeof(buffer), stdin) == NULL) { if (poradie == 0) { - printf("Chyba: Nepodarilo sa nacitat hodnotu x.\n"); + printf("Nepodarilo sa nacitat hodnotu x.\n"); } else { printf("Nepodarilo sa nacitat polynom na %d mieste.\n", poradie); } - exit(1); + *chyba = 1; + return NAN; } char *newline = strchr(buffer, '\n'); - if (newline) *newline = '\0'; + if (newline) *newline = '\0'; if (buffer[0] == '\0') { - return NAN; + return NAN; } if (!je_cislo(buffer)) { if (poradie == 0) { - printf("Chyba: Nepodarilo sa nacitat hodnotu x.\n"); + printf("Nepodarilo sa nacitat hodnotu x.\n"); } else { printf("Nepodarilo sa nacitat polynom na %d mieste.\n", poradie); } - exit(1); + *chyba = 1; + return NAN; } return atof(buffer); } + double hornerova_schema(double *koef, int n, double x) { double vysledok = 0.0; for (int i = 0; i < n; i++) { @@ -48,29 +51,35 @@ double hornerova_schema(double *koef, int n, double x) { return vysledok; } + int main() { double x; double koef[100]; int n = 0; + int chyba = 0; + + + x = citaj_cislo(0, &chyba); + if (chyba) return 0; - x = citaj_cislo(0); while (1) { - double koeficient = citaj_cislo(n + 1); - if (isnan(koeficient)) { - break; - } + double koeficient = citaj_cislo(n + 1, &chyba); + if (chyba) return 0; + + if (isnan(koeficient)) break; + koef[n++] = koeficient; if (n >= 100) { printf("Chyba: Prilis vela koeficientov.\n"); - exit(1); + return 0; } } if (n == 0) { printf("Chyba: Neboli zadane ziadne koeficienty.\n"); - return 1; + return 0; } double vysledok = hornerova_schema(koef, n, x);