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 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; diff --git a/du4/program.c b/du4/program.c index e69de29..01bc006 100644 --- a/du4/program.c +++ b/du4/program.c @@ -0,0 +1,85 @@ +#include +#include +#include +#include + +int main() { + char priklad[300]; + int count = 0; + + // Čítanie vstupu riadok po riadku + while (fgets(priklad, sizeof(priklad), stdin) != NULL) { + count++; + + // Analyzujem výraz a vyhodnoťte ho + char *start = priklad; + char *end = NULL; + int valid = 1; + float num1 = strtof(start, &end); + if (end == start) { + + continue; + } + start = end; + + // Nájdem symbol operácie + char op = *start; + if (op != '+' && op != '-' && op != '*' && op != '/') { + valid = 0; + } + start++; + + // Analýza druhého čísla + float num2 = strtof(start, &end); + if (end == start) { + valid = 0; + } + start = end; + + // Skontrolujme prítomnosť ďalších znakov + while (*start != '\0') { + if (*start != '\n' && (*start < '0' || *start > '9') && *start != '.' && *start != ' ') { + valid = 0; + + start++; + break; + } + } + + float result=0; + if (valid) { + switch (op) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + result = num1 / num2; + break; + } + } + + // 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; //zaokrúhľuje + if (fabs(result - expected) < 0.001) { + printf("OK\n"); + } else { + printf("ZLE\n"); + } + } + + + return EXIT_SUCCESS; +} + + + \ No newline at end of file diff --git a/du5/ program.c b/du5/ program.c new file mode 100644 index 0000000..d3d6d89 --- /dev/null +++ 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