strings_5/Program.cs
La Programmatrice Verde eb01b73d5d Correzione output
2025-02-27 20:03:06 +01:00

156 lines
4.7 KiB
C#

namespace strings_5;
class Program {
static void Main(string[] args) {
Menu();
}
static void Menu() {
Console.Clear();
int scelta;
string[] array = null, array2 = null;
string stringa1, stringa2;
do {
Console.WriteLine("Inserire un'opzione:");
Console.WriteLine("1. Crea array");
Console.WriteLine("2. Mostra array");
Console.WriteLine("3. Trova frase più lunga");
Console.WriteLine("4. Codifica");
Console.WriteLine("5. Mostra codifica");
Console.WriteLine("0. Esci");
Console.Write("Scelta: ");
scelta = Convert.ToInt32(Console.ReadLine());
switch (scelta) {
case 0:
break;
case 1:
Console.Clear();
array = CreaArray();
Pausa();
break;
case 2:
Console.Clear();
if (array != null) {
StampaArray(array);
}
else {
Console.WriteLine("Errore: è necessario creare l'array prima di mostrarlo.");
}
Pausa();
break;
case 3:
Console.Clear();
if (array != null) {
Console.WriteLine($"La frase più lunga è {MaxLength(array)}");
}
else {
Console.WriteLine("Errore: è necessario creare l'array prima di mostrare la frase più lunga.");
}
Pausa();
break;
case 4:
Console.Clear();
if (array != null) {
array2 = CodificaArray(array);
Console.WriteLine("Array codificato con successo");
}
else {
Console.WriteLine("Errore: è necessario creare l'array prima di codificarlo.");
}
Pausa();
break;
case 5:
Console.Clear();
if (array2 != null) {
StampaArray(array2);
}
else {
Console.WriteLine("Errore: è necessario codificare l'array prima di mostrarlo.");
}
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 Input() {
Console.Write("Inserire una frase: ");
return Console.ReadLine();
}
static string[] CreaArray() {
int dimensione;
Console.Write("Quante frasi inserire? ");
dimensione = Convert.ToInt32(Console.ReadLine());
string[] ritorno = new string[dimensione];
for (int i = 0; i < dimensione; i++) {
ritorno[i] = Input();
}
return ritorno;
}
static void StampaArray(string[] p_array) {
for (int i = 0; i < p_array.Length; i++) {
Console.WriteLine($"Elemento n.{i + 1}: {p_array[i]}");
}
}
static string MaxLength(string[] p_array) {
int max = 0, maxIndex = 0;
for (int i = 0; i < p_array.Length; i++) {
if (p_array[i].Length > max) {
max = p_array[i].Length;
maxIndex = i;
}
}
return p_array[maxIndex];
}
static string[] CodificaArray(string[] p_array) {
for (int i = 0; i < p_array.Length; i++) {
p_array[i] = Codifica(p_array[i]);
}
return p_array;
}
static string Codifica(string p_stringa) {
int codice;
char[] ritorno = new char[p_stringa.Length];
for (int i = 0; i < p_stringa.Length; i++) {
if (char.IsAsciiLetter(p_stringa[i])) {
codice = Convert.ToInt32(p_stringa[i]) + p_stringa.Length;
if (codice > 90 && codice < 97) {
codice = 65 + p_stringa.Length;
}
else if (codice > 122) {
codice = 97 + p_stringa.Length;
}
ritorno[i] = Convert.ToChar(codice);
}
else {
ritorno[i] = p_stringa[i];
}
}
return string.Join("", ritorno);
}
}