Advertisement
amitay12123

Untitled

Nov 4th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.07 KB | None | 0 0
  1. using System;
  2.  
  3. namespace LAB3
  4. {
  5.  
  6. class AllStaticFunctions
  7. {
  8. //פעולות על מערך חד-מימדי
  9.  
  10. public static void StartArray(int[] arr)//אתחול מערך
  11. /* טענת כניסה: ארר מערך מספרים שלמים
  12. טענת יציאה: הפעולה מתאחלת כל תא בתא ע"י המשתמש*/
  13. {
  14. Console.WriteLine("enter " + arr.Length + " numbers");
  15. for (int i = 0; i < arr.Length; i++)
  16. {
  17. arr[i] = int.Parse(Console.ReadLine());
  18. }
  19. }
  20.  
  21. public static void PrintArray(int[] arr)//הדפסת מערך
  22. /*טענת כניסה: ארר מערך של מספרים שלמים
  23. טענת יציאה: הפעולה עוברת תא תא ומדפיסה אותו למסך*/
  24. {
  25. for (int i = 0; i < arr.Length; i++)
  26. {
  27. Console.Write(arr[i] + " ");
  28. }
  29. Console.WriteLine();
  30. }
  31. public static void PrintZug(int[] arr)//פעולה המדפיסה מספרים במקום הזוגי
  32. /*טענת כניסה:ארר מערך של מספרים שלמים
  33. טענת יציאה: הפעולה מדפיסה ערכים רק מהתאים הזוגיים במערך */
  34. {
  35. for (int i = 0; i < arr.Length; i += 2)
  36. {
  37. Console.Write(arr[i] + " ");
  38. }
  39. Console.WriteLine();
  40. }
  41. public static void Printeven(int[] arr)//פעולה שמדפיסה את כל המספרים הזוגיים במערך
  42. /*טענת כניסה: ארר מערך של מספרים שלמים
  43. טענת יציאה: הפעולה עוברת תא תא, בודקת האם הערך זוגי, אם כן,מדפיסה אותו למסך*/
  44. {
  45. Console.WriteLine("all the even numbers are : ");
  46. for (int i = 0; i < arr.Length; i++)
  47. {
  48. if (arr[i] % 2 == 0)
  49. {
  50. Console.Write(arr[i] + " ");
  51. }
  52. }
  53. Console.WriteLine();
  54. }
  55. public static void PrintEZugi(int[] arr)//פעולה המדפיסה מספרים במקום האיזוגי
  56. /*טענת כניסה:ארר מערך של מספרים שלמים
  57. טענת יציאה: הפעולה מדפיסה ערכים רק מהתאים האיזוגיים במערך */
  58. {
  59. for (int i = 1; i < arr.Length; i += 2)
  60. {
  61. Console.Write(arr[i] + " ");
  62. }
  63. Console.WriteLine();
  64. }
  65. public static void PrintUneven(int[] arr)//פעולה שמדפיסה את כל המספרים ה איזוגיים במערך
  66. /*טענת כניסה: ארר מערך של מספרים שלמים
  67. טענת יציאה: הפעולה עוברת תא תא, בודקת האם הערך איזוגי, אם כן,מדפיסה אותו למסך*/
  68. {
  69. Console.WriteLine("all the uneven numbers are : ");
  70. for (int i = 0; i < arr.Length; i++)
  71. {
  72. if (arr[i] % 2 != 0)
  73. {
  74. Console.Write(arr[i] + " ");
  75. }
  76. }
  77. Console.WriteLine();
  78. }
  79. public static int MaxArray(int[] arr)//חישוב המספר הגדול ביותר המערך
  80. /*טענת כניסה: ארר מערך מספרי שלמים
  81. טענת יציאה: מחשבת ומחזירה את המספר הכי גדול בכל המערך*/
  82. {
  83. int max = arr[0];
  84. for (int i = 1; i < arr.Length; i++)
  85. {
  86. if (arr[i] > max)
  87. {
  88. max = arr[i];
  89. }
  90. }
  91. return max;
  92. }
  93. public static void PrintMax(int[] arr, int max)// הדפסת המספר הגדול ביותר במערך
  94. /*טענת כניסה:: ארר מערך מספרים שלמים, מקס מספר
  95. טענת יציאה: הפעולה מחפשת את מקס במערך, וכשהיא מוצאת אותו היא מדפיסה אותו*/
  96. {
  97. for (int i = 0; i < arr.Length; i++)
  98. {
  99. if (arr[i] == max)
  100. {
  101. Console.WriteLine(arr[i]);
  102. }
  103. }
  104. }
  105. public static int MinArray(int[] arr)//חישוב המספר הקטן ביותר במערך
  106. /*טענת כניסה: ארר מערך מספרי שלמים
  107. טענת יציאה: מחשבת ומחזירה את המספר הכי קטן בכל המערך*/
  108. {
  109. int min = arr[0];
  110. for (int i = 1; i < arr.Length; i++)
  111. {
  112. if (arr[i] < min)
  113. {
  114. min = arr[i];
  115. }
  116. }
  117. return min;
  118. }
  119. public static void PrintMin(int[] arr, int min)// הדפסת המספר הקטן ביותר במערך
  120. /*טענת כניסה:: ארר מערך מספרים שלמים, מין מספר
  121. טענת יציאה: הפעולה מחפשת את מין במערך, וכשהיא מוצאת אותו היא מדפיסה אותו*/
  122. {
  123. for (int i = 0; i < arr.Length; i++)
  124. {
  125. if (arr[i] == min)
  126. {
  127. Console.WriteLine(arr[i]);
  128. }
  129. }
  130. }
  131.  
  132. public static bool IsEqual(int[] arr)//הפעולה בוקת האם כל אברי המערך שווים זה לזה
  133. /*טענת כניסה:ארר מערך מספרים שלמים
  134. טענת יציאה: הפעולה בודקת ומזירה אמת כאשר כל המספרים במערך שווים זה לזה ושקר אחרת*/
  135. {
  136. ////bool Equal = true;
  137. ////for (int i = 0; i <arr.Length; i++)
  138. ////{
  139. // //if (arr[i] != arr[0])
  140. // //{
  141. // // Equal = false;
  142. // // }
  143. ////}
  144. //return Equal;
  145. //השורות בהערה מעל הן אופציה נוספת לכתוב את הפעולה
  146. for (int i = 0; i < arr.Length; i++)
  147. {
  148. if (arr[i] != arr[0])
  149. {
  150. return false;
  151. }
  152.  
  153. }
  154. return true;
  155. }
  156. public static bool allup(int[] arr)//ערך ממויין בסדר עולה ממש(כל מספר קטן מהבא אחריו)י
  157. /*טענת כניסה: ארר מערך מספרים שלמים
  158. טענת יציאה: המערך מחזיר אמת אם המערך ממויין ושקר אחרת*/
  159. {
  160. bool istrue = true;
  161. for (int i = 0; i < arr.Length; i++)
  162. {
  163. if (arr[i] <= arr[i + 1])
  164. {
  165. istrue = false;
  166. }
  167. }
  168. return istrue;
  169. }
  170.  
  171. public static void ThirdArray(int[] arr1, int[] arr2, int[] arr3)// בניית מערך שלישי מהמספר הגדול ביותר באותו מקום משני מערכים שונים
  172. /*טענת כניסה: אאר 1,2 ו3 מערכים של מספרים שלמים
  173. טענת יציאה: הפעולה יוצרת מערך שלישי מהמספר הגדול ביותר באותו מקום משני מערכים שונים */
  174. {
  175. for (int i = 0; i < arr1.Length; i++)
  176. {
  177. if (arr1[i] > arr1[2])
  178. {
  179. arr3[i] = arr1[i];
  180. }
  181. else
  182. if (arr1[i] < arr2[i])
  183. {
  184. arr3[i] = arr2[i];
  185. }
  186. else
  187. {
  188. arr3[i] = 0;
  189. }
  190. }
  191. }
  192. public static void ShiftLArray(int[] a, int countA)//פעולה אשר לוקחת מערך ןמקום במערך, ומזיזה שמאלה מקום אחד ומאפסת את המקום האחרון
  193. /*טענת כניסה: איי מערך מספרים שלמים, קאונט איי מספר שלם
  194. טענת יציאה: הפעולה מזיזה את כל המספרים במערך מהמקום קואנט איי עד הסוף מקום אחד שמאלה, ושמה בסוף 0*/
  195. {
  196. while (a[countA] != 0 && countA < a.Length - 1)
  197. {
  198. a[countA] = a[countA + 1];
  199. countA++;
  200. }
  201. a[countA] = 0;
  202.  
  203. }
  204.  
  205. public static int SumArray(int[] arr)//פעולה אשר מחזירה לתכנית הראשית את סכום ערכי כל המערך
  206. /*טענת כניסה:ארר מערך מספרים שלמים
  207. טענת יציאה: התכנית תחשב ותחזיר את סכום התאים במערך*/
  208. {
  209. int sum = 0;
  210. for (int i = 0; i < arr.Length; i++)
  211. {
  212. sum += arr[i];
  213. }
  214. return sum;
  215. }
  216. public static double Arrayavg(int[] arr, int sum)//פעולה אשר מחזירה את ממוצע ערכי המעבר
  217. /*טענת כניסה:ארר מערך מספרים שלמים
  218. טענת יציאה: התכנית תחשב ותחזיר את ממוצע התאים במערך*/
  219. {
  220. double avg = 0;
  221. avg = sum / arr.Length;
  222. return avg;
  223. }
  224. public static void Arrsaytypeinit(int[] arr)// פעולה אשר ממיינת ערכים ע"פ סוג לתאים שונים במערך[ניתן להגדיל את הטווח ע"פ הצורך
  225. /*טענת כניסה: ארר מערך מספרים שלמים
  226. טענת יציאה: התכנית תמיין את הקלט הנכנס לפי סוגים שונים אשר נקבעו בשאלה*/
  227. {
  228. int type;
  229. Console.WriteLine("enter " + arr.Length + " numbers, to finish, enter -1");
  230. type = int.Parse(Console.ReadLine());
  231. while (type != -1 && type <= arr.Length && type > -2)
  232. {
  233. arr[type]++;
  234. Console.WriteLine("enter " + arr.Length + " numbers, to finish, enter -1");
  235. type = int.Parse(Console.ReadLine());
  236. }
  237. }
  238. public static void MakeC(int[] a, int[] b, int[] c, int count)//הפעולה בודקת האם המספר שקיבלה נמצא במערך שקיבלה, ומעבירה אותו למערך שלישי הפעולה צריכה להיות מזומנת מתוך תנאי בתוך לופ הרץ על אברי מערך אחר
  239. /*טענת כניסה: איי,בי וסי מערכי מספרים שלמים, קאונט מספר שלם
  240. טענת יצאיה: התכנית בודקת האם המספר שקיבלה נמצא במערך שקיבלה, ומעבירה אותו למערך שלישי */
  241. {
  242.  
  243. for (int i = 0; i < count; i++)
  244. {
  245. if (IfFound(b, a[i]))
  246. {
  247. c[i] = a[i];
  248. }
  249.  
  250. }
  251.  
  252. }
  253. public static void MakeNeweven(int[] scr, int[] des)//פעולה שמעבירה למערך ריק את כל המספרים הזוגיים ממערך אחר
  254. /*טענת כניסה: סורס ודסטיניישון מערכים של מספרים שלמים
  255. טענת יציאה: התכנית מעבירה למערך ריק את כל המספרים הזוגיים ממערך אחר */
  256. {
  257. for (int i = 0; i < arr.Length; i++)
  258. {
  259. int count = 0;
  260. if (arr[i] % 2 == 0)
  261. {
  262. des[count] = arr[i];
  263. }
  264. }
  265. }
  266. public static void MakeNewNegativ(int[] scr, int[] des)//פעולה שמעבירה למערך ריק את כל המספרים השליליים ממערך אחר
  267. /*טענת כניסה: סורס ודסטיניישון מערכים של מספרים שלמים
  268. טענת יציאה: התכנית מעבירה למערך ריק את כל המספרים השליליים ממערך אחר */
  269. {
  270. for (int i = 0; i < arr.Length; i++)
  271. {
  272. int count = 0;
  273. if (arr[i] < 0)
  274. {
  275. des[count] = arr[i];
  276. }
  277. }
  278. }
  279.  
  280. //פעולות על מערך דו-מימדי
  281.  
  282.  
  283. public static void StartMat(int[,] mat)//אתחול מערך דו מימדי
  284. /* טענת כניסה: מאט מטריצת מספרים שלמים
  285. טענת יציאה: הפעולה מתאחלת כל תא במטריצה ע"י המשתמש*/
  286. {
  287.  
  288. for (int i = 0; i < mat.GetLength(0); i++)
  289. {
  290. Console.WriteLine("enter " + mat.GetLength(1) + " numbers to place{0}", i);
  291. for (int j = 0; j < mat.GetLength(1); i++)
  292. {
  293. mat[i, j] = int.Parse(Console.ReadLine());
  294. }
  295. i++;
  296. }
  297. }
  298.  
  299.  
  300.  
  301.  
  302. public static int SumOfMainDiagnal(int[,] mat)//חישוב סכום האלכסון הראשי
  303. /*טענת כניסה: מאט מטריצה ריבועית שאורך צלעה N
  304. טענת יציאה: הפעולה תחשב ותחזיר את סכום ערכי התאים שנמצאים באלכסון הראשי*/
  305. {
  306. int sum = 0;
  307. for (int i = 0; i < mat.GetLength(1); i++)
  308. {
  309. sum += mat[i, i];
  310. }
  311. return sum;
  312.  
  313. }
  314. public static int SumOfMainDiagnal(int[,] mat)//חישוב סכום האלכסון הראשי
  315. /*טענת כניסה: מאט מטריצה ריבועית שאורך צלעה N
  316. טענת יציאה: הפעולה תחשב ותחזיר את סכום ערכי התאים שנמצאים באלכסון הראשי*/
  317. {
  318. int sum = 0;
  319. for (int i = 0; i < mat.GetLength(1); i++)
  320. {
  321. sum += mat[i, i];
  322. }
  323. return sum;
  324. }
  325.  
  326. public static int SumOfAboveMainDiagnal(int[,] mat)//חישוב סכום המספרים מעל האלכסון הראשי
  327. /*טענת כניסה: מאט מטריצה ריבועית שאורך צלעה N
  328. טענת יציאה: הפעולה תחשב ותחזיר את סכום ערכי התאים שנמצאים מעל האלכסון הראשי*/
  329. {
  330. int sum = 0;
  331. for (int i = 0; i < mat.GetLength(1); i++)
  332. {
  333. sum += mat[(mat.GetLength(1) + i + 1) - mat.GetLength(1), i];
  334. }
  335. return sum;
  336. }
  337. public static int SumOfBelowMainDiagnal(int[,] mat)//חישוב סכום המספרים מתחת האלכסון הראשי
  338. /*טענת כניסה: מאט מטריצה ריבועית שאורך צלעה N
  339. טענת יציאה: הפעולה תחשב ותחזיר את סכום ערכי התאים שנמצאים מתחת האלכסון הראשי*/
  340. {
  341. int sum = 0;
  342. for (int i = 0; i < mat.GetLength(1); i++)
  343. {
  344. sum += mat[i, (mat.GetLength(1) + i + 1) - mat.GetLength(1)];
  345. }
  346. return sum;
  347. }
  348.  
  349.  
  350. public static int SumOfSecondaryDiagnal(int[,] mat)//חישוב סכום האלכסון המשני
  351. /*טענת כניסה: מאט מטריצה ריבועית שאורך צלעה N
  352. טענת יציאה: הפעולה תחשב ותחזיר את סכום ערכי התאים שנמצאים באלכסון המשני*/
  353. {
  354. int sum = 0;
  355. for (int i = 0; i < mat.GetLength(1); i++)
  356. {
  357. sum += mat[mat.GetLength(1) - 1 - i, i];
  358. }
  359. return sum;
  360. }
  361. //מיון מערכים
  362.  
  363. public static int PosMin(int[] a, int start)//פעולה שרצה על המערך ומחזירה את המיקום של התא בעל הערך המינימלי במערך
  364. /*טענת כניסה: איי מערך של מספרים שלמיםת סטראט מספר שלם המייצג נק' התחלה
  365. טענת יציאה: פעולה שרצה על המערך ומחזירה את המיקום של התא בעל הערך המינימלי במערך*/
  366. {
  367. int pos = start;
  368. for (int i = start; i < a.Length; i++)
  369. {
  370. if (a[i] < a[pos])
  371. {
  372. pos = i;
  373. }
  374. }
  375. return pos;
  376. }
  377.  
  378. public static bool IsBubbleSorted(int[] a, int end)
  379. /*טענת כניסה: איי מערך מספרים שלמים ואנד הוא גבול עליון של המערך
  380. טענת יציאה: הפעולה מעבירה את האיבר הגדול ביותר למיקום האחרון ומחזירה אמת או שקר אם ביצעה שינוי במערך*/
  381. {
  382. bool issort = true;
  383. int temp;
  384. for (int i = 0; i < end; i++)
  385. {
  386. if (a[i] > a[i + 1])
  387. {
  388. temp = a[i + 1];
  389. a[i + 1] = a[i];
  390. a[i] = temp;
  391. issort = false;
  392. }
  393. }
  394. return issort;
  395. }
  396.  
  397. public static void BubbleSort(int[] a)
  398. /*טענת כניסה: איי מערך מספרים שלמים
  399. טענת יציאה: הפעולה ממיינת את במערך בשיטת מיון בועות*/
  400. {
  401. int end = a.Length - 1;
  402. bool sort = IsBubbleSorted(a, end);
  403. end--;
  404. while (!sort && end > 0)
  405. {
  406. sort = IsBubbleSorted(a, end);
  407. end--;
  408. }
  409. }
  410.  
  411. public static void InsertToArray(int[] arr, int num, int count)//פעולת מיון הכנסה
  412. /*טענת כניסה: איי מערך נאם איבר להכנסה קאונט מספר האיברים במערך
  413. טענת יציאה: הפעולה מכניסה את נאם למערך תוך שמירה על מערך ממוין*/
  414. {
  415. int pos = 0;
  416. while (arr[pos] < num && arr[pos] < count)
  417. {
  418. pos++;
  419. }
  420. for (int i = count; i > pos; i--)
  421. {
  422. arr[i] = arr[i - 1];
  423. }
  424. arr[pos] = num;
  425.  
  426. }
  427.  
  428. public static int[] InsertionSort(int size)
  429. {
  430. int[] a = new int[size];
  431. int num;
  432. for (int i = 0; i < size; i++)
  433. {
  434. Console.WriteLine("enter a real number");
  435. num = int.Parse(Console.ReadLine());
  436. InsertToArray(a, num, i);
  437. }
  438. }
  439.  
  440.  
  441. //חיפוש מערכים
  442.  
  443.  
  444. public static int BinarySearch(int[] a)
  445. {
  446. Console.WriteLine("enter " + a.Length + "sorted numbers");
  447. for (int i = 0; i < a.Length; i++)
  448. {
  449. a[i] = int.Parse(Console.ReadLine());
  450. }
  451. int low = 0, high = a.Length - 1, middle;
  452. bool isfound = false;
  453. int num;
  454. Console.WriteLine("enter a number to search");
  455. num = int.Parse(Console.ReadLine());
  456. while (!isfound && low <= high)
  457. {
  458. middle = (low + high) / 2;
  459. if (a[middle] == num)
  460. {
  461. isfound = true;
  462. }
  463. else
  464. {
  465. if (a[middle] < num)
  466. {
  467. low = middle + 1;
  468. }
  469. else
  470. {
  471. high = middle - 1;
  472. }
  473. }
  474. }
  475. if (isfound)
  476. {
  477. Console.WriteLine("the number " + num + " is in the " + middle + "th position of the array");
  478. }
  479. else
  480. {
  481. Console.WriteLine("the number " + num + " isn't in the array");
  482. }
  483. }
  484.  
  485. //מיזוג מערכים
  486.  
  487. public static int[] Merge(int[] a, int[] b)
  488. /*טענת כניסה: איי ובי מערכים ממויינים
  489. טענת יציאה: הפעולה מחזיר המערך ממויין הממזג את ערכי שני המערכים ,ואם יש שני מספרים דומים בשני המערכים, המספר יופיע פעמיים במערך הממויין*/
  490. {
  491. int[] c = new int[a.Length + b.Length];
  492. int p1 = 0, p2 = 0, p3 = 0;
  493. while (p1 < a.Length && p2 < b.Length)
  494. {
  495. if (a[p1] < b[p2])
  496. {
  497. c[p3] = a[p1];
  498. p1++;
  499. }
  500. else if (b[p2] < a[p1])
  501. {
  502. c[p3] = b[p2];
  503. p2++;
  504.  
  505. }
  506. else
  507. {
  508. c[p3] = a[p1];
  509. p3++;
  510. c[p3] = b[p2];
  511. p1++;
  512. p2++;
  513. }
  514. p3++;
  515. }
  516. while (p1 < a.Length)
  517. {
  518. c[p3] = a[p1];
  519. p1++;
  520. p3++;
  521. }
  522. while (p2 < b.Length)
  523. {
  524. c[p3] = b[p2];
  525. p2++;
  526. p3++;
  527. }
  528. return c;
  529. }
  530.  
  531. static void Main(string[] args)
  532. {
  533. Console.WriteLine("enter a number");
  534. int[] arr = new int[int.Parse(Console.ReadLine())];//יוצר מערך באורך המספר שנקלט
  535. StartArray(arr);//זימון פעולה מאתחלת
  536. PrintArray(arr);//זימון פעולה מדפיסה
  537. PrintZug(arr);//זימון פעולה המדפיסה מספרים במקום הזוגי
  538. Printeven(arr);//זימון הפעולה שמדפיסה את כל המספרים הזוגיים במערך
  539. Console.WriteLine(PrintMax(arr));//זימון הפעולה שמחזירה את המספר הגדול ביותר המערך
  540. Console.WriteLine("does all of the numbers equal?: " + IsEqual(arr));//זימון הפעולה אשר בודת האם כל המספרים שווים זה לזה ומחזירה לפי זה ערך בוליאני
  541. int[] a = new int[10];
  542.  
  543. }
  544. }
  545. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement