Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.03 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace p20_Clasa_Tablou
  9. {
  10. class tablou
  11. {
  12. private int[] a;//vectorul
  13. private int n;//nr de ele utilizate de vector
  14. //memorez valori aleatoare
  15. public tablou(int dim)
  16. {
  17. n = dim;
  18. a = new int[n];
  19. Random r = new Random();
  20. for (int i = 0; i < n; i++)
  21. a[i] = r.Next(100);
  22. }
  23. public tablou(int dim, int val)
  24. {
  25. n = dim;
  26. a = new int[n];
  27. for (int i = 0; i < n; i++)
  28. a[i] = val;
  29. }
  30. public tablou(string fisier)
  31. {
  32. StreamReader fin = new StreamReader(fisier);
  33. string linie = fin.ReadLine();
  34. string[] nr = linie.Split(new char[] { ' ' },
  35. StringSplitOptions.RemoveEmptyEntries);
  36. n = nr.Length;
  37. a = new int[n];
  38. for (int i = 0; i < n; i++)
  39. a[i] = int.Parse(nr[i]);
  40. }
  41. //supraincarc fct de conversie la string
  42. public override string ToString()
  43. {
  44. string s = String.Empty;
  45. foreach (int x in a)
  46. s = s + x + " ";
  47. return s.Trim();
  48. }
  49. /// <summary>
  50. /// returneaza prima pozitie unde apare
  51. /// x in tablou, sau -1 daca x nu apare
  52. /// </summary>
  53. /// <param name="x"></param>
  54. /// <returns></returns>
  55. public int IndexOf(int x)
  56. {
  57. for (int i = 0; i < n; i++)
  58. if (a[i] == x) return i;
  59. return -1;
  60. }
  61. public int LastIndexOf(int x)
  62. {
  63. for (int i = n-1; i > 0; i--)
  64. if (a[i] == x) return i;
  65. return -1;
  66. }
  67. public void Sorteaza()
  68. {
  69. Array.Sort(a);
  70. }
  71. //destructor
  72. ~tablou()
  73. {
  74. n = 0;
  75. a = null;
  76. }
  77. /*proprietati
  78. proprietatea este Read-Only deoarece lipseste sectiunea set
  79. *Proprietatile pot fi:
  80. * - Read-Only(doar get)
  81. * - Write-Only(doar set)
  82. * - Read-Write(si get si set)
  83. */
  84. public int Lungime
  85. {
  86. get
  87. { return n; }
  88. //set { n = value; }
  89. }
  90. public int GetMin
  91. {
  92. get
  93. {
  94. int i, m = a[0];
  95. for (i = 1; i < n; i++)
  96. if (a[i] < m) m = a[i];
  97. return m;
  98. }
  99. }
  100. public int this[int i]
  101. {
  102. get
  103. {
  104. if(i<0) i=0;
  105. if (i >= n) i = n - 1;
  106. return a[i];
  107. }
  108. set
  109. {
  110. if(i<0) i=0;
  111. if (i >= n) i = n - 1;
  112. a[i] = value;
  113. }
  114. }
  115. /// <summary>
  116. /// sterge elementul de la pozitia p
  117. /// </summary>
  118. /// <param name="p"></param>
  119. public void DeleteAt(int p)
  120. {
  121. if (p < 0) return;
  122. if (p >= n) return;
  123. int[] b;
  124. b = new int[n - 1];
  125. int i, k = 0;
  126. for (i = 0; i < n; i++)
  127. if (i != p) b[k++] = a[i];
  128. n--;
  129. a = null;
  130. a = new int[n];
  131. for (i = 0; i < n; i++)
  132. a[i] = b[i];
  133. }
  134. /// <summary>
  135. /// sterge prima valoare x din vector, daca apare in vector
  136. /// </summary>
  137. /// <param name="x"></param>
  138. public void Delete(int x)
  139. {
  140. int p;
  141. for (p = 0; p < n && a[p] != x; p++)
  142. ;
  143. if (p < n) DeleteAt(p);
  144. }
  145. /// <summary>
  146. /// sterge toate aparitiile lui x
  147. /// </summary>
  148. /// <param name="x"></param>
  149. public void DeleteAll(int x)
  150. {
  151. int i, k=0;
  152. int[] b;
  153.  
  154. b = new int[n];
  155. for (i = 0; i < n; i++)
  156. if (a[i] != x) b[k++] = a[i];
  157. a = null;
  158. n = k;
  159. a = new int[n];
  160. for (i = 0; i < n; i++)
  161. a[i] = b[i];
  162. }
  163. /// <summary>
  164. /// insereaza x la pozitia p
  165. /// </summary>
  166. /// <param name="p"></param>
  167. /// <param name="x"></param>
  168. public void Insert(int p, int x)
  169. {
  170. int i;
  171. int[] b;
  172. if (p < 0) p = 0;
  173. if (p >= n) p = n;
  174.  
  175. b = new int[n + 1];
  176. for (i = p; i < n; i++)
  177. b[i + 1] = a[i];
  178. b[p] = x;
  179. for (i = 0; i < p; i++)
  180. b[i] = a[i];
  181.  
  182. a = null;
  183. n++;
  184. a = new int[n];
  185. for (i = 0; i < n; i++)
  186. a[i] = b[i];
  187.  
  188. }
  189.  
  190. }
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement