From d7adda0c91ab832bb441049e1f78d41a27fb7170 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 20:02:56 +0000 Subject: [PATCH 01/29] Add 'du4/program.c' --- du4/program.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 du4/program.c diff --git a/du4/program.c b/du4/program.c new file mode 100644 index 0000000..e69de29 From c83069ee28df1940fc2d12d44420677b64df6437 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 20:36:03 +0000 Subject: [PATCH 02/29] Update 'du4/program.c' --- du4/program.c | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/du4/program.c b/du4/program.c index e69de29..6b4ddaf 100644 --- a/du4/program.c +++ b/du4/program.c @@ -0,0 +1,95 @@ +#include +#include +#include +#include + +using System; + +class Program { + static void Main(string[] args) { + int ch = Console.Read(); + string priklad = ""; + int count = 0; + + while (true) { + priklad += (char)ch; + if (ch == '\n') { + count++; + } + ch = Console.Read(); + if ((priklad[priklad.Length - 1] == '\n' && ch == '\n') || ch == -1) { + break; + } + } + + string start = priklad; + string end = null; + + for (int c = 0; c < count; c++) { + int skip = 0, z = 0; + + for (int idx = 0; start[idx] != '\n'; idx++) { + if (start[idx] == '+' || start[idx] == '-' || start[idx] == '*' || start[idx] == '/') { + z = 1; + } + if ((start[idx] < '0' || start[idx] > '9') && start[idx] != ' ' && start[idx] != '=' && start[idx] != '+' && start[idx] != '-' && start[idx] != '*' && start[idx] != '/' && start[idx] != '.') { + skip = 1; + Console.WriteLine("CHYBA"); + while (start[0] != '\n') { + start = start.Substring(1); + } + start = start.Substring(1); + break; + } + } + + if (skip == 1) { + continue; + } + if (z == 0) { + while (start[0] != '\n') { + start = start.Substring(1); + } + start = start.Substring(1); + Console.WriteLine("CHYBA"); + continue; + } + float num1 = float.Parse(start, out end); + if (end == start) { + Console.WriteLine("KONIEC"); + } + while (start[0] != '+' && start[0] != '-' && start[0] != '/' && start[0] != '*') { + start = start.Substring(1); + } + char znak = start[0]; + start = start.Substring(1); + + float num2 = float.Parse(start, out end); + start = end; + while ((start[0] < '0' || start[0] > '9') && start[0] != '-') { + start = start.Substring(1); + } + + float vysledok2 = float.Parse(start, out end); + start = end; + start = start.Substring(1); + float vysledok = 0; + + if (znak == '-') { + vysledok = num1 - num2; + } else if (znak == '+') { + vysledok = num1 + num2; + } else if (znak == '*') { + vysledok = num1 * num2; + } else if (znak == '/') { + vysledok = num1 / num2; + } + vysledok = (float)Math.Round(vysledok * 100) / 100; + if (Math.Abs(vysledok2 - vysledok) < 0.001) { + Console.WriteLine("OK"); + } else { + Console.WriteLine("ZLE"); + } + } + } +} \ No newline at end of file From 7eebc85a6bb021618e923035988a6b1d494eff76 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 20:37:47 +0000 Subject: [PATCH 03/29] Update 'du4/program.c' --- du4/program.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/du4/program.c b/du4/program.c index 6b4ddaf..8b65b66 100644 --- a/du4/program.c +++ b/du4/program.c @@ -3,9 +3,7 @@ #include #include -using System; - -class Program { +int Program() { static void Main(string[] args) { int ch = Console.Read(); string priklad = ""; From b21597ee934f2b5227a6ab0c6ce146a5e202d7c9 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 20:45:13 +0000 Subject: [PATCH 04/29] Update 'du4/program.c' --- du4/program.c | 154 +++++++++++++++++++++++++------------------------- 1 file changed, 76 insertions(+), 78 deletions(-) diff --git a/du4/program.c b/du4/program.c index 8b65b66..8477261 100644 --- a/du4/program.c +++ b/du4/program.c @@ -1,93 +1,91 @@ #include -#include #include +#include #include -int Program() { - static void Main(string[] args) { - int ch = Console.Read(); - string priklad = ""; - int count = 0; +int main() { + int ch = getchar(); + char priklad[300]; + int count = 0; - while (true) { - priklad += (char)ch; - if (ch == '\n') { - count++; + for (int idx = 0; 1; idx++) { + priklad[idx] = ch; + if (ch == '\n') { + count++; + } + ch = getchar(); + if ((priklad[idx] == '\n' && ch == '\n') || ch == EOF) { + break; + } + } + + char *start = priklad, *end = NULL; + + for (int c = 0; c < count; c++) { + int skip = 0, z = 0; + + for (int idx = 0; start[idx] != '\n'; idx++) { + if (start[idx] == '+' || start[idx] == '-' || start[idx] == '*' || start[idx] == '/') { + z = 1; } - ch = Console.Read(); - if ((priklad[priklad.Length - 1] == '\n' && ch == '\n') || ch == -1) { + if ((start[idx] < '0' || start[idx] > '9') && start[idx] != ' ' && start[idx] != '=' && start[idx] != '+' && start[idx] != '-' && start[idx] != '*' && start[idx] != '/' && start[idx] != '.') { + skip = 1; + printf("CHYBA\n"); + while ((*start) != '\n') { + start++; + } + start++; break; } } - string start = priklad; - string end = null; + if (skip == 1) { + continue; + } + if (z == 0) { + while ((*start) != '\n') { + start++; + } + start++; + printf("CHYBA\n"); + continue; + } + float num1 = strtof(start, &end); + if (end == start) { + printf("KONIEC\n"); + } + while ((*start) != '+' && (*start) != '-' && (*start) != '/' && (*start) != '*') { + start++; + } + char znak = (*start); + start++; - for (int c = 0; c < count; c++) { - int skip = 0, z = 0; + float num2 = strtof(start, &end); + start = end; + while (((*start) < '0' || (*start) > '9') && (*start) != '-') { + start++; + } - for (int idx = 0; start[idx] != '\n'; idx++) { - if (start[idx] == '+' || start[idx] == '-' || start[idx] == '*' || start[idx] == '/') { - z = 1; - } - if ((start[idx] < '0' || start[idx] > '9') && start[idx] != ' ' && start[idx] != '=' && start[idx] != '+' && start[idx] != '-' && start[idx] != '*' && start[idx] != '/' && start[idx] != '.') { - skip = 1; - Console.WriteLine("CHYBA"); - while (start[0] != '\n') { - start = start.Substring(1); - } - start = start.Substring(1); - break; - } - } + float vysledok2 = strtof(start, &end); + start = end; + start++; + float vysledok = 0; - if (skip == 1) { - continue; - } - if (z == 0) { - while (start[0] != '\n') { - start = start.Substring(1); - } - start = start.Substring(1); - Console.WriteLine("CHYBA"); - continue; - } - float num1 = float.Parse(start, out end); - if (end == start) { - Console.WriteLine("KONIEC"); - } - while (start[0] != '+' && start[0] != '-' && start[0] != '/' && start[0] != '*') { - start = start.Substring(1); - } - char znak = start[0]; - start = start.Substring(1); - - float num2 = float.Parse(start, out end); - start = end; - while ((start[0] < '0' || start[0] > '9') && start[0] != '-') { - start = start.Substring(1); - } - - float vysledok2 = float.Parse(start, out end); - start = end; - start = start.Substring(1); - float vysledok = 0; - - if (znak == '-') { - vysledok = num1 - num2; - } else if (znak == '+') { - vysledok = num1 + num2; - } else if (znak == '*') { - vysledok = num1 * num2; - } else if (znak == '/') { - vysledok = num1 / num2; - } - vysledok = (float)Math.Round(vysledok * 100) / 100; - if (Math.Abs(vysledok2 - vysledok) < 0.001) { - Console.WriteLine("OK"); - } else { - Console.WriteLine("ZLE"); - } + if (znak == '-') { + vysledok = num1 - num2; + } else if (znak == '+') { + vysledok = num1 + num2; + } else if (znak == '*') { + vysledok = num1 * num2; + } else if (znak == '/') { + vysledok = num1 / num2; + } + vysledok = (round(vysledok * 100)) / 100; + if (vysledok2 - vysledok < 0.001 && vysledok2 - vysledok > -0.001) { + printf("OK\n"); + } else { + printf("ZLE\n"); } } -} \ No newline at end of file + return EXIT_SUCCESS; +} From 2fc2076427321462d5782707b1799bf4abd90bb5 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 20:57:05 +0000 Subject: [PATCH 05/29] Update 'du4/program.c' --- du4/program.c | 136 ++++++++++++++++++++++++-------------------------- 1 file changed, 66 insertions(+), 70 deletions(-) diff --git a/du4/program.c b/du4/program.c index 8477261..6a5bbd5 100644 --- a/du4/program.c +++ b/du4/program.c @@ -1,91 +1,87 @@ +#include #include #include -#include #include int main() { - int ch = getchar(); - char priklad[300]; + char line[300]; int count = 0; + while (fgets(line, sizeof(line), stdin)) { + count++; + char *start = line, *end = NULL; + int has_operator = 0; + float num1 = 0, num2 = 0, expected_result = 0; + char op, *next; - for (int idx = 0; 1; idx++) { - priklad[idx] = ch; - if (ch == '\n') { - count++; - } - ch = getchar(); - if ((priklad[idx] == '\n' && ch == '\n') || ch == EOF) { - break; - } - } - - char *start = priklad, *end = NULL; - - for (int c = 0; c < count; c++) { - int skip = 0, z = 0; - - for (int idx = 0; start[idx] != '\n'; idx++) { - if (start[idx] == '+' || start[idx] == '-' || start[idx] == '*' || start[idx] == '/') { - z = 1; - } - if ((start[idx] < '0' || start[idx] > '9') && start[idx] != ' ' && start[idx] != '=' && start[idx] != '+' && start[idx] != '-' && start[idx] != '*' && start[idx] != '/' && start[idx] != '.') { - skip = 1; - printf("CHYBA\n"); - while ((*start) != '\n') { - start++; + while (*start != '\n') { + if (*start == '+' || *start == '-' || *start == '*' || *start == '/') { + if (has_operator) { + printf("CHYBA\n"); + goto next_line; } - start++; - break; - } - } - - if (skip == 1) { - continue; - } - if (z == 0) { - while ((*start) != '\n') { - start++; + has_operator = 1; + op = *start; + } else if ((*start < '0' || *start > '9') && *start != ' ' && *start != '=' && *start != '.') { + printf("CHYBA\n"); + goto next_line; } start++; + } + + if (!has_operator) { printf("CHYBA\n"); - continue; - } - float num1 = strtof(start, &end); - if (end == start) { - printf("KONIEC\n"); - } - while ((*start) != '+' && (*start) != '-' && (*start) != '/' && (*start) != '*') { - start++; - } - char znak = (*start); - start++; - - float num2 = strtof(start, &end); - start = end; - while (((*start) < '0' || (*start) > '9') && (*start) != '-') { - start++; + goto next_line; } - float vysledok2 = strtof(start, &end); - start = end; - start++; - float vysledok = 0; - - if (znak == '-') { - vysledok = num1 - num2; - } else if (znak == '+') { - vysledok = num1 + num2; - } else if (znak == '*') { - vysledok = num1 * num2; - } else if (znak == '/') { - vysledok = num1 / num2; + num1 = strtof(line, &next); + while (*next == ' ') next++; + if (*next != op) { + printf("CHYBA\n"); + goto next_line; } - vysledok = (round(vysledok * 100)) / 100; - if (vysledok2 - vysledok < 0.001 && vysledok2 - vysledok > -0.001) { + next++; + num2 = strtof(next, &next); + while (*next == ' ') next++; + if (*next == '=') { + next++; + expected_result = strtof(next, &next); + while (*next == ' ') next++; + } else { + printf("CHYBA\n"); + goto next_line; + } + if (*next != '\n') { + printf("CHYBA\n"); + goto next_line; + } + + float result; + switch (op) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + if (num2 == 0) { + printf("CHYBA\n"); + goto next_line; + } + result = num1 / num2; + break; + } + result = roundf(result * 100) / 100; + if (fabs(result - expected_result) < 0.001) { printf("OK\n"); } else { printf("ZLE\n"); } + next_line: + continue; } return EXIT_SUCCESS; } From 552a60316c1171b4a71b52e07e5b9f5f11f0fdf4 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:04:07 +0000 Subject: [PATCH 06/29] Update 'du4/program.c' --- du4/program.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/du4/program.c b/du4/program.c index 6a5bbd5..c72067f 100644 --- a/du4/program.c +++ b/du4/program.c @@ -36,7 +36,7 @@ int main() { num1 = strtof(line, &next); while (*next == ' ') next++; if (*next != op) { - printf("CHYBA\n"); + printf("KONIEC\n"); goto next_line; } next++; @@ -67,10 +67,6 @@ int main() { result = num1 * num2; break; case '/': - if (num2 == 0) { - printf("CHYBA\n"); - goto next_line; - } result = num1 / num2; break; } From 6f88633743d51b5536ffbae128696afb47052a10 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:09:57 +0000 Subject: [PATCH 07/29] Update 'du4/program.c' --- du4/program.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/du4/program.c b/du4/program.c index c72067f..09a3a6e 100644 --- a/du4/program.c +++ b/du4/program.c @@ -47,11 +47,6 @@ int main() { expected_result = strtof(next, &next); while (*next == ' ') next++; } else { - printf("CHYBA\n"); - goto next_line; - } - if (*next != '\n') { - printf("CHYBA\n"); goto next_line; } From 6eedd49d956ced926051d8758c654a240590bfbd Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:13:55 +0000 Subject: [PATCH 08/29] Update 'du4/program.c' --- du4/program.c | 1 - 1 file changed, 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 09a3a6e..394f41b 100644 --- a/du4/program.c +++ b/du4/program.c @@ -22,7 +22,6 @@ int main() { has_operator = 1; op = *start; } else if ((*start < '0' || *start > '9') && *start != ' ' && *start != '=' && *start != '.') { - printf("CHYBA\n"); goto next_line; } start++; From 927ff558af29e8641ced1aac99282f4a486e492d Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:20:52 +0000 Subject: [PATCH 09/29] Update 'du4/program.c' --- du4/program.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/du4/program.c b/du4/program.c index 394f41b..55d7d55 100644 --- a/du4/program.c +++ b/du4/program.c @@ -15,16 +15,16 @@ int main() { while (*start != '\n') { if (*start == '+' || *start == '-' || *start == '*' || *start == '/') { - if (has_operator) { - printf("CHYBA\n"); - goto next_line; - } has_operator = 1; op = *start; } else if ((*start < '0' || *start > '9') && *start != ' ' && *start != '=' && *start != '.') { goto next_line; } start++; + + if (!has_operator) { + printf("CHYBA\n"); + goto next_line; } if (!has_operator) { From b05aee6a2088ff2fffdf0a986a55fc959a3d6e42 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:25:17 +0000 Subject: [PATCH 10/29] Update 'du4/program.c' --- du4/program.c | 137 +++++++++++++++++++++++++++----------------------- 1 file changed, 75 insertions(+), 62 deletions(-) diff --git a/du4/program.c b/du4/program.c index 55d7d55..257af06 100644 --- a/du4/program.c +++ b/du4/program.c @@ -1,77 +1,90 @@ -#include #include #include -#include +#include int main() { - char line[300]; + char priklad[300]; int count = 0; - while (fgets(line, sizeof(line), stdin)) { - count++; - char *start = line, *end = NULL; - int has_operator = 0; - float num1 = 0, num2 = 0, expected_result = 0; - char op, *next; - while (*start != '\n') { - if (*start == '+' || *start == '-' || *start == '*' || *start == '/') { - has_operator = 1; - op = *start; - } else if ((*start < '0' || *start > '9') && *start != ' ' && *start != '=' && *start != '.') { - goto next_line; + // Read input line by line + while (fgets(priklad, sizeof(priklad), stdin) != NULL) { + count++; + + // Parse expression and evaluate it + char *start = priklad; + char *end = NULL; + int valid = 1; + float num1 = strtof(start, &end); + if (end == start) { + printf("KONIEC\n"); + continue; + } + start = end; + + // Find the operation symbol + char op = *start; + if (op != '+' && op != '-' && op != '*' && op != '/') { + printf("CHYBA\n"); + valid = 0; + } + start++; + + // Parse second number + float num2 = strtof(start, &end); + if (end == start) { + printf("CHYBA\n"); + valid = 0; + } + start = end; + + // Check for extra characters + while (*start != '\0') { + if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { + printf("CHYBA\n"); + valid = 0; + break; } start++; - - if (!has_operator) { - printf("CHYBA\n"); - goto next_line; } - if (!has_operator) { - printf("CHYBA\n"); - goto next_line; - } + if (valid) { + // Evaluate expression + float result; + switch (op) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + if (num2 == 0) { + printf("CHYBA\n"); + continue; + } + result = num1 / num2; + break; + } - num1 = strtof(line, &next); - while (*next == ' ') next++; - if (*next != op) { - printf("KONIEC\n"); - goto next_line; + // Round result and compare to expected value + float expected; + if (sscanf(start, "%f", &expected) != 1) { + printf("KONIEC\n"); + continue; + } + expected = round(expected * 100) / 100; + if (fabs(result - expected) < 0.001) { + printf("OK\n"); + } else { + printf("ZLE\n"); + } } - next++; - num2 = strtof(next, &next); - while (*next == ' ') next++; - if (*next == '=') { - next++; - expected_result = strtof(next, &next); - while (*next == ' ') next++; - } else { - goto next_line; - } - - float result; - switch (op) { - case '+': - result = num1 + num2; - break; - case '-': - result = num1 - num2; - break; - case '*': - result = num1 * num2; - break; - case '/': - result = num1 / num2; - break; - } - result = roundf(result * 100) / 100; - if (fabs(result - expected_result) < 0.001) { - printf("OK\n"); - } else { - printf("ZLE\n"); - } - next_line: - continue; } + return EXIT_SUCCESS; } + + \ No newline at end of file From bfc52924ce4ef2d5e8070c25ed6656208ff927a0 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:34:28 +0000 Subject: [PATCH 11/29] Update 'du4/program.c' --- du4/program.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/du4/program.c b/du4/program.c index 257af06..4082a8b 100644 --- a/du4/program.c +++ b/du4/program.c @@ -32,7 +32,6 @@ int main() { // Parse second number float num2 = strtof(start, &end); if (end == start) { - printf("CHYBA\n"); valid = 0; } start = end; @@ -40,7 +39,6 @@ int main() { // Check for extra characters while (*start != '\0') { if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { - printf("CHYBA\n"); valid = 0; break; } @@ -61,19 +59,10 @@ int main() { result = num1 * num2; break; case '/': - if (num2 == 0) { - printf("CHYBA\n"); - continue; - } result = num1 / num2; break; - } + } - // Round result and compare to expected value - float expected; - if (sscanf(start, "%f", &expected) != 1) { - printf("KONIEC\n"); - continue; } expected = round(expected * 100) / 100; if (fabs(result - expected) < 0.001) { From 31ca326c6bc4fefd8b24948d8423ff69f3e13e87 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:42:42 +0000 Subject: [PATCH 12/29] Update 'du4/program.c' --- du4/program.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/du4/program.c b/du4/program.c index 4082a8b..805b928 100644 --- a/du4/program.c +++ b/du4/program.c @@ -47,7 +47,7 @@ int main() { if (valid) { // Evaluate expression - float result; + float result = 0; switch (op) { case '+': result = num1 + num2; @@ -64,14 +64,14 @@ int main() { } } - expected = round(expected * 100) / 100; - if (fabs(result - expected) < 0.001) { + result = round(result * 100) / 100; + if (num2(result - result) < 0.001) { printf("OK\n"); } else { printf("ZLE\n"); } } - } + return EXIT_SUCCESS; } From 531e534f3d0e2510a41da2c9ead7edb3f558ac40 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:44:28 +0000 Subject: [PATCH 13/29] Update 'du4/program.c' --- du4/program.c | 1 + 1 file changed, 1 insertion(+) diff --git a/du4/program.c b/du4/program.c index 805b928..8a16117 100644 --- a/du4/program.c +++ b/du4/program.c @@ -1,6 +1,7 @@ #include #include #include +#include int main() { char priklad[300]; From 862ae424caccdb7ba71dd626ede99702ddea0c18 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:48:25 +0000 Subject: [PATCH 14/29] Update 'du4/program.c' --- du4/program.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/du4/program.c b/du4/program.c index 8a16117..7ebebce 100644 --- a/du4/program.c +++ b/du4/program.c @@ -17,7 +17,6 @@ int main() { int valid = 1; float num1 = strtof(start, &end); if (end == start) { - printf("KONIEC\n"); continue; } start = end; @@ -33,6 +32,7 @@ int main() { // Parse second number float num2 = strtof(start, &end); if (end == start) { + printf("CHYBA\n"); valid = 0; } start = end; @@ -48,7 +48,7 @@ int main() { if (valid) { // Evaluate expression - float result = 0; + float result; switch (op) { case '+': result = num1 + num2; @@ -62,19 +62,26 @@ int main() { case '/': result = num1 / num2; break; - } - } - result = round(result * 100) / 100; - if (num2(result - result) < 0.001) { + } + + // Round result and compare to expected value + float expected; + if (sscanf(start, "%f", &expected) != 1) { + printf("KONIEC\n"); + continue; + } + expected = round(expected * 100) / 100; + if (fabs(result - expected) < 0.001) { printf("OK\n"); } else { printf("ZLE\n"); } } - + } return EXIT_SUCCESS; } + \ No newline at end of file From 186f3a14815bb5e61ce066dbf9ebe3c95c1026bc Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:48:58 +0000 Subject: [PATCH 15/29] Update 'du4/program.c' --- du4/program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 7ebebce..14a9caf 100644 --- a/du4/program.c +++ b/du4/program.c @@ -78,7 +78,7 @@ int main() { printf("ZLE\n"); } } - } + return EXIT_SUCCESS; } From 50dfa6a1297f75aef87301981dafac560b54229c Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:49:35 +0000 Subject: [PATCH 16/29] Update 'du4/program.c' --- du4/program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 14a9caf..aefa25e 100644 --- a/du4/program.c +++ b/du4/program.c @@ -48,7 +48,7 @@ int main() { if (valid) { // Evaluate expression - float result; + float result=0; switch (op) { case '+': result = num1 + num2; From 1e96afd3d27358780f5157dce3adc50b4e064041 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:52:24 +0000 Subject: [PATCH 17/29] Update 'du4/program.c' --- du4/program.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/du4/program.c b/du4/program.c index aefa25e..9964a3d 100644 --- a/du4/program.c +++ b/du4/program.c @@ -46,9 +46,8 @@ int main() { start++; } + float result=0; if (valid) { - // Evaluate expression - float result=0; switch (op) { case '+': result = num1 + num2; From 52ed8dbb36127ff246de50e412f5f3abc4eb008e Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:55:26 +0000 Subject: [PATCH 18/29] Update 'du4/program.c' --- du4/program.c | 1 - 1 file changed, 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 9964a3d..84e38e9 100644 --- a/du4/program.c +++ b/du4/program.c @@ -32,7 +32,6 @@ int main() { // Parse second number float num2 = strtof(start, &end); if (end == start) { - printf("CHYBA\n"); valid = 0; } start = end; From 79e03f6a70021badbe404ad032d5e47629602b6f Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 21:57:48 +0000 Subject: [PATCH 19/29] Update 'du4/program.c' --- du4/program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 84e38e9..93dab6b 100644 --- a/du4/program.c +++ b/du4/program.c @@ -17,6 +17,7 @@ int main() { int valid = 1; float num1 = strtof(start, &end); if (end == start) { + printf("KONIEC\n"); continue; } start = end; @@ -24,7 +25,6 @@ int main() { // Find the operation symbol char op = *start; if (op != '+' && op != '-' && op != '*' && op != '/') { - printf("CHYBA\n"); valid = 0; } start++; From b0dae5c55ebcff3735068fc28ba0f938343b000f Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 22:00:16 +0000 Subject: [PATCH 20/29] Update 'du4/program.c' --- du4/program.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/du4/program.c b/du4/program.c index 93dab6b..9f42328 100644 --- a/du4/program.c +++ b/du4/program.c @@ -40,9 +40,10 @@ int main() { while (*start != '\0') { if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { valid = 0; - break; + printf("CHYBA\n"); + start++; + break; } - start++; } float result=0; From 13ccee8efa90a80b0fe1d1658020fddecbdfc69e Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 17 Mar 2023 22:13:28 +0000 Subject: [PATCH 21/29] Update 'du4/program.c' --- du4/program.c | 1 - 1 file changed, 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 9f42328..6509e5d 100644 --- a/du4/program.c +++ b/du4/program.c @@ -67,7 +67,6 @@ int main() { // Round result and compare to expected value float expected; if (sscanf(start, "%f", &expected) != 1) { - printf("KONIEC\n"); continue; } expected = round(expected * 100) / 100; From 6e0856907ed038fb5b414ad16189cbe690414433 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Sat, 18 Mar 2023 11:03:28 +0000 Subject: [PATCH 22/29] Update 'du4/program.c' --- du4/program.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/du4/program.c b/du4/program.c index 6509e5d..5cb3c45 100644 --- a/du4/program.c +++ b/du4/program.c @@ -17,7 +17,7 @@ int main() { int valid = 1; float num1 = strtof(start, &end); if (end == start) { - printf("KONIEC\n"); + continue; } start = end; @@ -40,7 +40,7 @@ int main() { while (*start != '\0') { if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { valid = 0; - printf("CHYBA\n"); + start++; break; } From ff0b888d37b9e2268474bc9a7e8a4e855ce341e4 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Sat, 18 Mar 2023 11:04:04 +0000 Subject: [PATCH 23/29] Update 'du4/program.c' --- du4/program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index 5cb3c45..e4f75fb 100644 --- a/du4/program.c +++ b/du4/program.c @@ -73,7 +73,7 @@ int main() { if (fabs(result - expected) < 0.001) { printf("OK\n"); } else { - printf("ZLE\n"); + printf("OK\n"); } } From 1a026a0c0bf12d74b0525b1fb7498161c8b272e0 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Sat, 18 Mar 2023 11:05:17 +0000 Subject: [PATCH 24/29] Update 'du4/program.c' --- du4/program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du4/program.c b/du4/program.c index e4f75fb..5cb3c45 100644 --- a/du4/program.c +++ b/du4/program.c @@ -73,7 +73,7 @@ int main() { if (fabs(result - expected) < 0.001) { printf("OK\n"); } else { - printf("OK\n"); + printf("ZLE\n"); } } From 3a5196efbc4206beeb2447fd3b3ef402d1b7ab5d Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Mon, 20 Mar 2023 19:23:38 +0000 Subject: [PATCH 25/29] Update 'du3/program.c' --- du3/program.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/du3/program.c b/du3/program.c index 6d05148..fa3375e 100644 --- a/du3/program.c +++ b/du3/program.c @@ -6,39 +6,39 @@ #define VELKOST_POLA 120 int main(){ char rip[VELKOST_POLA]; - memset(rip, '\0', VELKOST_POLA*sizeof(char)); + memset(rip, '\0', VELKOST_POLA*sizeof(char)); //vyplní pole rip znakom \0 int a = 0; for(int b = 0; 1; b++){ a = getchar(); if(a == EOF || a == ' ')break; - rip[b] = a; + rip[b] = a; //píše z klávesnice v RIP } - for(int c = 0, d = 0; c < strlen(rip); c++){ + for(int c = 0, d = 0; c < strlen(rip); c++){ //skontroluje normálny vstup if(rip[c] == '\n'){ d++; } else if((rip[c]<='9'&&rip[c]>='0') || (rip[c]=='.') || (rip[c]==EOF) || (rip[c]==' ')); else if(d == 0){ - printf("Nepodarilo sa nacitat zaklad x\n"); + printf("Nepodarilo sa nacitat zaklad x\n"); //vyhodí chybu, ak nemáme prvé číslo return 0; } else { - printf("Nepodarilo sa nacitat polynom na %d mieste.\n", d); + printf("Nepodarilo sa nacitat polynom na %d mieste.\n", d); //zobrazí odpoveď, ak sa nájde znak, ktorý nie je číslicou a nie je špeciálnym znakom return 0; } } int kofi = -1; for(int c = 0; c < strlen(rip); c++){ if(rip[c] == '\n') - continue; + continue; //počíta prvky polynómu else for(int c2=0; rip[c]!='\n'; c++, c2++); kofi++; } long double x = 0; char *finish = NULL; char *start = rip; -x = strtof(start, &finish); +x = strtof(start, &finish); //hľadám x start = finish; @@ -52,7 +52,7 @@ for(int c = 0; c < kofi; c++){ d=pow(x,(kofi-c)-1); n+=d*f; -} +} //všetko vypočíta n = round(n*100)/100; printf("Vysledok je: %.2Lf\n", n); return EXIT_SUCCESS; From 1ccac5859bebbbc2cfd6e578a43ebdce409b37d7 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Mon, 20 Mar 2023 19:36:34 +0000 Subject: [PATCH 26/29] Update 'du1/program.c' --- du1/program.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/du1/program.c b/du1/program.c index 0ae078d..5540a69 100644 --- a/du1/program.c +++ b/du1/program.c @@ -3,36 +3,25 @@ int main(){ int r = 0; int counter = 0; while(r != EOF){ - r = getchar(); + r = getchar(); //načítam znak a uložím ho do pamäte if(r == EOF){ - + //ak preruším prácu, príp. zlyhá zadávanie vstupu, tak program ukončím break; } - if (r == '\n'){ - counter ++; + if (r == '\n'){ //zároveň vložím nový riadok pre zadanie nového vstupu + counter ++; //každý riadok so zadanými znakmi zarátam } if(r >= 'a' && r <= 'z'){ - + //ak zadám malé písmeno, tak ho transformujem na veľké r -= 32; } else if(r >= 'A' && r <= 'Z'){ - r += 32; + r += 32; //a naopak } -putchar(r); +putchar(r); //vypíšem naposledy načítaný znak } -printf("\nPočet riadkov: %d\n", counter); +printf("\nPočet riadkov: %d\n", counter); //po skončení práce s programom vypíšem počet zadaných znakov return 0; -} - } - else if(r >= 'A' && r <= 'Z'){ - r += 32; ->>>>>>> 95e25bb6d50faab602baba4f24a49b59c7be8129 - } -putchar(r); -} -printf("\nPočet riadkov: %d\n", counter); -return 0; -} - +} \ No newline at end of file From acd1c4a8091ac694a4825ca3a93486a38d2f61cb Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Mon, 20 Mar 2023 19:42:25 +0000 Subject: [PATCH 27/29] Update 'du4/program.c' --- du4/program.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/du4/program.c b/du4/program.c index 5cb3c45..01bc006 100644 --- a/du4/program.c +++ b/du4/program.c @@ -7,11 +7,11 @@ int main() { char priklad[300]; int count = 0; - // Read input line by line + // Čítanie vstupu riadok po riadku while (fgets(priklad, sizeof(priklad), stdin) != NULL) { count++; - // Parse expression and evaluate it + // Analyzujem výraz a vyhodnoťte ho char *start = priklad; char *end = NULL; int valid = 1; @@ -22,21 +22,21 @@ int main() { } start = end; - // Find the operation symbol + // Nájdem symbol operácie char op = *start; if (op != '+' && op != '-' && op != '*' && op != '/') { valid = 0; } start++; - // Parse second number + // Analýza druhého čísla float num2 = strtof(start, &end); if (end == start) { valid = 0; } start = end; - // Check for extra characters + // Skontrolujme prítomnosť ďalších znakov while (*start != '\0') { if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { valid = 0; @@ -64,12 +64,12 @@ int main() { } } - // Round result and compare to expected value + // Výsledok zaokrúhlim a porovnajte s očakávanou hodnotou float expected; if (sscanf(start, "%f", &expected) != 1) { continue; } - expected = round(expected * 100) / 100; + expected = round(expected * 100) / 100; //zaokrúhľuje if (fabs(result - expected) < 0.001) { printf("OK\n"); } else { From 848ce59632006eb41f2ca575c60749f43e4e7868 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 24 Mar 2023 12:29:45 +0000 Subject: [PATCH 28/29] Add 'du5/ program.c' --- du5/ program.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 du5/ program.c diff --git a/du5/ program.c b/du5/ program.c new file mode 100644 index 0000000..e69de29 From 8d78173ad8f07721f6228287291f393c2b397250 Mon Sep 17 00:00:00 2001 From: Anzhelika Nikolaieva Date: Fri, 24 Mar 2023 13:23:01 +0000 Subject: [PATCH 29/29] Update 'du5/ program.c' --- du5/ program.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/du5/ program.c b/du5/ program.c index e69de29..d3d6d89 100644 --- a/du5/ program.c +++ b/du5/ program.c @@ -0,0 +1,114 @@ +#include +#include +#include + +struct celovek{ //definovanie štruktúry s názvom 'celovek' + int golos; + char name[60]; +} + +void printAll(struct celovek celovek[50],int number_celovek){ //funkcia na vytlačenie všetkých prvkov poľa 'celovek' + printf("Vysledky:\n"); + for (size_t i = 0; i < number_celovek; i++){ + printf("%d", celovek[i].golos); + printf("%s", celovek[i].name); + } +} + +void readDellSame(bool odinakovyi, bool dobre, int* number_celovek, struct celovek celovek[50]){ //funkcia na čítanie a mazanie duplicitných záznamov z poľa 'celovek' + for (size_t i = 0; i >=0; i++) + { + char step.name[60]; + int step.golos =0; + int b = scanf("%d", &step.golos); + + if (b == -1){ + break; + } + if (step.golos == 0){ + dobre = true; + } + + fgets(step.name, 60 , stdin); //prečítať riadok z stdin + + for (size_t j = 0; j <*number_celovek; j++){ + if(strcmp (celovek[j].name, step.name)==0 && dobre == false ){ //porovnať reťazce + celovek[j].golos += step.golos; + odinakovyi = true; + i--; + } + } + if ((odinakovyi == false|| *number.celovek == 0) && dobre == false) + { + clovek[i].holos = step_holos; + strcpy(celovek[i].name, step.name); //strcpy - oblasti pamäte kopírovania + *number.celovek = *number.celovek +1 ; + } + odinakovyi = false; + } +} + +void sort(int number.celovek, struct celovek celovek[50]){ //funkcia na triedenie poľa 'celovek' na základe počtu 'golov' a 'name' + for (size_t i = 0; i celovek[j].name[1]){ + int tmp = celovek[i].golos; + char tmp_name[60]; + strcpy(tmp_name, celovek[i].name); + + celovek[i].golos = celovek[j].golos; + strcpy(celovek[i].name, celovek[j].name); + + celovek[j].golos = tmp; + strcpy(celovek[j].name, tmp_name); + } + + if(celovek[i].name[1] == celovek[j].name[1]){ + if(celovek[i].name[2] > celovek[j].name[2]){ + int tmp = celovek[i].golos; + char tmp_name[60]; + strcpy(tmp_name, celovek[i].name); + + celovek[i].golos = celovek[j].golos; + strcpy(celovek[i].name, celovek[j].name); + + celovek[j].golos = tmp; + strcpy(celovek[j].name, tmp_name); + } + } + } + } + } +} + +int main(){ + struct celovek celovek[50]; + int number.celovek = 0; + bool odinakovyi = false; + bool dobre = false; + readDellSame(odinakovyi, dobre, &number.celovek,celovek); + + for (size_t i = 0; i < number.celovek-1; i++){ + for (size_t j = 0; j < number_clovek - i-1; j++){ + if (celovek[j].golos < celovek[j+1].golos){ + int tmp = celovek[j+1].golos; + char tmp_name[60]; + strcpy(tmp_name, celovek[j+1].name); + + celovek[j+1].golos = celovek[j].golos; + strcpy(celovek[j+1].name, celovek[j].name); + + celovek[j].golos = tmp; + strcpy(celovek[j].name, tmp_name); + } + + } + + } + sort(number.celovek, celovek); + printAll(celovek, number.celovek); + return 0; +} \ No newline at end of file