Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.ComponentModel;
- using System.Globalization;
- using System.IO;
- using System.Runtime.InteropServices.WindowsRuntime;
- namespace Gara_di_Scii
- {
- class Program
- {
- static void Main(string[] args)
- {
- int x=0;
- int[,] tempi = null; ;
- string[] lista = null;
- do
- {
- Console.WriteLine(@"1) inserire il numero n di atleti (n viene restituito al main come valore di ritorno)
- 2) inserire in un array di stringhe i nomi degli atleti (la gestione dell'array è a scelta del programmatore)
- 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)
- 4) visualizzare i dati inseriti (ben incolonnati!)
- 5) cercare e restituire il vincitore della prima manche (sarà compito del main visualizzare il nome del vincitore)
- 6) cercare e restituire il vincitore della seconda manche (sarà compito del main visualizzare il nome del vincitore)
- 7) visualizzare la classifica della prima manche, senza modificare i dati (usare array di appoggio. vedi metodo Copy della classe Array)
- 8) visualizzare la classifica dalla seconda manche, senza modificare i dati (usare array di appoggio)
- 9) visualizzare la classifica finale, senza modificare i dati (usare array di appoggio)
- 10) tempo medio della prima manche
- 11) tempo medio della seconda manche
- 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)
- 13)Esci");
- bool ok = false;
- int num=0;
- do
- {
- Console.WriteLine("Inserisci la tua scelta: ");
- ok = Int32.TryParse(Console.ReadLine(), out num);
- } while (!ok && (num < 1 || num > 13));
- switch (num)
- {
- case 1:
- x = Atleti();
- lista = new string[x];
- Inserimento(ref lista);
- break;
- case 2:
- lista = new string[x];
- break;
- case 3:
- tempi = new int[x, 2];
- Tempi(tempi, x);
- break;
- case 4:
- Visualizzazione(tempi, lista);
- break;
- case 5:
- Console.WriteLine(lista[RicercaMin(tempi, 0)]);
- break;
- case 6:
- Console.WriteLine(lista[RicercaMin(tempi, 1)]);
- break;
- case 7:
- int[,] ctempi = new int[x, 2];
- string[] clista = new string[x];
- Array.Copy(tempi, ctempi, tempi.Length);
- Array.Copy(lista, clista, x);
- Ordinamento(ctempi, 0, clista);
- Visualizzazione(ctempi, clista);
- break;
- case 8:
- int[,] ctempi2 = new int[x, 2];
- string[] clista2 = new string[x];
- Array.Copy(tempi, ctempi2, tempi.Length);
- Array.Copy(lista, clista2, x);
- Ordinamento(ctempi2, 1, clista2);
- Visualizzazione(ctempi2, clista2);
- break;
- case 10:
- Console.WriteLine(Media(tempi, 0));
- break;
- case 11:
- Console.WriteLine(Media(tempi, 1));
- break;
- case 12:
- Console.WriteLine("Inserisci il nome: ");
- string nome = Console.ReadLine();
- int pos = UltimoProgramma(lista, nome);
- if (pos != -1)
- 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]);
- else
- Console.WriteLine("Hai sbagliato il nome");
- Inserimento(ref lista);
- break;
- case 13:
- Console.WriteLine("Sei uscito dal programma");
- break;
- }
- } while (num!=13);
- }
- private static int UltimoProgramma(string[] lista, string nome)
- {
- int pos = -1;
- for (int i = 0; i < lista.Length; i++)
- if (lista[i] == nome)
- pos = i;
- return pos;
- }
- private static double Media(int[,] tempi, int colonna)
- {
- int somma=0;
- for(int i = 0; i < tempi.GetLength(1); i++)
- {
- somma += tempi[i, colonna];
- }
- double media = Convert.ToDouble(somma) / tempi.GetLength(1);
- return media;
- }
- private static void Visualizzazione(int[,] tempi, string[] lista)
- {
- for (int i = 0; i < lista.Length; i++)
- Console.WriteLine("{0, 20} {1, -2} {2,-2}",lista[i],tempi[i,0],tempi[i,1]);
- }
- private static int RicercaMin(int[,] tempi, int manche)
- {
- int min = 0;
- for(int i = 1; i < tempi.GetLength(1); i++)
- {
- if (tempi[manche, min] > tempi[manche, i])
- min = i;
- }
- return min;
- }
- private static void Ordinamento(int[,] tempi,int colonna,string[]lista)
- {
- bool end = false;
- while (!end)
- {
- end = true;
- for(int i = 0; i < tempi.GetLength(1) - 1; i++)
- {
- if (tempi[i, colonna] > tempi[i + 1, colonna])
- {
- int temp = tempi[i, 0];
- tempi[i, 0] = tempi[i + 1, 0];
- tempi[i + 1, 0] = temp;
- temp = tempi[i, 1];
- tempi[i, 1] = tempi[i + 1, 1];
- tempi[i + 1, 1] = temp;
- string stmp = lista[i];
- lista[i] = lista[i + 1];
- lista[i + 1] = stmp;
- end = false;
- }
- }
- }
- }
- static void Tempi(int[,]tempi,int x)
- {
- Random generatore = new Random();
- for(int i = 0; i < 2; i++)
- {
- for(int j = 0; j < x; j++)
- {
- tempi[j,i] = generatore.Next(0, 100);
- }
- }
- }
- static void Inserimento(ref string[] lista)
- {
- string temp;
- for(int i = 0; i <lista.Length; i++)
- {
- do
- {
- Console.WriteLine("Inserisci il nome dell'atleta");
- temp = Console.ReadLine();
- if (temp == "")
- {
- Console.WriteLine("Non deve essere lasciato vuoto!");
- }
- } while (temp == "");
- lista[i] = temp;
- }
- }
- static int Atleti()
- {
- int numero;
- bool condizione=true;
- do
- {
- Console.WriteLine("Inserire il numero degli atleti: ");
- condizione = Int32.TryParse(Console.ReadLine(), out numero);
- if (!condizione)
- Console.WriteLine("Inserire un intero");
- }
- while (!condizione);
- return numero;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment