DIAGRAMAS DE FLUJO

57
DIAGRAMAS DE FLUJO Un diagrama de flujo (flowchar) es una de las técnicas de representación de al antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablem todo desde la aparición de lenguajes de programación estructurados. Un diagram es un diagrama que utiliza los símbolos (cajas) estándar mostrados, y que tien algoritmo escrito en esas cajas unidas por flechas, denominadas líneas de fluj la secuencia en que se debe ejecutar. Símbolos de diagramas de flujos Caja símbolos visto anteriormente indica el tipo de operación y el diagrama de gráficamente la secuencia en la que se ejecuta las operaciones. Símbolos principales Función Termina (representa el comie nzo, “inicio”, y el final, “fin” de un progra Puede representar también una parada o interrupción program necesario realizar en un programa. Entrada/Salida (cualquier tipo de introducción de datos en la memo periféricos, “entrada”. O registro de la información procesada en un periférico “salida”. Proceso (cualquier tipo de operación que queda originar ca formato o posición de la información almacenada en memoria aritméticas, de transferencia etc.) NO SI Decisión (indica operaciones lógica o de comparación entredatos normalmente dos y en función del resultado de la misma determina cuá los distintos caminos alternativos del programa se debe seguir; no tiene dos salidas respuesta SI o NO pero puede tener tres o más, según los casos). Decisión múltiple (en función del resultado de la comparación se s los diferentes caminos de acuerdo con dicho resultado). Conector (sirve para enlazar dos partes cualquiera de un ordinogra de un conector en la salida y otro conector en la entra conexión en la misma página del diagrama. Indicador de dirección o línea de flujo (indica el sentido de ejec operaciones). Línea conectora (sirve de unión entre dos símbolos). Conector (conexión entre dos puntos del organigrama situado diferentes). Llamada subrutina o a un proceso predeterminado (una subrutina en independiente del programa principal, que recibe una entrada proce dicho programa, realiza una tarea determinada y regresa, a programa principal. Pantalla (se utiliza en ocasiones en lugar del símbolo de E/S).

Transcript of DIAGRAMAS DE FLUJO

DIAGRAMAS DE FLUJO

Un diagrama de flujo (flowchar) es una de las tcnicas de representacin de algoritmo ms antigua y a la vez ms utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparicin de lenguajes de programacin estructurados. Un diagrama de flujo es un diagrama que utiliza los smbolos (cajas) estndar mostrados, y que tiene los pasos de algoritmo escrito en esas cajas unidas por flechas, denominadas lneas de flujo, que indican la secuencia en que se debe ejecutar. Smbolos de diagramas de flujos Caja smbolos visto anteriormente indica el tipo de operacin y el diagrama de flujo ilustra grficamente la secuencia en la que se ejecuta las operaciones. Smbolos principales Funcin Termina (representa el comienzo, inicio, y el final, fin de un programa. Puede representar tambin una parada o interrupcin programada que sea necesario realizar en un programa. Entrada/Salida (cualquier tipo de introduccin de datos en la memoria desde los perifricos, entrada. O registro de la informacin procesada en un perifrico salida. Proceso (cualquier tipo de operacin que queda originar cambio de valor, formato o posicin de la informacin almacenada en memoria, operaciones aritmticas, de transferencia etc.) Decisin (indica operaciones lgica o de comparacin entre datos normalmente dos y en funcin del resultado de la misma determina cul de los distintos caminos alternativos del programa se debe seguir; normalmente tiene dos salidas respuesta SI o NO pero puede tener tres o ms, segn los casos). Decisin mltiple (en funcin del resultado de la comparacin se seguir uno de los diferentes caminos de acuerdo con dicho resultado).

NO SI

Conector (sirve para enlazar dos partes cualquiera de un ordinograma a travs de un conector en la salida y otro conector en la entrada. Se refiere a la conexin en la misma pgina del diagrama. Indicador de direccin o lnea de flujo (indica el sentido de ejecucin de las operaciones). Lnea conectora (sirve de unin entre dos smbolos).

Conector (conexin entre dos puntos del organigrama situado en pgina diferentes). Llamada subrutina o a un proceso predeterminado (una subrutina en un mdulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza una tarea determinada y regresa, al terminar, al programa principal. Pantalla (se utiliza en ocasiones en lugar del smbolo de E/S).

Impresora (se utiliza en ocasiones en lugar de smbolo de E/S)

Teclado (se utiliza en ocasiones en lugar del smbolo de E/S)

Comentarios (se utiliza para aadir comentarios clasificadores a otros smbolos del diagrama de flujo. Se pueden dibujar a cualquier lado del smbolo)

INICIO

Leer nombre, horas, precio

Bruto Horas precio

tasas 0,25 bruto

neto bruto - tasas

Leer nombre, horas, precio

fin

Cada diagrama de flujo comienza y termina con un smbolo termina:

TerminalNO

Subprograma

SI

Entrada Salida Proceso

El finamiento del algoritmo conduce a los pasos sucesivos necesarios para realizar las operaciones de lectura, verificacin del ltimo dato, suma y media de los datos.

Si el primer dato ledo es 0, la divisin S/C producira un error si se ejecutara el algoritmo en una computadora, ya que no est permitida en ella divisin por cero.

inicio

C0 S0

C- contador de nmeros S sumador de nmeros

Leer datos

Datos 0

NO

CC+1 S S + dato

Media s/c

Si el primer dato ledo es 0 la divisin S/C producir un error si se ejecutara el algoritmo en una computadora, ya que no esta permitida en ella la divisin por cero

Imprimir media

fin

Ejemplo

Suma de los nmeros pares comprendido entre 2 y 100

inicio

SUMA 2 NUMERO 4

SUMA SUMA + NUMERO

NUMERO NUMERO + 2

Numero = < 100

SI

Escribe suma

fin

Ejemplo

Se desea realizar el algoritmo que resuelve el siguiente problema: Clculo de los salarios mensuales de los empleados de una empresa sabiendo que stos se calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por horas. Si se pasan de cuarenta horas semanales, las horas extraordinarias se pagarn a razn de 1,5 veces la hora ordinaria.

Los clculos son:

1. Leer datos del archivo de la empresa, hasta que se encuentre la ficha final del archivo HORAS, PRECIO-HORA, HOMBRE?. 2. Si HORAS 40, entonces SALARIO es la suma de 40 veces PRECIO-HORA mas 1,5 veces PRECIO-HORA por (HORAS 40)

inicio

Escribe suma

SI

Hora = < 40

NO

SALARIO = HORAS PRECIO-HORA

SALARIO = 40 PRECIOHORAS+1,5 PRECIO-HORA (HORAS-40!

Escribe SALARIO

MAS DATOS

NO

fin

Una variante tambin vlida al diagrama de flujo anterior es:

inicio

MAS DATOS

Leer Hora, precio hora nombre

SI

Hora = < 40

NO

SALARIO = HORAS PRECIO-HORA

SALARIO = 40 PRECIOHORAS+1,5 PRECIO-HORA (HORAS-40!

Escribe SALARIO

fin

EJEMPLO:

La escritura de algoritmos para realizar operaciones sencillas de conteo es una de las primeras cosas que un ordenador puede aprender. Supongamos que se proporciona una secuencia de nmeros, tales como

5302440023602

Y desea contar e imprimir el nmero de ceros de la secuencia.

El algoritmo es muy sencillo, ya que slo basta leer los nmeros de izquierda a derecha, mientras se cuentan los ceros. Utiliza como variable la palabra NUMERO para nmeros que se examinan y TOTAL para el nmero de ceros encontrados. Los pasos a seguir son:

1. 2. 3. 4. 5. 6. 7. 8. 9.

Establecer TOTAL a cero Quedan ms nmeros a examinar? Si no quedan nmeros imprir el valor de total y fin: Si existen mas nmeros, ejecutar los pasos 5 a 8. Leer el siguiente numero y dar su valor a la variable numero. Si numero= o, incrementar total en 1. Si numero > o, no modificar total. Retornar al paso. El diagrama del flujo correspondiente es:2

INICIO

TOTAL 0

MSNMEROS?

NO

SI

Leer NUMERO NUMEROre, horas, precioSINMEROS = 0

SI

TOTAL TOTAL + 1

ESCRIBIR TOTAL

finEjemplo

Dados tres nmeros, determinar si la suma de cualquier pareja de ellos es igual al tercer nmero. Si se cumple esta condicin, escribir>> igual>> y, en caso contrario, escribir, distintas. En el caso de que los nmeros sean: 3 9 6, la respuesta es iguales, ya que 3 + 6 =9. Sin embargo, si los nmeros fueran: 2 3 4, el resultado sera Distintas.

Para resolver este problema, se puede comparar la suma de cada pareja al tercer nmero. Con tres nmeros solamente existen tres parejas distintas y el algoritmo de resolucin del problema ser fcil. 1. 2. 3. 4. 5. Leer los tres valores, A, B y C Si A + B = C escribir Iguales y parar Si A + C = B escribir Iguales y parar Si A + C = A escribir Iguales y parar Escribir Distintas y parar

El diagrama de flujo correspondiente es:

INICIO

Leer A, B, C NUMEROre, horas, preciosi

A+B=C

no

A+B=C

si

noB+C=A

si

no

ESCRIBIR distinta

ESCRIBIR iguales

finPSEUDOCDIGO El pseudocdigo es un lenguaje de especificacin (descripcin) de algoritmo. El uso de tal lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil. Los lenguaje APL Pascal y Ada se utilizan a veces como lenguajes de especificacin de algoritmos. El pseudocdigo naci como un lenguaje similar al ingls y era medio de representar bsicamente las estructuras de control de programacin estructurada que se vern en captulos posteriores. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. El pseudocdigo no puede ser ejecutado por una computadora. La ventaja del pseudocdigo es que en su uso, en la planificacin de un programa, el programador se puede concentrar en la lgica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especfico. Es tambin fcil modificar el pseudocdigo si se descubren errores o anomalas en la lgica del programa, mientras que en muchas ocasiones suele ser difcil el cambio en la lgica, una vez que est codificado en un lenguaje estructurado como Pascal. La representacin pseudocdigo del diagrama de flujo es:

Start //clculo de impuesto y salarios read nombre, horas, precio_hora salario_bruto horas * precio_hora tasas 0,25 * salario_bruto salario_neto salario_bruto tasas write nombre, salario_bruto, tasas, salario_neto end

El algoritmo comienza con la palabra start y finaliza con la palabra end, en ingls (en espaol) inicio o fin. Entre estas palabras, slo se escribe una instruccin o accin por lnea.

La lnea precedida por // se denomina comentario. Es una informacin al lector del programa y no realiza ninguna instruccin ejecutable, slo tiene efecto de documentacin interna del programa. Algunos autores suelen utilizar corhetes o llaves.

No es recomendable el uso de apstrofos o simples comillas como representan en BASIC de Microsoft los comentarios, ya que este carcter es representativo de apertura o cierre de cadena de caracteres en lenguajes como Pascal o FORTRAN, y dara lugar a confusin. Otro ejemplo aclaratorio en el uso del pseudocdigo podra ser un sencillo algoritmo del arranque matinal de un coche.

Inicio //arranque matinal de un coche introducir la llave de contacto tirar del estrangulador del aire girar la llave de contacto pisar el acelerador oir el ruido del motor pisar de nuevo el acelerador esperar unos instantes a que se calienta el motor llevar el estrangulador de aire a su posicin fin

DIAGRAMAS DE NASSI-SCHNEIDERMAN (N-S)

El diagrama N-S de Nassi-Schneiderman tambin conocido como diagrama de Chapin es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramas de flujos, se pueden escribir diferentes acciones en una caja.

Un algoritmo se representa como un rectngulo en el que cada banda es una accin a realizar:

leer nombre, hora, precio calcular salario horas * precio

calcular impuestos 2.25 * salario calcular neto salario impuestos escribir nombre, salario, impuestos, neto

Nombre del algoritmo

< accin 2>

< accin 3>

..

Fin

Otro ejemplo es la representacin de la estructura condicional

a) si

condicin?

no

Accin 1

Accin 2

b)

condicin?

Si

no

Actividades de Programacin Resueltas Desarrolle los algoritmos que resuelven los siguientes problemas 1. Ir al cine Anlisis del problema Datos de Salida: Datos de entrada: Datos auxiliares: Ver la pelcula nombre de la pelcula, direccin de la sala, hora de proyeccin. entrada, nmero de asiento.

Para solucionar el problema se debe seleccionar una pelcula de la cartelera del peridico, ir a la sala y comparar entrada para, finalmente, poder ver la pelcula. Diseo del algoritmo inicio

tomar el peridico mientras no lleguemos a la cartelera pasar la hoja mientras no se acabe la cartelera leer la pelcula si no gusta, recordarla fin mientras

elegir una de las pelculas seleccionada leer la direccin de la sala y la hora de proyeccin trasladarse a la sala si no hay entradas, ir a fin si hay cola entonces ponerse el ltimo mientras no lleguemos a la taquilla avanzar si no hay entradas, ir a fin fin mientras compra la entrada < ver la pelcula > leer el nmero de asiento de la entrada buscar el asiento sentarse ver la pelcula fin

2. Comprar una entrada para ir a los toros Anlisis del problema Datos de Salida: Datos de entrada: Datos auxiliares: la entrada tipo de entrada (sol, sombra, tendido, andanada) entrada, nmero de asiento.

Hay que ir a la taquilla y elegir la entrada deseada. Si hay entradas se compra (en taquilla o a los reventas). Si no la hay, se puede seleccionar otro tipo de entrada o desistir, repitiendo esta accin hasta que se ha conseguido la entrada o el posible comprador ha desistido. Diseo del algoritmo Inicio Ia a la taquilla Si no hay entradas en taquilla Si nos interesa comprarla en la reventa Ir a comprar la entrada Si no ir a fin < comprar la entrada > Seleccionar sol o sombra Seleccionar barrera, tendido, andanada o palco Seleccionar nmero de asiento Solicitar la entrada Si la tienen disponible entonces Adquirir la entrada

Si no Si queremos otro tipo de entrada entonces Ir a comprar la entrada Fin 3. Averiguar si una palabra es un palndromo. Un palndromo es una palabra que se lee igual de izquierda a derecha que de derecha a izquierda, como por ejemplo, radar Anlisis del problema

DATOS DE SALIDAD DATOS DE ENTRADA DATOS AUXILIARES

: el mensaje que nos dice si es o no un palndromo : palabra : cada caracteres de la palabra al revs.

Para comprobar si una palabra es un palndromo, se puede ir formando una palabra con los caracteres invertidos con respecto a la original y comprobar si la palabra al revs es igual a la original. Para obtener esa palabra al revs, se leern en sentido inverso los caracteres de la palabra inicial y se irn juntando sucesivamente hasta llegar al primer carcter.

Diseo del algoritmo

inicio

Leer palabra

Leer ultimo carcter

LEER CARCTER ANTERIOR

Leer carcter anterior

si

,ms carcter?

,palabras iguales?

No es Un palndromo

Es Un palndromo

fin

4. Realizar un algoritmo que calcule la suma de los enteros enre 1 y 10, es decir, 1 + 2+ 3+. + 10 Anlisis del problema Datos de Salid : suma (contiene la suma requerida) Datos Auxiliares nm (ser una variable que vaya tomando valores entre 1 y 10 y se acumular en suma). Hay que ejecutar un bucle que se realice diez veces. En l se ir incrementando en 1 la variable nm, y se acumular su valor en la variable suma. Una vez salgamos del bucle se visualizar el valor de la variable suma. Diseo del algoritmo Tabla de variables Entero: suma, nm

Inicio

Suma 0 nm 0

Nm nm + 1Escribir suma suma + nm

no

Escribir suma

siEscribir suma

fin

5. Realizar un algoritmo que calcule y visualice los potencias de 2 entre 0 y 10 Diseo del algoritmo Tabla de variables Entero: nm.

inicio

Nm 0

Escribir 2^nm

Nm nm + 1

no

Nm > 10

si

fin

6. Se desea obtener el salario neto de un trabajador conociendo el nmero de horas trabajadas, el salario hora y la tasa de impuestos que se ha de aplicar como deducciones. Las entradas del algoritmo son: horas trabajas, salario_hora, tasas Las salida del algoritmo son: Paga bruta, total de impuestos y paga neta El algoritmo general es: 1. Obtener valores de horas trabajadas, salario_hora y tasas. 2. Calcular salario_bruto, total de impuestos y salario_neto 3. Visualizar salario_bruto, total de impuestos y salario_neto

El refinamiento del algoritmo en pasos de nivel inferior es: 1. Obtener valores de horas trabajadas, salario bruto y tasas 2. Calcular salario bruto, total de impuestos y paga neta. 2.1. Calcular salario bruto multiplicando las horas trabajadas por el salario hora. 2.2. Calcular el total de impuestos multiplicando salario bruto por tasa (tanto por ciento de impuestos) 2.3. Calcular el salario neto restando el total de impuestos de la paga bruta. 3. Visualizar salario bruto, total de impuestos, salario neto.

El diagrama de flujo siguientes representa este algoritmo. Diagrama de flujo

Inicio

Introducir Horas Salario_hora tasas

Calcular Salario_bruto Horas*salario_hora

Calcular Total_impuestos Salario_bruto*tasas

Calcular Salario_neto Salario_bruto-total_impuestos

Visualizar Salario_bruto Total_impustos Salario_neto

fin

7. Definir el algoritmo necesario para intercambiar los valores de dos variables numricas.

Anlisis del problema Para realizar este anlisis se utiliza variables denominada auxiliar que de modo temporal toma uno de los valores dados. Variables: A B AUX El mtodo consiste en asignar una de las variables a la variable auxiliar: AUX A A continuacin se asina el valor de la otra variable B a la primera: AB Por ltimo, se asigna el valor de la variable auxiliar a la segunda variable A: B AUX Variables: A B AUX

primer valor segundo valor, variable auxiliar

Diseo del algoritmo Inicio Leer (A, B) AUX A AB B AUX Escribir (A, B) Fin Diagrama de flujo

Inicio

Leer A, B

AUX A AB B AUX

Escribir A, B

fin

ESTRUCTURA GENERAL DE UN PROGRAMA

EL concepto de programas como un conjunto de instrucciones y sus tipos constituye la parte fundamental del captulo. La descripcin de los elementos bsicos de programacin, que se encontrarn en casi todos los programas: interruptores, contadores, totalizadores, etc. Junto con las normas elementales para la escritura de algoritmos y programas, conforman el resto de captulo.

En el captulo se examinan los importantes conceptos de datos, constantes y variables, expresiones, operaciones de asignacin y la manipulacin de las entradas y salida de informacin, as como la realizacin de las funciones internas como elemento clave en el manejo de datos. Por ltimo se describen reglas de escritura y de estilo para la realizacin de algoritmos y su posterior conversin en programas.

CONCEPTO DE PROGRAMA

Un programa de computadora es un conjunto de instrucciones rdenes dadas a la maquina que producirn la ejecucin de una determinada tarea. En esencia, un programa es un medio para conseguir un fin. El fin ser probablemente definido como la informacin necesaria para solucionar un problema.

En el desarrollo de un programa requiere las siguientes fases:

1. Definicin y anlisis del problema 2. Diseo de algoritmos: Diagrama de flujo Diagrama N-S pseudocdigo

3. 4. 5. 6.

Codificacin del programa; Depuracin y verificacin del programa; Documentacin; Mantenimiento.

Definicin del problema

Diseo del algoritmo

Codificacin del programa Depuracin y verificacin

D O C U M E N T A C I O N

M A N T E N I M I E N T O

PARTES CONSTITUTIVAS DE UN PROGRAMA

Tras la decisin de desarrollar un programa, el programador debe establecer el conjunto de especificaciones que debe contener el programa: entrada, salida y algoritmos de resolucin, que incluirn las tcnicas para obtener las salida a partir de las entradas.

Conceptualmente un programa puede ser considerado como una caja negra. La caja negra o el algoritmo de resolucin, en realidad, es el conjunto de cdigos que transforman las entradas del programa (datos) en salidas (resultados).

El programador debe establecer de donde provienen las entradas al programa. Las entradas, en cualquier caso, procedern de un dispositivo de entrada teclado, disco ..- EL proceso de introducir la informacin de entrada datos en la memoria de la computadora se denomina entrada de datos, operacin de lectura o accin de leer.

La salidas de datos se deben presentar en dispositivos perifricos de salida: pantalla, impresoras, discos, etc. La operacin de salida de datos se conoce tambin como escritura o accin de escribir.

INSTRUCCIONES Y TIPOS DE INSTRUCCIONES

El proceso de diseo del algoritmo o posteriormente de codificacin del programa consiste en definir las acciones o instrucciones que resolver el programa.

Las acciones o instrucciones se deben escribir y posteriormente almacenar en memoria en el mismo orden en que han de ejecutarse, es decir, en secuencia.

Un programa puede ser lineal o no lineal. Un programa es lineal si las instrucciones se ejecutan secuencialmente, sin bifurcaciones, decisin ni comparaciones.

Instruccin 1 Instruccin 2 .. Instruccin n

En el caso del algoritmo las instrucciones se suelen conocer como acciones, y se tendr:

accin 1 accin 2 .. accin n

Un programa es no lineal cuando se interrumpe la secuencia mediante instrucciones de bifurcacin

accin 1 accin 2 .. accin x accin n accin n + i

Las clasificaciones ms usual, desde el punto de vista anterior, es:

1. 2. 3. 4. 5.

Instrucciones de inicio/fin Instrucciones de asignacin Instruccin de lectura Instruccin de escritura Instruccin de bifurcacin.

INSTRUCCIONES DE ASIGNACION

Como ya son conocidas del lector, repasaremos su funcionamiento con ejemplos:

a) A 80 la variable A toma el valor de 80 b) Cul ser el valor que tomar la variable C tras la ejecucin de las siguientes instrucciones: A 12 BA CB A contiene 12, B contiene 12 y C contiene 12.

Nota:

Antes de la ejecucin de las tres instrucciones, el valor de A, B y C, es indeterminado. Si se desea darles un valor inicial, habr que hacerlo explcitamente, incluso cuando este valor sea 0, es decir, habr que definir e inicializar las instrucciones.

A0 B0 C0

c)

Cul es el valor de la variable AUX al ejecutarse la instruccin 5? 1. 2. 3. 4. 5. A 10 B 20 AUX A A B B AUX

d) Cul es el significado de N N + 5 si N tiene el valor actual de 2?

N N+5

Se realiza el clculo de la expresin N + 5 y su resultado 2 + 5 = 7 se asigna a la variable situada a la izquierda, es decir, N tomar un nuevo valor 7.

Se debe pensar en la variable como en una posicin de memoria, cuyo contenido puede variar mediante instrucciones de asignacin (un smil suele ser un buzn de correos, donde el nmero de cartas depositadas en l variar segn el movimiento diario del cartero de introduccin de cartas o del dueo del buzn de extraccin de dichas cartas).

INSTRUCCIONES DE LECTURA DE DATOS (ENTRADA)

Esta instruccin lee datos de un dispositivo de entrada. Cul ser el significado de las instrucciones siguientes?

a) Leer (nmero, horas,. Tasa) Leer del terminal los valores nmero, horas y tasas, archivndolos en la memoria; si los tres nmero se teclean en respuesta a la instruccin son 12345, 32 1200, significara que se han asignado a las variables esos valores y equivaldra a la ejecucin de las instrucciones. Nmero 12345 Horas 32 Tasa 1200

b) Leer (a, b , c) Si se leen del terminal 100, 200, 300, se asignaran a las variables los siguientes valores: A B C = = = 100 200 300

Instrucciones de escritura de resultados (salida)

Estas instrucciones se escriben en dispositivo de salida. Explicar el resultado de la ejecucin de la siguientes instrucciones.

A B C

= = =

100 200 300

Escribir (A, B, C )

Se visualizaran en la pantalla o imprimiran en la impresora los valores 100, 200 y 300 que contienen las variables A, B y C.

INSTRUCCIONES DE BIFURCACIN

El desarrollo lineal de un programa se interrumpe cuando se ejecuta una bifurcacin. Las bifurcaciones pueden ser, segn el punto del programa a donde se bifurca, hacan adelante o hacia atrs.

Las bifurcacin en el flujo de un programa se realizarn de modo condicional en funcin del resultado de la evaluacin de la condicin.

Bifurcacin incondicional: la bifurcacin se realiza siempre que el flujo del programa pase por la instruccin sin necesidad del cumplimiento de ninguna condicin.

Bifurcacin condicional: la bifurcacin depende del cumplimiento de una determinada condicin. Si se cumple la condicin, el flujo sigue ejecutando la accin F. si no se cumple, se ejecuta la accin F1.

ELEMENTOS BSICOS DE UN PROGRAMA

En programacin se debe separar la diferencia entre el diseo del algoritmo y su implementacin en un lenguaje especfico. Por ello, se debe distinguir claramente entre los conceptos de programacin y el medio en que ellos se implementan en un lenguaje especfico. Sin embargo, una vez que se comprendan los concepto de programacin cmo utilizarlos, la enseanza de un nuevo lenguaje es relativamente fcil.

Los elementos bsicos constitutivos de un programa o algoritmo son:

Palabras reservadas (inicio, fin si entonces etc) Identificadores (nombres de variables esencialmente, procedimientos, funciones, nombres del programa etc) Caracteres especiales (coma, apstrofo, etc.) Constantes, Variables Expresiones Instrucciones.

datos programa ejecutable

Computadora

Programa fuente

Compilador

si

Existen errores en la compilacin

Programa

montador

Programa ejecutable Ejecucin

Adems de estos elementos bsicos, existen otros elementos que forman parte de los programas, cuyas comprensin y funcionamiento ser vital para el correcto diseo de un algoritmo y naturalmente la codificacin del programa. Estos elementos son:

Bucles Contadores Acumuladores Interruptores Estructuras: 1. Secuenciales 2. Selectivas 3. repetitivas

El amplio conocimiento de todos los elementos de programacin y el modo de su integracin en los programas constituyen las tcnicas de programacin que todo buen programador debe conocer.

DATOS, TIPOS DE DATOS Y OPERACIONES PRIMITIVAS

El primer objetivo de toda computadora es el manejo de la informacin de datos. Estos datos pueden ser las cifras de ventas de su supermercado o las calificaciones de una clase. Un dato es la expresin general que describe los objetos con los cuales opera una computadora. La mayora de las computadoras pueden trabajar con varios tipos (modos) de datos. Los algoritmos y los programas correspondientes operan sobre esos tipos de datos.

En el proceso de resolucin de problemas el diseo de la estructura de datos tan importante como el diseo del algoritmo y del programa que se basa en el mismo.

Existen dos tipos de datos: simples (sin estructura) y compuesto (estructurados). Los datos estructurados se estudian a partir del Captulo 6 y son conjuntos de partidas de datos simples con relaciones definidas entre ellos.

Los tipos de datos simples son los siguientes:

Numricos (integer, real) Lgico (boolean) Carcter (char, string)

Existen algunos, lenguajes de programacin FORTRAN esencialmente que admiten otros tipos de datos; complejos, que permiten tratar los nmeros complejos, y otros lenguajes Pascal que tambin permiten declarar y definir sus propios tipos de datos: enumerados (enumerated) y subrango (subrange)

DATOS NUMRICOS

El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dos formas distintas:

tipo numrico entero (integer) tipo numrico real (real).

Enteros: el tipo entero es un subconjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos. Ejemplos de nmeros enteros son:

5 -15 20 1340

6 4 17 26

Los enteros se denominan en ocasiones nmeros de punto o coma fija. Los nmeros enteros mximos y mnimos de una computadora suelen ser 32768 a + 32767 Los nmeros enteros fuera de este rango no se suelen representar como entero, sino como reales, aunque existen excepciones entero largos: FORTRAN, Turbo BASIC, etc.

Reales: el tipo real consistente en un subconjunto de los nmeros reales. Los nmeros reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consta de un entero y una parte decimal. Los siguientes son nmeros reales:

Este lmite provocar problemas para representar y almacenar nmeros muy grandes o muy pequeos como son los ya citado o los siguientes:

4867213432 0 00000000387

Existen un tipo de representacin denominado notacin exponencial o cientfica y que se utiliza para nmeros muy grandes o muy pequeos As.

3675201000000000000

Se representa en notacin cientfica descomponindose en grupos de tres dgitos

367

520

100

000

000

000

000

Y posteriormente en forma de potencias de 10

3 . 675201 x 10

Y de modo similar

.0000000000302579

Se representa como

3.2579

x 10

DATOS LGICOS (BOOLEANOS)

El tipo lgico tambin denominado booleano es aquel dato que slo tomar uno de dos valores:

Cierto o verdadero (true) y falso (false)

Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas condiciones tipo carcter contiene un solo carcter. Los caracteres que reconocen las diferentes computadoras no son estndar, sin embargo, la mayora reconoce los siguientes caracteres alfabticos y numricos:

caracteres alfabticos ( A, B, C, Z) ( a, b , ,,,, z) caracteres numricos ( 1, 2, 9, 0) caracteres especiales ( +, -, *, /, .; , $ )

Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran delimitados por una comilla (Apstrofo) o dobles comillas, segn el tipo de lenguaje de programacin. La longitud de una cadena de caracteres es el nmero de ellos comprendidos entre los separadores o limitadores. Algunos lenguajes tiene datos tipos cadena.

. hola mortimer . 12 de octubre de 1592 . sr. . Mckoy

CONSTANTES Y VARIABLES

Los programas de computadora contiene cierto valores que ejecucin del programa. Tales valores se llaman constantes. valores que cambiarn durante la ejecucin del programa; variables. Una constante es una partida de datos (objetos) durante todo el desarrollo del algoritmo o durante la ejecucin

no deben cambiar durante la De igual forma, existen otros a estos valores se les llama que permanecen sin cambios del programa.

La mayora de los lenguajes de programacin permiten diferentes tipos de constantes: enteras, reales, caracteres y boolean o lgicas, y representan datos de esos tipos.

Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecucin del programa. Dependiendo del lenguaje, hay diferentes tipos de variables, tales como enteras, reales, carcter, lgicas y de cadena.

Una variable que es de un cierto tipo puede tomar nicamente valores de ese tipo. Una variable de carcter por ejemplo, puede tomar como valor slo caracteres, mientras que una variable entera puede tomar slo valores enteros.

Los nombres de las variables, a veces conocidos como identificadores, suelen constar varios caracteres alfanumricos, de los cuales el primero normalmente es una letra. No deben utilizar aunque lo permitan el lenguaje, caso de FORTRAN como nombre identificadores palabras reservadas del lenguaje de programacin. Nombres vlidos variables son.

de se de de

A5 NOMBRES NOTAS NOMBRES_APELLIDOS

Los nombres de las variables elegidas para el algoritmo o el programa deben ser significativos y tener relacin con el objeto que representan, como pueden ser los casos siguientes:

NOMBRES PRECIOS

para representar nombres de personas para representar los precios de diferentes artculos

NOTAS para representar las notas de una clase.

EXPRESIONES

Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notacin matemtica tradicional; por ejemplo,

A + (b + 3) + c

Aqu los parntesis indican el orden de clculo y representa la funcin raz cuadrada. Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta de operando y operadores. Segn sea el tipo de objetos que manipulan, las expresiones se clasifican en.

Aritmticas Relacionales Lgicas Carcter

El resultado de la expresin aritmtica es de tipo numrico; el resultado de la expresin relacional y de una expresin lgica es de tipo lgico; el resultado de una expresin carcter es de tipo carcter.

EXPRESIONES ARITMTICAS

Las expresiones aritmticas son anlogas a las formulas matemticas, las variables y constantes son numricas (real o entera) y las operaciones son las aritmticas

+ -. * / .*-*, ^ div. mod.

suma Resta multiplicacin divisin exponenciacin divisin entera Mdulo (resto)

Los smbolos +, -, * ,^( 0 **) y las palabras clave div y mod se conocen como operadores aritmticos. En la expresin. 5+3 Los valores 5 y 3 se denomina operando. El valor de la expresin 5 + 3 se conoce resultado de la expresin. Los operadores se utilizan de igual forma que en matemticas. Por consiguiente, A . BV se escribe en un algoritmo como A * B y . C como C/4. Al igual que en matemticas el signo menos juega un doble papel, como resta en A B y como negacin en A. Todos los operadores aritmticos no existen en todos los lenguaje de programacin; por ejemplo, en FORTRAN no existe div y mod. El operador exponenciacin es diferente segn el tipo de lenguaje de programacin elegido (^, en BASIC, ** en FORTRAN)

Los clculos que implican tipos de datos reales y enteros suelen dar normalmente resultados del mismo tipo si los operandos lo son tambin. Por ejemplo, el producto de operando reales produce un real. OPERADORES DIV Y MOD El smbolo / se utiliza para la divisin real y el operador div en algunos lenguajes, por ejemplo BASIC se suele utilizar el smbolo representa la divisin entera. El operador mod representa el resto de la divisin entera, aunque hay lenguaje que utiliza otros smbolos como %. A div B Slo se puede utilizar si A y B son expresiones enteras y obtiene la parte de A/B. por consiguientes. 19 div 6 Toma el valor 3. Otro ejemplo puede ser la divisin 15/6 15 3 Resto /6 2 cociente

En forma de operadores resultar la operacin anterior 15 div 6 = 3 Otros ejemplos son: 19 div 3 19 mod 6 equivale a 6 equivale a 1 15 mod 6 = 3

REGLAS DE PRIORIDAD

Las expresiones que tienen dos o ms operandos requieren una reglas matemticas que permitan determinar el orden de las operaciones se denomina reglas de prioridad o precedencia y son:

1. Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen diferentes parntesis anidados (interiores uno a otros), las expresiones ms internas se evalan primero. 2. Las operaciones aritmticas dentro de una expresin suelen seguir el siguientes orden de prioridad: Operador exponencial (^, Operadores *, /, Operadores div y mod Operadores +, -. o bien **)

En caso de coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada entre parntesis, el orden de prioridad en este caso es de izquierda a derecha.

Ejemplo

Los parntesis tienen prioridad sobre el resto de las operaciones

A * (B + 3)

la constante 3 se suma primero al valor de B, despus este resultado se multiplica por el valor de A.

(A * B) + 3

A y B se multiplican primero y a continuacin se suma 3

A + (B + C) + D

esta exprsin equivale a A +B + C+ D

(A + B/C) + D equivale a A + B/C + D

A * b/c * d

equivale A ( (A * B) / C) * D y no a (A * B) / (C * D)

EXPRESIONES LGICA (BOOLEANAS)

Un segundo tipo de expresiones es la expresin lgica o booleana, cuya valor es siempre verdadero o falso. Recuerde que existen dos constantes lgicas, verdadera (true) y falsa (false) y que las variables lgicas pueden tomar slo estos dos valores.

En esencia, una expresin lgica es una expresin que slo puede tomar estos dos valores, verdadero y falso. Se denominan tambin expresiones booleanas en honor del matemtico britnico George Boole, que desarroll lgebra lgica del Boole.

Las expresiones lgicas se forman combinando constantes lgicas, variables lgicas y otras expresiones lgicas, utilizando los operadores lgicas not, and y por y los operadores relaconales (de relacin o comparacin) =, , =, .

Operadores de relacin

Los operadores relacionales o de relacin permiten realizar comparaciones de valores de tipo numricos o carcter. Los operadores de relacin sirven para expresar las condiciones en los

algoritmos. El formato general para las comparaciones y el resultado de la operacin ser verdadero o falso. As por ejemplo, si A = 4 y B = 3, entonces

A>B

es verdadero

Mientras que

(A 2) < (B 4)

es falso

Los operadores de relacin se pueden aplicar a cualquier de los cuatro tipo de datos estndar enteros, real, lgico, carcter. La aplicacin a valores numricos es evidente. Los ejemplos siguientes son significativos:

N1

N2

Expresin lgica

Resultado

3

6

31

falso

4

2

4=2

falso

8

5

8 = 9

verdadero

5

5

5 5

falso

Para realizar comparaciones de datos tipo carcter se requiere una secuencia de ordenadores de los caracteres similar al orden creciente o decreciente. Esta ordenacin suele ser alfabtica, tanto maysculas como minsculas, y numrica, considerndolas de modo independiente.

Pero si se consideran caracteres mixtos, se debe recurrir a un cdigo normalizado como es el ASCII. Aunque no todas las computadoras siguen el cdigo normalizado en su juego completo de caracteres, si son prcticamente estndar los cdigos de los caracteres alfanumricos ms usuales.

Cuando se utiliza los operadores de relacin, con valores lgicos, la constante flase (falso) es menor que la constante true (verdadero)

False

false

OPERADORES LGICOS

Los operadores lgicos o booleanos bsicos son not (no), and (y) y or (0).

Operador lgico

Expresin lgica

significado

No (not)

no p (not p)

negacin de p

Y (and)

p y q (p and q)

conjuncin de p u q

O (o)

p o q (p o q)

disyuncin de p y q

Las definiciones de las operaciones no, y, o se resumen en unas tablas conocidas como tablas de verdad:

A

no a

Verdadero

falso

no (6 > 10) es verdadera

Falso

verdadero

ya que (6 6

produce un error, ya que el operador no se aplica a 4

no (4 > 14)

produce un valor verdadero

(1.0