Unidad II

15
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

Transcript of Unidad II

Page 1: Unidad II

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

Page 2: Unidad II

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.

Page 3: Unidad II

-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

Page 4: Unidad II

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

Page 5: Unidad II

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:

Page 6: Unidad II

-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

Page 7: Unidad II

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

Page 8: Unidad II

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

Page 9: Unidad II

-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.

Page 10: Unidad II

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).

Page 11: Unidad II

-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

Page 12: Unidad II

-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.

Page 13: Unidad II

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.

Page 14: Unidad II

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.

Page 15: Unidad II