Está en la página 1de 40

Algoritmos y Lógica de programación:

¿Qué es y porque es importante?

Cada vez que decidimos hacer alguna actividad en nuestro día a día, terminamos
siguiendo una secuencia lógica. La mayor parte del tiempo, lo hicimos con tanta
naturalidad que ni siquiera dimos cuenta, pero cuando damos cuenta, podemos ver los
pasos que nos llevaron al resultado final.
Ahora imagine la siguiente situación, quieres hacer un pastel:
1. Seleccionar los ingredientes de la receta;
2. Seleccionar la taza;
3. Añadir harina según la medida;
4. Seleccionar los huevos;
5. Añadir mantequilla y azúcar al gusto;
6. Añadir la leche;
7. Mezclar todos los ingredientes en la taza;
8. Verter la masa en el molde;
9. Llevar al horno;
10. Esperar 40 minutos;
11. Retirar del horno;
12. Servir el pastel.

Cada persona establece una secuencia de pasos para realizar un pastel, pudiendo
incluir o quitar algunos de estos pasos ya definidos. Esa lógica se aplica a todo lo que
hacemos a diario y muchas veces no nos damos cuenta.
En las actividades cotidianas, no tenemos que prestar atención cuando seguimos el
mismo orden para realizar las tareas. Sin embargo, cuando se trata de programar,
definir los pasos de lo que se tiene que hacer con mucha importancia, ya que
instruir a una computadora es muy diferente que instruir a una persona.
Cuando se necesita desarrollar un programa o rutina para ser ejecutado por la
computadora, es necesario dejar clara la secuencia que se debe seguir para lograr el
resultado esperado.

Esta cadena lógica en programación, la llamamos Lógica de Programación, y la


descripción de cómo hacerla, la definimos como Algoritmos.

Algoritmos
¿Qué es?
Los algoritmos son secuencias de pasos que seguimos con la intención de lograr un
objetivo, puede ser desde cruzar una calle, hacer un pastel o definir que criterio usar
para aprobar o reprobar a un alumno por ejemplo.

¿Qué se necesita para desarrollar un algoritmo?


En el desarrollo de un algoritmo, debemos definir con claridad y precisión el conjunto
de reglas o instrucciones que se utilizarán para resolver este problema específico.
Por tanto, antes de programar necesitamos saber qué hacer y planificar paso a paso,
y decidir, crear el algoritmo y evaluar si el resultado obtenido es la solución
esperada. Habiendo entendido esto, definimos un lenguaje de programación para
implementar nuestros algoritmos.

 ¿Cómo representar un algoritmo?


Hay algunas formas de representar algoritmos que se presentan como un paso de
preparación antes de la programación. Podemos crear, por ejemplo, una narrativa
similar al ejemplo del pastel, que describa la secuencia de ejecución hasta obtener el
resultado deseado.

Para mostrar las formas de representar un algoritmo, vamos a usar un algoritmo


de cálculo del promedio como ejemplo.

 En nuestro caso, vamos a analizar las calificaciones de 3 bimestres para la


disciplina de matemáticas y comprobar si el estudiante aprobó o reprobó con
un promedio mayor o igual a 7:

1. Obtener la nota del 1º bimestre;


2. Obtener la nota del 2º bimestre;
3. Obtener la nota del tercer bimestre;
4. Realizar el cálculo del promedio para cada alumno (mayor o igual a 7 para
la aprobación);
5. Indicar si el alumno ha sido "aprobado o reprobado";
6. Informar el promedio obtenido por el alumno.

Diagrama de flujo
Tenga en cuenta que en forma de texto narrativo o incluido en otras formas de
representación, se desea que el algoritmo sea objetivo y preciso en la descripción de
cada paso. También existe la opción de usar un diseño visual como diagrama de
flujo, como se ve en la siguiente imagen:
Pseudolenguaje
Otra forma muy interesante de representar algoritmos es utilizar un pseudolenguaje,
que hemos escrito en español (también llamado español estructurado) sin
ambigüedades y sin toda la rigidez de un lenguaje de programación.
Es importante notar que en un pseudo-código se escribe con oraciones que
corresponden a estructuras usadas en un lenguaje de programación,
representadas en mayúsculas en el siguiente ejemplo:

Algoritmo CalcularPromedioAlumnos
LEER Nota1
LEER Nota2
LEER Nota3
promedio = (Nota1+Nota2+Nota3)/3
SI PROMEDIO >= 6 ENTONCES
IMPRIME "Aprobado"
SINO
IMPRIME "Reprobado"
SE TERMINA
IMPRIME el valor del promedio
Fin-Algoritmo CalcularPromedioAlumnos
Lógica de Programación
¿Cuál es la lógica de programación?

En la lógica de programación es donde aplicamos todos los conceptos de


algoritmos, la definición paso a paso y trasladamos toda la lógica del algoritmo
desarrollado a un lenguaje de programación.
En términos generales, la lógica de programación es un conjunto de reglas y
conceptos que necesitamos aplicar para crear códigos que serán interpretados y
ejecutados por una computadora.

¿Lo que falta?


Para lograr el objetivo de instruir a la computadora para que haga algo, necesitamos
un lenguaje de programación, que es un medio estructurado para enviar
instrucciones a la máquina.

Para eso, tenemos disponible una gama muy amplia de lenguajes como: C, Java, PHP,
Python, JavaScript, entre otros. Cada uno de ellos tiene sus características,
particularidades y escenarios de aplicación.

Ejemplos de código y algoritmos


Vayamos ahora a un ejemplo de la codificación del algoritmo promedio usando un
lenguaje de programación. Elegido para representación fue lengua C.**

//Lenguaje C

