Advertisement
InfernalSpeed

L1IA

May 10th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.14 KB | None | 0 0
  1. #pragma warning(disable:4996)
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. int *alocare(int n) {
  8. return (int*)malloc(n * sizeof(int));
  9. }
  10.  
  11. void citire(int *v, int n) {
  12. for (int i = 0; i < n; i++) {
  13. printf("v[%d] = ", i);
  14. scanf("%d", &v[i]);
  15. }
  16. }
  17.  
  18. void afisare(int *v, int n) {
  19. for (int i = 0; i < n; i++)
  20. printf("%d ", v[i]);
  21. }
  22.  
  23. //1.
  24. void suma(int *v, int n) {
  25. int s = 0;
  26.  
  27. for (int i = 0; i < n; i++)
  28. s = s + v[i];
  29. printf("\nSuma elementelor vectorului este: %d", s);
  30. }
  31.  
  32. //2.
  33. void exista(int *v, int n) {
  34. int exista, ok = 0;
  35.  
  36. printf("\nIntroduceti elementul pe care doriti sa-l cautati in vector: ");
  37. scanf("%d", &exista);
  38. for (int i = 0; i < n; i++)
  39. if (exista == v[i]) {
  40. ok = 1;
  41. break;
  42. }
  43. if (ok)
  44. printf("Elementul exista in vector.");
  45. else
  46. printf("Elementul nu exista in vector.");
  47. }
  48.  
  49. //3.
  50. void schimbare(int *v, int n) {
  51. int poz1, poz2, aux;
  52.  
  53. printf("\nIntroduceti pozitia 1: ");
  54. scanf("%d", &poz1);
  55. printf("Introduceti pozitia 2: ");
  56. scanf("%d", &poz2);
  57. if ((poz1 >= n) || (poz2 >= n))
  58. printf("Una dintre pozitii depaseste lungimea vectorului.");
  59. else {
  60. aux = v[poz1];
  61. v[poz1] = v[poz2];
  62. v[poz2] = aux;
  63. printf("Vectorul cu elementele de pe pozitiile %d si %d inversate este:\n", poz1, poz2);
  64. afisare(v, n);
  65. }
  66. }
  67.  
  68. //4.
  69. void minim(int *v, int n) {
  70. int minim;
  71.  
  72. minim = v[0];
  73. for (int i = 1; i < n; i++)
  74. if (v[i] < minim)
  75. minim = v[i];
  76. printf("\nValoarea minima din vector este: %d", minim);
  77. }
  78.  
  79. //5.
  80. void eliminare(int *v, int n) {
  81. int poz;
  82.  
  83. printf("\nIntroduceti pozitia de pe care doriti sa eliminati elementul: ");
  84. scanf("%d", &poz);
  85. if (poz >= n)
  86. printf("Pozitia depaseste lungimea vectorului.");
  87. else {
  88. for (int i = poz + 1; i < n; i++)
  89. v[i - 1] = v[i];
  90. n--;
  91. printf("Vectorul dupa eliminarea elementului de pe pozitia %d este:\n", poz);
  92. afisare(v, n);
  93. }
  94. }
  95.  
  96. //6.
  97. void eliminare_nr(int *v, int n) {
  98. int nr, ok = 0;
  99.  
  100. printf("\nIntroduceti elementul pe care doriti sa-l eliminati: ");
  101. scanf("%d", &nr);
  102. for (int i = 0; i < n; i++) {
  103. if (nr == v[i])
  104. ok = 1;
  105. if (ok == 1)
  106. v[i] = v[i + 1];
  107. }
  108. if (ok == 0)
  109. printf("Elementul nu s-a gasit in vector.");
  110. else {
  111. n--;
  112. printf("Vectorul dupa eliminarea elementului %d este:\n", nr);
  113. afisare(v, n);
  114. }
  115. }
  116.  
  117. //7.
  118. void adaugare(int *v, int n) {
  119. int nr, poz;
  120.  
  121. printf("Introduceti pozitia pe care doriti sa introduceti elementul: ");
  122. scanf("%d", &poz);
  123. printf("Introduceti elementul: ");
  124. scanf("%d", &nr);
  125. if (poz > n)
  126. printf("Pozitia depaseste numarul de elemente ale vectorului.");
  127. else {
  128. n++;
  129. for (int i = n - 1; i > poz; i--)
  130. v[i] = v[i - 1];
  131. v[poz] = nr;
  132. printf("Vectorul dupa adaugare elementului %d pe pozitia %d este:\n", nr, poz);
  133. afisare(v, n);
  134. }
  135. }
  136.  
  137. //8.
  138. void comparare(int *v, int n) {
  139. int *v2, *v3, ok = 1;
  140.  
  141. v2 = alocare(n);
  142. v3 = alocare(n);
  143. printf("Introduceti al doilea vector:\n");
  144. citire(v2, n);
  145. printf("Introduceti al treilea vector:\n");
  146. citire(v3, n);
  147. printf("Cei 3 vectori sunt:\n");
  148. afisare(v, n);
  149. printf("\n");
  150. afisare(v2, n);
  151. printf("\n");
  152. afisare(v3, n);
  153. for (int i = 0; i < n; i++)
  154. if (!((v[i] < v2[i]) && (v2[i] < v3[i])))
  155. ok = 0;
  156. if (ok)
  157. printf("\nCei 3 vectori au v[i]<v2[i]<v3[i]");
  158. else
  159. printf("\nCei 3 vectori nu au v[i]<v2[i]<v3[i]");
  160. }
  161.  
  162. //9.
  163. void sortare(int *v, int n) {
  164.  
  165. for (int i = 0; i < n - 1; i++)
  166. for (int j = i + 1; j < n; j++)
  167. if (v[i] > v[j]) {
  168. int aux;
  169. aux = v[i];
  170. v[i] = v[j];
  171. v[j] = aux;
  172. }
  173. printf("\nVectorul sortat este:\n");
  174. afisare(v, n);
  175. }
  176.  
  177. //10.
  178. void inserare_element(int *v, int n) {
  179. int el;
  180.  
  181. printf("\nIntroduceti elementul: ");
  182. scanf("%d", &el);
  183. n++;
  184. if (el > v[n - 2])
  185. v[n - 1] = el;
  186. else {
  187. int i = 0;
  188.  
  189. while (v[i] < el)
  190. i++;
  191. for (int j = n - 1; j > i; j--)
  192. v[j] = v[j - 1];
  193. v[i] = el;
  194. }
  195. printf("Vectorul rezultat este:\n");
  196. afisare(v, n);
  197. }
  198.  
  199. //11.
  200. void generare_aleator() {
  201. int n = 101;
  202.  
  203. time_t t;
  204. srand((unsigned)(time(&t)));
  205. int g = rand() % n;
  206. printf("Numarul aleator generat este: %d", g);
  207. }
  208.  
  209. //12.
  210. void generare50() {
  211. int n = 2;
  212.  
  213. time_t t;
  214. srand((unsigned)(time(&t)));
  215. int g = rand() % n;
  216. if (g == 0)
  217. printf("Inteligenta Artificiala");
  218. else
  219. printf("Limbajul C");
  220. }
  221.  
  222. //13.
  223. void generare33() {
  224. int n = 3;
  225.  
  226. time_t t;
  227. srand((unsigned)(time(&t)));
  228. int g = rand() % n;
  229. if (g == 0)
  230. printf("Inteligenta Artificiala");
  231. else
  232. if (g == 1)
  233. printf("Limbajul C");
  234. else
  235. if (g == 2)
  236. printf("Programare Web");
  237. }
  238.  
  239. //14.
  240. void vector_aleator(int *v, int n) {
  241. int m, *aux;
  242.  
  243. time_t t;
  244. srand((unsigned)(time(&t)));
  245.  
  246. printf("\nIntroduceti cate numere doriti sa generati aleatoriu: ");
  247. scanf("%d", &m);
  248. aux = alocare(m);
  249. if (m > n)
  250. printf("m>n");
  251. else
  252. for (int i = 0; i < m; i++) {
  253. int g = rand() % n;
  254. aux[i] = v[g];
  255. }
  256. printf("Vectorul rezultat este:");
  257. afisare(aux, m);
  258. int max = aux[0];
  259.  
  260. for (int i = 1; i < m; i++)
  261. if (aux[i] > max)
  262. max = aux[i];
  263. printf("\nElementul maxim este: %d", max);
  264.  
  265. }
  266.  
  267. //15.
  268. void vector_aleator2(int *v, int n) {
  269. int m, *aux;
  270.  
  271. time_t t;
  272. srand((unsigned)(time(&t)));
  273.  
  274. printf("\nIntroduceti cate numere doriti sa generati aleatoriu: ");
  275. scanf("%d", &m);
  276. aux = alocare(m);
  277. if (m > n)
  278. printf("m>n");
  279. else {
  280. for (int i = 0; i < m; i++) {
  281. int g = rand() % n;
  282. aux[i] = v[g];
  283. for (int j = g + 1; j < n; j++)
  284. v[j - 1] = v[j];
  285. n--;
  286. }
  287. printf("Vectorul rezultat este:");
  288. afisare(aux, m);
  289. }
  290. }
  291.  
  292. //16.
  293. void auxiliar(int *v, int n, int punct, int *v2, int *a) {
  294.  
  295. int aux = punct;
  296.  
  297. for (int i = punct; i < n; i++) {
  298. int ok = 1;
  299. for (int j = 0; j < punct; j++)
  300. if (v[j] == v2[i])
  301. ok = 0;
  302. if (ok)
  303. a[aux++] = v2[i];
  304. }
  305. for (int i = 0; i < punct; i++)
  306. a[aux++] = v2[i];
  307. for (int i = 0; i < aux; i++)
  308. printf("%d ", a[i]);
  309. printf("\n");
  310. }
  311.  
  312. void taiere(int *v, int n) {
  313. int punct, *v2, *a, *b;
  314.  
  315. v2 = alocare(n);
  316. a = alocare(n);
  317. b = alocare(n);
  318. printf("\nIntroduceti cel de-al doilea vector:\n");
  319. citire(v2, n);
  320. printf("Cei doi vectori sunt:\n");
  321. afisare(v, n);
  322. printf("\n");
  323. afisare(v2, n);
  324. printf("\nIntroduceti punctul de taiere: ");
  325. scanf("%d", &punct);
  326. for (int i = 0; i < punct; i++) {
  327. a[i] = v[i];
  328. b[i] = v2[i];
  329. }
  330. auxiliar(v, n, punct, v2, a);
  331. auxiliar(v2, n, punct, v, b);
  332. }
  333.  
  334.  
  335. //17.
  336. void penultima() {
  337. char mat[3][3];
  338.  
  339. mat[0][0] = '2';
  340. mat[0][1] = '3';
  341. mat[0][2] = '5';
  342. mat[1][0] = '4';
  343. mat[1][1] = ' ';
  344. mat[1][2] = '1';
  345. mat[2][0] = '8';
  346. mat[2][1] = '6';
  347. mat[2][2] = '7';
  348. for (int i = 0; i < 3; i++) {
  349. for (int j = 0; j < 3; j++)
  350. printf("%c ", mat[i][j]);
  351. printf("\n");
  352. }
  353. time_t t;
  354. srand((unsigned)(time(&t)));
  355. int g = rand() % 4;
  356. printf("\n");
  357. if (g == 0) {
  358. mat[1][1] = '3';
  359. mat[0][1] = ' ';
  360. }
  361. if (g == 1) {
  362. mat[1][1] = '4';
  363. mat[1][0] = ' ';
  364. }
  365. if (g == 2) {
  366. mat[1][1] = '1';
  367. mat[1][2] = ' ';
  368. }
  369. if (g == 3) {
  370. mat[1][1] = '6';
  371. mat[2][1] = ' ';
  372. }
  373. for (int i = 0; i < 3; i++) {
  374. for (int j = 0; j < 3; j++)
  375. printf("%c ", mat[i][j]);
  376. printf("\n");
  377. }
  378. }
  379.  
  380. //18.
  381. void ultima() {
  382. int mat[3][3];
  383. int xo = 1;
  384. int conditie = 0;
  385.  
  386. for (int i = 0; i < 3; i++)
  387. for (int j = 0; j < 3; j++)
  388. mat[i][j] = -1;
  389. time_t t;
  390. srand((unsigned)(time(&t)));
  391. int g = rand() % 9;
  392. while (conditie) {
  393. while (mat[g / 3][g % 3] != -1) {
  394. g = rand() % 9;
  395. }
  396. if ((mat[g / 3][g % 3] == -1) && (xo == 1)) {
  397. mat[g / 3][g % 3] = xo;
  398. xo = 0;
  399. }
  400. else
  401. if ((mat[g / 3][g % 3] == -1) && (xo == 0)) {
  402. mat[g / 3][g % 3] = xo;
  403. xo = 1;
  404. }
  405.  
  406. }
  407.  
  408. }
  409.  
  410. void main() {
  411. int *v, n;
  412.  
  413. /* printf("Introduceti numarul de elemente: ");
  414. scanf("%d", &n);
  415. v = alocare(n);
  416. citire(v, n);
  417. afisare(v, n);
  418. suma(v, n);
  419. exista(v, n);
  420. schimbare(v, n);
  421. minim(v, n);
  422. eliminare(v, n);
  423. eliminare_nr(v, n);
  424. adaugare(v, n);
  425. comparare(v, n);
  426. sortare(v, n);
  427. inserare_element(v, n);
  428. generare_aleator();
  429. generare50();
  430. generare33();
  431. vector_aleator2(v, n);
  432. taiere(v, n);
  433. penultima();*/
  434. ultima();
  435. _getch();
  436. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement