El documento describe los conceptos básicos de los algoritmos de programación, incluyendo las partes de un algoritmo (entrada, proceso y salida), variables, constantes, expresiones y operadores. También describe dos técnicas para diseñar algoritmos: el método top-down que descompone un problema en subproblemas de mayor a menor complejidad, y el método bottom-up que identifica procesos individuales y los integra en un sistema completo.
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Algoritmos
1. REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD PEDAGÓGICA EXPERIMENTAL LIBERTADOR
INSTITUTO DE MEJORAMIENTO PROFESIONAL DEL MAGISTERIO
NUCLEO ACADÉMICO PORTUGUESA
Materia: Estructura de Datos y programación I
ALGORITMOS DE PROGRAMACIÓN
Febrero 2017
3. Un Algoritmo, se puede definir como una
secuencia de instrucciones que representan un
modelo de solución para determinado tipo de
problemas. O bien como un conjunto de
instrucciones que realizadas en orden conducen a
obtener la solución de un problema. Por lo tanto
podemos decir que es un conjunto ordenado y
finito de pasos que nos permite solucionar un
problema.
Los algoritmos son independientes de los
lenguajes de programación. En cada problema el
algoritmo puede escribirse y luego ejecutarse en
un lenguaje de diferente programación. El
algoritmo es la infraestructura de cualquier
solución, escrita luego en cualquier lenguaje de
programación.
4. Todo Algoritmo debe tener las siguientes partes:
· Entrada de datos, son los datos necesarios que el algoritmo necesita
para ser ejecutado.
· Proceso, es la secuencia de pasos para ejecutar el algoritmo.
· Salida de resultados, son los datos obtenidos después de la ejecución
del algoritmo.
PARTES DE UN ALGORITMO:
6. • Variable:
– Representa a un dato en particular alojado en la
memoria que es identificado mediante un nombre
(identificador de la variable)
– Las variables pueden ser de tipo:
• Numérico
• Carácter
• Lógico
7. • Reglas para los nombres (identificadores) de las
variables:
– Debe iniciar con una letra del alfabeto, mayúscula o
minúscula.
– No debe tener espacios en blanco. En su lugar puede usar
el símbolo guión bajo ( _ ) para separar nombres largos.
– Puede incluir números, siempre que no se presenten al
principio del nombre.
– Los nombres de variables son sensibles a mayúsculas o
minúsculas. Es decir, aunque un identificador tenga el
mismo nombre que otro, el orden y uso de mayúsculas los
haría diferentes.
8. Variables, constantes y expresiones … (7)
• Algoritmo para el primer ejemplo:
1. Iniciar
2. Escribir en pantalla un mensaje solicitando al usuario que
introduzca su nombre
3. Asignar el dato leído en la variable nombre_usuario
4. Escribir en pantalla el mensaje “hola, bienvenido ”
seguido de lo almacenado en nombre_usuario
5. Finalizar
9. • Constantes:
– Al valor que se le asigna al inicio del algoritmo a
un identificador y permanece sin cambios en todo
el cuerpo del algoritmo se le denomina constante.
– Por ejemplo: el valor de pi, el número de días de la
semana, etc.
– Las reglas que aplican para los nombres de las
variables son los mismos que aplican para los
nombres de las constantes.
10. • La manipulación de variables y constantes nos conduce a un
nuevo concepto: expresiones. Las expresiones son una forma
de describir las siguientes acciones:
– Operaciones de cálculo aritmético
• Son instrucciones que implican el uso de operadores
aritméticos (suma, resta, multiplicación, división, etc.)
para realizar operaciones matemáticas y cuyo resultado
se puede o no asignar a una variable
– Operaciones lógicas
• Corresponden a instrucciones donde comparamos
valores, variables, constantes o resultados de
operaciones de cálculo para saber si son iguales,
diferentes, si uno es mayor a otro, etc.
– Operaciones de asignación
• Corresponde a instrucciones en donde una variable o
constante: 1) recibe un valor directamente, 2) recibe
datos almacenados en otro identificador, 3) recibe el
resultado de una operación de cálculo, o 4) recibe el
resultado de una operación lógica
11. • Las expresiones u operaciones de asignación, establecen el
valor que toma una variable o constante.
• Ejemplos:
– nombre_usuario = “Roberto”
– edad = 25
– estatura_metros = 1.70
– pi = 3.1416
– edad_nueva = edad
• En los ejemplos anteriores debemos advertir dos cosas:
1. La asignación siempre se realiza de derecha (dato) a
izquierda (nombre de la variable).
2. Una vez asignado un valor a una variable por primera vez,
dicha variable solo aceptará datos del mismo tipo
12. • Las siguientes expresiones u operaciones de asignación NO SON
CORRECTAS:
– “Roberto” = nombre_usuario NO ES CORRECTO
– 25 = edad NO ES CORRECTO
y
– edad = edad_nueva NO SIGNIFICA LO MISMO QUE edad_nueva = edad
• Si una variable se inicializa con un dato de tipo carácter, sería un ERROR
asignarle posteriormente un dato de tipo numérico y viceversa. Sin
embargo, hay que tomar en cuenta que una variable a la que se le
asignó un valor numérico se comportará de la siguiente manera:
– Si se asignó por primera vez un valor de tipo numérico entero, entonces:
• edad = 23.5 ES CORRECTO, PERO EL VALOR ALMACENADO SERÁ 23
– Si se asigno por primera vez un valor de tipo numérico real, entonces:
• estatura_metros = 2 ES CORRECTO, PERO EL VALOR ALMACENADO SERÁ 2.0
13. • Las operaciones de cálculo aritmético que solo
involucran enteros dan como resultado un entero:
– Suma = 1 + 1
– Res_prod = 2 * 4
– Res_division = 9 / 2 (aquí el resultado es 4)
• Las operaciones de cálculo aritmético que
involucren al menos un dato real darán como
resultado un real:
– Suma_r = 1.0 + 2 + 1
– Res_prod_r = 2.5 * 2
– Res_div_r = 9.0 / 2 (aquí el resultado es 4.5)
14. • Operadores aritméticos y sus reglas de
prioridad:
cantidad = 2 + 1 * 3 ¿el resultado es 9 o 5 ?
16. • Las operaciones de cálculo aritmético generalmente están expresadas
en los libros usando una notación algebraica, debemos reescribir estas
operaciones de forma algorítmica para poder utilizarlas.
17.
18.
19. Tipos de Algoritmos
GRÁFICOS: son la representación gráfica de las operaciones que
realiza un algoritmo (diagrama de flujo).
El diagrama de flujo se caracteriza por la forma detallada como representa
de forma gráfica los pasos a seguir para encontrar la solución del problema
propuesto.
La representación gráfica se da por medio de varios símbolos(cada uno con
su propósito establecido ), que unidos entre si, indican el orden en el que se
debe dar el proceso.
20.
21. NO GRÁFICOS: representan en forma descriptiva las operaciones que
debe realizar un algoritmo(pseudocòdigo).
INICIO
Edad:Entero
ESCRIBA"cual es tu edad?"
lea Edad
SI Edad>=18 entonces
ESCRIBA "Eres mayor de Edad"
FINSI
ESCRIBA "fin del algoritmo "
FIN
El pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y el
lenguaje de programación, su característica principal es el de representar
la solución de forma mas detallada y lo mas parecida al lenguaje, para que
posteriormente se pueda codificar.
otras características son:
Se puede ejecutar en un ordenador.
Facilita el paso del programa al lenguaje de programación.
Es independiente del lenguaje del programación que se vaya a utilizar.
Método que facilita la programación y solución al algoritmo del programa.
22. Técnicas de diseño de algoritmos de
programación, el Top Down y el Bottom Up.
23. Top Down
También conocida como de arriba-abajo y consiste en establecer una
serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al
problema. Consiste en efectuar una relación entre las etapas de la estructuración
de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante
entradas y salidas de información. Este diseño consiste en una serie de
descomposiciones sucesivas del problema inicial, que recibe el refinamiento
progresivo del repertorio de instrucciones que van a formar parte del programa.
La utilización de la técnica de diseño Top-Down tiene los siguientes
objetivos básicos:
Simplificación del problema y de los subprogramas de cada descomposición.
Las diferentes partes del problema pueden ser programadas de modo
independiente e incluso por diferentes personas.
El programa final queda estructurado en forma de bloque o módulos lo que hace
mas sencilla su lectura y mantenimiento.
24. Bottom Up
El diseño ascendente se refiere a la identificación de aquellos procesos
que necesitan computarizarse con forme vayan apareciendo, su análisis como
sistema y su codificación, o bien, la adquisición de paquetes de software para
satisfacer el problema inmediato.
Cuando la programación se realiza internamente y haciendo un enfoque
ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el
desempeño global, sea fluido. Los problemas de integración entre los subsistemas
son sumamente costosos y muchos de ellos no se solucionan hasta que la
programación alcanza la fecha limite para la integración total del sistema. En esta
fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los
usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se
ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se
contempla al sistema como una entidad global, adolece de ciertas limitaciones por
haber tomado un enfoque ascendente.
Uno de ellos es la duplicación de esfuerzos para acceder el software y
mas aún al introducir los datos.
Otro es, que se introducen al sistema muchos datos carentes de valor.
Un tercero y tal vez el mas serio inconveniente delenfoque ascendente, es que los
objetivos globales de la organización no fueron considerados y en consecuencia no
se satisfacen.