156 lines
4.7 KiB
C#
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);
|
|
}
|
|
} |