unidad ii
TRANSCRIPT
República Bolivariana de Venezuela Universidad del Zulia
Núcleo Costa Oriental del Lago Programa: Humanidades y Educación
Sub-Programa: Informática
Tutora: María Isabel Colina
Cabimas, Septiembre 2012
Unidad 2.- Algoritmos y Diagramas de Flujo
1.- Algoritmos
Es el conjunto de instrucciones que especifican la secuencia de operaciones a realizar en
orden, para resolver un sistema específico o clase de problemas.
1.1.- Pseudocódigo
Es una descripción de un algoritmo informático de programación de alto nivel
compacto e informal que utiliza las convenciones estructurales de un lenguaje
de programación verdadero, pero que está diseñado para la lectura humana en
lugar de la lectura en máquina, y con independencia de cualquier otro lenguaje
de programación.
1.2.- Características
-Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP,
PilatoX o PSeInt).
-Es una forma de representación sencilla de utilizar y de manipular.
-Facilita el paso del programa al lenguaje de programación.
-Es independiente del lenguaje de programación que se vaya a utilizar.
-Es un método que facilita la programación y solución al algoritmo del
programa.
1.3.- Análisis del Problema
Requiere la clara definición del problema donde se indique que va hacer el
programa y cual ve a ser el resultado.
1.4.- Componentes de un algoritmo:
-Entrada: La entrada de los datos, corresponde a los insumos o datos necesarios para
ofrecer los resultados esperados.
-Proceso: Son los pasos necesarios para obtener la solución al problema o la
situación planteada.
-Salida: Son los resultados arrojados por el proceso como la solución.
1.4.1.- Variables
Es un nombre asociado a un elemento de datos que está situado en posiciones
contiguas de la memoria principal, y su valor puede cambiar durante la
ejecución de un programa.
Toda variable pertenece a un tipo de dato concreto. En la declaración de una
variable se debe indicar el tipo al que pertenece. Así tendremos variables
enteras, reales, booleanas, etc. Por otro lado, distinguimos tres partes
fundamentales en la vida de una variable:
-Declaración
-Iniciación
-Utilización
-Declaración de variables: Está es la primera fase en la vida de cualquier
variable. La declaración se realiza en la sección que comienza con la palabra
var.
-Iniciación de variables: Esto no es más que darle un valor inicial a una
variable. Principalmente, existen dos maneras de otorgar valores iniciales a
variables:
-Mediante una sentencia de asignación
-Mediante uno de los procedimientos de entrada de datos (read o readln).
-Utilización de variables: Una vez declarada e iniciada una variable, es el
momento de utilizarla. Esta es la parte que presenta un mayor abanico de
posibilidades
1.4.2.- Constante
Es un dato cuyo valor no puede cambiar durante la ejecución del programa.
Recibe un valor en el momento de la compilación y este permanece inalterado
durante todo el programa.
Se puede hacer una división de las constantes en tres clases:
-Constantes literales (sin nombre)
-Constantes declaradas (con nombre)
-Constantes expresión
-Constantes literales
Son valores de cualquier tipo que se utilizan directamente, no se declaran ya
que no tienen nombre.
-Constantes declaradas
También llamadas constantes con nombre, son las que se declaran en la
sección constante asignándoles un valor directamente. Por ejemplo:
-Constantes expresión
También se declaran en la sección constante, pero a estas no se les asigna un
valor directamente, sino que se les asigna una expresión. Esta expresión se
evalúa en tiempo de compilación y el resultado se le asigna a la constante.
1.4.3.- Asignaciones
Es te t i po de p rogra ma c ión se basa en l os operadores
carac te r ís t i cos de cada lenguaje de programación que son los
operadores de asignación, que comúnmente aparece con un s i gno i gua l
(=) . Ca mbia e l va l o r de l a var i ab le que es tá a l a izquierda por un
literal o el resultado de la expresión que se encuentra a la derecha. La sintaxis
usada para ello es:<destino> = <origen>.Una asignación será correcta siempre
que la anotación de tipo no haya enlazado la variable a un tipo de datos
determinado en la instrucción.
C A R A C T E R Í S T I C A
-Las as i gnac iones son expres iones y responden e l resu l tado
de eva luar e l miembro de la derecha.
-Las as i gnac iones pueden encadenarse , resu l tando que l a
as i gnac ión de l miembro derecho sea la respuesta de la asignación anterior.
-Las asignaciones no copian datos, ligan nombres a objetos. Siempre
van al ámbito interno.
-Una asignación es simplemente una instrucción mediante la que se indica un
valor a almacenar en un dato.
Nota: Se debe tener en cuenta que a una variable sólo se le pueden asignar
valores que correspondan a su tipo de dato, así, por ejemplo, no se le puede
asignar un número flotante a una variable entera.
1.4.4.- Entrada de Datos
Son los que la computadora va a procesar.
1.4.5.- Estructuras Condicionales
Se utilizan para lograr que un algoritmo analice los datos y tome ciertas
decisiones., con las estructuras condicionales se regula el comportamiento de
un algoritmo, para que interactúe con los datos ingresados por el usuario, o con
datos que ha obtenido de procesos internos.
Para cumplir con estos objetivos existen tres categorías de estructuras
condicionales, las cuales son:
-Estructuras condicionales simples
En este tipo de estructuras se limita la ejecución de un bloque de código
dependiendo el resultado de una condición.
-Estructuras condicionales dobles
Son aquellas que ofrecen dos posibles alternativas para continuar la
ejecución del código, una de ellas se ejecutará si la condición se cumple
(verdadero) y la otra alternativa se ejecutará si la condición no se cumple
(falso).
-Estructuras Condicionales múltiples
Entregan una decisión más especializada, debido a que representan una
serie más amplia de parámetros o alternativas, con lo que se logra analizar de
manera más correcta la variable.
1.4.6.- Estructuras Cíclicas
Es aquella que le permite al programador repetir un conjunto o bloque de
instrucciones un número determinado de veces mientras una condición dada
sea cierta o hasta que una condición dada sea cierta.
1.5.- Elaboración de algoritmos utilizando Pseudocódigos
Diseñar el algoritmo (ordinograma y pseudocódigo) correspondiente a un
programa que escribe el porcentaje descontado en una compra, introduciendo
por teclado el precio de la tarifa y el precio pagado.
Pseudocódigo
PROGRAMA: Descuento
INICIO
DATOS:
VARIABLES
Tarifa Numérico Entero
Precio Numérico Entero
Dto Numérico Entero
Pd Numérico Real
ALGORITMO:
Leer Tarifa
Leer Precio
Dto = Tarifa – Precio
Pd = Dto * 100 / Tarifa
Escribir “Porcentaje de descuento:”, Pd
FIN
Diseñar el algoritmo (ordinograma y pseudocódigo) correspondiente a un
programa que pida por teclado dos números enteros y muestre su suma, resta,
multiplicación, división y el resto (módulo) de la división. Si la operación no es
conmutativa, también se mostrará el resultado invirtiendo los operadores.
Pseudocódigo
PROGRAMA: Operaciones aritméticas
INICIO
DATOS:
VARIABLES
Num1 Numérico Entero
Num2 Numérico Entero
ALGORITMO:
Leer num1, num2
Escribir “n1 + n2 = “, num1+num2
Escribir “n1 - n2 = “, num1-num2
Escribir “n2 - n1 = “, num2-num1
Escribir “n1 * n2 = “, num1*num2
Escribir “n1 / n2 = “, num1/num2
Escribir “n2 / n1 = “, num2/num1
Escribir “n1 mod n2 = “, num1 mod num2
Escribir “n2 mod n1 = “, num2 mod num1
FIN
Diseñar el algoritmo (ordinograma y pseudocódigo) correspondiente a un
programa que exprese en horas, minutos y segundos un tiempo expresado en
segundos.
Pseudocódigo
PROGRAMA: Tiempo_segundos
INICIO
DATOS:
VARIABLES
Segundos Numérico Entero
Minutos Numéricos Entero
Horas Numéricas Entero
ALGORITMO:
Leer segundos
Horas = segundos / 3600
Segundos = segundos mod 3600
Minutos = segundos / 60
Segundos = segundos mod 60
Escribir horas, “h “, minutos, “m “, segundos, “s”
FIN
1.6.- Diagramas de Flujo
1.7.- Conceptos
-Es la representación gráfica del algoritmo o proceso. Estos diagramas utilizan
símbolos con significados bien definidos que representan los pasos del
algoritmo, y representan el flujo de ejecución mediante flechas que conectan
los puntos de inicio y de fin de proceso.
-Son diagramas que emplean símbolos gráficos para representar los pasos o
etapas de un proceso. También permiten describir la secuencia de los distintos
pasos o etapas y su interacción.
1.8.- Características
-Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben
estar presentes el dueño o responsable del proceso, los dueños o
responsables del proceso anterior y posterior y de otros procesos
interrelacionados, otras partes interesadas.
-Definir qué se espera obtener del diagrama de flujo.
-Identificar quién lo empleará y cómo.
-Establecer el nivel de detalle requerido.
-Determinar los límites del proceso a describir.
1.9.- Ventajas
-Favorecen la comprensión del proceso al mostrarlo como un dibujo. El
cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de
flujo reemplaza varias páginas de texto.
-Permiten identificar los problemas y las oportunidades de mejora del proceso.
Se identifican los pasos, los flujos de los re-procesos, los conflictos de
autoridad, las responsabilidades, los cuellos de botella, y los puntos de
decisión.
-Muestran las interfaces cliente-proveedor y las transacciones que en ellas se
realizan, facilitando a los empleados el análisis de las mismas.
-Son una excelente herramienta para capacitar a los nuevos empleados y
también a los que desarrollan la tarea, cuando se realizan mejoras en el
proceso
.
-Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de
algoritmos de programación puede ser ejecutado en un ordenador, con un IDE
como Free DFD.
1.10.- Tipos
-Formato vertical: En él, el flujo o la secuencia de las operaciones, va de
arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso
con toda la información que se considere necesaria, según su propósito.
-Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de
izquierda a derecha.
-Formato panorámico: El proceso entero está representado en una sola
carta y puede apreciarse de una sola mirada mucho más rápido que leyendo
el texto, lo que facilita su comprensión, aún para personas no familiarizadas.
Registra no solo en línea vertical, sino también horizontal, distintas acciones
simultáneas y la participación de más de un puesto o departamento que el
formato vertical no registra.
-Formato Arquitectónico: Describe el itinerario de ruta de una forma o
persona sobre el plano arquitectónico del área de trabajo. El primero de los
flujo gramas es eminentemente descriptivo, mientras que los utilizados son
fundamentalmente representativos.
1.11.- Simbología
-Óvalo o Elipse: Inicio y término (Abre y/o cierra el diagrama).
-Rectángulo: Actividad (Representa la ejecución de una o más actividades
o procedimientos).
-Rombo: Decisión (Formula una pregunta o cuestión).
-Círculo: Conector (Representa el enlace de actividades con otra dentro
de un procedimiento).
-Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma
permanente).
-Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el
almacenamiento del documento).
1.12.- Reglas Básicas
-Debe de indicar claramente dónde inicia y dónde termina el diagrama.
-Cualquier camino del diagrama debe de llevarte siempre a la terminal de fin.
-Organizar los símbolos de tal forma que siga visualmente el flujo de arriba
hacia abajo y de izquierda a derecha.
-No usar lenguaje de programación dentro de los símbolos.
-Centrar el diagrama en la página.
-Las líneas deben ser verticales u horizontales, nunca diagonales.
-No fraccionar el diagrama con el uso excesivo de conectores.
- Solo debe llegar una sola línea de flujo a un símbolo. Pero pueden llegar
muchas líneas de flujo a otras líneas.
-Las líneas de flujo deben de entrar a un símbolo pro la parte superior y/o
izquierda y salir de él por la parte inferior y/o derecha.
-Evitar que el diagrama sobrepase una página; de no ser posible, enumerar y
emplear los conectores correspondientes.
-Usar lógica positiva, es decir, realizar procesos cuando es verdadera la
condición y expresar las condiciones de manera clara (por ej., "no es a =/= de
b" ==> "a=b").
1.13.- Elaboración de algoritmos utilizando Diagramas de Flujo
Diseñar el algoritmo correspondiente a un programa que obtiene la última cifra
de un número introducido.
Diseñar el algoritmo correspondiente a un programa que calcule el área y el
perímetro de un triángulo rectángulo dada la base y la altura.
Diseñar el algoritmo correspondiente a un programa que tras introducir una
medida expresada en centímetros la convierta en pulgadas (1pulgada = 2,54
centímetros).
Diseñar el algoritmo correspondiente a un programa que exprese en horas,
minutos y segundos un tiempo expresado en segundos.