You are on page 1of 31

METODOLOGA contenido primera evaluacin Captulo 1. La programacin de computadoras. 1.1. Introduccin 1.2.

Ciclo de vida de una aplicacin informtica 1.2.1. Diseo del programa 1.2.2. Instalacin y explotacin del programa 1.3. Errores 1.3.1. Errores de compilacin 1.3.2. Errores de ejecucin 1.3.3. Errores de lgica 1.3.4. Errores de especificacin 1.4. Calidad de los programas 1.5. Metodologa de la programacin 1.5.1. Programacin modular 1.5.2. Programacin estructurada 1.6. Documentacin de los programas 1.6.1. Documentacin interna 1.6.2. Documentacin externa 1.7. Objetos de un programa 1.8. Identificadores 1.9 Tipos de datos 1.9.1. Tipo numrico entero 1.9.2. Tipo numrico real

1.9.3. Tipo carcter 1.9.4. Tipo booleano 1.10. Constantes 1.11. Variables 1.12. Expresiones 1.12.1. Tipos de expresiones 1.12.2. Operadores 1.12.3. Tablas de verdad de los operadores lgicos 1.12.4. Orden de evaluacin de los operadores Captulo 3. Estructura general de un programa. 3.1. Introduccin 3.2. Partes principales de un programa 3.2.1. Entrada de datos 3.2.2. Proceso o algoritmo 3.2.3. Salida de resultados 3.3. Clasificacin de las instrucciones 3.3.1. Instrucciones de declaracin 3.3.2. Instrucciones primitivas 3.3.3. Instrucciones de control 3.3.4. Instrucciones compuestas 3.3.5. Comentarios 3.4. Variables auxiliares de un programa 3.4.1. Contadores 3.4.2. Acumuladores 3.4.3. Interruptores o conmutadores (switches) 3.5. Tipos de programas

3.6. Lenguajes de programacin Captulo 4. Pseudocdigo 4.1. Introduccin 4.2. Pseudocodificacin de programas 4.2.1. Acciones simples 4.2.2. Sentencias de control 4.2.3. Acciones compuestas 4.2.4. Comentarios 4.2.5. Objetos del programa 4.2.6. Programa 4.3. Paso de Pseudocdigo a diagrama de flujo 4.4. Paso de Pseudocdigo a lenguaje de programacin contenido segunda evaluacin Captulo 5. Estructuras de datos internas (tablas) 5.1. Introduccin 5.2. Conceptos y definiciones 5.3. Tipos de tablas 5.3.1. Tablas unidimensionales (vectores) 5.3.2. Tablas bidimensionales (matrices) 5.3.3. Tablas multidimensionales (poliedros) 5.4. Representacin grfica de las tablas 5.4.1. Tabla de una dimensin (vector) 5.4.2. Tabla de dos dimensiones (matriz) 5.4.3. Tabla de tres dimensiones (poliedro3) 5.4.4. Tabla de cuatro dimensiones (poliedro4)

5.5. Tratamiento secuencial de una tabla 5.5.1. Tratamiento secuencial de un vector 5.5.2. Tratamiento secuencial de una matriz 5.5.3. Tratamiento secuencial de un poliedro Captulo 6. Bsqueda y clasificacin interna. 6.1. Introduccin 6.2. Bsqueda lineal 6.2.1. Bsqueda lineal en un vector 6.2.2. Bsqueda lineal en un vector ordenado 6.2.3. Bsqueda lineal en una matriz 6.3. Bsqueda binaria o dicotmica 6.4. Ordenacin de tablas 6.4.1. Ordenacin por insercin directa 6.4.2. Ordenacin por seleccin directa 6.4.3. Ordenacin por intercambio directo. Mtodo de la burbuja 6.4.4. Ordenacin por intercambio directo con el test de comprobacin (switch) 6.4.5. Ordenacin por intercambio directo. Mtodo de la sacudida 6.4.6. Ordenacin por intercambio con incrementos decrecientes. Mtodo Shell Captulo 9. Estructuras de datos externas (archivos). 9.1. Introduccin 9.2. Conceptos y definiciones 9.3. Caractersticas de los archivos 9.4. Clasificacin de los archivos segn su uso 9.5. Organizacin de archivos 9.5.1. Organizacin secuencial 9.5.2. Organizacin aleatoria o directa

9.5.3. Organizacin secuencial indexada 9.6. Operaciones sobre archivos 9.7. Instrucciones para manejo de archivos 9.7.1. Creacin de archivos secuenciales 9.7.2. Lectura de archivos secuenciales 9.7.3. Lecturaescritura de archivos directos 9.7.4. Lecturaescritura de archivos indexados Captulo 10. Mtodos de tratamiento de archivos. 10.1. Introduccin 10.2. Bsqueda en archivos secuenciales 10.2.1. Bsqueda en archivos desordenados 10.2.2. Bsqueda en archivos ordenados 10.3. Particin de archivos 10.3.1. Particin por contenido 10.3.2. Particin en secuencias 10.4. Mezcla de archivos 10.4.1. Mezcla con registro centinela 10.4.2. Mezcla controlada por valor de clave mximo 10.4.3. Mezcla controlada por fin de fichero 10.5. Clasificacin de archivos 10.5.1. Clasificacin por mezcla directa 10.5.2. Clasificacin por mezcla equilibrada 10.5.3. Clasificacin de raz 10.6. Actualizacin de archivos 10.6.1. Actualizacin de archivos secuenciales 10.6.2. Actualizacin de archivos directos

10.6.3. Actualizacin de archivos indexados 10.6.4. Actualizacin interactiva 10.7. Rupturas de secuencia 10.8. Sincronizacin de archivos TEMA 1. LA PROGRAMACIN DE COMPUTADORAS 1.1 INTRODUCCIN Muchas personas piensan que una computadora puede realizar tareas o trabajos de complejidad superior a una inteligencia humana. La realidad es que una computadora no tiene ninguna inteligencia. No olvidemos que no es ms que una mquina creada por el hombre, y por tanto, no podr realizar una tarea que no haya sido previamente determinada por l. Una computadora (ordenador) es una mquina de origen electrnico que puede realizar una gran variedad de trabajos, pero, en principio, slo es capaz de hacer fsicamente tres clases de operaciones bsicas: 1. Sumar, restar, multiplicar y dividir dos valores numricos, es decir, realizar operaciones aritmticas sencillas. 2. Comparar dos valores (comprobar si son iguales, si el primero es mayor que el segundo, etc.), es decir, realizar operaciones lgicas sencillas. 3. Almacenar o recuperar informacin. Con estas pocas operaciones utilizadas y combinadas de forma adecuada, mediante lo que llamamos programa, se pueden llegar a realizar tareas increblemente complejas que aporten la solucin a un determinado problema, ya sea de gestin, tcnico o de cualquier otro tipo. La potencia de clculo de una computadora se deriva de las caractersticas fsicas que posee, entre las que se encuadran principalmente: RAPIDEZ PRECISIN MEMORIA

Las caractersticas citadas provienen de los componentes electrnicos que conforman una computadora: Velocidad de conmutacin de circuitos electrnicos. Rapidez de transmisin de seales elctricas. Fiabilidad de los circuitos. Manejo de seales digitales. Gran capacidad de almacenamiento de informacin. Nuestro objetivo es, para un problema dado, disear una solucin que pueda ser realizada por una computadora. Para ello necesitaremos, en primer lugar, un lenguaje o notacin para expresar la solucin obtenida. Tal solucin debe estar adaptada a las particularidades de la computadora, si bien en una primera fase de su diseo podremos utilizar una notacin intermedia entre el lenguaje natural y el de la computadora, posteriormente ser preciso escribirla en un lenguaje comprensible por la mquina, como, por ejemplo, en Cobol o Pascal, y, finalmente para su ejecucin, la mquina precisar realizar una traduccin a su lenguaje nativo, el denominado lenguaje mquina. 6

1.2. CICLO DE VIDA DE UNA APLICACIN INFORMTICA Una aplicacin informtica se compone de uno o varios programas interrelacionados. El proceso que se sigue desde el planteamiento de un problema hasta que tiene una solucin instalada, se denomina ciclo de vida de una aplicacin informtica. FASES DE DISEO FASES DE INSTALACIN 1.2.1. DISEO DEL PROGRAMA 1. Fase de anlisis * Equipo a utilizar. * Personal informtico. * Estudio de los datos de entrada (INPUT). * Estudio de los datos de salida o resultados (OUTPUT). * Relacin entre la salida y la entrada. * Descomposicin del problema en mdulos. 2. Fase de programacin Consiste en el diseo de la solucin al problema planteado en forma de algoritmo. 3. Fase de codificacin En esta fase se transcribe el algoritmo resultante de la fase anterior a un lenguaje de programacin concreto. Al resultado se le denomina programa. 1.2.2. INSTALACIN Y EXPLOTACIN DEL PROGRAMA 1. Fase de edicin Escritura del programa fuente. Se hace con la ayuda de un programa del sistema denominado editor. 2. Fase de compilacin Traduccin del programa fuente a lenguaje mquina. Para ello se dispone de programas compiladores o intrpretes. 3. Fase de montaje En los programas compilados es necesario aadir al programa objeto algunas rutinas del sistema o en algunos casos subprogramas externos que se hayan compilado separadamente. De ello se encarga el programa montador (linker)

4. Fase de prueba de ejecucin Consiste en ejecutar el programa sucesivas veces don diferentes datos de prueba. 5. Fase de explotacin y mantenimiento La explotacin consiste en el uso continuo y habitual por parte de los usuarios. Paralelamente a la explotacin de una aplicacin, consiste en la comprobacin peridica de su buen funcionamiento. 1.3. ERRORES Corresponden al incumplimiento de las reglas sintcticas del lenguaje, como, por ejemplo, una palabra reservada del lenguaje mal escrita, una instruccin incompleta, etc. 1.3.2. ERRORES DE EJECUCIN Se deben generalmente a operaciones no permitidas, como dividir por cero, leer un dato no numrico en una variable numrica, exceder un rango de valores permitidos, etc. 1.3.3. ERRORES DE LGICA Corresponden a la obtencin por el programa de resultados que no son correctos. 1.3.4. ERRORES DE ESPECIFICACIN Es posiblemente el pero tipo de error. Se deben a la realizacin de unas especificaciones incorrectas motivadas por una mala comunicacin entre el programador y quien plantea el problema. 1.5. METODOLOGA DE LA PROGRAMACIN 1.5.1. PROGRAMACIN MODULAR Se basa en la realizacin de una serie de descomposiciones sucesivas del algoritmo inicial, que describen el refinamiento progresivo del repertorio de instrucciones que van a constituir el programa. 1.5.2. PROGRAMACIN ESTRUCTURADA Se basa en el uso exclusivo de las estructuras secuencia, alternativa e iteracin para el control del flujo de ejecucin de las instrucciones. 1.7. OBJETOS DE UN PROGRAMA Son aquellos manipulados por las instrucciones. Mediante ellos, en un programa podremos realizar el almacenamiento de los datos y de los resultados de las distintas operaciones. Tiene tres atributos: Nombre: Es el identificador del mismo. Tipo: Conjunto de valores que puede tomar. Valor: Elemento del tipo que se asigna. 1.8. IDENTIFICADORES 8

