Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "iostream"
- #include "time.h"
- using namespace std;
- int Ukol1(unsigned int x, unsigned int y)
- {
- unsigned int soucetSudych = 0;
- unsigned int nejvetsiLiche = 0;
- while (x <= y)
- {
- if (x % 2 == 0)
- {
- soucetSudych += x;
- }
- else
- {
- nejvetsiLiche = x;
- }
- x++;
- }
- return soucetSudych - nejvetsiLiche;
- }
- unsigned long long Ukol2(unsigned int c)
- {
- unsigned long long soucetFaktorialu = 0;
- unsigned short cifra = 0;
- while (c > 0)
- {
- cifra = c % 10;
- c /= 10;
- if (cifra > 5)
- {
- unsigned int faktorial = 1;
- while (cifra > 0)
- {
- faktorial *= cifra--;
- }
- soucetFaktorialu += faktorial;
- }
- }
- return soucetFaktorialu;
- }
- unsigned int Ukol3(unsigned int x)
- {
- unsigned int soucetLichych = 0;
- unsigned int pocetSudych = 0;
- unsigned int i = 1;
- while (i <= x)
- {
- if (x % i == 0)
- {
- if (i % 2 == 0)
- {
- pocetSudych++;
- }
- else
- {
- soucetLichych += i;
- }
- }
- i++;
- }
- return soucetLichych * pocetSudych;
- }
- void Ukol4(unsigned short pocetPrvku, int &soucin, int &rozdil)
- {
- int max = -RAND_MAX, min = RAND_MAX;
- int prvek;
- bool kontrola = false;
- for (int i = 1; i <= pocetPrvku; i++)
- {
- printf("Zadejte %d. cele cislo posloupnosti: ", i);
- cin >> prvek;
- if (prvek < 0)
- {
- soucin *= prvek;
- kontrola = true;
- }
- if (prvek > max)
- {
- max = prvek;
- }
- if (prvek < min)
- {
- min = prvek;
- }
- }
- if (!kontrola)
- {
- soucin = 0;
- }
- rozdil = max - min;
- }
- double Ukol5()
- {
- unsigned short pozice = 1, poziceMin = 0, pocetPrvku = 0;
- double prvek, min = RAND_MAX, soucetPrvku = 0;
- printf("Zadejte realne cislo: ");
- cin >> prvek;
- while (prvek >= 0)
- {
- if (prvek > 10 && prvek <= 20)
- {
- soucetPrvku += prvek;
- pocetPrvku++;
- }
- if (prvek < min)
- {
- min = prvek;
- poziceMin = pozice;
- }
- printf("Zadejte realne cislo: ");
- cin >> prvek;
- pozice++;
- }
- if (pocetPrvku > 0)
- {
- double prumer = soucetPrvku / pocetPrvku;
- double vysledek = 1;
- while (poziceMin > 0)
- {
- vysledek *= prumer;
- poziceMin--;
- }
- return vysledek;
- }
- else
- {
- return 0;
- }
- }
- void Ukol6(unsigned short pocetPrvku, double pravyBod, double levyBod, double &podil, unsigned short &porovnani)
- {
- double max = -RAND_MAX, max2 = max, min = RAND_MAX, cislaSeSudPoz = 0;
- unsigned short poziceMin = 0;
- unsigned int mocnina = 1;
- double prvek;
- for (unsigned short i = 1; i <= pocetPrvku; i++)
- {
- prvek = (double)rand() / (RAND_MAX) * (pravyBod - levyBod) + levyBod;
- printf("%d. pozice: %f \n", i, prvek);
- if (prvek > max2)
- {
- if (prvek > max)
- {
- max2 = max;
- max = prvek;
- }
- else if (prvek < max)
- {
- max2 = prvek;
- }
- }
- if (prvek < min)
- {
- min = prvek;
- poziceMin = i;
- }
- if (i % 2 == 0)
- {
- cislaSeSudPoz += prvek;
- }
- }
- if (cislaSeSudPoz > 0)
- {
- podil = max2 / cislaSeSudPoz;
- }
- else
- {
- podil = -1;
- }
- for (int i = 1; i <= 3; i++)
- {
- mocnina *= poziceMin;
- }
- // 0 = min > mocnina; 1 = min == mocnina; >=2 = min < mocnina;
- if (min > mocnina)
- {
- porovnani = 0;
- }
- else if (min == mocnina)
- {
- porovnani = 1;
- }
- }
- void Ukol6(unsigned short pocetPrvku, unsigned int pravyBod, unsigned int levyBod, int &podil, unsigned short &porovnani)
- {
- int max = -RAND_MAX, max2 = max, cislaSeSudPoz = 0, prvek;
- unsigned int mocnina = 1, min = RAND_MAX;
- unsigned short poziceMin = 0;
- for (unsigned short i = 1; i <= pocetPrvku; i++)
- {
- prvek = rand() % ((pravyBod + 1) - levyBod) + levyBod;
- printf("%d. pozice: %d \n", i, prvek);
- if (prvek > max2)
- {
- if (prvek > max)
- {
- max2 = max;
- max = prvek;
- }
- else if (prvek < max)
- {
- max2 = prvek;
- }
- }
- if (prvek < min)
- {
- min = prvek;
- poziceMin = i;
- }
- if (i % 2 == 0)
- {
- cislaSeSudPoz += prvek;
- }
- }
- if (cislaSeSudPoz > 0)
- {
- podil = max2 / cislaSeSudPoz;
- }
- else
- {
- podil = -1;
- }
- for (int i = 1; i <= 3; i++)
- {
- mocnina *= poziceMin;
- }
- // 0 = min > mocnina; 1 = min == mocnina; >=2 = min < mocnina;
- if (min > mocnina)
- {
- porovnani = 0;
- }
- else if (min == mocnina)
- {
- porovnani = 1;
- }
- }
- bool Ukol7()
- {
- unsigned short pocetCisel = 0;
- bool lichaPozice = true;
- int prvek;
- printf("Zadejte prvek: ");
- cin >> prvek;
- while (prvek >= 0)
- {
- if (lichaPozice && (prvek / 100) > 0 && (prvek / 100) < 10)
- {
- pocetCisel++;
- }
- if (pocetCisel == 2)
- {
- return true;
- }
- else
- {
- printf("Zadejte prvek: ");
- cin >> prvek;
- }
- lichaPozice = !lichaPozice;
- }
- return false;
- }
- void Ukol8(unsigned char &maximalniZnak, unsigned int &soucin)
- {
- bool vyskytCislic = false;
- unsigned char znak;
- printf("Zadejte znak posloupnosti: ");
- cin >> znak;
- while (znak != '\?')
- {
- if (znak > maximalniZnak)
- {
- maximalniZnak = znak;
- }
- if (znak >= '1' && znak <= '9')
- {
- if ((znak % 48) % 2 != 0)
- {
- soucin *= znak % 48;
- vyskytCislic = true;
- }
- }
- printf("Zadejte znak posloupnosti: ");
- cin >> znak;
- }
- if (!vyskytCislic)
- {
- soucin = 0;
- }
- }
- int main()
- {
- unsigned short ukol;
- do
- {
- printf("Funkce: \n");
- printf("1. Odecte nejvetsi liche cislo od souctu sudych cisel ze zadaneho intervalu <x;y>, kde x < y.\n");
- printf("2. Vypocita soucet faktorialu cifer vetsich nez 5 ze zadaneho cisla.\n");
- printf("3. Vynasobi soucet lichych delitelu poctem sudych delitelu zadaneho cisla.\n");
- printf("4. Na vstupu je N prvkova posloupnost celych cisel.\n Program:\n -vypocita soucin zapornych cisel;\n -rozdil z maxima a minima posloupnosti.\n");
- printf("5. Na vstupu je posloupnost realnych cisel zakoncena cislem zapornym. Program umocni aritmeticky prumer cisel z intervalu (10;20> na prvni pozici nejmensiho cisla.\n");
- printf("6. N prvkova posloupnost cisel se generuje z intervalu <min;max>. Uzivatel si zvoli krajni body intervalu a typ generovanych cisel - cela nebo realna. \nProgram:\n -najde minimalni cislo a porovna ho s treti mocninou jeho pozice;\n -vypocita podil druheho nejvetsiho cisla a souctu cisel se sudou pozici.\n");
- printf("7. Na vstupu je posloupnost celych cisel zakoncena cislem zapornym. Kdyz program nalezne 2 trojciferna cisla na lichych pozicich, predcasne se ukonci.\n");
- printf("8. Na vstupu je posloupnost znaku ukoncena znakem ?.\n Program:\n -vypise znak patrici nejvetsimu ASCII kodu z posloupnosti vcetne jeho predchudce a nasledovnika;\n -z lichych cislic (ne ASCII kodu) vypocita soucin.\n");
- printf("9. KONEC \n\n");
- printf("Pro spusteni zadejte poradove cislo zvolene funkce\nVolba: ");
- cin >> ukol;
- switch (ukol)
- {
- case 1:
- {
- unsigned int x, y;
- printf("1. Zadejte prosim 2 cele nezaporne krajni body intervalu <x;y>, kde x < y. Program odecte nejvetsi liche cislo od souctu sudych cisel ze zadaneho intervalu.\n");
- cin >> x >> y;
- printf("Rozdil souctu sudych cisel a nejvetsiho licheho cisla je: %d \n\n", Ukol1(x, y));
- }
- break;
- case 2:
- {
- unsigned int c;
- printf("2. Zadejte prosim cele nezaporne cislo. Program vypocita soucet faktorialu cifer vetsich nez 5 ze zadaneho cisla.\n");
- cin >> c;
- printf("Soucet faktorialu cifer vetsich nez 5 ze zadaneho cisla je: %d \n\n", Ukol2(c));
- }
- break;
- case 3:
- {
- unsigned int x;
- printf("3. Zadejte prosim cele nezaporne cislo. Program vynasobi soucet lichych delitelu poctem sudych delitelu zadaneho cisla.\n");
- cin >> x;
- printf("Soucin souctu lichych delitelu a sudych delitelu je: %d \n\n", Ukol3(x));
- }
- break;
- case 4:
- {
- unsigned short pocetPrvku;
- int rozdil = 0, soucin = 1;
- printf("4. Na vstupu je N prvkova posloupnost celych cisel.\n Program:\n -vypocita soucin zapornych cisel\n -rozdil z maxima a minima posloupnosti.\n");
- printf("Zadejte pocet prvku posloupnosti: ");
- cin >> pocetPrvku;
- Ukol4(pocetPrvku, soucin, rozdil);
- if (soucin != 0)
- {
- printf("Soucin ze zapornych cisel je: %d \n", soucin);
- }
- else
- {
- printf("Zaporna cisla se v posloupnosti nevyskytuji \n");
- }
- printf("Rozdil z maxima a minima je %d \n\n", rozdil);
- }
- break;
- case 5:
- {
- printf("5. Na vstupu je posloupnost realnych cisel zakoncena cislem zapornym. Program umocni aritmeticky prumer cisel z intervalu (10;20> na prvni pozici nejmensiho cisla.\n");
- double vysledek = Ukol5();
- if (vysledek != 0)
- {
- printf("Aritmeticky prumer cisel z intervalu (10;20> umocnen na prvni pozici nejmensiho cisla je: %0.3f \n\n", vysledek);
- }
- else
- {
- printf("Nelze vypocitat \n\n");
- }
- }
- break;
- case 6:
- {
- srand(time(0));
- unsigned short pocetPrvku, typCisla;
- printf("6. N prvkova posloupnost cisel se generuje z intervalu <min;max>. Uzivatel si zvoli krajni body intervalu a typ generovanych cisel - cela nebo realna. \nProgram:\n -najde minimalni cislo a porovna ho s treti mocninou jeho pozice;\n -vypocita podil druheho nejvetsiho cisla a souctu cisel se sudou pozici.\n");
- printf("Zadejte pocet prvku posloupnosti: ");
- cin >> pocetPrvku;
- printf("Vyberte typ cisel, ktera se budou generovat: \n 1] Realna cisla \n 2] Cela cisla \n");
- cin >> typCisla;
- if (typCisla == 1)
- {
- double levyBod = 0, pravyBod = 0, podil = 0;
- unsigned short porovnani = 2; // 0 = min > mocnina; 1 = min == mocnina; >=2 = min < mocnina;
- printf("Zadejte nejmensi nezaporne realne cislo intervalu: ");
- cin >> levyBod;
- printf("Zadejte nejvetsi nezaporne realne cislo intervalu: ");
- cin >> pravyBod;
- printf("Budou se generovat realna cisla z intervalu <%0.2f;%0.2f> \n", levyBod, pravyBod);
- Ukol6(pocetPrvku, pravyBod, levyBod, podil, porovnani);
- if (podil != 0)
- {
- printf("Podil druheho nejvetsiho cisla a souctu cisel se sudou pozici je %f \n", podil);
- }
- else
- {
- printf("Podil druheho nejvetsiho cisla a souctu cisel se sudou pozici nelze vypocitat\n");
- }
- if (porovnani == 0)
- {
- printf("Minimum > treti mocnina jeho pozice\n\n");
- }
- else if (porovnani == 1)
- {
- printf("Minimum = treti mocnine jeho pozice\n\n");
- }
- else
- {
- printf("Minimum < treti mocnina jeho pozice\n\n");
- }
- }
- else
- {
- unsigned int levyBod = 0, pravyBod = 0;
- unsigned short porovnani = 2; // 0 = min > mocnina; 1 = min == mocnina; >=2 = min < mocnina;
- int podil = 0;
- printf("Zadejte nejmensi nezaporne cele cislo intervalu: ");
- cin >> levyBod;
- printf("Zadejte nejvetsi nezaporne cele cislo intervalu: ");
- cin >> pravyBod;
- printf("Budou se generovat cela cisla z intervalu <%d;%d> \n", levyBod, pravyBod);
- Ukol6(pocetPrvku, pravyBod, levyBod, podil, porovnani);
- if (podil != -1)
- {
- printf("Celociselny podil druheho nejvetsiho cisla a souctu cisel se sudou pozici je %d \n", podil);
- }
- else
- {
- printf("Celociselny podil druheho nejvetsiho cisla a souctu cisel se sudou pozici nelze vypocitat\n");
- }
- if (porovnani == 0)
- {
- printf("Minimum > treti mocnina jeho pozice\n\n");
- }
- else if (porovnani == 1)
- {
- printf("Minimum = treti mocnine jeho pozice\n\n");
- }
- else
- {
- printf("Minimum < treti mocnina jeho pozice\n\n");
- }
- }
- }
- break;
- case 7:
- {
- printf("7. Na vstupu je posloupnost celych cisel zakoncena cislem zapornym. Kdyz program nalezne 2 trojciferna cisla na lichych pozicich, predcasne se ukonci\n");
- if (Ukol7())
- {
- printf("Program nalezl 2 trojciferna cisla na lichych pozicich a byl predcasne ukoncen. \n\n");
- }
- else
- {
- printf("Program nenalezl 2 trojciferna cisla na lichych pozicich. \n\n");
- }
- }
- break;
- case 8:
- {
- printf("8. Na vstupu je posloupnost znaku ukoncena znakem ?.\n Program:\n -vypise znak patrici nejvetsimu ASCII kodu z posloupnosti vcetne jeho predchudce a nasledovnika;\n -z lichych cislic (ne ASCII kodu) vypocita soucin.\n");
- unsigned char maximalniZnak = 0;
- unsigned int soucin = 1;
- Ukol8(maximalniZnak, soucin);
- if (soucin != 0)
- {
- printf("Soucin zadanych lichych cislic je: %d \n", soucin);
- }
- else
- {
- printf("V posloupnosti se nevyskytuji liche cislice \n");
- }
- printf("Znak s nejvetsi hodnotou ASCII kodu z posloupnosti je: %c.\n", maximalniZnak);
- printf("Nasleduje ho: %c\n", maximalniZnak + 1);
- printf("Predchazi ho: %c\n\n", maximalniZnak - 1);
- }
- break;
- case 9:
- printf("Program byl ukoncen\n\n");
- break;
- default:
- printf("Neplatny vyber. Zadejte volbu znovu\n\n");
- }
- } while (ukol != 9);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement