257 lines
9.8 KiB
C#
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;
|
|
}
|
|
}
|