Son palabras creadas por el programador para dar nombre a los objetos y dems elementos que necesita declarar en un programa: variables, constantes, tipos, estructuras de datos, archivos, subprogramas, etc. 1.9. TIPOS DE DATOS Los tipos de datos pueden ser simples o elementales y estructuras de datos o estructurados. 1.9.1. TIPO NUMRICO ENTERO. Ejemplo: 1987 12 +3300 1.9.2. TIPO NUMRICO REAL. Ejemplo: 97.84 12.00 +0.5 Un valor en notacin exponencial tiene la forma mantisa E exponente, donde mantisa es un nmero real y exponente un nmero entero y representa la cantidad mantisa multiplicado por 10 elevado al exponente. 1.9.3. TIPO CARACTER Es el conjunto formado por todos los caracteres o smbolos de que dispone la computadora. Se expresan entre comillas. Los caracteres alfabticos maysculas A, B, C, ....... Z Los caracteres alfabticos minsculas a, b, c, ....... z Los caracteres dgitos 0, 1, 2, .......... 0 Los caracteres especiales (espacio carcter en blanco) +, , *, /, =, <, >, ... ., ,, ;, :, (, ), ?, ...

1.9.4. TIPO BOOLEANO Es el conjunto formado por los valores FALSO y CIERTO. Se expresan con su nombre. 1.10. CONSTANTES Son objetos cuyo valor permanece invariable a lo largo de la ejecucin de un programa. PI=3.141592 PI 1.11. VARIABLES Son objetos cuyo valor puede ser modificado a lo largo de la ejecucin de un programa. 1.12. EXPRESIONES Es la representacin de un clculo necesario para la obtencin de un resultado. Se define una expresin de la siguiente forma: Un valor es una expresin Ejemplo: 1.25, JUAN Una constante o variable es una expresin. Ejemplo: PI, E, X. Una funcin es una expresin. Ejemplo: COS(X), SQR(25) Una combinacin de valores, constantes variables, funciones y operadores que cumplen determinadas reglas de construccin es una expresin. Ejemplo: COS(PI * X) + 1.25 2 * PI * X N = JUAN 1.12.1. TIPOS DE EXPRESIONES Numricas. Son las que producen resultados de tipo numrico se construyen mediante los operadores aritmticos. Ejemplo: PI * SQR(X) Alfanumricas. Son las que producen resultados de tipo alfanumrico. Se construyen mediante los operadores alfanumricos. Ejemplo: Don + N 10

Booleanas. Son las que producen resultados CIERTO o FALSO. Se construyen mediante los operadores relacionados y lgicos. Ejemplo: A > 0 y B <= 5 1.12.2. OPERADORES Aritmticos: ^ Potencia A^B * Producto A*B DIV o \ Divisin A\B=2.5 MOD Divisin entera A\B + Suma o signo positivo Resta o signo negativo Alfanumricos: + Concatenacin Relacionales: = Igual a < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que <> Distinto a Lgicos: no negacin y conjuncin o disyuncin * Parntesis: ( ) Se utilizan para anidar expresiones. 1.12.3. TABLAS DE VERDAD DE LOS OPERADORES LGICOS. 11

Operador NO: FALSO >> CIERTO CIERTO >> FALSO Operador Y: FALSO Y FALSO >> FALSO FALSO Y CIERTO >> FALSO CIERTO Y FALSO >> FALSO CIERTO Y CIERTO >> CIERTO Operador O: FALSO O FALSO >> FALSO FALSO O CIERTO >> CIERTO CIERTO O FALSO >> CIERTO CIERTO O CIERTO >> CIERTO 1.12.4. ORDEN DE EVALUACION DE LOS OPERADORES 1. Parntesis (comenzando por los ms internos) 2. Signo 3. Potencias 4. Productos y divisiones 5. Sumas y restas 6. Concatenacin 7. Relaciones 8. Negacin 9. Conjuncin 10. Disyuncin 1.Dadas las siguientes variables y constantes: x y z PI E

12

