Copiato il codice della verifica

This commit is contained in:
La Programmatrice Verde 2025-01-24 13:10:19 +01:00
parent 51ad1a6c9f
commit 7148bc27bd

View File

@ -1,9 +1,284 @@
namespace Verifica_Ripasso;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
class Program {
const int MESI_IN_UN_ANNO = 12;
static void Main(string[] args) {
Console.Clear();
//dichiarazione e inizializzazione variabili
int scelta, mediaPresenzeGennaioMarzo, mediaPresenzeGiugnoAgosto;
int[] arrayPresenze = null;
bool opzione1 = false;
string meseConMaggioriPresenze = null;
//menu ciclico
do {
Console.WriteLine("Inserire un'opzione:");
Console.WriteLine("1. Inserire le presenze");
Console.WriteLine("2. Mostra presenze");
Console.WriteLine("3. Mostra mese con maggiori presenze");
Console.WriteLine("4. Media presenze gennaio-marzo e giugno-agosto");
Console.WriteLine("5. Mostra mesi con presenze superiori alla media");
Console.WriteLine("6. Lancio dei dadi");
Console.WriteLine("0. Esci");
Console.Write("Scelta: ");
scelta = Convert.ToInt32(Console.ReadLine());
switch (scelta) {
case 0:
break;
case 1:
Console.Clear();
arrayPresenze = NumeroPresenze(arrayPresenze);
opzione1 |= true;
Pausa();
break;
case 2:
Console.Clear();
if (opzione1) {
StampaArray(arrayPresenze);
}
else {
Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle");
}
Pausa();
break;
case 3:
Console.Clear();
if (opzione1) {
meseConMaggioriPresenze = NumeroPresenzeMaggiore(arrayPresenze);
Console.WriteLine("Il mese con maggiori presenze è il mese di " + meseConMaggioriPresenze);
}
else {
Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle");
}
Pausa();
break;
case 4:
Console.Clear();
if (opzione1) {
mediaPresenzeGennaioMarzo = mediaPresenzeTreMesi(arrayPresenze, SwitchMese("gennaio"), SwitchMese("marzo"));
mediaPresenzeGiugnoAgosto = mediaPresenzeTreMesi(arrayPresenze, SwitchMese("giugno"), SwitchMese("agosto"));
Console.WriteLine("Media 1: " + mediaPresenzeGennaioMarzo);
Console.WriteLine("Media 2: " + mediaPresenzeGiugnoAgosto);
}
else {
Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle");
}
Pausa();
break;
case 5:
Console.Clear();
if (opzione1) {
MesiSopraLaMedia(arrayPresenze);
}
else {
Console.WriteLine("Bisogna inserire il numero di presenze prima di mostrarle");
}
Pausa();
break;
case 6:
Console.Clear();
LancioDelDado();
Pausa();
break;
default:
Console.WriteLine("Opzione non valida");
Pausa();
break;
}
}
while (scelta != 0);
}
static void Pausa() {
Console.WriteLine("Premere un tasto per continuare. . .");
Console.ReadKey();
Console.Clear();
}
static string SwitchMese(int p_NumeroMese) {
string nomeMese = null;
switch (p_NumeroMese) //L'indice dell'array sta ad indicare il numero del mese. Per non confondere l'utente dicendogli che gennaio è il mese 0, eseguo le operazioni con indiceInserimento-1
{
case 1:
nomeMese = "gennaio";
break;
case 2:
nomeMese = "febbraio";
break;
case 3:
nomeMese = "marzo";
break;
case 4:
nomeMese = "aprile";
break;
case 5:
nomeMese = "maggio";
break;
case 6:
nomeMese = "giugno";
break;
case 7:
nomeMese = "luglio";
break;
case 8:
nomeMese = "agosto";
break;
case 9:
nomeMese = "settembre";
break;
case 10:
nomeMese = "ottobre";
break;
case 11:
nomeMese = "novembre";
break;
case 12:
nomeMese = "dicembre";
break;
}
return nomeMese;
}
static int SwitchMese(string p_NomeMese) {
int numeroMese = 0;
switch (p_NomeMese) {
case "gennaio":
numeroMese = 1;
break;
case "febbraio":
numeroMese = 2;
break;
case "marzo":
numeroMese = 3;
break;
case "aprile":
numeroMese = 4;
break;
case "maggio":
numeroMese = 5;
break;
case "giugno":
numeroMese = 6;
break;
case "luglio":
numeroMese = 7;
break;
case "agosto":
numeroMese = 8;
break;
case "settembre":
numeroMese = 9;
break;
case "ottobre":
numeroMese = 10;
break;
case "novembre":
numeroMese = 11;
break;
case "dicembre":
numeroMese = 12;
break;
}
return numeroMese;
}
static int[] NumeroPresenze(int[] p_arrayPresenze) {
//dichiarazione e inizializzazione variabili
int input, indiceInserimento, postiDisponibili;
string nomeMese = null;
p_arrayPresenze = new int[MESI_IN_UN_ANNO];
Console.Write("Quanti posti sono disponibili? ");
postiDisponibili = Convert.ToInt32(Console.ReadLine());
for (indiceInserimento = 1; indiceInserimento <= MESI_IN_UN_ANNO; indiceInserimento++) {
nomeMese = SwitchMese(indiceInserimento); //L'indice dell'array sta ad indicare il numero del mese. Per non confondere l'utente dicendogli che gennaio è il mese 0, eseguo le operazioni con indiceInserimento-1
do {
Console.Write("Quanti ospiti sono presenti nel mese di " + nomeMese + "? ");
input = Convert.ToInt32(Console.ReadLine());
if (input < 0) {
Console.WriteLine("Non può essere inserito un numero di ospiti negativo");
Pausa();
}
else if (input > postiDisponibili) {
Console.WriteLine("Non ci sono abbastanza posti per questo numero di ospiti");
Pausa();
}
else {
p_arrayPresenze[indiceInserimento - 1] = input;
}
}
while (input < 0 || input > postiDisponibili);
}
return p_arrayPresenze;
}
static void StampaArray(int[] p_array) {
for (int i = 0; i < p_array.Length; i++) {
string nomeMese = SwitchMese(i + 1);
Console.WriteLine("Ospiti per il mese di " + nomeMese + ": " + p_array[i]);
}
}
static string NumeroPresenzeMaggiore(int[] p_array) {
//dichiarazione e inizializzazione variabili
int max = 0, indiceMax = 0;
for (int i = 0; i < p_array.Length; i++) {
if (p_array[i] > max) {
max = p_array[i];
indiceMax = i;
}
}
return SwitchMese(indiceMax + 1);
}
static int mediaPresenzeTreMesi(int[] p_array, int meseIniziale, int meseFinale) {
//dichiarazione e inizializzazione variabili
int media, somma = 0;
for (int i = meseIniziale - 1; i < meseFinale; i++) {
somma += p_array[i];
}
media = somma / 3;
return media;
}
static void MesiSopraLaMedia(int[] p_array) {
//dichiarazione e inizializzazione variabili
int somma = 0, media;
for (int i = 0; i < MESI_IN_UN_ANNO; i++) {
somma += p_array[i];
}
media = somma / MESI_IN_UN_ANNO;
for (int i = 0; i < MESI_IN_UN_ANNO; i++) {
if (p_array[i] > media) {
Console.WriteLine(SwitchMese(i + 1));
}
}
}
static void LancioDelDado() {
//dichiarazione e inizializzazione variabili
const int FACCE_DEL_DADO = 6;
int r, somma = 0, facciaPrecedente = 0;
Random caso = new Random();
do {
r = caso.Next(1, FACCE_DEL_DADO + 1);
Console.WriteLine("Faccia del dado: " + r);
somma += r;
if (somma > 50) {
break;
}
else if (facciaPrecedente == FACCE_DEL_DADO && r == FACCE_DEL_DADO) {
break;
}
facciaPrecedente = r;
} while (true);
}
}
}