Algoritmos y Lógica de Programación (Autoguardado)
Algoritmos y Lógica de Programación (Autoguardado)
Algoritmos y Lógica de Programación (Autoguardado)
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.
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.
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?
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.
//Lenguaje C
setlocale(LC_ALL, "Spanish");
float nota1=0;
float nota2=0;
float nota3=0;
float media=0;
scanf("%f",¬a1);
scanf("%f",¬a2);
scanf("%f",¬a3);
promedio = (nota1+nota2+nota3)/3;
if(promedio>=6){
printf("Alumno aprobado.\n");
else{
printf("Alumno reprobado.\n");
// Lenguaje C#
static void Main(string[] args)
{
float nota1; float nota2; float nota3; float media;
if(promedio>=6)
{
Console.WriteLine("APROBADO");
}
else
{
Console.WriteLine("REPROBADO");
}
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#
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;
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;
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;
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;
Enunciado:
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;
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;
}
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
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() {
FIVE(5),
TEN(10),
FIFTY(50),
ONEHUNDRED(100),
TWOHUNDRED(200)
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)
}
if (pendingMoney == 0) {
return money
}
println("*".repeat(maxLength + 4))
⁃ Dificultad: Intermedio
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. }
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
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. }
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. }
Entrada
1. Juan
2. Sara
3. Carlos
Salida
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. }
Persona
Estudiante
Profesor
Las clases de Estudiante y Profesor heredan de la clase Persona.
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. }