Anda di halaman 1dari 26

I.

- INTRODUCCIN
I.I DE LOS PROBLEMAS A LOS PROGRAMAS
La solucin de problemas haciendo uso de herramientas computacionales requiere de una serie de pasos que permitan una evolucin coherente y progresiva, para ir desde el problema planteado, hasta hallar una solucin interpretable en el computador. La computadora no solamente es una maquina que puede realizar procesos para darnos resultados, sin que tengamos la nocin exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora adems de lo anterior tambin podemos disear soluciones a la medida, de problemas especficos que se nos presenten. Ms aun, si estos involucran operaciones matemticas complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de datos. El diseo de soluciones a la medida de nuestros problemas, requiere como en otras disciplinas una metodologa que nos ensee de manera gradual, la forma de llegar a estas soluciones. A las soluciones creadas por computadora se les conoce como programas y no son ms que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos especficos. Lo anterior nos lleva al razonamiento de que un programa nos sirve para solucionar un problema especfico.

I.I.2 BREVES PRCTICAS DE PROGRAMACIN


La computadora surge con la necesidad de resolver problemas de gran dificultad y complejidad con ms rapidez. Al inventar la computadora se descubre que esta no puede hacer nada que no le indiquen como lo haga, para esto se requiri de los programas para computadora de tal manera que los datos se procesen en la computadora y obtener la informacin deseada. Al hacer esta resea de la computadora necesitaremos trminos que son importantes que se aclaren. COMPUTADORA: Aparato electrnico capaz de interpretar y ejecutar comandos programados para operaciones de entrada salida clculos y lgica. Mquina capaz de ejecutar operaciones muy complejas a altas velocidades en muy poco tiempo y con un margen de error mnimo. Dispositivo electrnico utilizado para procesar informacin y obtener resultados.

DATO: Es la expresin general que describe los objetos con los cuales opera una computadora (Se refiere a la representacin de un hecho, concepto o entidad real (por ejemplo una palabra hablada o escrita, nmero o dibujo). INFORMACIN: Son datos ordenados y organizados. PROGRAMA: Serie de instrucciones o pasos dados a una computadora en una secuencia lgica para realizar cierta tarea.(conjunto de instrucciones que hacen funcionar a una computadora) INSTRUCCIN: Elemento bsico constitutivo de los programas. Una instruccin es una formulacin de una orden a la computadora y que se manifiesta en la expresin del conjunto de operaciones que debe ejecutar la computadora. Sistema de Procesamiento de Informacin Es un sistema que transforma datos brutos en informacin organizada, significativa y til. Se consideran tres componentes de un sistema de procesamiento de informacin

Entrada.- Datos que se introduce a un programa Procesador.- Ejecutar instrucciones Salida.- Informacin generada por un programa computacional. Transferir o transmitir desde la computadora hasta un dispositivo perifrico o una lnea de comunicacin.

I.2 DEFINICIN DE LENGUAJE.


El lenguaje es aquel que utilizamos todos los seres humanos para comunicarnos, entendernos y aprender, est basado en signos lingsticos. El lenguaje de programacin es aquel sistema que, con una cierta estructura sintctica y semntica, indica distintas instrucciones a un programa de computadora. Los lenguajes se clasifican en tres grandes categora: Maquina: Son aquellos que estn escritos en lenguaje directamente entendibles por la computadora ya que sus instrucciones son cadenas binarias y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Bajo Nivel: Al igual que el lenguaje maquina dependen tambin de la computadora en particular, la diferencia est en la manera de representar las instrucciones ya que se escriben en cdigos alfabticos conocidos como nemotcnicos. (Abreviaturas de palabras inglesas o espaolas). Alto Nivel: Son lenguajes diseados para que los programas sean escritos y entendidos de un modo mucho ms fcil. En los cuales las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general lenguaje ingles) lo que facilita la escritura y la fcil comprensin por el programador.

1.3 DEFINICIN DE ALGORITMO.


Es una secuencia finita de instrucciones, reglas o pasos que describen de modo preciso las operaciones que un computador debe realizar para ejecutar una tarea determinada en un tiempo finito. Las caractersticas que debe cumplir un algoritmo son: Un algoritmo debe ser Preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe ser Definido, es decir, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado. Un algoritmo debe ser Finito, es decir, si se sigue el algoritmo se debe terminar en algn momento.

1.4 ALGORITMOS COTIDIANOS.


Son todos aquellos algoritmos que nos ayudan a resolver problemas diarios y que hacemos casi sin darnos cuenta que estamos siguiendo una metodologa para resolverlos. En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestin o inclusive en las instrucciones que recibe un trabajador por parte de su patrn.

A.- Un ejemplo podra ser el cambiar la llanta a un automvil: 1. Inicio. 2. Traer gato. 3. Levantar el coche con el gato. 4. Aflojar tornillos de las llantas. 5. Sacar los tornillos de las llantas. 6. Quitar la llanta. 7. Poner la llanta de repuesto. 8. Poner los tornillos. 9. Apretar los tornillos. 10. Bajar el gato. 11. Fin B.- Ejemplo de un algoritmo para preparar una taza de caf, tomando en cuenta que se tiene agua caliente, una taza, cuchara, caf, crema y azcar. 1. Inicio. 2. Verter agua caliente en la taza. 3. Tomar con la cuchara el caf. 4. Poner el caf en la taza. 5. Quieres azcar? Si 6 No 8 6. Tomar el azcar con la cuchara 7. Poner el azcar en la taza. 8. Quieres Crema? Si 9 No 11 9. Tomar la crema con la cuchara. 10. Poner crema en la taza 11. Revolver. 12. Fin

1.5 DEFINICIN DE LENGUAJES ALGORITMICOS.


Un Lenguaje algortmico es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso. Tipos de Lenguajes Algortmicos Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo).

No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo). INICIO Edad: Entero ESCRIBA cul es tu edad? Lea Edad SI Edad >=18 entonces ESCRIBA Eres mayor de Edad FINSI ESCRIBA fin del algoritmoFIN

1.6 HISTORIA Y APLICACIN DE LOS LENGUAJES ALGORTMICOS.


Al igual que los idiomas sirven de vehculo de comunicacin entre los seres humanos, existen lenguajes que realizan la comunicacin entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute. Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se componan en el lenguaje real de las mquinas mismas. La dificultad de programar las mquinas de esta manera limitaba drsticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programacin ms orientados hacia la expresin de soluciones con la notacin de los problemas mismos. Los primeros lenguajes de programacin se conocieron como Lenguajes Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores se define un cdigo especial llamado mnemnico para cada una de las operaciones de la mquina y se introduce una notacin especial para especificar el dato con el cual debe realizarse la operacin. A mediados de los aos 60s aparecieron los primeros lenguajes de propsito general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C,C++, PASCAL, etc. pero el desarrollo de nuevas tecnologas, tanto en arquitectura de computadoras como en lenguajes de programacin, contina a paso acelerado, cada vez con mayor velocidad, el panorama est cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programacin actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C.

2. METODOLOGA PARA LA RESOLUCIN DE PROBLEMAS POR MEDIO DE COMPUTADORAS.


2.1 Definicin del problema: El enunciado completo del problema Qu es lo que se desea obtener? 2.2 Anlisis del problema: Para poder definir con precisin el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solucin eficaz. Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos: Los resultados esperados. Los datos de entrada disponibles. Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (frmulas, tablas, accesorios diversos).

Una medida aconsejable para facilitar esta etapa consiste en colocarnos en lugar de la computadora deduciendo los elementos que necesitaremos para alcanzar el resultado. Ejemplo: Leer el radio de un crculo y calcular e imprimir su superficie y circunferencia. ANALISIS Las entradas de datos en este problema se concentran en el radio del crculo. Dado que el radio puede tomar cualquier valor dentro del rango de los nmeros reales, el tipo de datos radio debe ser real. Las salidas sern dos variables: superficie y circunferencia que tambin sern de tipo real. Entradas: Radio del crculo (variable RADIO). Salidas: Superficie del crculo (variable AREA). Circunferencia del crculo (variable CIRCUNFERENCIA). Variables: RADIO, AREA, CIRCUNFERENCIA tipo real. 2.3 Diseo de la solucin: Una computadora no tiene capacidad para solucionar problemas ms que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtencin de un algoritmo que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos. Esta etapa incluye la descripcin del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programacin. Como puede verse, solo se establece la metodologa para alcanzar la solucin en forma conceptual, es decir; sin alcanzar la implementacin en el sistema de cmputo. De acuerdo al ejemplo tenemos que la informacin proporcionada constituye su entrada y la informacin producida por el algoritmo constituye su salida. Los problemas complejos se pueden resolver ms eficazmente por la computadora cuando se dividen en subproblemas que sean ms fciles de solucionar. El problema de clculo de la longitud y superficie de un crculo se puede descomponer en subproblemas ms simples:

Leer datos de entrada. Calcular superficie y longitud. Escribir resultados (datos de salida).

2.4 Codificacin Se refiere a la obtencin de un programa definitivo que pueda ser comprensible para la mquina. Incluye una etapa que se reconoce como compilacin. Si la codificacin original se realiz en papel, previo a la compilacin deber existir un paso conocido como transcripcin.

Programa Fuente Est escrito en un lenguaje de programacin. (pascal, C++,Visual Fox, Visual Basic, etc). Es entendible por el programador. Programa Ejecutable Est en lenguaje mquina. Entendible por la mquina. 2.5 Prueba y depuracin Una vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuelve o no el problema planteado en forma satisfactoria. Las pruebas que se le aplican son de diversa ndole y generalmente dependen del tipo de problema que se est resolviendo. Comnmente se inicia la prueba de un programa introduciendo datos vlidos, invlidos e incongruentes y observando cmo reacciona en cada ocasin. El proceso de depuracin consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuracin como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeo del programa

2.6 Documentacin: Es la gua o comunicacin escrita que sirve como ayuda para usar un programa, o facilitar futuras modificaciones. A menudo un programa escrito por una persona es usado por muchas otras, por ello la documentacin es muy importante; sta debe presentarse en tres formas: EXTERNA, INTERNA y AL USUARIO FINAL. Documentacin Interna Consiste en los comentarios o mensajes que se agregan al cdigo del programa, que explican las funciones que realizan ciertos procesos, clculos o frmulas para el entendimiento del mismo. Documentacin Externa Tambin conocida como Manual Tcnico, est integrada por los siguientes elementos: Descripcin del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocdigo, Lista de variables y constantes, y Codificacin del Programa, esto con la finalidad de permitir su posterior adecuacin a los cambios. Manual del Usuario Es la documentacin que se le proporciona al usuario final, es una gua que indica el usuario como navegar en el programa, presentando todas las pantallas y mens que se va a encontrar y una explicacin de los mismos, no contiene informacin de tipo tcnico. 2.7 Mantenimiento Se lleva a cabo despus de determinado el programa, cuando se ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio, ajuste y/o complementacin al programa para que siga trabajando de manera correcta.

3. ENTIDADES PRIMITIVAS PARA EL DISEO DE INSTRUCCIONES 3.1 TIPOS DE DATOS.


Dato: Un dato se define como la expresin general que describe los objetos con los cuales opera una computadora. Los datos de entrada se transforman por el programa despus de las etapas intermedias en datos de salida. Los datos se clasifican en diversas categoras, segn el tipo de mquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categoras: Numricos Cadenas Lgico.

TIPO NUMRICO Son aqullos que representan una cantidad o valor determinado. Su representacin se lleva a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen).

Estos pueden representarse en dos formas distintas: Tipo Numrico Entero. Tipo Numrico Real.

Datos de tipos enteros Es un conjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser negativos y positivos.

Datos de tipos reales Consiste en un subconjunto de los nmeros reales. Estos nmeros siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consiste de un nmero entero y una parte decimal. CADENAS Son los datos que representan informacin textual (palabras, frases, smbolos, etc). No representan valor alguno para efectos numricos. Pueden distinguirse porque son delimitados por apstrofes o comillas.

Se clasifica en dos categoras : Datos tipo carcter (char) Datos tipo Cadena (string)

Datos Tipo Carcter Es un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de este tipo contiene solo un carcter. Reconoce los siguientes caracteres : Caracteres Alfabticos (A,B,C,Z,a,b,cz) Caracteres Numricos (0,1,2,9) Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, .) Datos Tipo Cadena Es un sucesin de caracteres que se encuentran delimitados por una comilla (apstrofe) 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 delimitadores. Ejemplos: Hola Mortimer 12 de octubre de 1496 Enunciado cualquiera

Nota: Los smbolos disponibles para la formulacin de caracteres y de cadenas son aqullos que se encuentran en el cdigo ASCII. ASCII (American Standard Code for Information Interchange).

Tipos de datos Lgicos Tambin se le denomina Booleano, es aqul dato que solo puede tomar uno de dos valores: Falso y verdadero. Se utiliza para representar las alternativas (si/no) a determinadas condiciones.

3.2 OPERADORES Y OPERANDOS


Operadores Un operador es el smbolo que determina el tipo de operacin o relacin que habr de establecerse entre los operandos para alcanzar un resultado. Los operadores se clasifican en tres grupos: Aritmticos. Relacionales. Lgicos.

1.- Operadores Aritmticos Son aqullos que permiten la realizacin de clculos aritmticos. Utilizan operandos numricos y proporcionan resultados numricos. OPERADOR + * / Div Mod ^ 2.- Operadores Relacionales Permiten realizar comparaciones de valores de tipo numrico o carcter. Estos operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lgicos. OPERACIN Suma Resta Multiplicacin Divisin real Divisin entera Residuo Exponenciacin

OPERADOR < > = <= >= <>

SIGNIFICADO Menor que Mayor que Igual que Menor o igual que Mayor o igual que Diferente de

Prioridad De Operadores Aritmticos y Relacionales Determina el orden en que habrn de realizarse las operaciones en una expresin determinada. Para obtener la prioridad se deben conocer las siguientes reglas: 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. Las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad. OPERADOR ^ *, /, Div, Mod +, Relacionales Baja PRIORIDAD Alta

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. OPERADORES LOGICOS Son aqullos que permiten la combinacin de condiciones para formar una sola expresin lgica. Utilizan operandos lgicos y proporcionan resultados lgicos tambin. OPERADOR not and or xor RELACIN Negacin (No) Conjuncin (Y) Disyuncin (O) Disyuncin Exclusiva (O/SOLO)

SE OBTIENE VERDADERO SI: NOT AND OR XOR El operando es falso Ambos operandos son verdaderos Al menos un operando es verdadero Solo uno de los operandos son verdadero

PRIORIDAD DE LOS OPERADORES LOGICOS Los operadores aritmticos seguan un orden especfico o de prioridad cuando exista ms de un operador en las expresiones. De modo similar los operadores lgicos y relacionales tienen un orden de prioridad.

Ejemplos: Not 4 > 6 Produce un error, ya que el operador not se aplica a 4. Not (4 > 14) Produce un valor verdadero. (1.0<x) And (x<z +7.0) Si x vale 7 y z vale 4, se obtiene un valor falso.

3.3 EXPRESIONES
Las expresiones son combinaciones de constantes, variables, smbolos de operadores, parntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notacin matemtica tradicional; por ejemplo : a + b ( b+2) Aqu los parntesis indican el orden de clculo. 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 operadores y operandos. Segn sea el tipo de objetos que manipulan, las expresiones se clasifican en : Aritmticas Relacionales Lgicas Carcter

El resultado de la expresin numrica es de tipo numrico; el resultado de una expresin relacional y de una expresin lgica es de tipo lgico ; el resultado de una expresin carcter es de tipo carcter. EXPRESIONES ARITMETICAS Las expresiones aritmticas son anlogas a las frmulas 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 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 operandos reales produce un real. Ejemplo : 4 x 6 se representa por 4 * 6 39 se representa por 3 ^ 9 18 div 6 se representa por 18/6

EXPRESIONES LOGICAS (booleanas) Es una expresin que solo pueden tomar los valores de: verdadero y falso. Las expresiones lgicas se forman combinando constantes lgicas, variables lgicas y otras expresiones y otras expresiones lgicas utilizando los operadores lgicos not, and y or, y los operadores relacionales (de relacin o comparacin) =, >, <, <=, >=, <>.

3.4 IDENTIFICADORES COMO LOCALIDAD DE MEMORIA


Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora que nos permite acceder a su contenido. Reglas para conformar un identificador. Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben contener espacios en blanco. Letras dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer carcter. La longitud de los identificadores puede ser de hasta de 8 caracteres.

4. TCNICAS DE DISEO. 4.1 TOP DOWN


Es una tcnica para disear que consiste en tomar el problema en forma inicial como una cuestin global y descomponerlo sucesivamente en problemas ms pequeos y por lo tanto, de solucin ms sencilla. La descomposicin del problema original (y de las etapas subsecuentes), puede detenerse cuando los problemas resultantes alcanzan un nivel de detalle que el programador o analista pueden implementar fcilmente. El problema se descompone en etapas o estructuras jerrquicas, de modo que se puede considerar cada estructura como dos puntos de vista: lo que hace?, y cmo lo hace? Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente forma: NIVEL N: Vista desde el exterior. "Lo que hace? NIVEL N+1: Vista desde el interior. "cmo lo hace? Ejemplo de un diseo descendente (top-down ) de un control de almacn:

4.2 BOTTON UP
Esta tcnica consiste en partir de los detalles ms precisos del algoritmo completando sucesivamente mdulos de mayor complejidad, se recomienda cuando ya se cuenta con experiencia y ya se sabe lo que se va a hacer. Conforme se va alcanzando el desarrollo de mdulos ms grandes se plantea como objetivo final la resolucin global del problema. Este mtodo es el inverso del anterior y es recomendable cuando se tiene un modelo a seguir o se cuenta con amplia experiencia en la resolucin de problemas semejantes. La tcnica de Botton Up es frecuentemente utilizada para la realizacin de pruebas a sistemas ya concluidos.

4.3 WARNIER ORR


Es una tcnica que utiliza una representacin semejante a la de cuadros sinpticos para mostrar el funcionamiento y organizacin de los elementos que conforman el algoritmo. Bsicamente, utiliza una notacin de llaves para organizar los mdulos y se auxilia en la siguiente simbologa para indicar operaciones de control. SMBOLO + SIGNIFICADO OR (uno, otro o varios) XOR (uno u otro, solo uno) (x,y) puede hacerse tantas veces desde x hasta y

Nota : Los diagramas Warnier Orr se leen de izquierda a derecha y de arriba hacia abajo. Ejemplo de un diagrama de Warnier Orr, de un control de almacn

5. TCNICAS PARA LA FORMULACIN DE ALGORITMOS 5.1 DIAGRAMAS DE FLUJO


Un diagrama de flujo es una representacin esquemtica de un algoritmo que muestra grficamente los pasos a seguir para alcanzar la solucin de un problema. El diagrama de flujo se compone de figuras que ilustran los pasos o procesos a seguir para alcanzar la solucin del problema. Los smbolos representados permiten crear una estructura grfica flexible que ilustra los pasos a seguir. Un diagrama de flujo permite con facilidad la posterior escritura de un programa en algn lenguaje de programacin.

Inicio o fin del diagrama de flujo.

Introduccin de datos de entrada.

Proceso(asignaciones, operaciones, aritmticas, cambios de valor)

Direccin del flujo del Diagrama de Flujo

Condicional

Imprimir en pantalla

Impresin de un resultado

Conexin dentro de una misma pgina

CARACTERSTICAS DE UN DIAGRAMA DE FLUJO Todo diagrama de flujo debe tener un inicio y un fin. Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser rectas verticales y horizontales y no se deben de cruzar.

Todas las lneas utilizadas para indicar direccin del flujo del diagrama deben estar conectadas. El diagrama de flujo debe ser construido de arriba hacia abajo. Y de izquierda a derecha. La notacin empleada en el diagrama de flujo debe ser independiente del lenguaje de programacin. Si, el diagrama de flujo requiere ms de una hoja para su construccin, se debe utilizar conectores adecuados y enumerar las pginas convenientemente. A un smbolo del diagrama (excepto lneas) no puede llegar ms de una lnea.

5.2 PSEUDOCODIGO
Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el paso de codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil. El pseudocdigo naci como un lenguaje similar al ingls y era un medio representar bsicamente las estructuras de control de programacin estructurada. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. Cabe sealar que 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, adems de todo esto es fcil su traduccin a lenguajes como pascal, COBOL, C, FORTRAN o BASIC. El pseudocdigo utiliza para representar las acciones sucesivas palabras reservadas en ingls (similares a sus homnimos en los lenguajes de programacin), tales como star, begin, end, stop, if-then-else, while, repeatuntil.etc

SECUENCIA Inicio accin1 accin2 : : accin n Fin DECISION Simple si condicin entonces accin1 accin2 : : accin n DOBLE si condicin then accin1 accin2 : : en caso contrario accin1 accin2

ITERACION Fija para var. Entera inicial hasta final hacer accin1 accin2 : : accin n CONDICIONAL AL INICIO mientras condicin hacer accin1 accin2 : : accin n CONDICIONAL AL FINAL Repetir accin1 accin2 : accin n Hasta que condicin SELECCION casos selector de valor1 : accin1 accin2

valor2 : accin1 accin2 valor n : accin1 accin2 Ejercicio: Se requiere preguntar dos valores, y a continuacin ofrecer un men con las operaciones bsicas (+, -, *, /). Despus de presentar el resultado se ofrecer la posibilidad de una nueva operacin. Declaracin de variable: Real: X, Y, RESPUESTA Entero: OPCION Carcter: OP Inicio Repetir escribir(Primer valor : ) leer(X) escribir(Segundo valor : ) leer(Y) escribir(1) Suma ) escribir(2) Resta ) escribir(3) Multiplicacin ) escribir(4) Divisin ) escribir(Qu operacin deseas realizar ? : ) leer(OPCION) casos OPCION de 1 : RESULTADO 2 : RESULTADO 3 : RESULTADO X+Y X-Y X*Y

4 : si Y=0 entonces escribir( Error ) RESULTADO en caso contrario RESULTADO X/Y 0

escribir (Resultado : ,RESULTADO) escribir(Deseas otro clculo : [S/N] ) leer(OP) Hasta que RES = N Fin Ejercicio: Preguntar un nombre y repetirse en pantalla tantas veces como se desee. (preguntar cantidad de repeticiones), indicando el nmero de repeticin. Declaracin de variables Cadena: nom entero: x, n Inicio escribir(Nombre : ) leer(nom) escribir(Cuntas veces quieres repetirlo ? : ) leer(n) para x 1 hasta n hacer

escribir(x.- , nom) Fin

5.3 DIAGRAMAS ESTRUCTURADOS (NASSI-SCHNEIDERMAN)


El diagrama estructurado N-S es una tcnica hibrida (una mezcla) entre Diagramas de Flujo y Pseudocdigo. Esta tcnica, tambin conocida como Diagrama de Chapn, utiliza una serie de cajas, similar a los diagramas de flujos, pero no requiere la utilizacin de flechas, debido a que su flujo siempre es descendente. Diagramas Nassi-Schneiderman Caractersticas de un buen diagrama Nassi-Schneiderman: En la primera caja debe ir el nombre o ttulo del algoritmo, en el recuadro siguiente debe ir la palabra Inicio. La ltima instruccin de un Diagrama NS debe ser el recuadro Fin Todas las declaraciones de variables, funciones deben estar especificadas bajo el recuadro que contiene la palabra Inicio. Las estructuras de seleccin y cclicas deben estar lo ms clara posible El diseo debe caer en una hoja, a excepcin de la utilizacin de funciones, las cuales pueden estar en otra hoja, debido a que se consideran un algoritmo diferente. Desventajas de los diagramas NS: En algoritmos extensos su diseo es muy difcil de comprender. La mantencin modificacin de este tipo de diagramas es tediosa. Requiere de hojas muy extensas para ser escrito, debido a que carece de conectores que permitan su conexin con otras hojas. Simbologa utilizada en Tcnica Nassi-Schneiderman
Smbolo

Descripcin Ttulo del Algoritmo Indica el inicio de un algoritmo. Indica el Fin de un algoritmo. Declaracin de Variables. Indica la entrada de informacin Indica la salida de informacin Indica un proceso, una ejecucin de una lnea de cdigo, que puede ser una

asignacin.

Estructura de Decisin.

Estructura de Decisin Mltiple

Estructura Cclica de Ciclo Desde-Hasta

Estructura Cclica de Ciclo Hacer Mientras

Estructura cclica de Repetir - Hasta

6. ESTRUCTURAS ALGORTMICAS. 6.1 SECUENCIALES


6.1.1 ASIGNACIN
La operacin de asignacin es el modo de darle valores a una variable. La operacin de asignacin se representa por el smbolo u operador . La operacin de asignacin se conoce como instruccin o sentencia de asignacin cuando se refiere a un lenguaje de programacin. A fin de manejar datos por medio de variables, estos pueden recibir valores determinados. El tipo de los valores que pueden recibir dependen de la declaracin previa de tales variables. En una asignacin se resuelve, primeramente la expresin (al lado derecho del smbolo de asignacin) y se asigna el resultado en la variable. El formato general de asignacin es: Nom_variable Expresin

Donde Expresin puede ser una variable o constante, operacin, funcin. Ejemplo: A 9

Significa que la variable A se le ha asignado el valor 9. La accin de asignar es destructiva, ya que el valor que tuviera la variable antes de la asignacin se pierde y se reemplaza por el nuevo valor. As en la secuencia de operaciones: A A A 30 189 9

Cuando se ejecutan, el ltimo valor que toma A ser 9, ya que los valores anteriores a este han desaparecido. Las acciones de asignacin se clasifican segn sea el tipo de expresiones: Aritmticas, Lgicas y de Caracteres. ASIGNACION ARITMETICA Las expresiones en las operaciones de asignacin son aritmticas: Suma 5+10+2 Se evala la expresin 5+10+2 y se asigna a la variable Suma, es decir, 17 ser el valor que toma Suma. ASIGNACION LOGICA La expresin que se evala en la operacin de asignacin es lgica. Supngase que M, N, y P son variables de tipo lgico. M 8<5

N P

M o (7 <= 12) 7>6

Tras ejecutar las operaciones anteriores, las variables M,N,P toman los valores, falso, verdadero, verdadero respectivamente. ASIGNACION DE CARACTERES La operacin que se evala es de tipo caracter. x '3 de Mayo de 1999'

La accin de asignacin anterior asigna la cadena de caracteres '3 de Mayo de 1999' a la variable de tipo carcter x.

6.1.2 ENTRADA
Los clculos que realizan las computadoras requieren para ser tiles la Entrada de los datos necesarios para ejecutar las operaciones que posteriormente se convertirn en resultados, es decir, Salida. Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables. Esta entrada se conoce como operacin de Lectura (read). Los datos de entrada se introducen al procesador mediante dispositivos de entrada (teclado, unidades de disco, etc). En la escritura de algoritmos las acciones lectura se representan el formato siguiente: leer ( Nom_variable )

6.1.3 SALIDA
La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc). La operacin de salida se denomina escritura (write). En la escritura de algoritmos las acciones escritura se representan el formato siguiente: escribir (lista de variables de salida)

6.2 CONDICIONALES
6.2.1 SIMPLES
Selectivas (Simples): Se utilizan para tomar decisiones lgicas. Se suelen denominar tambin estructuras de decisiones o alternativas. Es estas estructuras se evala una condicin y en funcin del resultado de la misma se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas. Su representacin en pseudocdigo es: Si condicin entonces accin si no otra accin. donde Si indica el comando de comparacin condicin indica la condicin a evaluar entonces precede a las acciones a realizar cuando se cumple la condicin accin Accin o conjunto de acciones que se realiza cuando se cumple la condicin Sino precede a las acciones a realizar cuando no se cumple la condicin otra accin Accin o conjunto de acciones que se realizan cuando no se cumple la condicin

Dependiendo si la comparacin es cierta o falsa, se puede realizar una o ms acciones. Para realizar ms de una, se puede usar el concepto de bloque (INICIO FINAL) Representacin en diagrama de no condicion si

6.2.2 MLTIPLE
Estructuras repetitivas: Consiste en repetir una o varias acciones un nmero determinado de veces. a esta accin se le llama bucle o ciclo. Las dos principales preguntas que se realizan en el diseo de un ciclo son Que contiene el ciclo? Cuntas veces se debe repetir?

6.3 CCLICOS
Estructura repetitiva Mientras ( While... do): Es aquella en que el cuerpo del ciclo se repite mientras se cumple una determinada condicin. La representacin grfica es: en pseudocdigo: mientras condicin hacer accin 1 accin 2 accin n fin mientras ejemplo: Escribir un algoritmo que permita accin n escribir en la pantalla la frase " desea continuar si o no'

Estructura repetitiva repetir(Repeat....until): Es aquel en que el cuerpo del se ejecuta hasta que se cumpla una condicin determinada que se verifica al final del ciclo. La representacin grfica es en pseudocdigo repetir accin 1 accin 2 accin n hasta_que condicin Ejemplo: Algoritmo que calcule la suma de 100 nmeros introducidos por el teclado

La diferencia de estas estructuras consiste en: -La estructura mientras termina cuando la condicin es falsa y en la estructura repetir termina cuando la condicin es verdadera -Es la estructura repetir el cuerpo del ciclo se ejecuta siempre al menos una vez por lo contrario la estructura mientras es mas general y permite la posibilidad de que el ciclo pueda no ser ejecutado. Estructura repetitiva Desde hasta (for to): Ejecuta las acciones del cuerpo del ciclo un nmero determinado de veces y de modo automtica controla el nmero de veces que se repetirn las instrucciones del cuerpo del ciclo. en pseudocdigo desde variable (v) = vi hasta vf hacer accin 1 accin 2 accin n fin desde donde v = variable ndice vi = valor inicial de la variable vf = valor final de la variable

La estructura desde comienza con una valor inicial de la variable ndice y las acciones especificas se ejecutan a menos que el valor inicial sea mayor que el valor final. El incremento de la variable ndice siempre es uno si no se indica lo contrario. Dependiendo del lenguaje es posible que el incremento sea distinto de uno positivo o negativo.

EJERCICIOS
1.- Pedir una cantidad en Libras esterlinas y convertirlo a pesos mexicanos sabiendo que 1 libra = 21.47 pesos, imprimir resultado en pantalla. 2.- Realizar un diagrama que saque el rea de un triangulo e imprima el resultado en pantalla. 3.- Un ao en Jpiter (el tiempo que tarda Jpiter en hacer un giro completo alrededor del sol) equivale aproximadamente a 12 aos terrestres. Elaborar un programa que permita convertir los das terrestres en aos jovianos. 4.- Obtener el cuadrado de un nmero ingresado por teclado y si el resultado es mayor a 49 entonces imprimir resultado fuera de rango. 5.- Una ciudad pequea de Kansas, ide un ndice de contaminacin tal que de 0 a 55 y es aceptable y arriba de 55 es peligroso. Hacer un Algoritmo que lea el ndice de contaminacin de la ciudad, y que imprima el mensaje correspondiente en funcin del ndice. 6.- En una copiadora si sacas de 30 copias o menos te cobran $0.50 cada copia y de 31 en adelante a $0.25 cada copia. Hacer un Algoritmo para calcular el costo de N copias. 7.- Nancy present 4 pruebas finales, siendo sus calificaciones 9.5, 6.8, 9.2 y 8.8. Hacer un algoritmo para calcular e imprimir el promedio de Nancy.