Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Algoritmos
Definición:
Lista bien definida, ordenada y finita de acciones que permite hallar la solución a un problema.
Permite hallar la solución a un problema, pueden tener distintas complejidades y demorar mas que otros, pero al
final os encuentra una solución (aunque “no exista la solución”).
Se pueden expresar como:
Lenguaje verbal
Pseudocódigo
Diagramas de flujo
Implementación
En general, los programas cuentan con una gran cantidad de algoritmos para realizar su cometido. La calidad del
algoritmo es determinante para la calidad del programa. Esto no asegura que el programa corra o sea correcto.
Su calidad se puede medir en: Correctitud, claridad, tiempo de respuesta, robustez.
La calidad no es únicamente que el programa pare y funcione correctamente.
Es importante el tiempo de ejecución, si el código es eficiente o no eficiente. Hay para problemas para los cuales no
se conocen algoritmos que resuelvan el algoritmo de manera eficiente.
Mantenibilidad del programa: Que tan sencillo es de modificarlo en tiempos razonables.
Robustez: ¿Qué pasa cuando se ingresan datos no limpios? Como reacciona el programa ante determinados
problemas.
Normas ISO: examen de calidad sobre accesibilidad, gestión empresarial, gestión de la seguridad de información,
riesgo. Algunas tienen que ver con la calidad de datos y desarrollo de códigos.
Pseudocódigo
Es un lenguaje artificial pero no de programación. Creado para ayudarnos a pensar el paso a paso de un código,
nos ayuda a pensar antes de siquiera determinar el lenguaje, para saber qué será indicado. Nos ayuda a centrarnos
en la lógica antes de los detalles técnicos.
Mezcla el lenguaje verbal con instrucciones de programación, palabras clave, etc. Cada uno tiene su forma de
escribirlo, no tiene reglas es personal. Solo nos ayuda a nosotros a planear. Un borrador donde plasmamos
nuestras ideas, pensamos que operaciones, redactarlo, entender rápidamente de que se trata, hacer más macro las
instrucciones.
Permite que el programador se centre en la lógica de la resolución del problema antes que en la sintaxis.
Cada cual tiene su propia forma de escribirlo. Hay tendencias, pero no una forma estandarizada.
Ventajas:
Ocupa menos papel que el lenguaje natural. También deja de lado recursos del lenguaje natural que no sirven en la
lógica.
Permite representar sencillamente operaciones complejas.
Es muy fácil pasar de pseudocódigo a lenguaje de programación. Siendo independiente del mismo.
Ejemplo:
Asignar Y a X
SUMAR 1 a X
ASIGNAR a X la suma de Y más 2
SI X=Y ENTONCES HACER ALGO
REPETIR MIENTRAS X sea mayor a 6 y HACER
LO SIGUIENTE:
REPETIR HASTA QUE Y < 10
PARA i desde 1 a 10 HACER ALGO CON i
Diagramas de flujo
Es la representación gráfica de un flujo de ejecución. Siempre tiene un inicio y un fin.
Ayudan a comprender mejor el proceso al representarlo gráficamente.
Siempre hay un inicio, siempre hay un fin.
Lampara no funciona;
está enchufada?
No == enchufar
¿Si == foco quemado?
Si ==remplazar
No == Comprar una nueva
Ejemplo de la profe
Paradigmas de Programación:
“Un paradigma de programación es una manera o estilo de programación de software. Existen
diferentes formas de diseñar un lenguaje de programación y varios modos de trabajar para
obtener los resultados que necesitan los programadores. Se trata de un conjunto de métodos
sistemáticos aplicables en todos los niveles del diseño de programas para resolver problemas
computacionales.”
Miriam Martínez Canelo – www.porfile.es
Existen varios paradigmas de programación, algunos se pueden complementar. Dependiendo de qué tipo
de problema quiera resolver el paradigma que elegiré.
Algunos paradigmas surgieron como evolución de otros a partir de algunas necesidades.
Algunos paradigmas se ajustan mejor que otros para determinados tipos de sistemas.
Las sentencias que se utilizan en la programación estructurada se encuentran en la mayoría de los
lenguajes, aunque con alguna variación de nombre
El lenguaje de programación no necesariamente me determina el paradigma de programación
La calidad del programa quedará determinada por:
o Diseño (modular, procedimientos, objetos)
o Calidad de los algoritmos
Programación declarativa
No decimos cómo, sino, que. Describen el problema y detallo la solución.
Se declara un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones, transformaciones
que describen el problema y detallan su solución.
Programación funcional
Programación lógica
Programación estructurada
Forma “clara” d escribir programas sin utilizar instrucciones de transferencia incondicional (GOTO).
Tipos de instrucciones de control:
Secuencial: Bloque de sentencias, se ejecutan una tras otra.
Condicional: Bloque de sentencias que se ejecutan si se cumple una condición.
Repetitiva: Un bloque de sentencias que se ejecuta varias veces en función de que se cumpla una
condición.
Tenemos un objeto con estados, atributos que lo caracterizan. A dicho objeto le podemos aplicar ciertos métodos.
A partir de los valores que le asignamos al objeto podemos crear una seria de instancias, a las cuales le aplicamos
los métodos.
Por ej.: A una cuanta bancaría le asignamos datos como propietario, número de cuenta, CI, fecha de nacimiento…
(instancias; objetos a los cuales les asignamos valores). En la cual podemos transferir saldo, depositar, retirar…
(métodos).
Que atributos o estados voy a ingresar como valores del objeto, a la hora de definirlo, debo identificar cuales
valores necesito para resolver los problemas que debemos resolver. Vamos a definir varios objetos, por ejemplo,
productos, usuarios…
Características de los Objetos
Abstracción: que pertenecen a una clase abstracta; una clase que permite otras clases derivadas de ellas.
Encapsulamiento: que encierra ciertas características de los objetos.
Ejercicio
1) Escriba un algoritmo para cambiar la rueda de un auto y otro para convertir un número en base 10 a base
2 utilizando:
a. Lenguaje verbal
b. En pseudocódigo
1.1
A) Verificar si la rueda está pinchada, si no, seguir. Si está pinchada, sacar las herramientas y la rueda de la valija,
levantamos el auto con el gato, des aflojamos la rueda, sacamos la rueda pinchada, colocamos la rueda sana,
ajustamos la rueda, bajamos el auto, tirar rueda rota, guardar herramientas, seguir.
1.2
A) Dado un número n. Si n es menor a 0 definimos resto(n+1)=1, si n es mayor a 0 continuamos; dividimos n entre
2, y su resto lo definimos como resto(n), continuamos hasta que n sea =2 o =1. Ordenar los restos de mayor a
menor, de la forma resto(n)resto(n-1)….resto(1). Terminar.
B)
Leer n
N menor a 0
SI: def