namespace ripasso2; class Program { static void Main(string[] args) { //dichiarazione e inizializzazione variabili /*È micidiale come nella prima versione avevo dichiarato circa **14** variabili diverse, mentre adesso ne ho solo 6. Le stampe finali sono così perché usare 14 variabili mi sembrava esagerato, quindi ho preferito trascrivere le espressioni che sarebbero state assegnate alle variabili. Tanto il processore è velocissimo a fare quattro operazioni, non lo considero inefficiente lì, invece la memoria non è infinita e usare il minor numero di variabili è solo un bene*/ int nElementiVentiDue = 0, nElementiDieci = 0; double prezzo, totArticoliIvaVentiDue = 0, totArticoliIvaDieci = 0; string scelta; const int ivaDieci = 10; const int ivaVentiDue = 22; const int spedizione = 10; const double assicurazione = 0.02; do { //inserimento prezzo do { Console.Write("Inserire il prezzo dell'articolo: "); prezzo = Convert.ToDouble(Console.ReadLine()); if (prezzo <= 0) { Console.WriteLine("Il prezzo non può essere zero o inferiore"); } } while (prezzo <= 0); //decisione imposta da applicare do { Console.Write("Applicare l'imposta del 22% o del 10%? "); scelta = Console.ReadLine(); switch (scelta) { case "10": //(Convert.ToString(ivaDieci)) non era valido totArticoliIvaDieci = totArticoliIvaDieci + prezzo; nElementiDieci++; break; case "22": //(Convert.ToString(ivaVentiDue)) non era valido totArticoliIvaVentiDue = totArticoliIvaVentiDue + prezzo; nElementiVentiDue++; break; default: Console.WriteLine("Scelta non valida, inserire [10] o [22]"); break; } } while (scelta != Convert.ToString(ivaDieci) && scelta != Convert.ToString(ivaVentiDue)); //scelta di continuare do { Console.WriteLine("Continuare? [S/N] "); scelta = Console.ReadLine(); if (scelta != "N" && scelta != "S") { Console.WriteLine("Opzione non valida"); } } while (scelta != "N" && scelta != "S"); } while (scelta == "S"); //scelta di spedire do { Console.Write("Spedire? [S/N] "); scelta = Console.ReadLine(); if (scelta != "N" && scelta != "S") { Console.WriteLine("Opzione non valida"); } } while (scelta != "N" && scelta != "S"); //risultati Console.WriteLine("Totale prodotti con IVA 10%: " + (totArticoliIvaDieci + totArticoliIvaDieci * ivaDieci / 100)); Console.WriteLine("Totale prodotti con IVA 22%: " + (totArticoliIvaVentiDue + totArticoliIvaVentiDue * ivaVentiDue / 100)); Console.WriteLine("Totale IVA 10%: " + (totArticoliIvaDieci * ivaDieci / 100)); Console.WriteLine("Totale IVA 22%: " + (totArticoliIvaVentiDue * ivaVentiDue / 100)); if (scelta == "S") { Console.WriteLine("Spedizione prodotti con IVA 10%: " + (spedizione * nElementiDieci)); Console.WriteLine("Spedizione prodotti con IVA 22%: " + (spedizione * nElementiVentiDue)); Console.WriteLine("Assicurazione prodotti con IVA 10%: " + (totArticoliIvaDieci * assicurazione)); Console.WriteLine("Assicurazione prodotti con IVA 22%: " + (totArticoliIvaVentiDue * assicurazione)); Console.WriteLine("Totale spedizione prodotti con IVA 10%: " + ((spedizione * nElementiDieci) + (totArticoliIvaDieci + totArticoliIvaDieci * ivaDieci / 100) * assicurazione)); // |Totale spedizione IVA 10% | |Totale assicurazione prodotti IVA 10% | Console.WriteLine("Totale spedizione prodotti con IVA 22%: " + ((spedizione * nElementiVentiDue) + (totArticoliIvaVentiDue + totArticoliIvaVentiDue * ivaVentiDue / 100) * assicurazione)); // |Totale spedizione IVA 22% | |Totale assicurazione prodotti IVA 22% | Console.WriteLine("Totale complessivo: " + ((totArticoliIvaDieci + totArticoliIvaDieci * ivaDieci / 100) + (totArticoliIvaVentiDue + totArticoliIvaVentiDue * ivaVentiDue / 100) + (spedizione * nElementiDieci) + (totArticoliIvaDieci * assicurazione) + (spedizione * nElementiVentiDue) + (totArticoliIvaVentiDue * assicurazione))); // |Totale dei prodotti con IVA 10% | |Totale dei prodotti con IVA 22% | |Totale spedizione IVA 10% | |Totale assicurazione - IVA 10% | |Totale spedizione IVA 22% | |Totale assicurazione prodotti IVA 22% | } else { Console.WriteLine("Totale complessivo: " + ((totArticoliIvaDieci + totArticoliIvaDieci * ivaDieci / 100) + (totArticoliIvaVentiDue + totArticoliIvaVentiDue * ivaVentiDue / 100))); // |Totale dei prodotti con IVA 10% | |Totale dei prodotti con IVA 22% | } } }