Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.37 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <time.h>
  4. using namespace std;
  5.  
  6. double Ukol1(int a, int b)
  7. {
  8. int i = 0, suda = 0, soucet = 0;
  9.  
  10. while (a < b)
  11. {
  12. if (a % 2 == 0)
  13. {
  14. soucet += a;
  15. suda++;
  16. }
  17.  
  18. a++;
  19. }
  20.  
  21. if (suda > 0)
  22. {
  23. return double(soucet) / suda;
  24. }
  25. else
  26. {
  27. return 0;
  28. }
  29. }
  30. long long Ukol2(int n)
  31. {
  32. int x, soucetlich = 0;
  33.  
  34. while (n > 0)
  35. {
  36. if (n % 2 != 0)
  37. {
  38. soucetlich += n % 10;
  39. }
  40.  
  41. n /= 10;
  42. }
  43.  
  44. if (soucetlich > 0)
  45. {
  46. long long faktorial = 1;
  47.  
  48. while (soucetlich > 0)
  49. {
  50. faktorial *= soucetlich--;
  51. }
  52.  
  53. return faktorial;
  54. }
  55. else
  56. {
  57. return 0;
  58. }
  59. }
  60. int Ukol3(int c)
  61. {
  62. int z = 1, soucet = 0;
  63.  
  64. while (z <= c)
  65. {
  66. if (c % z == 0)
  67. {
  68. soucet += z;
  69. }
  70.  
  71. z += 2;
  72. }
  73.  
  74. return soucet;
  75. }
  76. void Ukol4(int x, double &prumer, long long &faktorial)
  77. {
  78. int soucet = 0, pocet = 0, y;
  79.  
  80. for (int i = 1; i <= x; i++)
  81. {
  82. cout << "Zadejte nezaporne cislo do posloupnosti: " << endl;
  83. cin >> y;
  84.  
  85. if (y % 2 != 0)
  86. {
  87. soucet += y;
  88. pocet++;
  89. }
  90. }
  91.  
  92. if (pocet > 0)
  93. {
  94. prumer = double(soucet) / pocet;
  95. }
  96. else
  97. {
  98. prumer = 0;
  99. }
  100.  
  101. if (x > 0)
  102. {
  103. while (x > 0)
  104. {
  105. faktorial *= x--;
  106. }
  107. }
  108. else
  109. {
  110. faktorial = 0;
  111. }
  112. }
  113. double Ukol5()
  114. {
  115. double prvek, soucet = 0, min = RAND_MAX, vysledek = 1;
  116. int pocet = 0, i = 1, poziceMin = 0;
  117.  
  118. cout << "Zadejte prvek posloupnosti: ";
  119. cin >> prvek;
  120.  
  121. while (prvek > -1)
  122. {
  123. if (i % 2 == 0)
  124. {
  125. soucet += prvek;
  126. pocet++;
  127. }
  128.  
  129. if (prvek < min)
  130. {
  131. min = prvek;
  132. poziceMin = i;
  133. }
  134.  
  135. cout << "Zadejte prvek posloupnosti: ";
  136. cin >> prvek;
  137.  
  138. i++;
  139. }
  140.  
  141. if (pocet > 0)
  142. {
  143. double prumer = soucet / pocet;
  144. double vysledek = 1;
  145.  
  146. while (poziceMin > 0)
  147. {
  148. vysledek *= prumer;
  149. poziceMin--;
  150. }
  151.  
  152. return vysledek;
  153. }
  154. else
  155. {
  156. return -1;
  157. }
  158. }
  159. int Ukol6(int pocetCisel, int pravyBod, int levyBod)
  160. {
  161.  
  162. int cislo = 0;
  163. int max = -RAND_MAX, max2 = max;
  164. int min = RAND_MAX, min2 = min;
  165.  
  166. for (int i = 1; i <= pocetCisel; i++)
  167. {
  168. cislo = rand() % (pravyBod - levyBod) + levyBod;
  169.  
  170. cout << "Cislo posloupnosti: " << cislo << endl;
  171.  
  172. if (cislo > max2)
  173. {
  174. if (cislo > max)
  175. {
  176. max2 = max;
  177. max = cislo;
  178. }
  179. else if (cislo < max)
  180. {
  181. max2 = cislo;
  182. }
  183. }
  184.  
  185. if (cislo < min2)
  186. {
  187. if (cislo < min)
  188. {
  189. min2 = min;
  190. min = cislo;
  191. }
  192. else if (cislo > min)
  193. {
  194. min2 = cislo;
  195. }
  196. }
  197. }
  198.  
  199. return max2 - min2;
  200. }
  201. double Ukol6(int pocetCisel, double pravyBod, double levyBod)
  202. {
  203. double max = -RAND_MAX, max2 = max;
  204. double min = RAND_MAX, min2 = min;
  205. double cislo = 0;
  206.  
  207.  
  208. for (int i = 1; i <= pocetCisel; i++)
  209. {
  210. cislo = (double)rand() / (RAND_MAX + 1) * (pravyBod - levyBod) + levyBod;
  211.  
  212. cout << "Cislo posloupnosti: " << cislo << endl;
  213.  
  214. if (cislo > max2)
  215. {
  216. if (cislo > max)
  217. {
  218. max2 = max;
  219. max = cislo;
  220. }
  221. else if (cislo < max)
  222. {
  223. max2 = cislo;
  224. }
  225. }
  226.  
  227. if (cislo < min2)
  228. {
  229. if (cislo < min)
  230. {
  231. min2 = min;
  232. min = cislo;
  233. }
  234. else if (cislo > min)
  235. {
  236. min2 = min;
  237. }
  238. }
  239. }
  240.  
  241. return max2 - min2;
  242.  
  243.  
  244.  
  245. }
  246. bool Ukol7(unsigned short pocetPrvku)
  247. {
  248. unsigned int prvek;
  249.  
  250. for (int i = 1; i <= pocetPrvku; i++)
  251. {
  252. cout << "Zadejte kladne cislo posloupnosti: ";
  253. cin >> prvek;
  254.  
  255. if ((prvek % 100) == 4)
  256. {
  257. return true;
  258. }
  259. }
  260.  
  261. return false;
  262. }
  263. void Ukol8(unsigned short pocetPrvku)
  264. {
  265. unsigned char znak;
  266.  
  267. for (int i = 1; i <= pocetPrvku; i++)
  268. {
  269. cout << "Zadejte znak: ";
  270. cin >> znak;
  271. if (znak % 5 == 0)
  272. {
  273. cout << "Znak: " << znak << endl;
  274. cout << " Predchozi: " << znak - 1 << endl;
  275. cout << " Nasleduje: " << znak + 1 << endl;
  276. }
  277. else
  278. {
  279. cout << "Znak: " << znak << " ma ASCII kod: " << (int)znak << endl;
  280. }
  281. }
  282. }
  283.  
  284. int main()
  285. {
  286. int volba;
  287. do {
  288. cout << "1 - 2 cela cisla jako krajni body intervalu <min; max).Program vypise aritmeticky prumer ze sudych cisel z tohoto inervalu" << endl;
  289. cout << "2 - Nezaporne cislo a program vypocita faktorial ze souctu lichych cifer" << endl;
  290. cout << "3 - Cele cislo. Ja vypisu soucet lichych delitelu " << endl;
  291. cout << "4 - Na vstupu je N prvkova posloupnost celych nezapornych cisel. Program vypocita Aritmeticky prumer z lichych cisel posloupnosti a faktorial z poctu cisel posloupnosti" << endl;
  292. cout << "5 - Posloupnost realnych cisel zakoncena cislem zapornym. Program umocni aritmeticky prumer z cisel na sudych pozicich na prvni pozici nejmensiho cisla" << endl;
  293. cout << "6 - Posloupnost N kladnych prvku se generuje z intervalu <minimum; maximum).Uzivatel zvoli krajni body intervalu a typ cisel, ktera se budou generovat(cela nebo realna cisla) Program vypocita rozdil z druheho maxima a druheho minima" << endl;
  294. cout << "7 - Na vstupu je N prvkova posloupnost kladnych cisel. Pokud se posledni cifra zadaneho cisla rovna 4, program se predcasne ukonci" << endl;
  295. cout << "8 - Na vstupu je N prvkova posloupnost znaku. Kdyz je ASCII kod zadaneho znaku delitelny 5 tak vypise jeho predchazejici a nasledujici znak. Pokud neni delitelny 5, tak vypise prislusny ASCII kod znaku" << endl;
  296. cout << "9 - Konec" << endl;
  297.  
  298. cout << "Zadejte cislo programu, ktery chcete spustit: ";
  299. cin >> volba;
  300. switch (volba)
  301. {
  302. //Ăškol ÄŤ. 1
  303. case 1:
  304. {
  305. int a, b;
  306. cout << "Zadejte 2 cela cisla jako krajni body intervalu <min;max). Program vypise aritmeticky prumer ze sudych cisel z tohoto inervalu" << endl;
  307. cout << "Zadejte minimum intervalu: ";
  308. cin >> a;
  309. cout << "Zadejte maximum intervalu: ";
  310. cin >> b;
  311.  
  312. double vysledek = Ukol1(a, b);
  313.  
  314. if (vysledek != 0)
  315. {
  316. cout << "Aritmeticky prumer je: " << vysledek << endl;
  317. }
  318. else
  319. {
  320. cout << "Nelze vypocitat aritmeticky prumer " << endl;
  321. }
  322. break;
  323. }
  324. //Ăškol ÄŤ.2
  325. case 2:
  326. {
  327. int n;
  328. cout << "Zadejte nezaporne cislo a program vypocita faktorial ze souctu lichych cifer" << endl;
  329. cin >> n;
  330.  
  331. cout << "Faktorial ze souctu lichych cifer z cisla je: " << Ukol2(n) << endl;
  332.  
  333. break;
  334. }
  335. //Ăškol ÄŤ. 3
  336. case 3:
  337. {
  338. int c;
  339. cout << "Zadejte cele nezaporne cislo. Program vypise soucet lichych delitelu " << endl;
  340. cin >> c;
  341.  
  342. int vysledek = Ukol3(c);
  343.  
  344. if (vysledek != 0)
  345. {
  346. cout << "Soucet sudych delitelu je: " << vysledek << endl;
  347. }
  348. else
  349. {
  350. cout << "Nelze vypocitat" << endl;
  351. }
  352.  
  353. break;
  354. }
  355. //Ăškol ÄŤ. 4
  356. case 4:
  357. {
  358. cout << "Na vstupu je N prvkova posloupnost celych nezapornych cisel. Program vypocita Aritmeticky prumer z lichych cisel posloupnosti a faktorial z poctu cisel posloupnosti" << endl;
  359. int x;
  360. double prumer = 0;
  361. long long faktorial = 1;
  362. cout << "Zadejte pocet prvku posloupnosti: " << endl;
  363. cin >> x;
  364.  
  365. Ukol4(x, prumer, faktorial);
  366.  
  367. if (prumer != 0)
  368. {
  369. cout << "Prumer je: " << prumer << endl;
  370. }
  371. else
  372. {
  373. cout << "Prumer nelze vypocitat" << endl;
  374. }
  375.  
  376.  
  377. cout << "Faktorial je: " << faktorial << endl;
  378. break;
  379. }
  380. //Ăškol ÄŤ. 5
  381. case 5:
  382. {
  383. cout << "Posloupnost realnych cisel zakoncena cislem zapornym. Program umocni aritmeticky prumer z cisel na sudych pozicich na prvni pozici nejmensiho cisla" << endl;
  384.  
  385. double vysledek = Ukol5();
  386.  
  387. if (vysledek != -1)
  388. {
  389. cout << "Aritmeticky prumer umocneny na pozici nejmensiho cisla: " << vysledek << endl;
  390. }
  391. else
  392. {
  393. cout << "Nelze vypocitat" << endl;
  394. }
  395.  
  396. break;
  397. }
  398. //Ăškol ÄŤ. 6
  399. case 6:
  400. {
  401. srand(time(0));
  402.  
  403. int volbaCisla, pocetCisel;
  404.  
  405. cout << "Posloupnost N kladnych prvku se generuje z intervalu <minimum;maximum). Uzivatel zvoli krajni body intervalu a typ cisel, ktera se budou generovat (cela nebo realna cisla)" << endl;
  406. cout << "Program vypocita rozdil z druheho maxima a druheho minima" << endl;
  407. cout << "Zadejte pocet prvku: " << endl;
  408. cin >> pocetCisel;
  409. cout << "Zadejte, jaka cisla se budou generovat: " << endl;
  410. cout << " 1 - Cela cisla " << endl;
  411. cout << " 2 - Realna cisla " << endl;
  412. cin >> volbaCisla;
  413.  
  414. if (volbaCisla == 1)
  415. {
  416. int levyBod = 0, pravyBod = 0;
  417.  
  418. cout << "Zadejte cele nezaporne koreny intervalu. Interval je ve tvaru <minimum;maximum)" << endl;
  419. cin >> levyBod >> pravyBod;
  420.  
  421. cout << "Rozdil mezi druhym maximem a druhym minimem je: " << Ukol6(pocetCisel, pravyBod, levyBod) << endl;
  422. }
  423. else
  424. {
  425. double levyBod = 0, pravyBod = 0;
  426.  
  427. cout << "Zadejte realne nezaporne koreny intervalu. Interval je ve tvaru <minimum;maximum)" << endl;
  428. cin >> levyBod >> pravyBod;
  429.  
  430. cout << "Rozdil mezi druhym maximem a druhym minimem je: " << Ukol6(pocetCisel, pravyBod, levyBod) << endl;
  431. }
  432. break;
  433. }
  434. //Ăškol ÄŤ. 7
  435. case 7:
  436. {
  437. unsigned short pocetPrvku;
  438.  
  439. cout << "Na vstupu je N prvkova posloupnost kladnych cisel. Pokud se posledni cifra zadaneho cisla rovna 4, program se predcasne ukonci" << endl;
  440. cout << "Zadejte pocet prvku: ";
  441. cin >> pocetPrvku;
  442.  
  443. if (Ukol7(pocetPrvku))
  444. {
  445. cout << "Program nasel cislo s posledni cifrou, ktera se rovna 4 a byl predcasne ukoncen" << endl;
  446. }
  447. else
  448. {
  449. cout << "Program nenasel cislo s posledni cifrou, ktera se rovna 4" << endl;
  450. }
  451. break;
  452. }
  453. //Ăškol ÄŤ. 8
  454. case 8:
  455. {
  456. cout << "Na vstupu je N prvkova posloupnost znaku. Kdyz je ASCII kod zadaneho znaku delitelny 5 tak vypise jeho predchazejici a nasledujici znak. Pokud neni delitelny 5, tak vypise prislusny ASCII kod znaku" << endl;
  457. unsigned short pocetPrvku;
  458. cout << "Zadejte pocet prvku znakove posloupnosti: ";
  459. cin >> pocetPrvku;
  460.  
  461. Ukol8(pocetPrvku);
  462. }
  463. break;
  464.  
  465. default: cout << "Spatna volba" << endl;
  466. break;
  467.  
  468. case 9: cout << "Program ukoncen" << endl;
  469. }
  470.  
  471. } while (volba != 9);
  472.  
  473. system("pause");
  474. return 0;
  475. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement