Advertisement
rozman50

vaja_6

Nov 26th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.91 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <string>
  6.  
  7. using namespace std;
  8.  
  9. // Vaja #1
  10. void najmanjsiElement(int tabela[], int &najmanjse, int &indeks, int velikost) {
  11. najmanjse = tabela[0];
  12.  
  13. for (int i = 0; i < velikost; i++) {
  14. if (najmanjse > tabela[i]) {
  15. najmanjse = tabela[i];
  16. indeks = i;
  17. }
  18. }
  19. }
  20.  
  21. // Vaja #2
  22. int vrniIndeks(int tabela[], int podanaVrednost, int velikost) {
  23. for (int i = 0; i < velikost; i++) {
  24. if (tabela[i] == podanaVrednost) {
  25. return i;
  26. }
  27. }
  28. return -1;
  29. }
  30.  
  31. // Vaja #3
  32. void sestejVektor(int vektorA[], int vektorB[], int* vektorC, int velikostTabele) {
  33. for (int i = 0; i < velikostTabele; i++) {
  34. vektorC[i] = vektorA[i] + vektorB[i];
  35. }
  36. }
  37.  
  38. void odstejVektor(int vektorA[], int vektorB[], int* vektorC, int velikostTabele) {
  39. for (int i = 0; i < velikostTabele; i++) {
  40. vektorC[i] = vektorA[i] - vektorB[i];
  41. }
  42. }
  43.  
  44. // Vaja #4
  45. void vektorSkalarProdukt(int vektor[], int skalar, int* vektorC, int velikostTabele) {
  46. for (int i = 0; i < velikostTabele; i++) {
  47. vektorC[i] = vektor[i] * skalar;
  48. }
  49. }
  50.  
  51. // Vaja #5
  52. int skalarniProduktDvehVektorjev(int vektorA[], int vektorB[], int velikostTabele) {
  53. int cifra = 0;
  54. for (int i = 0; i < velikostTabele; i++) {
  55. cifra += vektorA[i] * vektorB[i];
  56. }
  57.  
  58. return cifra;
  59. }
  60.  
  61. // Vaja #6
  62. void vektorskiProdukt(int vektorA[], int vektorB[], int velikostPolja) {
  63. int matrika[100][100];
  64.  
  65. for (int i = 0; i < velikostPolja; i++) {
  66. for (int j = 0; j < velikostPolja; j++) {
  67. matrika[i][j] = vektorA[i] * vektorB[j];
  68. }
  69. }
  70.  
  71. for (int i = 0; i < velikostPolja; i++) {
  72. for (int j = 0; j < velikostPolja; j++) {
  73. cout << matrika[i][j] << "\t";
  74. }
  75. cout << endl;
  76. }
  77. }
  78.  
  79.  
  80. // Vaja #6
  81. void vektorskiProdukt(int vektorA[], int vektorB[], int* vektorC, int velikostTabele) {
  82. for (int i = 0; i < velikostTabele; i++) {
  83. vektorC[i] = vektorA[i] * vektorB[i];
  84. }
  85. }
  86.  
  87. // Vaja #7
  88. void iskanjePrastevil(int n, int m, int *prastevila, int &stPrastevil) {
  89.  
  90. int stevec = 0;
  91.  
  92. for (int j = n; j < m; j++) {
  93. int tmp = j;
  94. bool isPrime = true;
  95. int primeNum = 0;
  96. for (int i = 2; i < tmp; i++) {
  97. if (tmp % i == 0) {
  98. isPrime = false;
  99. break;
  100. }
  101. }
  102. if (isPrime) {
  103. prastevila[stevec] = tmp;
  104. stevec++;
  105. }
  106. }
  107. stPrastevil = stevec;
  108. }
  109.  
  110. // Vaja #8
  111. void mediana(int tabela[], int velikostTabele) {
  112. if (velikostTabele % 2 == 0) {
  113. int sredina = (velikostTabele / 2);
  114. // cout << "Velikost tabele: " << velikostTabele << " sredina " << velikostTabele / 2 <<endl;
  115. float mediana = (tabela[sredina] + tabela[sredina + 1]) / 2;
  116. cout << "Mediana je: " << mediana << endl;
  117. }
  118. else {
  119. float mediana = tabela[(velikostTabele - 1) / 2];
  120. cout << "Mediana je: " << mediana << endl;
  121. }
  122. }
  123.  
  124. // Vaja 9
  125. void izracunPovprecneInDeviacije(int tabela[], int velikostTabele) {
  126. int vsota = 0;
  127. for (int i = 0; i < velikostTabele; i++) {
  128. vsota += tabela[i];
  129. }
  130.  
  131. float povprecje = (vsota / velikostTabele);
  132.  
  133. float standardniOdklonVsota = 0;
  134. for (int i = 0; i < velikostTabele; i++) {
  135. standardniOdklonVsota += ((tabela[i] - povprecje) * (tabela[i] - povprecje)); // <-- na kvadrat
  136. }
  137. float varianca = sqrt((standardniOdklonVsota / velikostTabele));
  138.  
  139. cout << "Povprecna vrednost tabele je: " << povprecje << endl;
  140. cout << "Standardni odklon tabele je: " << varianca << endl;
  141. }
  142.  
  143. // Vaja 10
  144. void bubbleSort(int P[], int velikostTabele, int* sortiranaTabela) {
  145. for (int i = 0; i < velikostTabele; i++) {
  146. for (int j = 0; j < velikostTabele - 1; j++) {
  147. if (P[j] > P[j + 1]) {
  148. int tmp = P[j];
  149. P[j] = P[j + 1];
  150. P[j + 1] = tmp;
  151. }
  152. }
  153. }
  154. for (int i = 0; i < velikostTabele; i++) {
  155. sortiranaTabela[i] = P[i];
  156.  
  157. //izpis praštevil
  158. cout << P[i] << " ";
  159. }
  160. cout << endl;
  161. }
  162.  
  163.  
  164. int main()
  165. {
  166.  
  167. const int velikostTabele = 10;
  168. int tabela[velikostTabele];
  169.  
  170. // naključno polnjenje tabele
  171. srand(time(NULL));
  172. for (int i = 0; i < velikostTabele; i++) {
  173. tabela[i] = rand() % 100 + 1;
  174. }
  175.  
  176. // izpis tabele
  177. /*
  178. for (int i = 0; i < velikostTabele; i++) {
  179. cout << tabela[i] << endl;
  180. }
  181. */
  182.  
  183.  
  184. // Vaja #1
  185. int najmanjseStevilo = 0;
  186. int indeks = 0;
  187. najmanjsiElement(tabela, najmanjseStevilo, indeks, velikostTabele);
  188. cout << "Najmanjse stevilo je " << najmanjseStevilo << " na indeksu " << indeks << endl;
  189.  
  190.  
  191. // Vaja #2
  192. int podanaVrednost;
  193. cout << "Podaj vrednost: ";
  194. cin >> podanaVrednost;
  195. cout << "Podana vrednost " << podanaVrednost << " je na indeksu " << vrniIndeks(tabela, podanaVrednost, velikostTabele) << endl;
  196.  
  197. // Vaja #3
  198. int vektorA[velikostTabele];
  199. int vektorB[velikostTabele];
  200. int vektorCSum[velikostTabele];
  201. int vektorCSubstract[velikostTabele];
  202.  
  203. // nakljucno polnjenje vektorjev
  204. for (int i = 0; i < velikostTabele; i++) {
  205. vektorA[i] = rand() % 100;
  206. vektorB[i] = rand() % 100;
  207. }
  208.  
  209.  
  210. sestejVektor(vektorA, vektorB, vektorCSum, velikostTabele);
  211. odstejVektor(vektorA, vektorB, vektorCSubstract, velikostTabele);
  212.  
  213. // Vaja #4
  214. int skalar;
  215. cout << "Vnesi skalarja za produkt vektorja s skalarjem: ";
  216. cin >> skalar;
  217.  
  218. int vektorSkalarProduktTabela[velikostTabele];
  219. vektorSkalarProdukt(vektorA, skalar, vektorSkalarProduktTabela, velikostTabele);
  220.  
  221. // Vaja #4
  222. int vektorCProdukt[velikostTabele];
  223. vektorskiProdukt(vektorA, vektorB, vektorCProdukt, velikostTabele);
  224.  
  225. // Vaja #5
  226. cout << "Skalarni produkt dveh vektorjev je " << skalarniProduktDvehVektorjev(vektorA, vektorB, velikostTabele) << endl;
  227.  
  228. // Vaja #6
  229. vektorskiProdukt(vektorA, vektorB, velikostTabele);
  230.  
  231. // izpis vektorjev
  232. /*
  233. for (int i = 0; i < velikostTabele; i++) {
  234. cout << vektorA[i] << " + " << vektorB[i] << " = " << vektorCSum[i] << endl;
  235. cout << vektorA[i] << " - " << vektorB[i] << " = " << vektorCSubstract[i] << endl;
  236. cout << vektorA[i] << " * " << vektorB[i] << " = " << vektorCProdukt[i] << endl;
  237. cout << vektorA[i] << " * " << skalar << " = " << vektorSkalarProduktTabela[i] << endl;
  238. }
  239. */
  240.  
  241. // Vaja #7
  242. int n;
  243. int m;
  244. int prastevila[200000];
  245. int stPrastevil = 0;
  246.  
  247. cout << "Vnesi spodnjo mejo: ";
  248. cin >> n;
  249. cout << "Vnesi zgornjo mejo: ";
  250. cin >> m;
  251.  
  252. iskanjePrastevil(n, m, prastevila, stPrastevil);
  253.  
  254. // izpis praštevil
  255. for (int i = 0; i < stPrastevil; i++) {
  256. cout << prastevila[i] << " ";
  257. }
  258. cout << endl;
  259.  
  260. // Vaja #8 in Vaja #10
  261. int sortiranaTabela[velikostTabele];
  262. bubbleSort(tabela, velikostTabele, sortiranaTabela);
  263. mediana(sortiranaTabela, velikostTabele);
  264.  
  265. // Vaja #9
  266. izracunPovprecneInDeviacije(tabela, velikostTabele);
  267.  
  268. // Vaja #11
  269. /*
  270. int L;
  271. cout << "Vpisi velikost sekvence: ";
  272. cin >> L;
  273. int S[10000];
  274.  
  275. float E = 0;
  276.  
  277. for (int i = 0; i < L; i++) {
  278. S[i] = i;
  279. }
  280.  
  281. int s = 0;
  282. for (int k = 1; k <= L - 1; k++) {
  283. int Ck = 0;
  284. for (int i = 1; i <= L - k; i++) {
  285. Ck += S[i] * S[i + k];
  286.  
  287. }
  288. E += Ck * Ck;
  289. cout << "CK: " << Ck << " E: " << E << endl;
  290. }
  291.  
  292. cout << "E: " << E << endl;
  293. */
  294.  
  295. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement