Algoritmos, ¿cómo solucionar un problema?
¿Qué es un algoritmo?
Conjunto de acciones o pasos finitos, ordenados de forma lógica y que se utilizan para resolver un problema o para obtener un resultado.
Características: Lógico, Ordenado, Definido , Finito
Representación de un algoritmo
Diagramas de flujo
Pseudocódigo
Lenguaje de Programación
¿Cómo solucionar un problema de computador?
Definición del problema.
Análisis del problema.
Diseño del algoritmo.
Codificación (implementación).
Compilación y ejecución.
Verificación y depuración.
Se debe establecer claramente cuál es el problema a solucionar. Para el caso de este texto, esta etapa la cubren los enunciados que se plantean para cada uno de los ejemplos que se desarrollarán; en la práctica profesional, estará cubierta por las necesidades que expresen los clientes
Ejemplo: Suponga que la oficina de tesorería de una empresa requiere de un algoritmo que le permita calcular el salario a pagar a un empleado. Al empleado le pagan de acuerdo con el número de horas que haya laborado durante el periodo a razón de un valor específico cada hora.
Definición del problema.
Análisis del problema.
Diseño del algoritmo.
Codificación (implementación).
Compilación y ejecución.
Verificación y depuración.
Para poder emprender la búsqueda de una solución se debe comprender perfectamente el problema planteado. Se debe identificar la información relevante y descartar la que no aporte a la solución. Posteriormente, se procede a realizar el análisis de la información que se posee. Esta etapa se fundamenta en encontrar la respuesta a cuatro preguntas:
¿Cuáles resultados se esperan?
¿Cuáles son las entradas?
¿Qué procesos hay que realizar?
¿Qué variables se deben utilizar?
Definición del problema
Los resultados que se esperan: constituyen las salidas del algoritmo y son el producto del proceso que realice. Todo algoritmo debe proporcionar algún resultado.
Los datos ingresados por el usuario (Entradas): representan los datos de entrada al algoritmo. Habrá situaciones en donde los algoritmos no tienen entrada de datos y los datos son suministrados por alguna instrucción dentro del proceso a realizar.
Procesos: son todas las acciones a los que se someten los datos disponibles para encontrar la solución del problema. Se debe tener en cuenta también el orden lógico en que deben ser ejecutadas.
Variables: con base en los puntos anteriores, se establecen las variables requeridas para almacenar los valores de los datos, de los resultados esperados y de las fórmulas matemáticas que se requieran. En este punto, se hace necesario establecer el tipo de dato al que pertenecerá cada variable, de acuerdo al valor que deba almacenar.
Definición del problema.
Análisis del problema.
Diseño del algoritmo.
Codificación (implementación).
Compilación y ejecución.
Verificación y depuración.
Esta etapa se desarrolla luego de terminado el análisis; consiste en la creación del algoritmo que soluciona el problema, para ello se utiliza alguna de las técnicas de representación.
Los algoritmos especificados en diagramas de flujo y pseudocódigo siguen un patrón de ejecución:
Entrada: en esta etapa se le proporciona al algoritmo los datos que se poseen del problema y que son necesarios para su solución.
Proceso: hace referencia a los pasos, actividades, instrucciones o cálculos que realiza el algoritmo para solucionar el problema o encontrar un resultado. Generalmente, en esta etapa se transforman los datos de entrada en resultados de salida.
Salida: es la entrega de resultados o la respuesta dada por el algoritmo.
Representación gráfica de un algoritmo
Sintaxis general de un diagrama de flujo
Ejemplo 1:
Ejemplo 2:
Definición del problema.
Análisis del problema.
Diseño del algoritmo.
Codificación (implementación).
Compilación y ejecución.
Verificación y depuración.
Consiste en utilizar los modelos creados durante la etapa de diseño para crear los componentes del sistema utilizando un lenguaje de programación específico.
Si el diseño es adecuado y suficientemente detallado la codificación de cada módulo es algo casi automático.
Consiste en utilizar los modelos creados durante la etapa de diseño para crear los componentes del sistema utilizando un lenguaje de programación específico.
Si el diseño es adecuado y suficientemente detallado la codificación de cada módulo es algo casi automático.
Palabras reservadas
print. Es una instrucción de salida, se usa para mostrar datos o información.
Sintaxis: print (parámetros )
Se puede utilizar de diferentes formas:
Palabras reservadas
input. Se utiliza para capturar los valores que ingresa el usuario (entradas). Por defecto la entrada siempre será de tipo cadena (string).
Sintaxis: variable = input (“Mensaje”)
Ejemplos:
nombre = input (“¿Cuál es su nombre?”)
cedula = input (“Ingrese su numero de cédula”)
fechaNacimiento = input (“Ingrese su fecha”)
salario = input (“Ingrese su salario”)
anios = input (“¿Qué edad tiene?”)
esCasado = input (“¿Está casado?”)
Palabras reservadas
input. Se utiliza para capturar los valores que ingresa el usuario (entradas). Por defecto la entrada siempre será de tipo cadena (string).
Sintaxis: variable = input (“Mensaje”)
Ejemplos:
nombre = input (“¿Cuál es su nombre?”)
cedula = input (“Ingrese su numero de cédula”)
fechaNacimiento = input (“Ingrese su fecha”)
salario = input (“Ingrese su salario”)
edad = input (“¿Qué edad tiene?”)
esCasado = input (“¿Está casado?”)
Para convertir el tipo de dato de una variable lo podemos hacer utilizando las funciones:
int(parametros) para entero , float (parámetro) para real , bool (parámetro) para boleano.
Ejemplos:
salario = float ( input (“Ingrese su salario”) )
edad = int ( input (“¿Qué edad tiene?”) )
esCasado = bool ( input (“¿Está casado?”) )
Tipos de Comentarios:
Ejemplos utilizando #:
#Esto es un comentario
print(“Hola, mundo!")
print(“Hola, mundo!") #Esto es un comentario
#Este es un comentario
#escrito con
#más de una línea
print(“Hola, mundo!")
Ejemplos utilizando “””:
"""
Este es un comentario
escrito con
más de una línea
"""
print(“Hola, mundo!")
“””En este espacio se debe escribir lo que hace el algoritmo y datos que puedan ser de utilidad para otro programador “””
# Instrucciones a ejecutar
# Entrada de datos
<Instrucción 1>
<Instrucción 2>
< ... >
# Proceso
< ... >
# Salida
<Instrucción n>
""" Calcula el salario de un empleado de acuerdo al numero de horas trabajadas y el valor de la hora."""
#Entrada de datos
numeroHoras = int ( input("Ingrese el número de horas: "))
valorHora = float (input ("Ingrese el valor de la hora:"))
#Proceso
salario = numeroHoras * valorHora
#salida
print("El resultado es: ", salario)
Definición del problema.
Análisis del problema.
Diseño del algoritmo.
Codificación (implementación).
Compilación y ejecución.
Verificación y depuración.
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina. Este proceso de traducción se conoce como compilación.
Un intérprete es un programa que ejecuta directamente las instrucciones escritas en un lenguaje de programación dado.
La ejecución es el proceso mediante el cual una computadora lleva a cabo las instrucciones de un programa informático.
Se pueden ejecutar programas compilados (por ejemplo, en Windows, los .EXE) o programas interpretados (por ejemplo, los scripts).
Ejecutar un programa implica que éste estará en estado de ejecución y, por ende, en memoria, hasta que se finalice
Definición del problema.
Análisis del problema.
Diseño del algoritmo.
Codificación (implementación).
Compilación y ejecución.
Verificación y depuración.
La Verificación consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación. Una técnica de verificación son las pruebas de escritorio.
Las pruebas de escritorio son simulaciones del comportamiento de un algoritmo que permiten determinar la validez del mismo. Consisten en generar una tabla con tantas columnas como variables tenga el algoritmo y seguir las instrucciones poniendo los valores correspondientes.
Verificación y depuración
La depuración de programas es el proceso de identificar y corregir errores de programación. En inglés se conoce como debugging, porque se asemeja a la eliminación de bichos, manera en que se conoce informalmente a los errores de programación.
Para tener en cuenta....
Estructura de decisión anidadas utilizando elif
Algunos lenguajes de programación, incluyendo a Python, poseen una estructura que facilita la escritura de decisiones anidadas. Esta estructura se conoce como elif. Su sintáxis es como se ve a la derecha:
Retomamos el Ejemplo 3......
Definición del problema:
Diseñe un algoritmo que permita imprimir un mensaje según la nota definitiva de un estudiante entre 0.0 y 5.0, de acuerdo con la Tabla
Algunos ejercicios para prácticar:
1. La oficina de incorporación del ejército necesita un algoritmo que le permita saber si un aspirante a ingresar a la institución como soldado es apto o no para poder vincularlo. Para que una persona sea apta, debe cumplir los siguientes requisitos:
Si es mujer, su estatura debe ser superior a 1.60 mts y su edad debe estar entre 20 y 25 años.
Si el aspirante es hombre, su estatura debe ser superior a 1.65 mts y su edad debe estar entre los 18 y 24 años.
Tanto mujeres como hombres deben ser solteros.
2. Construya un programa que permita encontrar el mayor entre tres números que ingresa un usuario.
3. Calcule el sueldo que le corresponde al trabajador de una empresa, los cálculos se deben realizar en función de los siguientes criterios:
Si lleva más de 10 años en la empresa se le aplica un aumento del 10%
Si lleva menos de 10 años pero más que 5 se le aplica un aumento del 7%.
Si lleva menos de 5 años pero más que 3 se le aplica un aumento del 5%
Si lleva menos de 3 años se le aplica un aumento del 3%.