- Curso
- Matrices
- Comando Banner en Unix
Comando Banner en Unix
Última actualización:
23/08/2020
⁃
Dificultad:
Intermedio
Cree un programa en C# que imite la funcionalidad del comando banner en Unix. Internamente tendrá que utilizar una matriz de varias dimensiones para almacenar los caracteres. Fíjese que distingue entre mayúsculas y minúsculas.
Para probarlo solicite un texto al usuario y muestre el resultado del banner en pantalla.
Entrada
Hola!
Salida
# # ###
# # #### # ## ###
# # # # # # # ###
####### # # # ###### #
# # # # # # #
# # # # # # # ###
# # #### ###### # # ###
Solución
using System;
public class ComandoBannerUnix
{
static void Main(string[] args)
{
string texto = Console.ReadLine();
byte j = 1;
char letra;
int[] codigoAscii = new int[texto.Length];
// Desde texto a código ascii
for (int i = 0; i < texto.Length; i++)
{
letra = Convert.ToChar(texto.Substring(i, j));
codigoAscii[i] = Convert.ToInt32(letra);
}
int tamanyoLetras = 7,
numeroAscii = 32,
contadorLineas = 0,
contadorLetras = 0,
contador = 0;
bool letraEncontrada = false;
string[] resultado = new string[tamanyoLetras];
for (int i = 0; i < codigoAscii.Length; i++)
{
for (int fila = 0; fila < letras.Length; fila++)
{
if (contadorLetras == 8)
{
fila += tamanyoLetras - 1;
contadorLetras = 0;
contador = 0;
}
while ((!letraEncontrada) && (contadorLetras < 8))
{
if (codigoAscii[i] == numeroAscii)
letraEncontrada = true;
else
{
numeroAscii++;
contador += tamanyoLetras;
contadorLetras++;
}
}
if ((letraEncontrada) && (contadorLineas < 7))
{
if (i > 0)
{
resultado[contadorLineas] = resultado[contadorLineas] + letras[fila].Substring(contador, tamanyoLetras);
}
else
{
resultado[contadorLineas] = letras[fila].Substring(contador, tamanyoLetras);
}
contadorLineas++;
}
}
contador = 0;
contadorLineas = 0;
contadorLetras = 0;
numeroAscii = 32;
letraEncontrada = false;
}
for (int i = 0; i < resultado.Length; i++)
{
Console.WriteLine(resultado[i]);
}
}
static string[] letras = {
" ### ### ### # # ##### ### # ## ### ",
" ### ### ### # # # # ## # # # # ### ",
" ### # # ######## # ### # ## # ",
" # # # ##### # ### # ",
" ####### # # # #### # # ",
" ### # # # # # # # ## # ",
" ### # # ##### # ### #### # ",
" ## ## #",
" # # # # # # ",
" # # # # # # ",
" # # ####### ##### ### ##### # ",
" # # # # # ### ### # ",
" # # # # # # ### # ",
" ## ## # ### # ",
" ### # ##### ##### # ####### ##### #######",
" # # ## # ## ## # # # ## # ",
"# # # # # ## # # # # ",
"# # # ##### ##### # # ###### ###### # ",
"# # # # ######## ## # # ",
" # # # # # # # # ## # # ",
" ### ##### ####### ##### # ##### ##### # ",
" ##### ##### # ### # # ##### ",
"# ## # ### ### # # # #",
"# ## # # # ##### # #",
" ##### ###### ### # # ## ",
"# # # # ### # ##### # # ",
"# ## # ### # # # ",
" ##### ##### # # # # # ",
" ##### # ###### ##### ###### ############## ##### ",
"# # # # # ## ## ## # # #",
"# ### # # # # ## # ## # # ",
"# # # ## ####### # # ###### ##### # ####",
"# #### ######## ## # ## # # #",
"# # ## ## ## ## # # #",
" ##### # ####### ##### ###### ######## ##### ",
"# # ### ## # # # ## ########",
"# # # ## # # ## #### ## #",
"# # # ## # # # # # ## # ## #",
"####### # #### # # # ## # ## #",
"# # # # ## # # # ## # ## #",
"# # # # ## # # # ## ### #",
"# # ### ##### # # ######## ## ########",
"###### ##### ###### ##### ######## ## ## #",
"# ## ## ## # # # ## ## # #",
"# ## ## ## # # ## ## # #",
"###### # ####### ##### # # ## ## # #",
"# # # ## # # # # # # # # # #",
"# # # # # # # # # # # # # # #",
"# #### ## # ##### # ##### # ## ## ",
"# ## ######## ##### # ##### # ",
" # # # # # # # # # # ",
" # # # # # # # # # # ",
" # # # # # # ",
" # # # # # # # ",
" # # # # # # # ",
"# # # ####### ##### # ##### #######",
" ### ",
" ### ## ##### #### ##### ###### ###### #### ",
" # # # # # # # # # # # # #",
" ###### # # # # # # # # ###",
" # # # ##### # # # ##### ##### # ",
" # # # # # # # # # # # #",
" # # ##### #### ##### ###### # #### ",
" ",
" # # # # # # # # # # # #### ",
" # # # # # # # ## ## ## # # #",
" ###### # # #### # # ## # # # # # #",
" # # # # # # # # # # # # # #",
" # # # # # # # # # # # ## # #",
" # # # #### # # ###### # # # # #### ",
" ",
" ##### #### ##### #### ##### # # # # # #",
" # # # # # # # # # # # # # #",
" # # # # # # #### # # # # # # #",
" ##### # # # ##### # # # # # # # ## #",
" # # # # # # # # # # # # ## ##",
" # ### # # # #### # #### ## # #",
" ### # ### ## # # # #",
" # # # # ###### # # # # # # # # # ",
" # # # # # # # # ## # # # #",
" ## # # ## ## # # # ",
" ## # # # # # # # # #",
" # # # # # # # # # # ",
" # # # ###### ### # ### # # # #"
};
}