Evaluar las siguientes expresiones 2 * x + 0.5 * y 1 / 5 * z 2 + 0.5 * y 1 / 5 * z 2 + 2 1 /5 * z 2 +00.2 * z 2 + 2 2 42 2 PI * X ^ 2 > Y o 2 * PI * X <= Z PI * 1 > Y o 2 * PI * X <= Z 3.14159 > Y o 2 * PI * X <= Z 3.14159 > Y o 6.28318 * X <= Z 3.14159 > Y o 6.28318 <=Z FALSO O 6.28318 <= Z FALSO o CIERTO CIERTO E ^ (X 1) / (X * Z) / (X / Z) E ^ 0 / (X * Z) / (X / Z) E ^ 0 / 10 / (X / Z) E ^ 0 / 10 / 0.1 1 / 10 / 0.1 0.1 / 0.1 1 DON + JUAN = DON JUAN o A = a DON JUAN = DON JUAN o A = a CIERTO o A = a

13

CIERTO O FALSO CIERTO 2 Construir expresiones correctas para las siguientes: 1. ax2 + bx + c " 0 A * X ^ 2 + B * X + C >= 0 2. A es igual a B, pero no es igual a C A = B Y no (A = C) 3. Con DN, MN, AN dia, mes y ao de nacimiento de una persona y DA, MA, AA dias, mes y ao actual. Espresar si tiene 18 aos cumplidos. AA AN > 18 o AA AN = 18 y MA > MN o AA AN = 18 y MA = MN y DA >= DN TEMA 3. ESTRUCTURA GENERAL DE UN PROGRAMA 3.1. INTRODUCCIN Bloque de declaraciones. En l se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando sus caractersticas. Este bloque se encuentra localizado siempre por delante del comienzo de las acciones. Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de realizar para la obtencin de los resultados deseados. 3.2. PARTES PRINCIPALES DE UN PROGRAMA. Estn relacionadas con sus dos bloques ya mencionados. Dentro del bloque de instrucciones podemos diferenciar tres partes fundamentales. DECLARACIONES PROGRAMA Entrada de datos INSTRUCCIONES Proceso o algoritmo Salida de resultados 3.2.1. ENTRADA DE DATOS La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacenan en la memoria central para que puedan ser procesados. Datos de Memoria Entrada Central 14

3.2.2. PROCESO O ALGORITMO DATOS DE ENTRADA PROCESO RESULTADOS 3.2.3. SALIDA DE RESULTADOS Conjunto de instrucciones que toman los datos finales (resultados) de la memoria central y los envan a los dispositivos externos. MEMORIA DATOS CENTRAL DE SALIDA 3.3. CLASIFICACIN DE LAS INSTRUCCIONES Una instruccin se caracteriza por un estado inicial (estado de los objetos que maneja el programa antes de la ejecucin de la instruccin) y otro final (estado en que quedan los objetos despus de la instruccin). El estado final de una instruccin siempre coincide con el estado inicial de la siguiente. Segn la funcin que desempean dentro de un programa, las instrucciones se clasifican de la siguiente manera. 3.3.1. INSTRUCCIONES DE DECLARACIN Su misin es anunciar la utilizacin de objetos en un programa indicando qu identificador, tipo y otras caractersticas corresponde a cada uno de ellos. 3.3.2 INSTRUCCIONES PRIMITIVAS Son aquellas que ejecuta el procesador de modo inmediato. Las instrucciones primitivas pueden ser de entrada, de asignacin o de salida. Instruccin de entrada Su misin consiste en tomar uno o varios datos desde un dispositivo de entrada y almacenarlos en la memoria central en los objetos cuyos identificadores aparecen en la propia instruccin. En un ordinograma aparece con el smbolo de operacin de entrada/salida (romboide) y con la frmula literal siguiente: Leer <lista de objetos> Donde <lista de objetos> es el conjunto de elementos donde se van a depositar en memoria central los datos ledos. Cuando la lista se compone de ms de un elemento, estos se separan por comas. Ejemplo: Entrada de los datos DA, MES y AO desde un dispositivo estndar (teclado). Leer DA, MES, AO Instruccin de asignacin. Es la instruccin que nos permite realizar clculos evaluando una expresin y depositando su valor final en un 15

objeto o realizar movimientos de datos de un valor final en un objeto o realizar movimientos de datos de un objeto a otro. Esta instruccin se realiza en dos tiempos: 1. Se evala la expresin convirtindose en su valor final. 2. El valor final se asigna al objeto borrndose cualquier otro valor previo que ste pudiera tener. AA+1 Instruccin de salida. Su misin consiste en enviar datos a un dispositivo externo, bien tomndolos de objetos depositados en la memoria central o definidos de alguna forma en la propia instruccin. Ejemplo: Escritura en un dispositivo estndar (pantalla) de una fecha situada en la memoria en las variables DA, MES y AO. Escribir DIA, MES, AO 3.3.3. INSTRUCCIONES DE CONTROL Son instrucciones que no realizan trabajo efectivo alguno salvo la evaluacin de expresiones, generalmente lgicas, con el objetivo de controlar la ejecucin de otras instrucciones o alterar el orden de ejecucin normal de las instrucciones de un programa. Instrucciones alternativas Son aquellas que controlan la ejecucin de uno o varios bloques de instrucciones. Existen tres modelos tpicos de instrucciones alternativas: Alternativa simple Controla la ejecucin de un conjunto de instrucciones por el cumplimiento o no de una condicin, si se cumple, se ejecutan, si no se cumple no se ejecutan Ejemplo: Instruccin alternativa simple que escribe la palabra positivo si el contenido de la variable A es mayor que 0. A>0 SI A>0 ESCRIBIR positivo SI A<0 FIN Alternativa doble Controla la ejecucin de dos conjuntos de instrucciones, si se cumple, se ejecutan las instrucciones del primer bloque: si no se cumple se ejecutan las instrucciones del segundo. Ejemplo: Instruccin alternativa doble que escribe la palabra POSITIVO si el contenido de la variable A es 16

