Merge branch 'master' of git.kemt.fei.tuke.sk:an760cw/pvjc23

This commit is contained in:
Anzhelika Nikolaieva 2023-03-24 14:29:47 +01:00
commit d522e28989
4 changed files with 216 additions and 28 deletions

View File

@ -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;
}
}

View File

@ -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;

View File

@ -0,0 +1,85 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
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;
}

114
du5/ program.c Normal file
View File

@ -0,0 +1,114 @@
#include<stdio.h>
#include <string.h>
#include <stdbool.h>
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 <number.celovek; i++){
for (size_t j = i; j < number.celovek; j++){
if (celovek[i].golos == clovek[j].golos){
if(celovek[i].name[1] > 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;
}