Guest User

Untitled

a guest
May 9th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.09 KB | None | 0 0
  1. using System;
  2. using System.ComponentModel;
  3. using System.Globalization;
  4. using System.IO;
  5. using System.Runtime.InteropServices.WindowsRuntime;
  6.  
  7. namespace Gara_di_Scii
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. int x=0;
  14. int[,] tempi = null; ;
  15. string[] lista = null;
  16. do
  17. {
  18.  
  19. Console.WriteLine(@"1) inserire il numero n di atleti (n viene restituito al main come valore di ritorno)
  20. 2) inserire in un array di stringhe i nomi degli atleti (la gestione dell'array è a scelta del programmatore)
  21. 3) inserire in una matrice di interi nx2 (dove n è il numero degli atleti) i tempi delle due manches (si possono inserire manualmente oppure utilizzare valori random)
  22. 4) visualizzare i dati inseriti (ben incolonnati!)
  23. 5) cercare e restituire il vincitore della prima manche (sarà compito del main visualizzare il nome del vincitore)
  24. 6) cercare e restituire il vincitore della seconda manche (sarà compito del main visualizzare il nome del vincitore)
  25. 7) visualizzare la classifica della prima manche, senza modificare i dati (usare array di appoggio. vedi metodo Copy della classe Array)
  26. 8) visualizzare la classifica dalla seconda manche, senza modificare i dati (usare array di appoggio)
  27. 9) visualizzare la classifica finale, senza modificare i dati (usare array di appoggio)
  28. 10) tempo medio della prima manche
  29. 11) tempo medio della seconda manche
  30. 12) passato al metodo il nome di uno sciatore, restituire al main se lo sciatore esiste, i tempi delle due manches ed il tempo totale)
  31. 13)Esci");
  32. bool ok = false;
  33. int num=0;
  34. do
  35. {
  36. Console.WriteLine("Inserisci la tua scelta: ");
  37. ok = Int32.TryParse(Console.ReadLine(), out num);
  38. } while (!ok && (num < 1 || num > 13));
  39. switch (num)
  40. {
  41. case 1:
  42. x = Atleti();
  43. lista = new string[x];
  44. Inserimento(ref lista);
  45. break;
  46. case 2:
  47. lista = new string[x];
  48. break;
  49. case 3:
  50. tempi = new int[x, 2];
  51. Tempi(tempi, x);
  52. break;
  53. case 4:
  54. Visualizzazione(tempi, lista);
  55. break;
  56. case 5:
  57. Console.WriteLine(lista[RicercaMin(tempi, 0)]);
  58. break;
  59. case 6:
  60. Console.WriteLine(lista[RicercaMin(tempi, 1)]);
  61. break;
  62. case 7:
  63. int[,] ctempi = new int[x, 2];
  64. string[] clista = new string[x];
  65. Array.Copy(tempi, ctempi, tempi.Length);
  66. Array.Copy(lista, clista, x);
  67. Ordinamento(ctempi, 0, clista);
  68. Visualizzazione(ctempi, clista);
  69. break;
  70. case 8:
  71. int[,] ctempi2 = new int[x, 2];
  72. string[] clista2 = new string[x];
  73. Array.Copy(tempi, ctempi2, tempi.Length);
  74. Array.Copy(lista, clista2, x);
  75. Ordinamento(ctempi2, 1, clista2);
  76. Visualizzazione(ctempi2, clista2);
  77. break;
  78.  
  79. case 10:
  80. Console.WriteLine(Media(tempi, 0));
  81. break;
  82. case 11:
  83. Console.WriteLine(Media(tempi, 1));
  84. break;
  85. case 12:
  86. Console.WriteLine("Inserisci il nome: ");
  87. string nome = Console.ReadLine();
  88. int pos = UltimoProgramma(lista, nome);
  89. if (pos != -1)
  90. Console.WriteLine("Il giocatore {0} esiste ed ha tempi {1}, {2}, {3}", nome, tempi[pos, 0], tempi[pos, 1], tempi[pos, 0] + tempi[pos, 1]);
  91. else
  92. Console.WriteLine("Hai sbagliato il nome");
  93.  
  94. Inserimento(ref lista);
  95. break;
  96. case 13:
  97. Console.WriteLine("Sei uscito dal programma");
  98. break;
  99. }
  100.  
  101.  
  102. } while (num!=13);
  103. }
  104.  
  105.  
  106. private static int UltimoProgramma(string[] lista, string nome)
  107. {
  108. int pos = -1;
  109. for (int i = 0; i < lista.Length; i++)
  110. if (lista[i] == nome)
  111. pos = i;
  112. return pos;
  113. }
  114.  
  115. private static double Media(int[,] tempi, int colonna)
  116. {
  117. int somma=0;
  118. for(int i = 0; i < tempi.GetLength(1); i++)
  119. {
  120. somma += tempi[i, colonna];
  121. }
  122. double media = Convert.ToDouble(somma) / tempi.GetLength(1);
  123. return media;
  124. }
  125.  
  126. private static void Visualizzazione(int[,] tempi, string[] lista)
  127. {
  128. for (int i = 0; i < lista.Length; i++)
  129. Console.WriteLine("{0, 20} {1, -2} {2,-2}",lista[i],tempi[i,0],tempi[i,1]);
  130. }
  131.  
  132. private static int RicercaMin(int[,] tempi, int manche)
  133. {
  134. int min = 0;
  135. for(int i = 1; i < tempi.GetLength(1); i++)
  136. {
  137. if (tempi[manche, min] > tempi[manche, i])
  138. min = i;
  139. }
  140. return min;
  141. }
  142.  
  143. private static void Ordinamento(int[,] tempi,int colonna,string[]lista)
  144.  
  145. {
  146.  
  147. bool end = false;
  148. while (!end)
  149. {
  150. end = true;
  151. for(int i = 0; i < tempi.GetLength(1) - 1; i++)
  152. {
  153. if (tempi[i, colonna] > tempi[i + 1, colonna])
  154. {
  155. int temp = tempi[i, 0];
  156. tempi[i, 0] = tempi[i + 1, 0];
  157. tempi[i + 1, 0] = temp;
  158.  
  159. temp = tempi[i, 1];
  160. tempi[i, 1] = tempi[i + 1, 1];
  161. tempi[i + 1, 1] = temp;
  162.  
  163. string stmp = lista[i];
  164. lista[i] = lista[i + 1];
  165. lista[i + 1] = stmp;
  166. end = false;
  167. }
  168. }
  169. }
  170. }
  171.  
  172. static void Tempi(int[,]tempi,int x)
  173. {
  174. Random generatore = new Random();
  175. for(int i = 0; i < 2; i++)
  176. {
  177. for(int j = 0; j < x; j++)
  178. {
  179. tempi[j,i] = generatore.Next(0, 100);
  180. }
  181. }
  182. }
  183.  
  184. static void Inserimento(ref string[] lista)
  185. {
  186. string temp;
  187. for(int i = 0; i <lista.Length; i++)
  188. {
  189.  
  190. do
  191. {
  192. Console.WriteLine("Inserisci il nome dell'atleta");
  193. temp = Console.ReadLine();
  194. if (temp == "")
  195. {
  196. Console.WriteLine("Non deve essere lasciato vuoto!");
  197. }
  198. } while (temp == "");
  199. lista[i] = temp;
  200. }
  201. }
  202.  
  203. static int Atleti()
  204. {
  205. int numero;
  206. bool condizione=true;
  207. do
  208. {
  209.  
  210. Console.WriteLine("Inserire il numero degli atleti: ");
  211. condizione = Int32.TryParse(Console.ReadLine(), out numero);
  212. if (!condizione)
  213. Console.WriteLine("Inserire un intero");
  214.  
  215. }
  216. while (!condizione);
  217. return numero;
  218. }
  219. }
  220. }
Advertisement
Add Comment
Please, Sign In to add comment