funzioni_2_1/Program.cs
2024-11-22 19:28:52 +01:00

257 lines
9.8 KiB
C#

namespace funzioni_2_1;
class Program
{
static void Main(string[] args){ //ci sono eccezioni se viene inserito il nulla ovunque ci sia un Console.ReadLine convertito in altro tipo
Console.Clear();
//dichiarazione e inizializzazione variabili
bool exit=false;
int scelta;
string stringa;
char punteggiatura;
//menù
do{
Console.WriteLine("Scegliere una delle seguenti opzioni:");
Console.WriteLine("1. Trova il nome del mese");
Console.WriteLine("2. Trova il prezzo più conveniente");
Console.WriteLine("3. Cerca nella frase");
Console.WriteLine("0. Esci");
Console.Write("Scelta: ");
scelta=Convert.ToInt32(Console.ReadLine());
switch (scelta){
case 0:
exit=true;
break;
case 1:
Mese();
break;
case 2:
Convenienza();
break;
case 3:
//input
Console.Write("Inserire una stringa: ");
stringa=Console.ReadLine();
//output parziale
Console.WriteLine("La stringa contiene uno spazio " + GrepScrauso(stringa, ' ') + " volte");
Console.WriteLine("La stringa contiene la lettera 'a' " + (GrepScrauso(stringa, 'a')+GrepScrauso(stringa, 'A')) + " volte");//sommo tutte le ricorrenze della a sia maiuscola che minuscola per trovare tutte le ricorrenze della lettera a case insensitive
//richiesta segno di punteggiatura
Console.WriteLine("Inserire uno tra questi segni di punteggiatura");
Console.WriteLine("[?] [!] [:] [;] [.] [,]");
Console.Write("Scelta: ");
punteggiatura=Convert.ToChar(Console.ReadLine());
//output finale
Console.WriteLine("La stringa contiene " + punteggiatura + " " + GrepScrauso(stringa, punteggiatura) + " volte");
Console.WriteLine("Premere invio per continuare..");
Console.ReadLine();
Console.Clear();
break;
default:
Console.WriteLine("Scelta non valida");
break;
}
}
while (exit==false);
}
static void Mese(){
Console.Clear();
//dichiarazione e inizializzazione delle variabili
int giorno, mese;
bool invalid=false;
//tabella dei mesi
const string mese1="Gennaio";
const string mese2="Febbraio";
const string mese3="Marzo";
const string mese4="Aprile";
const string mese5="Maggio";
const string mese6="Giugno";
const string mese7="Luglio";
const string mese8="Agosto";
const string mese9="Settembre";
const string mese10="Ottobre";
const string mese11="Novembre";
const string mese12="Dicembre";
//ciclo per verificare che la data sia valida
do{
do{
Console.Write("Inserire il giorno: ");
giorno=Convert.ToInt32(Console.ReadLine());
if (giorno<=0 || giorno>31){
Console.WriteLine("Giorno non valido");
}
}
while (giorno<=0 || giorno>31);
Console.Clear();
do{
Console.WriteLine("Inserire il mese");
Console.Write("Data inserita: " +giorno + "/");
mese=Convert.ToInt32(Console.ReadLine());
if (mese<=0 || mese>12){
Console.WriteLine("Mese non valido");
}
}
while (mese<=0 || mese>12);
Console.Clear();
Console.WriteLine("Data inserita: " +giorno + "/" +mese);
//verifico che la data inserita sia valida
switch ((giorno, mese)){
case (29, 2):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
case (30, 2):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
case (31, 2):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
case (31, 4):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
case (31, 6):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
case (31, 9):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
case (31, 11):
Console.WriteLine("Data inserita non valida");
invalid=true;
break;
default:
invalid=false;
break;
}
}
while (invalid==true);
switch(mese){
case 1:
Console.WriteLine("La data inserita è " +giorno + " " + mese1);
break;
case 2:
Console.WriteLine("La data inserita è " +giorno + " " + mese2);
break;
case 3:
Console.WriteLine("La data inserita è " +giorno + " " + mese3);
break;
case 4:
Console.WriteLine("La data inserita è " +giorno + " " + mese4);
break;
case 5:
Console.WriteLine("La data inserita è " +giorno + " " + mese5);
break;
case 6:
Console.WriteLine("La data inserita è " +giorno + " " + mese6);
break;
case 7:
Console.WriteLine("La data inserita è " +giorno + " " + mese7);
break;
case 8:
Console.WriteLine("La data inserita è " +giorno + " " + mese8);
break;
case 9:
Console.WriteLine("La data inserita è " +giorno + " " + mese9);
break;
case 10:
Console.WriteLine("La data inserita è " +giorno + " " + mese10);
break;
case 11:
Console.WriteLine("La data inserita è " +giorno + " " + mese11);
break;
case 12:
Console.WriteLine("La data inserita è " +giorno + " " + mese12);
break;
}
Console.WriteLine("Premere invio per continuare...");
Console.ReadLine();
Console.Clear();
}
static void Convenienza(){
Console.Clear();
//dichiarazione e inizializzazione delle variabili
double prezzo1, sconto1, prezzo2, sconto2;
//input + controlli (i prezzi negativi sarebbe bello se ci fossero ma non esistono)
do{
Console.Write("Inserire il prezzo del primo articolo: ");
prezzo1=Convert.ToDouble(Console.ReadLine());
if (prezzo1<=0){
Console.WriteLine("Prezzo non valido");
}
}
while (prezzo1<=0);
do{
Console.Write("Inserire la percentuale di sconto del primo articolo (senza %): ");
sconto1=Convert.ToDouble(Console.ReadLine());
if (sconto1<0){
Console.WriteLine("Sconto non valido");
}
}
while (sconto1<0);
do{
Console.Write("Inserire il prezzo del secondo articolo: ");
prezzo2=Convert.ToDouble(Console.ReadLine());
if (prezzo2<=0){
Console.WriteLine("Prezzo non valido");
}
}
while (prezzo2<=0);
do{
Console.Write("Inserire la percentuale di sconto del secondo articolo (senza %): ");
sconto2=Convert.ToDouble(Console.ReadLine());
if (sconto2<=0){
Console.WriteLine("Sconto non valido");
}
}
while (sconto2<0);
//verifica dell'articolo più conveniente
Console.Clear();
if(Scontarello(prezzo1, sconto1) > Scontarello(prezzo2, sconto2)){
Console.WriteLine("Conviene di più il primo articolo");
}
else if(Scontarello(prezzo1, sconto1) < Scontarello(prezzo2, sconto2)){
Console.WriteLine("Conviene di più il primo articolo");
}
else if(Scontarello(prezzo1, sconto1) == Scontarello(prezzo2, sconto2)){
Console.WriteLine("Gli articoli hanno lo stesso prezzo");
}
//stampa dei prezzi scontati
Console.WriteLine("Prezzo finale del primo articolo: " +Scontarello(prezzo1, sconto1));
Console.WriteLine("Prezzo finale del secondo articolo: " +Scontarello(prezzo2, sconto2));
Console.WriteLine("Premere invio per continuare..");
Console.ReadLine();
Console.Clear();
}
static double Scontarello(double p_prezzo, double p_sconto){
return p_prezzo-(p_prezzo*p_sconto/100);
}
static int GrepScrauso(string p_stringa, char p_carattere){
//dichiarazione e inizializzazione variabili
int j=0;
char[] chars = p_stringa.ToCharArray(); //divido la stringa in una lista di caratteri
int lunghezza=chars.Length;//misuro la lunghezza delle righe aka conto quante righe ci sono
for (int i=0; i<lunghezza; i++){ //per ogni riga della lista
if (chars[i] == p_carattere){ //se il carattere p_carattere è presente alla riga i
j++;
}
}
return j;
}
}