int main(int argc, char *argv[]) {

setlocale(LC_ALL, "Spanish");

float nota1=0;

float nota2=0;

float nota3=0;

float media=0;

printf("Ingrese nota 1: ");

scanf("%f",&nota1);

printf("Ingrese nota 2: ");

scanf("%f",&nota2);

printf("Ingrese nota 3: ");

scanf("%f",&nota3);

promedio = (nota1+nota2+nota3)/3;
if(promedio>=6){

printf("Alumno aprobado.\n");

else{

printf("Alumno reprobado.\n");

printf("Promedio del alumno es: %f",media);

En términos de codificación en C, tenemos la implementación del algoritmo previamente


desarrollado, pero ahora después de elegir un lenguaje de programación, debemos
ajustarnos a sus propias reglas de sintaxis (estructura de escritura)
y semántica ( significado de los símbolos y comandos).

Es importante señalar que el lenguaje de programación elegido es solo una


herramienta pero, como desarrollador o desarrolladora, necesitará saberlo. La idea del
algoritmo no está vinculada a ningún lenguaje específico, tenga en cuenta el
mismo algoritmo para calcular el promedio usando el lenguaje C#:

// Lenguaje C#
static void Main(string[] args)
{
float nota1; float nota2; float nota3; float media;

Console.WriteLine("Ingrese nota 1");


nota1 = float.Parse(Console.ReadLine());

Console.WriteLine("Ingrese nota 2:");


nota2 = float.Parse(Console.ReadLine());

Console.WriteLine("Ingrese nota 3:");


nota3 = float.Parse(Console.ReadLine());

promedio = (nota1 + nota2 + nota3) / 3;

if(promedio>=6)
{
Console.WriteLine("APROBADO");
}
else
{
Console.WriteLine("REPROBADO");
}

Console.WriteLine("El promedio del alumno es: " + media);


}
A ver que el algoritmo es el mismo, el paso a paso está ahí, sin embargo, escrito en
otro lenguaje. Por lo tanto, después de definir la secuencia de instrucciones, elija el
lenguaje que sea más adecuado para implementar el algoritmo.

La lógica de programación utilizada para desarrollar una solución, ya sea un sistema


web, de escritorio o móvil, se estructura toda a partir de la definición de los algoritmos,
debido a su importancia y la relación entre estos temas. 😉

En la práctica

Observo aquí que una posible indicación es comenzar con un lenguaje que facilita tu
aprendizaje, que en este caso es JavaScript.

Conclusión
Estudiar algoritmos y lógica de programación es el paso inicial para todo aquel que
quiera adentrarse en el mundo del desarrollo de software y empezar a crear sus
primeras aplicaciones. Con estos conceptos bien establecidos, hay mucho más
preparación para el uso de un lenguaje de programación.

Ejercicios C#
Cómo mostrar la tabla de multiplicar para un determinado número mediante ciclos

Enunciado:
Solicitar un número al usuario y mostrar la
correspondiente tabla de multiplicar generada
mediante ciclos repetitivos.
Análisis:
Datos de entrada: Un número.
Datos de salida: Tabla de multiplicar.
Ejercicio de programación en C#

// Declaración de la variable de entrada


int num;

// Solicitar al usuario la tabla que desea generar


Console.Write("Ingrese el número de la tabla que desea mostrar: ");
num = int.Parse(Console.ReadLine());

// Ciclo repetitivo desde 1 hasta 10


for(int i = 1; i <= 10; i++)
{
// Imprimir el resultado de la multiplicación
Console.WriteLine($"{num} x {i}\t= {num*i}");
}
Cómo convertir Grados Celsius a Grados Fahrenheit
Enunciado:
Convertir una temperatura expresada en Grados
Celsius a Grados Fahrenheit.
Análisis:
Datos de entrada: Temperatura en Grados Celsius.
Datos de salida: Temperatura en Grados Fahrenheit.
Ejercicio de programación en C#

using System;

namespace Ejercicio007
{
internal class Program
{
static void Main(string[] args)
{
// Declaración de variable c para la captura de datos
// Declaración de varaible f para almacenar la conversión
double c, f;

// Solicitar al usuario el ingreso de la temperatura en


Grados Celsius
Console.Write("Ingrese la temperatura en Grados Celsius: ");
c = double.Parse(Console.ReadLine());

// Conversión de Grados Celsius a Grados Fahrenheit


f = (double) 9 / 5 * c + 32;

// Mostrar el resultado de la conversión a Grados Fahrenheit


Console.WriteLine($"La temperatura en Grados Fahrenheit es:
{f.ToString("0.##")}");
//Console.ReadKey();// En .NET Framework habilitar para hacer
una pausa antes de cerrar consola.
}
}
}

Cómo calcular el promedio de edades de 3 personas

Enunciado:
Calcular el promedio de edades de 3 personas.
Análisis:
Datos de entrada: Edad1, Edad2, Edad3.
Datos de salida: Promedio de edades.
Ejercicio de programación en C#

using System;

namespace Ejercicio005
{
internal class Program
{
static void Main(string[] args)
{
// se declaran variables enteras para las 3 edades.
int edad1, edad2, edad3;

// Se solicita la primer edad.


Console.Write("Ingrese la edad de la primer persona: ");
edad1 = int.Parse(Console.ReadLine());

// Se solicita la segunda edad.


Console.Write("Ingrese la edad de la segunda persona: ");
edad2 = int.Parse(Console.ReadLine());

// Se solicita la tercer edad.


Console.Write("Ingrese la edad de la tercer persona: ");
edad3 = int.Parse(Console.ReadLine());

// Se valida si alguna de las edades esta fuera del rango de


edades validas.
if ((edad1 < 0 || edad1 > 130) || (edad2 < 0 || edad2 > 130)
|| (edad3 < 0 || edad3 > 130))
{
// Si la condición dio como resultado true, muestra el
mensaje de error.
Console.WriteLine("Datos incorrectos");
}
else
{
// Si la condición anterior dio como resultado false,
paso la validación y entra en el else.

// Se declara la variable promedio y se asigna el


resultado del calculo.
// Nota: En el calculo los parentesis usados son
importantes para evitar error en el calculo debido a la jerarquía de
operadores.
double promedio = (edad1 + edad2 + edad3) / 3.0;

// Se muestra el promedio de las 3 edades.


Console.WriteLine($"El promedio es: {promedio}");
}

//Console.ReadKey();// En .NET Framework habilitar para hacer


una pausa antes de cerrar consola.
}
}
}
Cómo determinar el área y perímetro de un rectángulo

Enunciado:
Determinar el área y perímetro de un rectángulo.
Análisis:
Datos de entrada: Base, Altura.
Datos de salida: Área, Perímetro.
Ejercicio de programación en C#

using System;

namespace Ejercicio004
{
internal class Program
{
static void Main(string[] args)
{
// Paso 1: Declarar las variables double para base y altura.
double b, a;

// Paso 2: Solicitar la base al usuario.


Console.Write("Ingrese la base: ");
b = double.Parse(Console.ReadLine());

// Paso 3: Solicitar la altura al usuario.


Console.Write("Ingrese la altura: ");
a = double.Parse(Console.ReadLine());

// Paso 4: Validar si base o altura tienen un valor invalido.


if (b <= 0 || a <= 0)
{
Console.WriteLine("Datos incorrectos");
}
else
{// Si la condición anterior dio como resultado false, base y
altura tiene valores correctos.

// Declarar variable area y asignar el resultado del


calculo de la formula.
double area = b * a;

// Declarar variable perímetro y asignar el resultado del


calculo de la formula.
double perimetro = 2 * (b + a);

// Mostrar el resultado del área del rectángulo.


Console.WriteLine($"Área del rentángulo: {area}");

// Mostrar el resultado del perímetro del rectángulo.


Console.WriteLine($"Perímetro del rentángulo:
{perimetro}");
}

//Console.ReadKey();// En .NET Framework habilitar para hacer


una pausa antes de cerrar consola.
}
}
}
Cómo calcular el área y perímetro de una circunferencia

Enunciado:
Solicitar al usuario el radio de una circunferencia,
luego mostrar el cálculo del área y perímetro de la
circunferencia.
Análisis:
Datos de entrada: Radio de circunferencia.
Datos de salida: Área, Perímetro.
Ejercicio de programación en C#

using System;

namespace Ejercicio003
{
internal class Program
{
static void Main(string[] args)
{
// Paso 1: Se declara variable radio de tipo double.
double radio;

// Paso 2: Se solicita al usuario que ingrese el radio.


Console.Write("Ingrese el radio de la circunferencia: ");
radio = double.Parse(Console.ReadLine());

// Paso 3: Se verifica si radio es menor que 0


if (radio <= 0)
{
// Si la condición dio como resultado true significa que
se ingreso un valor incorrecto
Console.WriteLine("Dato incorrecto");
}
else
{// Si la condición anterior dio como resultado false, el
dato ingresado es valido.

// Se declara la variable y calcula el valor del área


double area = Math.PI * Math.Pow(radio, 2);

// Se declara la variable y se calcula el perímetro


double perimetro = 2 * Math.PI * radio;

// Se muestra el valor del área


Console.WriteLine($"Área: {area}");

// Se muestra el valor del perímetro


Console.WriteLine($"Perímetro: {perimetro}");
}

//Console.ReadKey();// En .NET Framework habilitar para hacer


una pausa antes de cerrar consola.
}
}
}
Cómo determinar si un número es positivo, negativo o nulo

Enunciado:

Solicitar al usuario un número entero y luego


mostrar si el número ingresado es positivo, negativo
o nulo.
Análisis:

Datos de entrada: Un número entero.


Datos de salida: Mostrar en pantalla si es positivo, negativo o nulo.

Ejercicio de programación en C#
using System;

namespace Ejercicio002
{
internal class Program
{
static void Main(string[] args)
{
// Paso 1: Declarar una variable entera llamada numero.
int numero;

// Paso 2: Solicitar al usuario un número.


Console.Write("Ingrese un número: ");
numero = int.Parse(Console.ReadLine());

if (numero > 0)// Se verifica si el número es mayor que 0.


{
// Si la condición dio como resultado true, entonces es
positivo.
Console.WriteLine("El número es POSITIVO.");
}
else if (numero < 0)// Si la condición anterior dio como
resultado false, se evalua si numero es menor que 0.
{
// Si la condición dio como resultado true, entonces es
negativo.
Console.WriteLine("El número es NEGATIVO.");
}
else
{
// Si las 2 condiciones anteriores dieron false, entonces
el número es nulo.
Console.WriteLine("El número es NULO.");
}

//Console.ReadKey();// En .NET Framework habilitar para hacer


una pausa antes de cerrar consola.
}
}
}
Cómo determinar si un número es par o impar
Enunciado:

Solicitar al usuario un número entero y luego


mostrar si el número ingresado es par o impar
Análisis:

Datos de entrada: Un número entero.


Datos de salida: Mensaje de si el número es par o impar.

Ejercicio de programación en C#
using System;

namespace Ejercicio001
{
internal class Program
{
static void Main(string[] args)
{
// Paso 1: Declarar la variable de entrada numero como tipo
entero
int numero;

// Paso 2: Solicitar al usuario el número


Console.Write("Ingrese un número: ");
numero = int.Parse( Console.ReadLine() );

// Paso 3: Verificar si el número ingresado módulo de 2 da


como resultado 0
if(numero % 2 == 0)
{
// Si la condición dio como resultado TRUE entonces
muestra que el número es PAR
Console.WriteLine("El número ingresado es PAR");
}
else
{
// Si la condición como resultado FALSE entonces muestra
que el número es IMPAR
Console.WriteLine("El número ingresado es IMPAR");
}
}
}
}
{
Retos para alumnos
de desarrollo de
software y
Programación, VIP…
ejercicios

}
Mejora tu lógica de programación.
Utiliza el lenguaje de programación que tú quieras para resolver ejercicios que te
ayudarán a mejorar tu forma de pensar y enfrentarte a retos de código.

Devolver el cambio
⁃ Dificultad: Intermedio

Cree un programa en C# que simule una caja registradora de supermercado


para devolver el cambio de una compra. Solicite la cantidad total de dinero
que tiene en la caja registradora (x) y un número entero con el valor de la
compra (y).

Deberás usar billetes de 100, 50, 20, 10, 5, 2, o 1 y devolver el cambio


utilizando primero los billetes más grandes.
Entrada

1. 1
2. 100

Salida

1. 50 20 20 5 2 2

Solución

1. using System;
2. public class DevolverCambio
3. {
4. public static void Main(string[] args)
5. {
6. int x = Convert.ToInt32(Console.ReadLine());
7. int y = Convert.ToInt32(Console.ReadLine());
8.
9. int cambio = x - y;
10.
11. while (cambio >= 50)
12. {
13. Console.Write("50 ");
14. cambio -= 50;
15. }
16.
17. while (cambio >= 20)
18. {
19. Console.Write("20 ");
20. cambio -= 20;
21. }
22.
23. while (cambio >= 10)
24. {
25. Console.Write("10 ");
26. cambio -= 10;
27. }
28.
29. while (cambio >= 5)
30. {
31. Console.Write("5 ");
32. cambio -= 5;
33. }
34.
35. while (cambio >= 2)
36. {
37. Console.Write("2 ");
38. cambio -= 2;
39. }
40.
41. while (cambio >= 1)
42. {
43. Console.Write("1 ");
44. cambio -= 1;
45. }
46. }
47. }
fun main() {

println(buy(1, arrayOf(Money.FIVE, Money.FIVE, Money.TEN, Money.TEN, Money.TEN,


Money.FIVE)))
println(buy(3, arrayOf(Money.FIVE, Money.FIVE, Money.TEN, Money.TEN, Money.TEN,
Money.FIVE)))
println(buy(1, arrayOf(Money.FIVE, Money.FIVE, Money.TEN, Money.TEN, Money.TEN,
Money.FIVE, Money.FIFTY)))
println(buy(5, arrayOf(Money.TWOHUNDRED)))

enum class Money(val money: Int) {

FIVE(5),
TEN(10),
FIFTY(50),
ONEHUNDRED(100),
TWOHUNDRED(200)

private fun buy(code: Int, money: Array<Money>): Pair<String, Array<Money>> {

val products = mapOf<Int, Pair<String, Int>>(


1 to Pair("Agua", 50),
2 to Pair("Coca-Cola", 100),
4 to Pair("Cerveza", 155),
5 to Pair("Pizza", 200),
10 to Pair("Donut", 75)
)

products[code]?.let { product ->

var totalMoney = 0
money.forEach { coin ->
totalMoney += coin.money
}
if (totalMoney < product.second) {
return Pair("El producto con código [${code}] tiene un coste ${product.second}. Has
introducido ${totalMoney}.", money)
}

val pendingMoney = totalMoney - product.second

return Pair(product.first, returnMoney(pendingMoney))


}

return Pair("El producto con código [${code}] no existe.", money)


}

private fun returnMoney(pendingMoney: Int, money: Array<Money> = arrayOf()):


Array<Money> {

if (pendingMoney == 0) {
return money
}

var newPendingMoney = pendingMoney


val newMoney = money.toMutableList()

for (coin in Money.values().reversed()) {


if (coin.money <= pendingMoney) {
newPendingMoney -= coin.money
newMoney.add(coin)
break
}
}

return returnMoney(newPendingMoney, newMoney.toTypedArray())


}
fun main() {
drawFrame("¿Qué te parece el reto?")
drawFrame("¿Qué te parece el reto?")
drawFrame("¿Cuántos retos de código de la comunidad has resuelto?")
}

private fun drawFrame(text: String) {

val words = text.split(" ")


var maxLength = 0
words.forEach { word ->
if (word.length > maxLength) {
maxLength = word.length
}
}

println("*".repeat(maxLength + 4))

words.forEach { word ->


if (word.isNotEmpty()) {
println("* $word${" ".repeat(maxLength - word.length)} *")
}
}
println("*".repeat(maxLength + 4))
}

Función para escribir texto con formato


título

⁃ Dificultad: Intermedio

Cree un programa en C# que implemente una función llamada Escribir Titulo


que escriba un texto centrado en la pantalla, en mayúsculas, con espacios
adicionales y con una línea encima y otra debajo. Fíjese en la salida para ver el
formato.

Entrada

1. bienvenido

Salida

1. ----------------
2. B I E N V E N I D O
3. ----------------

Solución
Ver soluciónSiguiente

1. using System;
2. public class FuncionEscribirTituloConFormato
3. {
4. public static void Main(string[] args)
5. {
6. string texto = Console.ReadLine();
7.
8. EscribirTituloFormato(texto);
9. }
10.
11. public static void EscribirTituloFormato(string texto)
12. {
13. int numeroEspacios = (80 - texto.Length * 2) / 2;
14.
15. texto = texto.ToUpper();
16.
17. for (int i = 0; i < numeroEspacios; i++)
18. {
19. Console.Write(" ");
20. }
21.
22. for (int i = 0; i < texto.Length * 2 - 1; i++)
23. {
24. Console.Write("-");
25. }
26.
27. Console.WriteLine();
28.
29. for (int i = 0; i < numeroEspacios; i++)
30. {
31. Console.Write(" ");
32. }
33.
34. for (int i = 0; i < texto.Length; i++)
35. {
36. Console.Write(texto[i] + " ");
37. }
38.
39. Console.WriteLine();
40.
41. for (int i = 0; i < numeroEspacios; i++)
42. {
43. Console.Write(" ");
44. }
45.
46. for (int i = 0; i < texto.Length * 2 - 1; i++)
47. {
48. Console.Write("-");
49. }
50.
51. Console.WriteLine();
52. }
53. }

Producto de factores primos


⁃ Dificultad: Intermedio

Cree un programa en C# que solicite un número entero (x) al usuario y


muestre el producto de sus factores primos.

Entrada

1. 60

Salida

1. 2x2x3x5x1

Solución

1. using System;
2. public class ProductoFactoresPrimos
3. {
4. public static void Main(string[] args)
5. {
6. int x = Convert.ToInt32(Console.ReadLine());
7. int divisor = 2;
8.
9. while (x > 1)
10. {
11. while (x % 2 == 0)
12. {
13. Console.Write(2 + "x");
14. x = x / 2;
15. }
16. divisor++;
17. }
18. Console.Write(1);
19. }
20. }

Circunferencia en pantalla
⁃ Dificultad: Intermedio

Crea un programa en C# que dibuje una circunferencia en pantalla de 360.


Deberá calcular los radianes teniendo en cuenta la formula de más abajo.
Dibuje la circunferencia con una separación de 5 posiciones entre cada punto,
utilice Console.SetCursorPosition . Para calcular el seno y el coseno puede
utilizar las funciones matemáticas Math.Cos y Math.Sin .

La fórmula que debería utilizar es:

radianes = angulo * PI / 180

Entrada

1.

Salida

1. XXXXXXXX
2. XX XX
3. XX XX
4. X X
5. X X
6. X X
7. X X
8. X X
9. X XX
10. X X
11. X X
12. X X
13. X X
14. XX XX
15. XXX XX
16. XXXXXXXX
17. X

Solución

1. using System;
2.
3. public class CircunferenciaPantalla
4. {
5. public static void Main(string[] args)
6. {
7. double x, y;
8. double radio;
9.
10. for (int i = 0; i < 360; i += 5)
11. {
12. radio = i * Math.PI / 180.0;
13.
14. x = 35 + 8 * Math.Cos(radio);
15. y = 10 + 8 * Math.Sin(radio);
16.
17. Console.SetCursorPosition((int)x, (int)y);
18. Console.Write("X");
19. }
20.
21. Console.SetCursorPosition(1, 20);
22. }
23. }

Función escribir texto con formato


⁃ Dificultad: Intermedio

Cree un programa en C# que implemente una función llamada


EscribirCentradoSubrayado que reciba como parámetro un texto solicitado al
usuario. Después muestre el texto centrado y subrayado utilizando el caracter
'-' en pantalla, suponiendo que tenemos 80 espacios de ancho.

Entrada

1. Hola

Salida

1. Hola
2. ----

Solución

1. using System;
2. public class FuncionEscribirCentradoSubrayado
3. {
4. public static void Main(string[] args)
5. {
6. string texto = Console.ReadLine();
7. EscribirCentradoSubrayado(texto);
8. }
9.
10. public static void EscribirCentradoSubrayado(string texto)
11. {
12. int totalEspacios = (80 - texto.Length) / 2;
13. int i = 0;
14.
15. for (; i < totalEspacios; i++)
16. {
17. Console.Write(" ");
18. }
19.
20. Console.WriteLine(texto);
21.
22. for (i = 0; i < totalEspacios; i++)
23. {
24. Console.Write(" ");
25. }
26.
27. for (i = 0; i < texto.Length; i++)
28. {
29. Console.Write("_");
30. }
31. }
32. }

Primera clase y método ToString()


⁃ Dificultad: Intermedio

Crea un programa en C# que solicite tres nombres de personas al usuario y


los almacene en un array de objetos de tipo Persona. Para ello primero crea
una clase Persona que tenga una propiedad Nombre de tipo string y
sobrescriba el método ToString().

Finalice el programa leyendo las personas y ejecutando en pantalla el método


ToString().

Entrada

1. Juan
2. Sara
3. Carlos

Salida

1. ¡Hola! Mi nombre es Juan


2. ¡Hola! Mi nombre es Sara
3. ¡Hola! Mi nombre es Carlos

Solución
1. using System;
2. public class PrimeraClase
3. {
4. public static void Main(string[] args)
5. {
6. int total = 3;
7. Persona[] personas = new Persona[total];
8.
9. for (int i = 0; i < total; i++)
10. {
11. personas[i] = new Persona()
12. {
13. Nombre = Console.ReadLine()
14. };
15. }
16.
17. for (int i = 0; i < total; i++)
18. {
19. Console.WriteLine(personas[i].ToString());
20. }
21. }
22.
23. public class Persona
24. {
25. public string Nombre { get; set; }
26.
27. public override string ToString()
28. {
29. return "¡Hola! Mi nombres es " + Nombre;
30. }
31. }
32. }

Clase persona, estudiante y profesor


⁃ Dificultad: Intermedio
Cree un nuevo proyecto en C# con tres clases más otra clase para probar la
lógica del código. Las clases principales del programa son las siguientes clases:

 Persona
 Estudiante
 Profesor
Las clases de Estudiante y Profesor heredan de la clase Persona.

La clase Estudiante incluirá un método público Estudiar() que escribirá en


pantalla Estoy estudiando .

La clase Persona debe tener dos métodos público Saludar() y SetEdad(int

edad) que asignará la edad de la persona.

La clase Profesor incluirá un método público Explicar() que escribirá en


pantalla Estoy explicando .

Además crea un método público VerEdad() en la clase Estudiante que escriba


en pantalla Mi edad es: x años .

Debe crear otra clase de prueba llamada EstudianteProfesorTest con un


método Main para realizar las siguientes acciones:

 Crear una nueva Persona y hacer que salude


 Crear una nuevo Estudiante, establecer una edad cualquiera, hacer que salude,
mostrar su edad en pantalla y empezar a estudiar.
 Crear un nuevo Profesor, establecer una edad cualquiera, saludar y empezar la
explicación.

Entrada

1.

Salida
1. ¡Hola!
2. ¡Hola!
3. Mi edad es 21 años
4. Estoy estudiando
5. ¡Hola!
6. Estoy explicando

Solución

1. using System;
2.
3. public class EstudianteProfesorTest
4. {
5. public static void Main()
6. {
7. Persona miPersona = new Persona();
8. miPersona.Saludar();
9.
10. Estudiante miEstudiante = new Estudiante();
11. miEstudiante.SetEdad(21);
12. miEstudiante.Saludar();
13. miEstudiante.VerEdad();
14. miEstudiante.Estudiar();
15.
16. Profesor miProfesor = new Profesor();
17. miProfesor.SetEdad(30);
18. miProfesor.Saludar();
19. miProfesor.Explicar();
20. }
21. }
22.
23. public class Persona
24. {
25. protected int edad;
26.
27. public void Saludar()
28. {
29. Console.WriteLine("¡Hola!");
30. }
31.
32. public void SetEdad(int n)
33. {
34. edad = n;
35. }
36. }
37.
38. public class Estudiante : Persona
39. {
40. public void Estudiar()
41. {
42. Console.WriteLine("Estoy estudiando");
43. }
44.
45. public void VerEdad()
46. {
47. Console.WriteLine("My edad es {0} aÃÃÃ
¢â‚¬Å¡Ãƒâ€šÃ‚±os", edad);
48. }
49. }
50.
51. public class Profesor : Persona
52. {
53. public void Explicar()
54. {
55. Console.WriteLine("Estoy explicando");
56. }
57. }

Se acuerdan que avia q hacer


silencio se descontara 2 puntos
a la gran mayoría de esa forma
algunos no pasan xq tenían 7

También podría gustarte