mayor que y NEGATIVO si no lo es. A>0 SI A>0 ESCRIBIR POSITIVO SI A<0 ESCRIBIR NEGATIVO Alternativa multiple. Controla la ejecucin de varios conjuntos de instrucciones. Se ejecutar el conjunto que se encuentre relacionado con el valor que resulta de la evaluacin de la expresin de tal forma que si este no aparece se ejecutar el ltimo. Las distintas opciones tienen que ser disjuntas, es decir, slo puede cumplirse una de ellas. Ejemplo: Instruccin alternativa mltiple que escribe una nota numrica entera de 0 a 10 con el nombre de la propia nota en letras. NOTA SI NOTA=0 ESCRIBIR CERO SI NOTA=1 ESCRIBIR UNO * * * SI NOTA=10 ESCRIBIR DIEZ SI NOTA=OTROS ESCRIBIR NOTA NO VALIDA Instrucciones repetitivas Son aquellas que controlan la repeticin de un conjunto de instrucciones denominado rango mediante la evaluacin de una condicin que se realiza dada nueva repeticin o por medio de un contador asociado. Existen cuatro tipos de instrucciones: Instruccin MIENTRAS (WHILE) Controla la ejecucin del conjunto de instrucciones que configuran su rango, de tal forma que stas se ejecutan mientras se cumpla la condicin, que ser evaluada siempre antes de cada repeticin, es decir, mientras la condicin sea CIERTA. Instruccin REPETIR (REPEATUNTIL) Controla la ejecucin del conjunto de instrucciones que configuran su rango de tal forma que estas se ejecutan hasta que se cumpla la condicin que ser evaluada siempre despus de cada repeticin, es decir, hasta que la condicin sea CIERTA.

17

Instruccin PARA (FOR) Controla la ejecucin del conjunto de instrucciones que configuran su rango, de tal forma que estas se ejecutan un nmero determinado de veces que queda definido en lo que se denomina la cabecera del bucle. En ella se define un identificador de variable de control del bucle (Vc) definientose al mismo tiempo su valor inicial (Vi), su balor final (Vf) y el incremento (In) que esta variable de control va a adquirir en cada repeticin. La definicin del bucle ser: Vc = Vi, Vf [,In] Instruccin ITERAR (LOOP) Controla la ejecucin de dos conjuntos de instrucciones de manera alternativa, de tal forma que estos se ejecutan hasta que se cumpla a condicin. Instrucciones de ruptura de secuencia. Alteran la secuencia normal de ejecucin de instrucciones en un programa, la alteracin de esta secuencias hace que continue en otro lugar definido en la propia instruccin utilizando lo que se denomina etiqueta. Instruccin de salto incondicional. Alteran la secuencia normal de ejecucin de las instrucciones de un programa continuando la misma en la instruccin referenciada por medio de la etiqueta que figura en la propia instruccin. Ejemplo: ir a <etiqueta> B) Instruccin de salto condicional Alteran la secuencia normal de ejecucin de las instrucciones de un programa si se cumple una condicin asociada a la propia instruccin continuando la misma en la instruccin referenciada por una etiqueta que figura tambin en la instruccin. Ejemplo: Si CONDICION entonces ir a <etiqueta> 3.3.4. INSTRUCCIONES COMPUESTAS Una instruccin compuesta es aquella que representa a un conjunto de instrucciones que estan definidas en otra parte, en genral son llamadas a sus programas (funciones, subrutinas, parrafos, etc.) 3.3.5. COMENTARIOS Son frases que se incluyen de forma moderada en el diseo de un algoritmo (en la codificacin suele ser mas recomendable su uso) con intencin de aclarar el cometido o funcin de un objeto o conjunto de instrucciones. [ Comentario 3.4. VARIABLES AUXILIARES DE UN PROGRAMA Son objetos que utiliza un programa y por la funcin que realizan dentro del mismo toman un nombre especial 18

3.4.1. CONTADORES Un contador es un objeto que se utiliza para contar cualquier evento que pueda ocurrir dentro de un programa. En general suslen contar desde forma natural desde 0 y de 1 en 1. Se utilizan dos operaciones bsicas: Inicializacin: Todo contador se inicializa a 0 si realiza cuenta natural o a Vi (Vi = Valor inicial) si se desea realizar otro tipo de cuenta. CONTADOR 0 Contabilizacin o incremento: Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 si se realiza cuenta natural o en la In (incremento) si se realiza otro tipo de cuenta. CONTADOR CONTADOR +1 3.4.2. ACUMULADORES Son objetos que se utilizan en un programa para acumular elementos sucesivos con una misma operacin. En general se utilizan para calcular sumas y productos, para utilizarlos hay que realizar sobre ellos dos operaciones bsicas: Inicializacin: Todo acumulador necesita ser inicializado con el valor neutro de la operacin que va a acumular, que en el caso de la suma es 0 y del producto es 1. SUMA 0 PRODUCTO 1 Acumulacin: Cuando se hace presente en la memoria el elemento a acumular por la realizacin de una lectura o un calculo, se efecta la acumulacin del mismo por medio de la asignacin: SUMA SUMA + elemento PRODUCTO PRODUCTO * elemento 3.4.3. INTERRUPTORES O CONMUTADORES (SWITCHES) Los interruptores son objetos que se utilizan en un programa y solo pueden tomar dos valores (CIERTO y FALSO, 0 y1), realizando la funcin de transmitir informacin de un punto a otro dentro del programa. Un conmutador es un objeto que slo puede tomar dos valores opuestos(CIERTO y FALSO, 1 y 1) que se utiliza para conmutar entre dos procesos distintos de forma alternativa. Es lo contrario al anterior. 3.5. TIPOS DE PROGRAMAS Programas lineales: Consisten en una secuencia de acciones primitivas (su ejecucin es lineal en el orden en que han sido escritas). Programas alternativos: Consisten en el anidamiento de acciones alternativas entremezcladas con instrucciones primitivas. Programas cclicos: Son aquellos en los que un conjunto de instrucciones de las existentes en el 19

programa se repite un nmero determinado o indeterminado de voces. Otra clasificacin relacionada con la naturaleza de las operaciones que se realizan en la misma, es: Programas de gestin: resuelven problemas de gestin. Programas tcnicocientficos: resuelven problemas matemticos, fsicos, etc. Programas de diseo (CAD). Resuelven problemas de diseo. Programas de simulacin. Intentan reflejar una situacin real para facilitar su estudio y analizar los problemas que se pueden plantear. Programas educativos (EAO). Utilizan las ventajas de la computadora para la docencia, convirtindola en un profesor para autodidactas. Programas de inteligencia artificial. Se utilizan para simular el razonamiento humano. Etctera. 3.6. LENGUAJES DE PROGRAMACIN El primer lenguaje de programacin que se utiliz fue el lenguaje mquina, que es el nico que entiende la computadora y que se diferencia de unas a otras dependiendo del procesador que posean. Su alfabeto se compone exclusivamente de unos y ceros. El lenguaje ensamblador result de la simplificacin del lenguaje mquina cambiando las cadenas de unos y ceros por smbolos nemotcnicos, existiendo una correspondencia de instrucciones de 1 a 1, con respecto al lenguaje mquina. Posteriormente surgieron los lenguajes de alto nivel, que se alejaban notablemente del lenguaje binario formando instrucciones con frases relativamente parecidas al lenguaje utilizado por las personas. Pueden clasificarse de la siguiente manera: Segn su parecido con el lenguaje natural. Bajo nivel: Lenguajes mquina y ensambladores. Alto nivel: Todos los dems. Segn la estructura de los programas. Convencionales o lnea a lnea. Estructurados. Segn la realizacin de los programas. Funcionales. Imperativos. Segn el tipo de proceso. Interactivos o conversacionales: Orientados al proceso por lotes (batch). TEMA 4. PSEUDOCDIGO 4.2.PSEUDOCODIFICACIN DE UN PROGRAMA 20

Diremos que una notacin es un pseudocdigo si mediante ella podemos describir la solucin de un problema en forma de algoritmo dirigido a la computadora. Todo pseudocdigo debe posibilitar la descripcin de: Instrucciones de entrada/salida Instrucciones de proceso Sentencias de control del flujo de ejecucin Acciones compuestas que hay que refinar posteriormente 4.2.1. ACCIONES SIMPLES Son aquellas que el procesador ejecuta de forma inmediata. Asignacin Almacena en una variable el resultado de evaluar una expresin. Ejemplo: MEDIA SUMA / 6 Entrada Toma un dato del dispositivo estndar de entrada y lo almacena en una variable. Si se leen varias variables se pueden colocar stas en una misma instruccin separndolas por comas. Ejemplo: Leer ALUMNO, CALIFICACIN Salida Imprime en el dispositivo estndar de salida el resultado de evaluar una expresin. Al igual que en la lectura se pueden imprimir varias expresiones en una sola instruccin de escritura. Ejemplo: Escribir SUMAMEDIAS/NUMALUMNOS 4.2.2. SENTENCIAS DE CONTROL Controlan el flujo de ejecucin de otras instrucciones. Ejemplo: Leer NOTA SUMA SUMA+NOTA MEDIA SUMA/6

21

Escribir MEDIA Alternativa Alternativa simple: Las instrucciones I1, I2.... In se ejecutan solamente si la evaluacin de la condicin produce el resultado CIERTO; en otro caso no se hace nada. Ejemplo: Si NOTA > 0 Entonces SUMA SUMA + NOTA Finsi Alternativa doble: Si la evaluacin de la condicin produce el resultado CIERTO se ejecutarn las instrucciones I1, I2, ... In; en caso contrario, las J1, J2,...Jk. Ejemplo: Si NOTA < 5 Entonces escribir SUSPENSO Sino escribir APROBADO Finsi Alternativa mltiple La expresin puede ser alfanumrica o numrica entera. Si su valor es V1 se ejecutaran las instrucciones I1, I2, .... Ip; Si es V2, las J1, J2,...Jq, etc. Si el valor de la expresin no es ninguno de los indicados explicitamente, V1, V2, ... , Vn, entonces se ejecutarn las instrucciones L1, L2, ... , Ls. Ejemplo: Opcin ESTADOCIVIL de S hacer escribir SOLTERO C hacer escribir CASADO V hacer escribir VIUDO D hacer escribir DIVORCIADO Otro hacer escribir Error: datos incorrectos

22

Finopcin Repeticiones o bucles Segn que la evaluacin de la condicin se realice al comienzo, al final o dentro del bucle, se tienen las siguientes sentencias: Mientras (while): Se evalua la condicin antes de iniciar el bucle, y se repiten sucesivamente las instrucciones mientras siga siendo CIERTA. Ejemplo: Mientras IN = 0 hacer Leer NOTA Si NOTA > 0 Entonces SUMA SUMA + NOTA Sino IN 1 Finsi Finmientras Repetir (repeat): Se evala la condicin despus de cada ejecucin de las instrucciones y se termina el bucle si es CIERTA. Ejemplo: Repetir Leer NOTA SUMA SUMA + NOTA Hasta NOTA = 0 Para (for): Se repiten las instrucciones un nmero fijo de veces tantas como sucesivos valores toma la variable de control del bucle Vc desde incicialmente Vi incrementndose a cada repeticin en In, hasta que el valor de Vc supera Vf. Si el incremento es +1, que es el caso ms usual, el bucle se expresa: Ejemplo: Para I de 1 a 6 hacer

23

Leer NOTA SUMA SUMA + NOTA finpara Iterar (loop) Se ejecutan las instrucciones y a continuacin se evalua la condicin de salida del bucle; si no es cierta se ejecutan las siguientes repitindose de nuevo el proceso hasta que la condicin sea cierta. Ejemplo: Iterar Leer NOMBRE Salir si NOMBRE = FIN Leer NOTA1, NOTA2 MEDIA (NOTA1 + NOTA2) / 2 Escribir NOMBRE, MEDIA Finiterar Los bucles mientras, hasta y para son casos particulares del anterior, es decir siempre se puede utilizar un bucle iterar en lugar de cualquiera de los otros, aunque cada uno de ellos se adapta mejor a una determinada situacin. 4.2.3. ACCIONES COMPUESTAS Es aquella que ha de ser realizada dentro del algoritmo, pero que no esta resuelta en trminos de acciones simples y sentencias de control. 4.2.4. COMENTARIOS Son lneas explicativas. Los comentarios se utilizan para aclarar: El significado o cometido de un objeto del programa. El objetivo de un bloque de instrucciones. La utilizacin de una determinada instruccin. Cualquier aspecto del programa que sea necesario aclarar. 4.2.5. OBJETOS DEL PROGRAMA Podemos considerarlos como los recipientes de los datos que manipula el programa. El conjunto de objetos de un programa se denomina entorno. 24

Ejemplo: Entorno: I es numrica entera NOTA es numrica real NOMBRE es alfanumrica 4.2.6. PROGRAMA Un programa es la solucin final de un problema. Esta notacin consiste en la descripcin de los objetos (entorno) y de las instrucciones (algoritmo). Ejemplo: Generacin de actas. Se introduce por teclado una secuencia de informaciones, cada una de ellas compuesta por un nombre y seis nmeros correspondientes al nombre de un alumno y las calificaciones que ha obtenido en sus seis asignaturas. La secuencia termina al introducir el nombre <<FIN>> Se desea un programa que imprima un listado de calificaciones en el que ha de figurar el nombre del alumno seguido de su nota media. Finalmente se imprimir la nota media del grupo. La entrada de datos ser de la forma: EMILIO PEREZ GARCIA 5, 8, 7, 5, 6, 6 ... ANA CASAS ORTIZ 5, 3, 6, 2, 7, 4 El listado proporcionado ser: LISTADO DE CALIFICACIONES NOMBRE DEL ALUMNO NOTA MEDIA EMILIO PEREZ GARCIA 6.1 ... ... ANA CASAS ORTIZ 4.5

25

NOTA MEDIA DEL GRUPO: 5.7 Diseo del programa: Algoritmo: Imprimir cabeceras del listado Inicializar acumuladores Iterar Leer NOMBRE = FIN Salir si NOMBRE = FIN Contabilizar alumno Leer notas del alumno Calcular su nota media Imprimir linea con alumno y nota media Finiterar Obtener nota media del grupo Imprimir nota media del grupo Finalgoritmo Mediante refinamientos del algoritmo anterior obtenemos el siguiente programa: Programa GENERACION DE ACTAS Entorno: NOMBRE es alfanumrica I, NUMALUMNOS son numricas enteras NOTA, SUMA, MEDIA, SUMAMEDIA, MEDIAGRUPO son numricas reales Algoritmo: Escribir LISTADO DE CALIFICACIONES Escribir Escribir NOMBRE DEL ALUMNO NOTA MEDIA

26

Escribir NUMALUMNOS 0 SUMAMEDIA 0 Iterar Leer NOMBRE Salir si NOMBRE = FIN NUMALUMNOS NUMALUMNOS + 1 SUMA 0 Para I de 1 a 6 hacer Leer NOTA SUMA SUMA + NOTA Finpara MEDIA SUMA / 6 Escribir NOMBRE, MEDIA SUMAMEDIA SUMAMEDIA + MEDIA Finiterar MEDIAGRUPO SUMAMEDIA / NUMALUMNOS Escribir NOTA MEDIA DEL GRUPO: , MEDIAGRUPO Finprograma 1. Programa que lee una frase en una lnea y cuenta su nmero de vocales. Programa CONTAR VOCALES Entorno: FRASE es alfanumrica NV, I son numricas enteras Algoritmo: Leer FRASE

27

NV ! 0 Para I de 1 a longitud (FRASE) hacer Si es vocal el carcter I de FRASE Entonces NV ! NV + 1 Finsi Finpara Escribir Nmero de vocales de la frase: ,NV Finprograma 2. Programa que lee 100 datos, compuesto cada uno de ellos por un nombre de persona y su sueldo noto mensual, y obtiene e imprime el nombre y sueldo de la persona que cobra ms y de la que menos cobra. Programa SUELDOS Entorno: NOMBRE, NMAX, NMIN son alfanumricas SUELDO, SMAX, SMIN son numricas reales I es numrica entera Algoritmo: Leer NOMBRE, SUELDO NMAX ! NOMBRE SMAX ! SUELDO NMIN ! NOMBRE SMIN ! SUELDO Para I de 2 a 100 hacer Leer NOMBRE, SUELDO Si SUELDO > SMAX Entonces NMAX ! NOMBRE SMAX ! SUELDO Sino si SUELDO < SMIN 28

Entonces NMIN ! NOMBRE SMIN ! SUELDO Finsi Finsi Finpara Escribir NMAX, SMAX, NMIN, SMIN Finprograma TEMA 5. ESTRUCTURAS DE DATOS INTERNAS (TABLAS) 5.1. INTRODUCCIN Un conjunto de datos homogneos que se tratan como una sola unidad se denomina estructura de datos. Si una estructura de datos reside en la memoria central de la computadora se denomina estructura de datos interna. Recprocamente, si reside en un soporte externo, se denomina estructura de datos externa. Las estructuras de datos internas pueden ser: Estticas. Tienen un nmero fijo de elementos que queda determinado desde la declaracin de la estructura en el comienzo del programa. La estructura de datos interna ms importante, desde el punto de vista de utilizacin, es la tabla. 5.2. CONCEPTOS Y DEFINICIONES Una tabla consiste en un nmero fijo, finito y ordenado de elementos, todos del mismo tipo y bajo un nombre comn para todos ellos. NOMBRE 1 2 3 4 5 6 7 ... N !norden Val. 1 ! 1er elemento Se denomina componentes a los elementos de una tabla. Por tanto, la dimension de una tabla es el nmero de ndices que utiliza. Longitud o tamao de una tabla es el nmero de componentes que contiene. El tipo de una tabla es el tipo de sus componentes (nemricos, alfanumricos, etc). Val. 2 Val. 3 Val. 4 Val. 5 Val. 6 Val. 7 ... Val. N

29

La posicin de cada componente dentro de la tabla est determinada por uno o varios ndices. Un ndice puede estar expresado, en una refernecia a un elemento de una tabla, de tres formas: Por un valor numrico entero (por ejemplo 8) Por una variable numrica entera (por ejemplo I) Por una expresin numrica entera (por ejemplo I + 1) Ejemplo: Tabla que contiene ocho nombres de cuatro caracteres. Alumnos 1 Luis

2 Jose

3 Rosa

4 Juan

5 Tere

6 Rafa

7 Javi

8 Lola

TABLA: La estructura de datos representada. NOMBRE DE LA TABLA: ALUMNOS. COMPONENTES: ALUMNOS(1), ALUMNOS(2), ..., ALUMNOS(8) INDICE: Los nmeros del 1 al 8 que direccionan cada componente. DIMENSION: Una LONGITUD: Ocho TIPO: Alfanumrica. 5.3. TIPOS DE TABLAS Unidimensionales. Bidimensionales. Multidiminensionales. 5.3.1. TABLAS UNIDIMENSIONALES (VECTORES) Son las tablas de una dimensin. Tambin se denominan vectores. Tienen un solo ndice. Cada componente del vector se direcciona mediante su nombre. El ejemplo anterior nos muestra una tabla de este tipo, en la cual la componente tercera que contiene el valor <<ROSA>> se denota por ALUMNOS(3) Si queremosintercambiar los contenidos de los componentes primera y segunda, lo haremos utilizando una variabla alfanumrica auxiliar AUX de la siguiente manera: AUX ! ALUMNOS(1) ALUMNOS(1) ! ALUMNOS(2) ALUMNOS(2) ! AUX

30

Los elementos de un vector se almacenan de forma consecutiva. ALUMNOS(1), ALUMNOS(2), ..., ALUMNOS(8) Ejercicio: Programa que lee las calificaciones de un alumno en 10 asignatura, las almacena en un vector y calcula e imprime su media. Objetos: I es el contador asociado a los bucles e indice de la tabla. SUMA es un acumulador de notas. MEDIA es una variable para el clculo final. Notas

31

You might also like