Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Film
  8. {
  9. class Film : IComparable<Film>
  10.  
  11. {
  12. public String Cim { get; private set; }
  13. public int Ev { get; private set; }
  14. public int Koltseg { get; private set; }
  15. public int Bevetel { get; private set; }
  16. public int Nyereseg { get { return Bevetel - Koltseg; } }
  17.  
  18. public Film(String cim, int ev, int koltseg, int bevetel)
  19. {
  20. Cim = cim;
  21. Ev = ev;
  22. Koltseg = koltseg;
  23. Bevetel = bevetel;
  24. }
  25.  
  26. public override string ToString()
  27. {
  28. return Cim;
  29. }
  30.  
  31. public int CompareTo(Film o)
  32. {
  33. int kulonbseg = this.Nyereseg - o.Nyereseg;
  34.  
  35. if (kulonbseg != 0)
  36. {
  37. return kulonbseg;
  38. }
  39.  
  40. kulonbseg = this.Ev - o.Ev;
  41.  
  42. if (kulonbseg != 0)
  43. {
  44. return kulonbseg;
  45. }
  46.  
  47. kulonbseg = this.Bevetel - o.Bevetel;
  48.  
  49. if (kulonbseg != 0)
  50. {
  51. return kulonbseg;
  52. }
  53.  
  54. return this.Cim.CompareTo(o.Cim);
  55. }
  56. }
  57.  
  58.  
  59. class Program
  60. {
  61. static void Main(string[] args)
  62. {
  63.  
  64. int db = int.Parse(Console.ReadLine());
  65.  
  66. Film[] tomb = new Film[db];
  67.  
  68. for (int i = 0; i < tomb.Length; i++)
  69. {
  70.  
  71. string[] adatok = Console.ReadLine().Split(';');
  72.  
  73. String cim = adatok[0];
  74. int ev = int.Parse(adatok[1]);
  75. int koltseg = int.Parse(adatok[3]);
  76. int bevetel = int.Parse(adatok[4]);
  77.  
  78. tomb[i] = new Film(cim, ev, koltseg, bevetel);
  79. }
  80. // 1. módszer
  81. //Array.Sort(tomb);
  82.  
  83. // 2. módszer
  84. //Array.Sort(tomb, new Filmrendezo());
  85.  
  86. // 3. módszer
  87.  
  88. //Comparison<Film> myComparer = MyCompare;
  89. // Array.Sort(tomb, MyCompare);
  90.  
  91. // 4. módszer
  92. // Array.Sort(tomb, delegate (Film x, Film y)
  93. //{
  94. // int kulonbseg = x.Nyereseg - y.Nyereseg;
  95.  
  96. // if (kulonbseg != 0)
  97. // {
  98. // return kulonbseg;
  99. // }
  100.  
  101. // kulonbseg = x.Ev - y.Ev;
  102.  
  103. // if (kulonbseg != 0)
  104. // {
  105. // return kulonbseg;
  106. // }
  107.  
  108. // kulonbseg = x.Bevetel - y.Bevetel;
  109.  
  110. // if (kulonbseg != 0)
  111. // {
  112. // return kulonbseg;
  113. // }
  114.  
  115. // return x.Cim.CompareTo(y.Cim);
  116. //});
  117.  
  118. // 5. módszer
  119. //Array.Sort(tomb, (x, y) =>
  120. //{
  121. // int kulonbseg = x.Nyereseg - y.Nyereseg;
  122.  
  123. // if (kulonbseg != 0)
  124. // {
  125. // return kulonbseg;
  126. // }
  127.  
  128. // kulonbseg = x.Ev - y.Ev;
  129.  
  130. // if (kulonbseg != 0)
  131. // {
  132. // return kulonbseg;
  133. // }
  134.  
  135. // kulonbseg = x.Bevetel - y.Bevetel;
  136.  
  137. // if (kulonbseg != 0)
  138. // {
  139. // return kulonbseg;
  140. // }
  141.  
  142. // return x.Cim.CompareTo(y.Cim);
  143. //});
  144.  
  145. // 6. módszer
  146. //tomb = tomb
  147. // .OrderByDescending(film => film.Nyereseg)
  148. // .ThenByDescending(film => film.Ev)
  149. // .ThenBy(film => film.Bevetel)
  150. // .ThenBy(film => film.Cim).ToArray();
  151.  
  152. // 7. módszer
  153. tomb = (from film in tomb
  154. orderby film.Nyereseg descending, film.Ev, film.Bevetel descending, film.Cim
  155. select film).ToArray();
  156.  
  157. foreach (Film Film in tomb)
  158. {
  159. Console.WriteLine(Film);
  160. }
  161. }
  162.  
  163. static int MyCompare(Film x, Film y)
  164. {
  165. int kulonbseg = x.Nyereseg - y.Nyereseg;
  166.  
  167. if (kulonbseg != 0)
  168. {
  169. return kulonbseg;
  170. }
  171.  
  172. kulonbseg = x.Ev - y.Ev;
  173.  
  174. if (kulonbseg != 0)
  175. {
  176. return kulonbseg;
  177. }
  178.  
  179. kulonbseg = x.Bevetel - y.Bevetel;
  180.  
  181. if (kulonbseg != 0)
  182. {
  183. return kulonbseg;
  184. }
  185.  
  186. return x.Cim.CompareTo(y.Cim);
  187. }
  188.  
  189. class Filmrendezo : IComparer<Film>
  190. {
  191. public int Compare(Film x, Film y)
  192. {
  193. int kulonbseg = x.Nyereseg - y.Nyereseg;
  194.  
  195. if (kulonbseg != 0)
  196. {
  197. return kulonbseg;
  198. }
  199.  
  200. kulonbseg = x.Ev - y.Ev;
  201.  
  202. if (kulonbseg != 0)
  203. {
  204. return kulonbseg;
  205. }
  206.  
  207. kulonbseg = x.Bevetel - y.Bevetel;
  208.  
  209. if (kulonbseg != 0)
  210. {
  211. return kulonbseg;
  212. }
  213.  
  214. return x.Cim.CompareTo(y.Cim);
  215. }
  216. }
  217.  
  218. }
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement