Ingeniero en Informática


Metodología de programación


METODOLOGÍA

contenido primera

evaluación

Capítulo 1.- La programación de computadoras.

1.1. Introducción

1.2. Ciclo de vida de una aplicación informática

1.2.1. Diseño del programa

1.2.2. Instalación y explotación del programa

1.3. Errores

1.3.1. Errores de compilación

1.3.2. Errores de ejecución

1.3.3. Errores de lógica

1.3.4. Errores de especificación

1.4. Calidad de los programas

1.5. Metodología de la programación

1.5.1. Programación modular

1.5.2. Programación estructurada

1.6. Documentación de los programas

1.6.1. Documentación interna

1.6.2. Documentación externa

1.7. Objetos de un programa

1.8. Identificadores

1.9 Tipos de datos

1.9.1. Tipo numérico entero

1.9.2. Tipo numérico real

1.9.3. Tipo carácter

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 lógicos

1.12.4. Orden de evaluación de los operadores

Capítulo 3.- Estructura general de un programa.

3.1. Introducción

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. Clasificación de las instrucciones

3.3.1. Instrucciones de declaración

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 programación

Capítulo 4.- Pseudocódigo

4.1. Introducción

4.2. Pseudocodificación 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 Pseudocódigo a diagrama de flujo

4.4. Paso de Pseudocódigo a lenguaje de programación

contenido segunda

evaluación

Capítulo 5.- Estructuras de datos internas (tablas)

5.1. Introducción

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. Representación gráfica de las tablas

5.4.1. Tabla de una dimensión (vector)

5.4.2. Tabla de dos dimensiones (matriz)

5.4.3. Tabla de tres dimensiones (poliedro-3)

5.4.4. Tabla de cuatro dimensiones (poliedro-4)

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

Capítulo 6.- Búsqueda y clasificación interna.

6.1. Introducción

6.2. Búsqueda lineal

6.2.1. Búsqueda lineal en un vector

6.2.2. Búsqueda lineal en un vector ordenado

6.2.3. Búsqueda lineal en una matriz

6.3. Búsqueda binaria o dicotómica

6.4. Ordenación de tablas

6.4.1. Ordenación por inserción directa

6.4.2. Ordenación por selección directa

6.4.3. Ordenación por intercambio directo. Método de la burbuja

6.4.4. Ordenación por intercambio directo con el test de comprobación (switch)

6.4.5. Ordenación por intercambio directo. Método de la sacudida

6.4.6. Ordenación por intercambio con incrementos decrecientes. Método Shell

Capítulo 9.- Estructuras de datos externas (archivos).

9.1. Introducción

9.2. Conceptos y definiciones

9.3. Características de los archivos

9.4. Clasificación de los archivos según su uso

9.5. Organización de archivos

9.5.1. Organización secuencial

9.5.2. Organización aleatoria o directa

9.5.3. Organización secuencial indexada

9.6. Operaciones sobre archivos

9.7. Instrucciones para manejo de archivos

9.7.1. Creación de archivos secuenciales

9.7.2. Lectura de archivos secuenciales

9.7.3. Lectura-escritura de archivos directos

9.7.4. Lectura-escritura de archivos indexados

Capítulo 10.- Métodos de tratamiento de archivos.

10.1. Introducción

10.2. Búsqueda en archivos secuenciales

10.2.1. Búsqueda en archivos desordenados

10.2.2. Búsqueda en archivos ordenados

10.3. Partición de archivos

10.3.1. Partición por contenido

10.3.2. Partición en secuencias

10.4. Mezcla de archivos

10.4.1. Mezcla con registro centinela

10.4.2. Mezcla controlada por valor de clave máximo

10.4.3. Mezcla controlada por fin de fichero

10.5. Clasificación de archivos

10.5.1. Clasificación por mezcla directa

10.5.2. Clasificación por mezcla equilibrada

10.5.3. Clasificación de raíz

10.6. Actualización de archivos

10.6.1. Actualización de archivos secuenciales

10.6.2. Actualización de archivos directos

10.6.3. Actualización de archivos indexados

10.6.4. Actualización interactiva

10.7. Rupturas de secuencia

10.8. Sincronización de archivos

TEMA 1.- LA PROGRAMACIÓN DE COMPUTADORAS

1.1 INTRODUCCIÓN

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 más que una máquina 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 máquina de origen electrónico que puede realizar una gran variedad de trabajos, pero, en principio, sólo es capaz de hacer físicamente tres clases de operaciones básicas:

1. Sumar, restar, multiplicar y dividir dos valores numéricos, es decir, realizar operaciones aritméticas sencillas.

2. Comparar dos valores (comprobar si son iguales, si el primero es mayor que el segundo, etc.), es decir, realizar operaciones lógicas sencillas.

3. Almacenar o recuperar información.

Con estas pocas operaciones utilizadas y combinadas de forma adecuada, mediante lo que llamamos programa, se pueden llegar a realizar tareas increíblemente complejas que aporten la solución a un determinado problema, ya sea de gestión, técnico o de cualquier otro tipo.

La potencia de cálculo de una computadora se deriva de las características físicas que posee, entre las que se encuadran principalmente:

RAPIDEZ

PRECISIÓN

MEMORIA

Las características citadas provienen de los componentes electrónicos que conforman una computadora:

  • Velocidad de conmutación de circuitos electrónicos.

  • Rapidez de transmisión de señales eléctricas.

  • Fiabilidad de los circuitos.

  • Manejo de señales digitales.

  • Gran capacidad de almacenamiento de información.

Nuestro objetivo es, para un problema dado, diseñar una solución que pueda ser realizada por una computadora. Para ello necesitaremos, en primer lugar, un lenguaje o notación para expresar la solución obtenida. Tal solución debe estar adaptada a las particularidades de la computadora, si bien en una primera fase de su diseño podremos utilizar una notación intermedia entre el lenguaje natural y el de la computadora, posteriormente será preciso escribirla en un lenguaje comprensible por la máquina, como, por ejemplo, en Cobol o Pascal, y, finalmente para su ejecución, la máquina precisará realizar una traducción a su lenguaje nativo, el denominado lenguaje máquina.

1.2. CICLO DE VIDA DE UNA APLICACIÓN INFORMÁTICA

Una aplicación informática se compone de uno o varios programas interrelacionados.

El proceso que se sigue desde el planteamiento de un problema hasta que tiene una solución instalada, se denomina ciclo de vida de una aplicación informática.

FASES DE DISEÑO FASES DE INSTALACIÓN

1.2.1. DISEÑO DEL PROGRAMA

1.- Fase de análisis

* Equipo a utilizar.

* Personal informático.

* Estudio de los datos de entrada (INPUT).

* Estudio de los datos de salida o resultados (OUTPUT).

* Relación entre la salida y la entrada.

* Descomposición del problema en módulos.

2.- Fase de programación

Consiste en el diseño de la solución al problema planteado en forma de algoritmo.

3.- Fase de codificación

En esta fase se transcribe el algoritmo resultante de la fase anterior a un lenguaje de programación concreto.

Al resultado se le denomina programa.

1.2.2. INSTALACIÓN Y EXPLOTACIÓN DEL PROGRAMA

1.- Fase de edición

Escritura del programa fuente. Se hace con la ayuda de un programa del sistema denominado editor.

2.- Fase de compilación

Traducción del programa fuente a lenguaje máquina. Para ello se dispone de programas compiladores o intérpretes.

3.- Fase de montaje

En los programas compilados es necesario añadir 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 ejecución

Consiste en ejecutar el programa sucesivas veces don diferentes datos de prueba.

5.- Fase de explotación y mantenimiento

La explotación consiste en el uso continuo y habitual por parte de los usuarios.

Paralelamente a la explotación de una aplicación, consiste en la comprobación periódica de su buen funcionamiento.

1.3. ERRORES

Corresponden al incumplimiento de las reglas sintácticas del lenguaje, como, por ejemplo, una palabra reservada del lenguaje mal escrita, una instrucción incompleta, etc.

1.3.2. ERRORES DE EJECUCIÓN

Se deben generalmente a operaciones no permitidas, como dividir por cero, leer un dato no numérico en una variable numérica, exceder un rango de valores permitidos, etc.

1.3.3. ERRORES DE LÓGICA

Corresponden a la obtención por el programa de resultados que no son correctos.

1.3.4. ERRORES DE ESPECIFICACIÓN

Es posiblemente el pero tipo de error. Se deben a la realización de unas especificaciones incorrectas motivadas por una mala comunicación entre el programador y quien plantea el problema.

1.5. METODOLOGÍA DE LA PROGRAMACIÓN

1.5.1. PROGRAMACIÓN MODULAR

Se basa en la realización 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. PROGRAMACIÓN ESTRUCTURADA

Se basa en el uso exclusivo de las estructuras secuencia, alternativa e iteración para el control del flujo de ejecución 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

Son palabras creadas por el programador para dar nombre a los objetos y demás 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 NUMÉRICO ENTERO.

Ejemplo: 1987

-12

+3300

1.9.2. TIPO NUMÉRICO REAL.

Ejemplo: 97.84

-12.00

+0.5

Un valor en notación exponencial tiene la forma “mantisa E exponente”, donde “mantisa” es un número real y “exponente” un número 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 símbolos de que dispone la computadora.

Se expresan entre comillas.

  • Los caracteres alfabéticos mayúsculas

“A”, “B”, “C”, ....... “Z”

  • Los caracteres alfabéticos minúsculas

“a”, “b”, “c”, ....... “z”

  • Los caracteres dígitos

“0”, “1”, “2”, .......... “0”

  • Los caracteres especiales

“ “ (espacio carácter 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 ejecución de un programa.

PI=3.141592 PI

1.11. VARIABLES

Son objetos cuyo valor puede ser modificado a lo largo de la ejecución de un programa.

1.12. EXPRESIONES

Es la representación de un cálculo necesario para la obtención de un resultado.

Se define una expresión de la siguiente forma:

  • Un valor es una expresión

  • Ejemplo: 1.25, “JUAN”

  • Una constante o variable es una expresión.

  • Ejemplo: PI, E, X.

  • Una función es una expresión.

  • Ejemplo: COS(X), SQR(25)

  • Una combinación de valores, constantes variables, funciones y operadores que cumplen determinadas reglas de construcción es una expresión.

  • Ejemplo: COS(PI * X) + 1.25

    2 * PI * X

    N = “JUAN”

    1.12.1. TIPOS DE EXPRESIONES

    • Numéricas.- Son las que producen resultados de tipo numérico se construyen mediante los operadores aritméticos.

    Ejemplo: PI * SQR(X)

    • Alfanuméricas.- Son las que producen resultados de tipo alfanumérico. Se construyen mediante los operadores alfanuméricos.

    Ejemplo: “Don” + N

    • Booleanas.- Son las que producen resultados CIERTO o FALSO. Se construyen mediante los operadores relacionados y lógicos.

    Ejemplo: A > 0 y B <= 5

    1.12.2. OPERADORES

    • Aritméticos:

    ^ Potencia A^B

    * Producto A*B

    DIV o \ División A\B=2.5

    MOD División entera A\B

    + Suma o signo positivo

    - Resta o signo negativo

    • Alfanuméricos:

    + Concatenación

    • Relacionales:

    = Igual a

    < Menor que

    > Mayor que

    <= Menor o igual que

    >= Mayor o igual que

    <> Distinto a

    • Lógicos:

    no negación

    y conjunción

    o disyunción

    * Paréntesis:

    ( ) Se utilizan para anidar expresiones.

    1.12.3. TABLAS DE VERDAD DE LOS OPERADORES LÓGICOS.

    • 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.º Paréntesis (comenzando por los más internos)

    2.º Signo

    3.º Potencias

    4.º Productos y divisiones

    5.º Sumas y restas

    6.º Concatenación

    7.º Relaciones

    8.º Negación

    9.º Conjunción

    10.º Disyunción

    1.Dadas las siguientes variables y constantes:

    x y z PI E

    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 +0-0.2 * z

    2 + 2 -2

    4 - 2

    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”

    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 año de nacimiento de una persona y DA, MA, AA dias, mes y año actual. Espresar si tiene 18 años 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. INTRODUCCIÓN

    • Bloque de declaraciones. En él se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando sus características. 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 obtención de los resultados deseados.

    3.2. PARTES PRINCIPALES DE UN PROGRAMA.

    Están 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

    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 envían a los dispositivos externos.

    MEMORIA DATOS

    CENTRAL DE SALIDA

    3.3. CLASIFICACIÓN DE LAS INSTRUCCIONES

    Una instrucción se caracteriza por un estado inicial (estado de los objetos que maneja el programa antes de la ejecución de la instrucción) y otro final (estado en que quedan los objetos después de la instrucción). El estado final de una instrucción siempre coincide con el estado inicial de la siguiente. Según la función que desempeñan dentro de un programa, las instrucciones se clasifican de la siguiente manera.

    3.3.1. INSTRUCCIONES DE DECLARACIÓN

    Su misión es anunciar la utilización de objetos en un programa indicando qué identificador, tipo y otras características 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 asignación o de salida.

    • Instrucción de entrada

    Su misión 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 instrucción.

    En un ordinograma aparece con el símbolo de operación de entrada/salida (romboide) y con la fórmula 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 leídos. Cuando la lista se compone de más de un elemento, estos se separan por comas.

    Ejemplo: Entrada de los datos DÍA, MES y AÑO desde un dispositivo estándar (teclado).

    Leer DÍA, MES, AÑO

    • Instrucción de asignación.

    Es la instrucción que nos permite realizar cálculos evaluando una expresión y depositando su valor final en un objeto o realizar movimientos de datos de un valor final en un objeto o realizar movimientos de datos de un objeto a otro.

    Esta instrucción se realiza en dos tiempos:

    1.- Se evalúa la expresión convirtiéndose en su valor final.

    2.- El valor final se asigna al objeto borrándose cualquier otro valor previo que éste pudiera tener.

    A A + 1

    • Instrucción de salida.

    Su misión consiste en enviar datos a un dispositivo externo, bien tomándolos de objetos depositados en la memoria central o definidos de alguna forma en la propia instrucción.

    Ejemplo: Escritura en un dispositivo estándar (pantalla) de una fecha situada en la memoria en las variables DÍA, MES y AÑO.

    Escribir DIA, MES, AÑO

    3.3.3. INSTRUCCIONES DE CONTROL

    Son instrucciones que no realizan trabajo efectivo alguno salvo la evaluación de expresiones, generalmente lógicas, con el objetivo de controlar la ejecución de otras instrucciones o alterar el orden de ejecución normal de las instrucciones de un programa.

    • Instrucciones alternativas

    Son aquellas que controlan la ejecución de uno o varios bloques de instrucciones. Existen tres modelos típicos de instrucciones alternativas:

  • Alternativa simple

  • Controla la ejecución de un conjunto de instrucciones por el cumplimiento o no de una condición, si se cumple, se ejecutan, si no se cumple no se ejecutan

    Ejemplo: Instrucción 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 ejecución 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: Instrucción alternativa doble que escribe la palabra POSITIVO si el contenido de la variable A es mayor que y NEGATIVO si no lo es.

    A>0

    SI A>0 ESCRIBIR “POSITIVO”

    SI A<0 ESCRIBIR “NEGATIVO”

  • Alternativa multiple.

  • Controla la ejecución de varios conjuntos de instrucciones. Se ejecutará el conjunto que se encuentre relacionado con el valor que resulta de la evaluación de la expresión de tal forma que si este no aparece se ejecutará el último. Las distintas opciones tienen que ser disjuntas, es decir, sólo puede cumplirse una de ellas.

    Ejemplo: Instrucción alternativa múltiple que escribe una nota numérica 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 repetición de un conjunto de instrucciones denominado rango mediante la evaluación de una condición que se realiza dada nueva repetición o por medio de un contador asociado.

    Existen cuatro tipos de instrucciones:

  • Instrucción MIENTRAS (WHILE)

  • Controla la ejecución del conjunto de instrucciones que configuran su rango, de tal forma que éstas se ejecutan mientras se cumpla la condición, que será evaluada siempre antes de cada repetición, es decir, mientras la condición sea CIERTA.

  • Instrucción REPETIR (REPEAT-UNTIL)

  • Controla la ejecución del conjunto de instrucciones que configuran su rango de tal forma que estas se ejecutan hasta que se cumpla la condición que será evaluada siempre después de cada repetición, es decir, hasta que la condición sea CIERTA.

  • Instrucción PARA (FOR)

  • Controla la ejecución del conjunto de instrucciones que configuran su rango, de tal forma que estas se ejecutan un número 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 repetición.

    La definición del bucle será:

    Vc = Vi, Vf [,In]

  • Instrucción ITERAR (LOOP)

  • Controla la ejecución de dos conjuntos de instrucciones de manera alternativa, de tal forma que estos se ejecutan hasta que se cumpla a condición.

    • Instrucciones de ruptura de secuencia.

    Alteran la secuencia normal de ejecución de instrucciones en un programa, la alteración de esta secuencias hace que continue en otro lugar definido en la propia instrucción utilizando lo que se denomina etiqueta.

  • Instrucción de salto incondicional.

  • Alteran la secuencia normal de ejecución de las instrucciones de un programa continuando la misma en la instrucción referenciada por medio de la etiqueta que figura en la propia instrucción.

    Ejemplo: ir a <etiqueta>

    B) Instrucción de salto condicional

    Alteran la secuencia normal de ejecución de las instrucciones de un programa si se cumple una condición asociada a la propia instrucción continuando la misma en la instrucción referenciada por una etiqueta que figura también en la instrucción.

    Ejemplo: Si CONDICION entonces ir a <etiqueta>

    3.3.4. INSTRUCCIONES COMPUESTAS

    Una instrucción 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 diseño de un algoritmo (en la codificación suele ser mas recomendable su uso) con intención de aclarar el cometido o función de un objeto o conjunto de instrucciones.

    -----[ Comentario

    3.4. VARIABLES AUXILIARES DE UN PROGRAMA

    Son objetos que utiliza un programa y por la función que realizan dentro del mismo toman un nombre especial

    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 básicas:

  • Inicialización: 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

  • Contabilización 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 operación. En general se utilizan para calcular sumas y productos, para utilizarlos hay que realizar sobre ellos dos operaciones básicas:

  • Inicialización: Todo acumulador necesita ser inicializado con el valor neutro de la operación que va a acumular, que en el caso de la suma es 0 y del producto es 1.

  • SUMA 0

    PRODUCTO 1

  • Acumulación: Cuando se hace presente en la memoria el elemento a acumular por la realización de una lectura o un calculo, se efectúa la acumulación del mismo por medio de la asignación:

  • 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 función de transmitir información de un punto a otro dentro del programa.

    Un conmutador es un objeto que sólo 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 ejecución es lineal en el orden en que han sido escritas).

    • Programas alternativos: Consisten en el anidamiento de acciones alternativas entremezcladas con instrucciones primitivas.

    • Programas cíclicos: Son aquellos en los que un conjunto de instrucciones de las existentes en el programa se repite un número determinado o indeterminado de voces.

    Otra clasificación relacionada con la naturaleza de las operaciones que se realizan en la misma, es:

    • Programas de gestión: resuelven problemas de gestión.

    • Programas técnico-científicos: resuelven problemas matemáticos, físicos, etc.

    • Programas de diseño (CAD). Resuelven problemas de diseño.

    • Programas de simulación. Intentan reflejar una situación 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, convirtiéndola en un profesor para autodidactas.

    • Programas de inteligencia artificial. Se utilizan para simular el razonamiento humano.

    • Etcétera.

    3.6. LENGUAJES DE PROGRAMACIÓN

    El primer lenguaje de programación que se utilizó fue el lenguaje máquina, 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 simplificación del lenguaje máquina cambiando las cadenas de unos y ceros por símbolos nemotécnicos, existiendo una correspondencia de instrucciones de 1 a 1, con respecto al lenguaje máquina.

    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:

  • Según su parecido con el lenguaje natural.

    • Bajo nivel: Lenguajes máquina y ensambladores.

    • Alto nivel: Todos los demás.

  • Según la estructura de los programas.

    • Convencionales o línea a línea.

    • Estructurados.

  • Según la realización de los programas.

    • Funcionales.

    • Imperativos.

  • Según el tipo de proceso.

    • Interactivos o conversacionales:

    • Orientados al proceso por lotes (batch).

    TEMA 4.- PSEUDOCÓDIGO

    4.2.PSEUDOCODIFICACIÓN DE UN PROGRAMA

    Diremos que una notación es un pseudocódigo si mediante ella podemos describir la solución de un problema en forma de algoritmo dirigido a la computadora.

    Todo pseudocódigo debe posibilitar la descripción de:

    • Instrucciones de entrada/salida

    • Instrucciones de proceso

    • Sentencias de control del flujo de ejecución

    • Acciones compuestas que hay que refinar posteriormente

    4.2.1. ACCIONES SIMPLES

    Son aquellas que el procesador ejecuta de forma inmediata.

    • Asignación

    Almacena en una variable el resultado de evaluar una expresión.

    Ejemplo:

    MEDIA SUMA / 6

    • Entrada

    Toma un dato del dispositivo estándar de entrada y lo almacena en una variable. Si se leen varias variables se pueden colocar éstas en una misma instrucción separándolas por comas.

    Ejemplo:

    Leer ALUMNO, CALIFICACIÓN

    • Salida

    Imprime en el dispositivo estándar de salida el resultado de evaluar una expresión. Al igual que en la lectura se pueden imprimir varias expresiones en una sola instrucción de escritura.

    Ejemplo:

    Escribir SUMAMEDIAS/NUMALUMNOS

    4.2.2. SENTENCIAS DE CONTROL

    Controlan el flujo de ejecución de otras instrucciones.

    Ejemplo:

    Leer NOTA

    SUMA SUMA+NOTA

    MEDIA SUMA/6

    Escribir MEDIA

    • Alternativa

    • Alternativa simple:

    Las instrucciones I1, I2.... In se ejecutan solamente si la evaluación de la condición produce el resultado CIERTO; en otro caso no se hace nada.

    Ejemplo:

    Si NOTA > 0

    Entonces SUMA SUMA + NOTA

    Finsi

    • Alternativa doble:

    Si la evaluación de la condición produce el resultado CIERTO se ejecutarán las instrucciones I1, I2, ... In; en caso contrario, las J1, J2,...Jk.

    Ejemplo:

    Si NOTA < 5

    Entonces escribir “SUSPENSO”

    Sino escribir “APROBADO”

    Finsi

    • Alternativa múltiple

    La expresión puede ser alfanumérica o numérica 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 expresión no es ninguno de los indicados explicitamente, V1, V2, ... , Vn, entonces se ejecutarán las instrucciones L1, L2, ... , Ls.

    Ejemplo:

    Opción ESTADO-CIVIL de

    “S” hacer escribir “SOLTERO”

    “C” hacer escribir “CASADO”

    “V” hacer escribir “VIUDO”

    “D” hacer escribir “DIVORCIADO”

    Otro hacer escribir “Error: datos incorrectos”

    Finopción

    • Repeticiones o bucles

    Según que la evaluación de la condición se realice al comienzo, al final o dentro del bucle, se tienen las siguientes sentencias:

    • Mientras (while):

    Se evalua la condición 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 evalúa la condición después de cada ejecución 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 número fijo de veces tantas como sucesivos valores toma la variable de control del bucle Vc desde incicialmente Vi incrementándose a cada repetición en In, hasta que el valor de Vc supera Vf.

    Si el incremento es +1, que es el caso más usual, el bucle se expresa:

    Ejemplo: Para I de 1 a 6 hacer

    Leer NOTA

    SUMA SUMA + NOTA

    finpara

    • Iterar (loop)

    Se ejecutan las instrucciones y a continuación se evalua la condición de salida del bucle; si no es cierta se ejecutan las siguientes repitiéndose de nuevo el proceso hasta que la condición 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 situación.

    4.2.3. ACCIONES COMPUESTAS

    Es aquella que ha de ser realizada dentro del algoritmo, pero que no esta resuelta en términos de acciones simples y sentencias de control.

    4.2.4. COMENTARIOS

    Son líneas explicativas.

    Los comentarios se utilizan para aclarar:

    • El significado o cometido de un objeto del programa.

    • El objetivo de un bloque de instrucciones.

    • La utilización de una determinada instrucción.

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

    Ejemplo:

    Entorno:

    I es numérica entera

    NOTA es numérica real

    NOMBRE es alfanumérica

    4.2.6. PROGRAMA

    Un programa es la solución final de un problema. Esta notación consiste en la descripción de los objetos (entorno) y de las instrucciones (algoritmo).

    Ejemplo:

    Generación de actas. Se introduce por teclado una secuencia de informaciones, cada una de ellas compuesta por un nombre y seis números 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

    NOTA MEDIA DEL GRUPO: 5.7

    Diseño 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 alfanumérica

    I, NUMALUMNOS son numéricas enteras

    NOTA, SUMA, MEDIA, SUMAMEDIA, MEDIAGRUPO son numéricas reales

    Algoritmo:

    Escribir “ LISTADO DE CALIFICACIONES”

    Escribir “ -------------------------------------“

    Escribir “NOMBRE DEL ALUMNO NOTA MEDIA”

    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 línea y cuenta su número de vocales.

    Programa CONTAR VOCALES

    Entorno:

    FRASE es alfanumérica

    NV, I son numéricas enteras

    Algoritmo:

    Leer FRASE

    NV ! 0

    Para I de 1 a longitud (FRASE) hacer

    Si es vocal el carácter I de FRASE

    Entonces NV ! NV + 1

    Finsi

    Finpara

    Escribir “Número 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 más y de la que menos cobra.

    Programa SUELDOS

    Entorno:

    NOMBRE, NMAX, NMIN son alfanuméricas

    SUELDO, SMAX, SMIN son numéricas reales

    I es numérica 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

    Entonces NMIN ! NOMBRE

    SMIN ! SUELDO

    Finsi

    Finsi

    Finpara

    Escribir NMAX, SMAX, NMIN, SMIN

    Finprograma

    TEMA 5.- ESTRUCTURAS DE DATOS INTERNAS (TABLAS)

    5.1. INTRODUCCIÓN

    Un conjunto de datos homogéneos 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. Recíprocamente, si reside en un soporte externo, se denomina estructura de datos externa.

    Las estructuras de datos internas pueden ser:

    • Estáticas. Tienen un número fijo de elementos que queda determinado desde la declaración de la estructura en el comienzo del programa.

    La estructura de datos interna más importante, desde el punto de vista de utilización, es la tabla.

    5.2. CONCEPTOS Y DEFINICIONES

    Una tabla consiste en un número fijo, finito y ordenado de elementos, todos del mismo tipo y bajo un nombre común para todos ellos.

    NOMBRE

    1 2 3 4 5 6 7 ... N !nºorden

    Val. 1

    Val. 2

    Val. 3

    Val. 4

    Val. 5

    Val. 6

    Val. 7

    ...

    Val. N

    !

    1er elemento

    Se denomina componentes a los elementos de una tabla.

    Por tanto, la dimension de una tabla es el número de índices que utiliza. Longitud o tamaño de una tabla es el número de componentes que contiene.

    El tipo de una tabla es el tipo de sus componentes (neméricos, alfanuméricos, etc).

    La posición 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 numérico entero (por ejemplo 8)

    • Por una variable numérica entera (por ejemplo I)

    • Por una expresión numérica entera (por ejemplo I + 1)

    Ejemplo: Tabla que contiene ocho nombres de cuatro caracteres.

    Alumnos

    1

    2

    3

    4

    5

    6

    7

    8

    Luis

    Jose

    Rosa

    Juan

    Tere

    Rafa

    Javi

    Lola

    TABLA: La estructura de datos representada.

    NOMBRE DE LA TABLA: ALUMNOS.

    COMPONENTES: ALUMNOS(1), ALUMNOS(2), ..., ALUMNOS(8)

    INDICE: Los números del 1 al 8 que direccionan cada componente.

    DIMENSION: Una

    LONGITUD: Ocho

    TIPO: Alfanumérica.

    5.3. TIPOS DE TABLAS

    • Unidimensionales.

    • Bidimensionales.

    • Multidiminensionales.

    5.3.1. TABLAS UNIDIMENSIONALES (VECTORES)

    Son las tablas de una dimensión. También 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 alfanumérica auxiliar AUX de la siguiente manera:

    AUX ! ALUMNOS(1)

    ALUMNOS(1) ! ALUMNOS(2)

    ALUMNOS(2) ! AUX

    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 cálculo final.




    Descargar

    Notas

    Enviado por:Sierra
    Idioma: castellano
    País: España

    Te va a interesar