Você está na página 1de 18

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

4to. de Secundaria

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Algoritmo, Pseudocdigo y Diagrama de Flujo


Desarrollo Algortmico
Un algoritmo no es ms que la solucin a un problema; por tanto desarrollar un algoritmo consiste en desarrollar la solucin de un problema. Ahora bien, esta solucin no es nica ya que un problema puede tener tantas formas de solucionar (algoritmos), como programadores lo intenten. Es decir, cada quien tiene una solucin que dar y es por ello que fcilmente puede detectarse cuando una solucin es copia de otra. Ojo para aquellos estudiantes que tratan de sorprender a su profesor! . ALGORITMO = LGICO + CONTROL . Lgico : Especifica el conocimiento en la solucin del problema. Control : Estrategia para solucionar el problema. Un algoritmo tiene las caractersticas siguientes: - No debe ser ambiguo. Es preciso, indica cada paso ordenadamente. - Debe tener una secuencia inicial. - Cada paso deber tener una secuencia suceso y nica, es decir, que deben indicar claramente el camino a seguir en la solucin del problema. - Est bien definido. Si se repite un algoritmo ms de una vez, los resultados siempre sern los mismos. - El algoritmo debe ser siempre eficiente y dar una solucin al problema o de lo contrario deber dar un mensaje que diga sin solucin. Programa: Un programa define un algoritmo, porque constituye un conjunto de instrucciones que forman el algoritmo (ya codificados en un lenguaje de programacin) y que se dan a un computador para solucionar un problema especfico. Heurstica: Un algoritmo que da o produce una solucin a un problema planteado aunque esta solucin no sea la ptima es llamado Heurstico. Para desarrollar un algoritmo existen dos herramientas universalmente aceptadas y reconocidas en el mundo de la computacin y que ambas tienen vigencia aunque algunos prefieran una ms que la otra. Estas herramientas son: el Pseudocdigo y el Diagrama de Flujo. Es decir, que uno puede desarrollar su algoritmo con cualquiera de las dos herramientas, no con un lenguaje de programacin! Es por ello que se dice con acierto que, para desarrollar un algoritmo no es indispensable conocer un lenguaje de programacin sino ms bien tener un entrenamiento lgico adecuado; ahora, si el algoritmo desarrollado se desea probar en un computador, s se hace totalmente necesario conocer algn lenguaje de programacin.

4to. de Secundaria

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

Pseudocdigo
Pseudocdigo significa representar un algoritmo en una secuencia lgica de actividades que en su conjunto conforman la solucin de un problema, utilizando generalmente verbos expresivos de la actividad que representa. El pseudocdigo utiliza un lenguaje de comunicacin propio de uso cotidiano por ejemplo castellano, ingls, portugus, alemn, etc., y si se conoce algn lenguaje de programacin se puede utilizar algunos elementos que simplifiquen su explicacin en el propio lenguaje como se puede apreciar en algunos algoritmos resueltos.

Diagrama de Flujo
Diagrama de Flujo significa representar un algoritmo en un dibujo, utilizando smbolos grficos que esquematizan determinados hechos, tales smbolos tambin estn estandarizados, teniendo cada uno un significado universal. Un diagrama de Flujo es una representacin grfica que utiliza los smbolos (cajas) estndar y que tiene los pasos del algoritmo escritos en esas cajas, las mismas que se unen mediante flechas, denominadas lneas de flujo.

Smbolos de Diagramas de Flujo


Generalizando describimos a continuacin los smbolos utilizados en los Diagramas de Flujo. Terminal Representa el inicio y el fin de un programa. Se coloca uno al comenzar y otro al terminar un diagrama de flujo. Ejemplo:

Entrada / Salida Simboliza el ingreso o salida de datos o informacin en un programa. Este smbolo va en cualquier parte del diagrama de flujo dependiendo en que parte se ingresen o muestren datos. Ejemplo: Ingresar un nmero N.

Proceso En este smbolo se representan todas las acciones u operaciones matemticas o lgicas que se realizan en el desarrollo de un programa. Estas operaciones pueden originar tambin el cambio de un valor dentro del programa.

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Ejemplo: Sumar 2 + 5, X = m + n

Condicional Representa a las operaciones de comparacin entre datos. El resultado de esta comparacin determina el flujo o camino del programa. Normalmente un smbolo condicional tiene dos salidas: SI o NO. Ejemplo: Averiguar si A es mayor que B.

Conector misma pgina Este smbolo se utiliza para enlazar dos partes cualquiera de un diagrama de flujo. Esto se realiza a travs de un conector en la salida y otro conector en la entrada. Este smbolo se refiere a la conexin en la misma pgina del diagrama, llevan una letra o un nmero en el interior a fin de identificar cules son los bloques del diagrama de flujo, con los cules estn conectados. Ejemplo:

Conector otra pgina Permite hacer la conexin o enlazar diagramas de flujo cuando stos usan ms de una pgina. Se utiliza uno al final de la pgina y otro al comenzar la siguiente pgina, llevan una letra o un nmero en el interior a fin de identificar cual es la pgina del diagrama de flujo, con la cual est conectado. Ejemplo:

4to. de Secundaria

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

Pantalla Este smbolo se utiliza en ocasiones para representar la salida de un dato en la pantalla. Ejemplo: Mostrar en pantalla el nmero 5.

Impresora Este smbolo se utiliza en ocasiones para representar la salida de un dato a travs de la impresora. Ejemplo: El resultado de X = 2 + 6 aparezca por impresora.

Cabezas de Flecha Indican la direccin o lnea de flujo que tomar el diagrama de flujo (Direccin del Flujo de Control en la secuencia del programa escrito). Ejemplo:

Sentido Es una lnea que indica la unin de dos smbolos de un diagrama de flujo y el sentido mismo del flujo de los datos o informacin. Es decir, si ste ser horizontal o vertical. Generalmente se adopta que la direccin del flujo deber ser de arriba hacia abajo y de izquierda a derecha. Ejemplo:

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Escribiendo algoritmos utilizando pseudocdigos y diagramas de flujo.


Elaborar el pseudocdigo y diagrama de flujo para el algoritmo que indica las operaciones a seguir por un automovilista al cual se le desinfla un neumtico en la calle de una ciudad. Solucin: 1. Se inicia el proceso. 2. Tiene neumtico inflado de repuesto y herramientas para efectuar el cambio de neumtico? SI : entonces ir al paso 3.

NO : entonces ir al servicentro. 3. Colocar la gata y levantar el carro. 4. Aflojar las tuercas. 5. Estn todas las tuercas flojas? SI : entonces ir al paso 7.

NO : entonces continuar aflojndolas. 6. Regresar al paso 4. 7. Efectuar el cambio de neumtico. 8. Ajustar las tuercas. 9. Bajar el carro. 10. Termina el proceso.

En este ejemplo sencillo se notar que empleamos los smbolos de proceso y condicional en varios momentos diferentes del proceso de este algoritmo. Se observa tambin en este ejemplo con la secuencia de flujo dado por las flechas indican unin de las acciones a partir de la accin 3 (levantar el carro); tanto en el caso que la reparacin la realice el mismo conductor en la calle o el mecnico en el servicentro. A continuacin veremos el diagrama de flujo del problema.

4to. de Secundaria

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Datos y tipos de datos


Un dato es la expresin general que describe los objetos o elementos con los cuales opera o trabaja una computadora. Por ejemplo una nota, un nombre o apellido de una persona, entre otros. Los datos se clasifican de forma siguiente: a. Datos Numricos: Estn representados por todos los valores numricos y son representados de distintas formas: Enteros (integer). El tipo entero son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos. Ejemplo: 18, 23, -18, 454, 18720, -1269, -728. Reales (real). 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. Ejemplo: 0.79, 39.47, 3.746, -79.4, 5.16, -33.46. b. Datos Lgicos: El tipo lgico (tambin llamado booleano) es aquel dato que slo puede tomar uno de los valores: verdadero (true) o falso (false). Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta ser verdadera o falsa, segn sea par o impar. c. Datos tipo carcter: Los datos de este tipo conforman un conjunto finito y ordenado que la computadora puede reconocer. Un dato tipo carcter contendr slo un carcter. Entre ellos tenemos: Caracteres alfabticos (A, B, C, D) Caracteres numricos (1, 2, 3, 4) Caracteres especiales (+, -, *, /, <, >... etc.) d. Datos tipo cadena: Un tipo de dato tipo cadena es una sucesin de caracteres que se encuentran delimitados por una comilla (apstrofe) o doble comilla. La longitud de una cadena de caracteres es el nmero de caracteres comprendidos entre los separadores. Ejemplo: Colegio La Merced la longitud de esta cadena es de 17 caracteres. Juan naci el 19 de junio la longitud de esta cadena es de 25 caracteres. Sarah es hermana de Milagros la longitud de esta cadena es de 28 caracteres. e. Constantes: Las constantes son datos cuyos valores no cambian durante la ejecucin de un programa. Por ejemplo: PI = 3.1416. f. Variables: Son los datos cuyos valores si varan durante la ejecucin del programa. A las variables se les conoce o identifica por los atributos siguientes: a) Nombre de la variable. Que indica como se identifica o se llama la variable. b) Tipo. Que describe el uso que se le dar a la variable, por ejemplo: numrico, de cadena, de carcter. Ejemplo: X = 5 es decir la variable X donde se almacena el valor de 5 de tipo numrico.

4to. de Secundaria

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notacin (forma de escritura) matemtica tradicional. Los valores de las variables nos permitirn determinar el valor de las expresiones, debido a que stos estn implicados en la ejecucin de las operaciones indicadas. Estas constan de operandos y operadores. Segn el tipo de objeto que manipulan, pueden clasificarse en:

Aritmticas Lgicas Caracter

resultado tipo numrico. resultado tipo lgico. resultado tipo caracter.

Expresiones Aritmticas Estas expresiones son anlogas a las frmulas matemticas. Las variables y constantes son numricas (real o entera) y las operaciones son las aritmticas. Las palabras claves div y mod se conocen como operadores matemticos. + suma resta * multiplicacin / divisin **, ^ exponenciacin div divisin entera mod mdulo o resto Reglas de prioridad Las expresiones que tienen dos o ms operandos requieren de reglas matemticas que permitan determinar el orden de las operaciones, stas se denominan reglas de prioridad o precedencia y son: 1. Las operaciones que estn encerradas entre parntesis se evalan primero. Si existen diferentes parntesis anidados (interiores unos a otros), las expresiones ms internas se evalan primero. 2. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad:

operador exponencial (^, o bien **). operadores *, /, \. operadores div y mod.


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. Expresiones lgicas (booleanas) Este tipo de expresiones pueden tomar el valor de verdadero o falso. Pues existen dos constantes lgicas, verdadera y falsa y que las variables lgicas pueden tomar slo estos dos valores, verdadero o falso. Estas expresiones se forman combinando constantes, variables y otras expresiones lgicas, utilizando los operadores lgicos not, and y or, y los operadores relacionales =, <, >, <=, =>, < >.

10

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

a) Operadores de relacin: Los operadores de relacin permiten realizar comparaciones de valores de tipo numrico o carcter. Estos sirven para expresar las condiciones en los algoritmos. Los operadores de relacin se pueden aplicar a cualquiera de los cuatro tipos de datos estndar: entero, real, lgico, caracter. < menor que. > mayor que. = igual que. <= menor o igual que. >= mayor o igual que. < > distinto de. b) Operadores lgicos: Los operadores lgicos bsicos son not (no), and (y) y or (o). Los operadores lgicos y relacionales cuentan con un orden de prioridad. Dentro de stos, los parntesis y caracteres de esta naturaleza se pueden utilizar y tendrn prioridad sobre cualquier operacin. Operaciones de asignacin La operacin de asignacin es el modo de darle valores a una variable, se representa con el smbolo u operador. Esta operacin de asignacin se conoce como instruccin o sentencia de asignacin cuando se refiere a un lenguaje de programacin. La forma general de una operacin de asignacin es: Nombre de la variable = expresin En este tipo de operacin aparecer un error cuando se quiere asignar valores de tipo carcter a una variable numrica o viceversa.

4to. de Secundaria

11

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

Ejercicio
Elaborar el algoritmo y el diagrama de flujo que describa los pasos a seguir por una persona que efecta una llamada telefnica a otra persona. Solucin:

1. Inicio del proceso. 2. Descolgar el telfono. 3. Obtener lnea. 4. Marcar el nmero. 5. El nmero marcado est ocupado? SI: entonces ir al paso 6. NO: entonces ir al paso 7. 6. Continuar marcando? SI: regresar al paso 3. NO: entonces ir al paso 11. 7. El nmero marcado est equivocado? SI: entonces ir al paso 6. NO: entonces ir al paso 8. 8. Contesta el telfono la persona requerida? SI: realizar la conversacin, e ir al paso 11. NO: entonces ir al paso 9. 9. Se encuentra la persona requerida? SI: realizar la conversacin e ir al paso 11. NO: entonces ir al paso 10. 10. Dejar un mensaje con la persona que contesta? SI: entonces encargar el mensaje. NO: entonces disculparse. 11. Colgar. 12. Termina el proceso.

12

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Ejercicio
Elaborar el algoritmo y el diagrama de flujo de las actividades que realiza una persona para llegar a su trabajo en la maana. Solucin:

1. Inicio del proceso. 2. Levantarse. 3. Asearse (baarse y cepillarse los dientes). 4. Vestirse. 5. Tomar desayuno. 6. Lavarse. 7. Prepara el material de trabajo hasta completarlo. 8. Est todo completo? SI: entonces ir al paso 10. NO: buscar lo que falta e ir al paso 9. 9. Regresar al paso 8. 10. Despedirse. 11. Va al trabajo en auto propio? SI: entonces arrancar y ponerlo en marcha. NO: Va en movilidad pblica? SI: entonces ir al paradero y abordar la movilidad. NO: entonces caminar a su centro de trabajo. 12. Ingresar a su centro de trabajo. 13. Termina el proceso.

4to. de Secundaria

13

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

Ejercicio
Elaborar el algoritmo y el diagrama de flujo que muestre por pantalla todos los nmeros pares mayores que cero(0) pero menores que mil (1,000). Solucin: 1. Inicio del proceso. 2. Representar a los nmeros pares por PAR. 3. Asignar valor inicial: PAR = 0. 4. Incrementar: PAR = PAR + 2. 5. Es PAR < 1,000? SI: entonces ir al paso 6. NO: entonces ir al paso 8. 6. Mostrar en pantalla el valor de PAR. 7. Regresar al paso 4. 8. Terminar el proceso.

14

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Prctica Dirigida N 1 .
Iteracin, Decisin y Nitidez Elaborar el algoritmo que calcule el rea del rectngulo cuya base es B = 4 y la altura H = 1; adems que recalcule la misma rea incrementando cada vez una unidad a B y H. Algoritmo 1. Asignar el valor inicial B=4yH=1 2. Calcular el rea aplicando la frmula: A=B*H 3. Imprimir B, H, A 4. Incrementar en una unidad los valores de B y H B=B+1 H=H+1 5. Regresar al paso 2 En este ejemplo simple se observa que la flecha gua que sale de la ltima figura del diagrama, retorna a un paso anterior dentro del mismo diagrama de flujo; esto es lo que se conoce como una iteracin. Es decir un diagrama de flujo que retorna sobre s mismo repetir nuevamente las mismas operaciones que aparecen dentro de cada bloque a partir de aquel hasta donde retorn la flecha sobre el diagrama. Cada una de estas repeticiones es una iteracin. Veamos el ejemplo anterior que calcula reas de rectngulo a cuyo algoritmo le agregamos dos secuencias ms. Algoritmo 1. Asignar el valor inicial B=4 y H=1 2. Calcular el rea aplicando la frmula: A=B*H 3. Es el rea A, mayor que 60 unidades cuadradas? SI : entonces ir al paso 7 NO : entonces continuar el proceso 4. Imprimir B, H, A 5. Incrementar en una unidad los valores de B y H B=B+1 H=H+1 6. Regresar al paso 2 7. Termina el proceso Este diagrama de flujo difiere mucho del anterior, en primer lugar observamos que el primer diagrama de flujo muestra iteraciones; pero no muestra el final de ellos; es decir el diagrama de flujo tiene un principio pero no muestra donde finaliza el proceso; por el contrario vemos en el segundo diagrama de flujo que agregando el rombo de decisin este limita el nmero de iteraciones, lo que significa que indica si continuamos o detenemos el proceso de acuerdo a una condicin que aparece dentro del rombo. As vemos que la interrogante que aparece dentro del rombo del segundo diagrama de flujo dice: Es A > 60 unidades cuadradas? Si la respuesta es NO, la flecha indica continuar el proceso; pero si la respuesta es SI, la flecha indica detener el proceso.

4to. de Secundaria

15

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

Cuntos valores de B, H y A imprimir el programa? Veamos: 1. B=4 y H=1 Entonces : 2. B=5 y H=2 Entonces : 3. B=6 y H=3 Entonces : 4. B=7 y H=4 Entonces : 5. B=8 y H=5 Entonces : 6. B=9 y H=6 Entonces : 7. B = 10 y H = 7 Entonces :

A1 A2 A3 A4 A5 A6 A7

= 4x1 = 5x2 = 6x3 = 7x4 = 8x5 = 9x6 = 10 x 7

= = = = = = =

4 u2 10 u2 18 u2 28 u2 40 u2 54 u2 70 u2

Cuando la iteracin No. 7 obtenga: A7 = 10 x 7 = 70 u2 que obviamente es mayor que 60 u2 entonces inmediatamente se detendr el proceso por lo que concluimos que existirn slo 6 iteraciones y se imprimirn 6 valores correspondientes a B, H y A. Cuando se elabore un diagrama de flujo se debe procurar que este sea claro y ntido; es decir esforzarse por plantear los diagramas de tal forma que el flujo del proceso siga un orden, de izquierda a derecha y de arriba abajo. Con esto logramos que los dems comprendan la secuencia seguida en la solucin del problema planteado.

Como se observar este diagrama de flujo muestra la solucin al problema de manera diferente al que muestra el segundo diagrama de flujo; esto nos permite hacer algunas afirmaciones: - Ningn diagrama mostrar la solucin a un problema de la misma manera que otro. - En la elaboracin de un diagrama de flujo deben ponerse de manifiesto la creatividad del programador (eso s esforzndose por elaborar los diagramas respetando los estndares establecidos; es decir que el flujo del proceso se muestre de izquierda a derecha y de arriba abajo). De igual manera otro programador puede haber elaborado el mismo diagrama de flujo de la siguiente forma:

16

4to. de Secundaria

Tcnicas de Programacin

Colegio Nuestra Seora de la Merced

Analizando este diagrama vemos que el programador a preferido limitar el espacio ocupado por el diagrama de flujo, al igual que en el ejemplo anterior. El diagrama de flujo no est mal elaborado, lo nico que se aprecia, es que hasta en dos partes del mismo el sentido de las flechas son contrarias al que por regla debe seguirse, no obstante el diagrama de flujo corresponde perfectamente al algoritmo que da solucin al problema. Esto es que las flechas del diagrama no dejan duda alguna acerca del orden con que sern ejecutadas las operaciones cuando el programa sea codificado. Dado el siguiente diagrama de flujo escribir su algoritmo respectivo y elaborar un diagrama de flujo de manera diferente al mostrado (donde no aparezcan crculos conectores). Cuntas impresiones e iteraciones efectuar el computador?

N de Impresiones: ________

N de Iteraciones: _________

4to. de Secundaria

17

Colegio Nuestra Seora de la Merced

Tcnicas de Programacin

18

4to. de Secundaria

Você também pode gostar