Metodología de la programación de ordenadores

Informática. Computación. Programas. Algoritmos. Pseudo código. Diagrama de flujo. Organigrama. Ordinograma. Vectores. Arrays. Ténicas de programar

  • Enviado por: La Pomada
  • Idioma: castellano
  • País: España España
  • 43 páginas
publicidad
publicidad

TEMA 2

METODOLOGIA DE LA PROGRAMACION

Guión

  • Introducción. Definición de algoritmo

  • Características de los algoritmos

  • Estructura de un algoritmo

  • Datos

  • Expresiones

  • Instrucciones

  • Pseudo código

  • Diagrama de flujo

  • Vectores y Arrays

  • Otras técnicas

  • Diagrama de caja

  • Tablas de decisión

  • Diagramas estructurados

  • Técnicas de programación

  • Introducción. Definición de algoritmo.

  • Se define algoritmo como el conjunto ordenado y finito de operaciones que permiten hallar la solución a un problema determinado.

  • Características de los algoritmos.

  • Debe ser exacto y determinado, es decir, a entradas idénticas, salidas idénticas.

  • Efectivo y finito. Efectivo porque puede ser ejecutado mecánicamente.

  • Transportable, porque se puede ejecutar independientemente del hardware y del software utilizado.

  • Amigable de cara al usuario, con mensajes claros y concisos, y bien documentado.

  • Estructura de un algoritmo

  • Datos

  • a.1. Simple. Contienen solo un dato.

    Tipos:

    a.1.1. Numérico. Un solo número.

    a.1.1.1. Entero

    a.1.1.2. Real

    a.1.2. No numérico

    a.1.2.1. Cadena

    a.1.2.2. Booleano (v/f)

    a.1.2.3. Carácter

    a.2. Estructura de datos. Contienen más de un dato.

    Tipos de estructura:

    a.2.1. Interna

    a.2.1.1. Estática. Utiliza un tamaño de memoria fija. Esta puede ser:

    a.2.1.1.1. Vector: Conjunto finito del mismo tipo de datos.

    a.2.1.1.2. Tabla: Conjunto de órdenes del mismo tipo de datos en forma de matriz de dos dimensiones.

    a.2.1.1.3. Registros: Conjunto de datos de distintos tipos.

    a.2.1.1.4. Poliedro: Conjunto de datos del mismo tipo agrupados en una dimensión mayor que dos.

    a.2.1.2. Dinámica. Estructura de datos con tamaño no definido de memoria. Variará en función de las necesidades de los problemas.

  • Expresiones

  • Conjunto formado por operandos (variables, constantes u operadores), unidos entre si mediante operadores que realizan una acción sobre ellos.

    V.g.

    SUMA = 8 + C, donde

    SUMA y C son variables

    8 es constante

    = y + son operadores

    b.1. Constante: elemento que no varía a lo largo de la ejecución del programa. Existe la posibilidad de asignarle un nombre al principio del programa, de forma que su denominación sea lo más cómoda posible.

    b.2. Variable: elemento cuyo contenido puede modificarse a lo largo de la ejecución de un programa. Para definir una variable se realizan tres pasos normalmente:

    1) Se define el nombre de la variable

    2) Se define el tipo de datos que contendrá

    3) Se define el valor inicial de la variable antes de empezar la ejecución del programa

    Las variables se clasifican de dos formas:

    1ª- Según el tipo de datos que contengan (numérica, no numérica,..)

    2ª- Según la función que vaya a realizar dentro del programa, a saber:

  • Contadores: Añaden uno al valor de la constante cada vez que se ejecutan

  • Acumuladores: Acumulan cantidades.

  • Interruptores o switches: Permiten recorrer un cierto camino del programa

  • b.3. Operadores. Elementos que unen los distintos tipos de operandos. Pueden ser:

    1º- Aritméticos.

    +, -, *, /, MOD, ^, DIV

    2º- Relacionales

    J, N, M , P , O ,MN

  • Instrucciones

  • Se clasifican en:

    c.1. Simples. Una sola línea. Pueden ser:

    c.1.1. Declarativas. Hacen constar al programa una condición de un elemento (v.g. Declaro c constante)

    c.1.2. Primitivas, que a su vez pueden ser:

    c.1.2.1. De entrada, con las que el programa “lee” un dato (v.g. leer edad)

    c.1.2.2. De salida, (v.g. Escribir (edad:)).Saldría en pantalla.

    c.1.2.3. De asignación, asigna el valor de un operando a una variable (v.g. c = c + 1)

    c.1.3. De control, que puede ser:

    c.1.3.1. Alternativa: permite realizar una serie de condiciones u otras dependiendo si se cumple una determinada condición. Tres tipos:

    c.1.3.1.1. Simples: Se ejecuta un grupo de instrucciones en función de que se cumpla una determinada condición. En caso contrario el programa seguirá su curso normal. V.g.:

    SI (nota N 5)

    ESCRIBIR “aprobado”

    FIN SI

    c.1.3.1.2. Dobles: se ejecuta un grupo de instrucciones en caso de que se cumpla una determinada condición, pero en caso contrario se ejecuta otro grupo de instrucciones. V.g.:

    SI (nota N 5)

    ESCRIBIR “aprobado”

    SI NO

    ESCRIBIR “5”

    c.1.3.1.3. Múltiples: se utilizan en los casos en los que la ejecución de un grupo de instrucciones dependa de unos valores contenidos en una variable. V.g.:

    EN CASO DE (variable)

    Valor 1

    Instrucción 1

    Valor 2

    Instrucción 2

    Valor 3

    Instrucción 3

    c.1.3.2. Repetitivas: instrucciones que se repiten un número finito de veces en función de una condición que se verá afectada en cada ciclo o bucle. Son las que siguen:

    c.1.3.2.1. MIENTRAS: se ejecuta un número finito de veces un grupo de instrucciones mientras ocurre una determinada condición. V.g.:

    MIENTRAS (condición)

    Instrucciones

    FIN MIENTRAS

    Esta instrucción tiene la particularidad de que la instrucción o grupo de instrucciones que está vinculadas a ella puede que no se ejecuten al menos una vez.

    c.1.3.2.2. REPETIR…HASTA: se ejecuta un número finito de veces un grupo de instrucciones hasta que se cumpla una determinada condición. V.g.:

    REPETIR

    Instrucción

    HASTA (condición)

    Esta instrucción tiene la particularidad de que el grupo de instrucciones se va a ejecutar al menos una vez.

    c.1.3.2.3. PARA: Se utiliza cuando sabemos exactamente el número de veces que se va a ejecutar un bloque de instrucciones. V.g.:

    PARA variable de valor inicial A final HACER

    instrucciones

    FIN PARA

    c.1.4. Comentarios: Instrucciones que nos dan información sobre un bloque del código, pero que no se compilan.

    c.2. Instrucciones compuestas. Formadas por un grupo de instrucciones que se agrupan en lo que se conoce como un módulo (procedimiento o función).

  • Pseudo código

  • Se define como una notación o algoritmo mediante la cual podemos escribir la solución de un problema, utilizando palabras y frases del lenguaje natural, sujeto a unas determinadas reglas.

    Estructura:

    PROGRAMA: Nombre del programa.

    ENTORNO: Declaración del tipo de datos.

    ALGORITMO: Secuencias de instrucciones.

    FIN DEL ALGORITMO.

    En un pseudo código se utilizan las siguientes instrucciones:

  • Instrucciones simples primitivas:

  • a.1. SALIDA

    ESCRIBIR “Nombre _ variable:”

    ESCRIBIR “nombre _ constante”

    ESCRIBIR “expresión”

    a.2.ENTRADA

    LEER “nombre _ variable”

    a.3. ASIGNACION

    nombre_ variable_ destino = ó ! nombre_ variable

    nombre_ variable_ destino = ó ! nombre_ constante

    nombre_ variable_ destino = ó ! expresión

  • Instrucciones simples de control:

  • b.1. ALTERNATIVAS

    b.1.1. ALTERNATIVA SIMPLE

    SI condición ENTONCES

    Instrucción 1

    Instrucción 2

    Instrucción n

    FIN SI

    b.1.2. ALTERNATIVA DOBLE

    SI condición ENTONCES

    Instrucción 1

    Instrucción 2

    Instrucción n

    SI NO

    Instrucción 1

    Instrucción 2

    Instrucción n

    FIN SI

    B.1.3. ALTERNATIVA MULTIPLE

    EN CASO DE (variable)

    Valor 1: Instrucción 1

    Instrucción 2

    ……

    Instrucción n

    Valor 2: Instrucción 1

    Instrucción 2

    ……

    Instrucción n

    EN OTRO CASO

    Instrucción 1

    Instrucción 2

    ……

    Instrucción n

    FIN

    b.2. REPETITIVAS

    b.2.1.MIENTRAS

    MIENTRAS (condición) HACER

    Instrucción 1

    Instrucción 2

    …….

    Instrucción n

    FIN MIENTRAS

    b.2.2. REPETIR

    REPETIR

    Instrucción 1

    Instrucción 2

    …….

    Instrucción n

    HASTA (condición)

    b.2.3. PARA

    PARA variable valor_ inicial A valor_ final [INCREMENTO] HACER

    Instrucción 1

    Instrucción 2

    …….

    Instrucción n

    FIN PARA

    * [ ] Las cosas entre corchetes implican que son opcionales. En este caso, si no se pusiera el valor del incremento, por defecto sería uno.

    EJERCICIOS

    1-Realizar el pseudo código de un programa que permita calcular el área de un rectángulo. Se deberá introducir la base y la altura para poder realizar el cálculo.

    PROGRAMA: AREA DE RECTANGULO

    ENTRONO:

    DECLARO base de tipo real

    DECLARO altura de tipo real

    DECLARO área de tipo real

    ALGORITMO:

    ESCRIBIR “Introduce base:”

    LEER base

    ESCRIBIR “introduce altura”

    LEER altura

    área = base * altura

    ESCRIBIR “El área es:”, área

    FIN ALGORITMO

    2-Realizar el pseudo código que representa un algoritmo que reciba como dato de entrada el valor de una temperatura expresada en grados centígrados y nos calcule y escriba sus equivalentes en grados kelvin.

    PROGRAMA: TEMPERATURA EN GRADOS KELVIN

    ENTORNO:

    DECLARO cent, kelvin base de tipo real

    ALGORITMO:

    ESCRIBIR “Introduce temperatura en grados centígrados:”

    LEER cent

    kelvin = 273 + cent

    ESCRIBIR “La temperatura en grados kelvin es:”, kelvin, “ºK”

    FIN ALGORITMO

    3-Realizar el pseudo código que permita al usuario introducir por el teclado dos notas, calculando la suma y el producto de las notas, para posteriormente calcular datos estadísticos.

    PROGRAMA: DATOS ESTADISTICOS

    ENTORNO:

    DECLARO nota 1,nota 2, suma, producto base de tipo real

    ALGORITMO:

    ESCRIBIR “Introduce nota 1:”

    LEER nota 1

    ESCRIBIR “Introduce nota 2:”

    LEER nota 2

    suma = nota 1 + nota 2

    producto = nota 1* nota 2

    FIN ALGORITMO

    Ó

    PROGRAMA: DATOS ESTADISTICOS

    ENTORNO:

    DECLARO OPCION producto base de tipo caracter

    ALGORITMO:

    ESCRIBIR “Introduce nota 1:”

    LEER nota 1

    ESCRIBIR “Introduce nota 2:”

    LEER nota 2

    suma = nota 1 + nota 2

    producto = nota 1* nota 2

    ESCRIBIR “Pulse la tecla S para suma y P para producto”

    LEER opción

    SI (opción = `S') ENTONCES

    ESCRIBIR “La suma es:”, suma

    SI NO

    SI (opción = `P') ENTONCES

    ESCRIBIR “El producto es:”, producto

    SI NO

    ESCRIBIR “Tecla incorrecta”

    FIN SI

    FIN SI

    FIN ALGORITMO

    * Nota: Una letra entre comilla simple (`') corresponde a una tecla.

    Ó

    PROGRAMA: DATOS ESTADISTICOS

    ENTORNO:

    DECLARO OPCION producto base de tipo caracter

    ALGORITMO:

    ESCRIBIR “Introduce nota 1:”

    LEER nota 1

    ESCRIBIR “Introduce nota 2:”

    LEER nota 2

    suma = nota 1 + nota 2

    producto = nota 1* nota 2

    ESCRIBIR “Pulse la tecla S para suma y P para producto”

    LEER opción

    EN CASO DE (opción)

    CASO `S'

    ESCRIBIR “La suma es:”, suma

    CASO `P'

    ESCRIBIR “El producto es:”. producto

    EN OTRO CASO

    ESCIBIR “Tecla incorrecta”

    FIN

    FIN ALGORITMO

    5-Realizar un pseudo código que permita saber si un número es mayor, menor o igual que cero.

    PROGRAMA: IDENTIFICAR CERO

    ENTORNO:

    DECLARO num de tipo real

    ALGORITMO:

    ESCRIBIR “Introduce un número:”

    LEER num

    SI (num = 0) ENTONCES

    ESCRIBIR “El número es igual a cero”

    SI NO

    SI (num > 0) ENTONCES

    ESCRIBIR “El número es mayor que cero”

    SI NO

    ESCRIBIR “El número es menor que cero”

    FIN SI

    FIN SI

    FIN ALGORITMO

    Ó

    PROGRAMA: IDENTIFICAR CERO

    ENTORNO:

    DECLARO num, control de tipo real

    ALGORITMO:

    ESCRIBIR “Introduce un número:”

    LEER num

    SI (num = 0) ENTONCES

    control = 1

    FIN SI

    SI (num >0) ENTONCES

    control = 2

    FIN SI

    SI (num <0) ENTONCES

    control = 3

    FIN SI

    EN CASO DE (control)

    CASO 1:

    ESCRIBIR “El número es igual a cero”

    CASO 2:

    ESCRIBIR “El número es mayor que cero”

    CASO 3:

    ESCRIBIR “El número es menor que cero”

    EN OTRO CASO

    ESCRIBIR “Tecla incorrecta”

    FIN CASO

    FIN ALGORITMO

    6-Realizar un pseudo código para obtener el factorial de un número.

    PROGRAMA: FACTORIAL

    ENTORNO: DECLARO num, fac., cont de tipo real

    ALGORITMO:

    ESCRIBIR “Introduce un número:”

    LEER num

    fac. = 1

    cont = 1

    REPETIR

    fac. = fac. * cont

    cont = cont + 1

    HASTA (cont > num)

    ESCRIBIR “EL factorial es:”, fac

    FIN ALGORITMO

    Ó

    PROGRAMA: FACTORIAL

    ENTRONO: DECLARO num, fact, de tipo entero

    ALGORITMO:

    ESCRIBIR: “Introduce número:”

    LEER num

    fact = 1

    MIENTRAS (num <> 0) HACER

    fact = fact * num

    num = num - 1

    FIN MIENTRAS

    ESCRIBIR “El factorial es:”, fact

    FIN ALGORITMO

    7-Realizar un pseudo código que permita visualizar un mensaje dependiendo de la tecla que pulsemos:

    MENU PRINCIPAL

  • PROCESADOR DE TEXTO

  • HOJA DE CALCULO

  • BASE DE DATOS

  • Introduzca una opción:

    PROGRAMA: MENU DE SELECCIÓN

    ENTORNO:

    DECALRO opción de tipo entero

    ALGORITMO

    REPETIR

    ESCRIBIR “MENU PRINCIPAL”

    ESCRIBIR “1. PROCESADOR DE TEXO”

    ESCRIBIR “2. HOJA DE CALCULO”

    ESCRIBIR “3. BASE DE DATOS”

    ESCRIBIR “4. SALIR

    ESCRIBIR “Introduzca opción:”

    LEER opción

    EN CASO DE (opción)

    CASO 1 ESCRIBIR “PROCESADOR DE TEXTO”

    CASO 2 ESCRIBIR “HOJA DE CALCULO”

    CASO 3 ESCRIBIR “BASE DE DATOS”

    CASO 4 SALIR

    EN OTRO CASO

    ESCRIBIR “ERROR”

    FIN CASO

    HASTA (opción = 4)

    FIN ALGORITMO

    Ó

    PROGRAMA: MENU DE SELECCIÓN

    ENTORNO:

    DECALRO opción de tipo entero

    ALGORITMO

    opción = 0

    MIENTRAS (opción ¡= 4)

    ESCRIBIR “MENU PRINCIPAL”

    ESCRIBIR “1. PROCESADOR DE TEXO”

    ESCRIBIR “2. HOJA DE CALCULO”

    ESCRIBIR “3. BASE DE DATOS”

    ESCRIBIR “4. SALIR

    ESCRIBIR “Introduzca opción:”

    LEER opción

    EN CASO DE (opción)

    CASO 1 ESCRIBIR “PROCESADOR DE TEXTO”

    CASO 2 ESCRIBIR “HOJA DE CALCULO”

    CASO 3 ESCRIBIR “BASE DE DATOS”

    CASO 4 SALIR

    EN OTRO CASO

    ESCRIBIR “ERROR”

    FIN CASO

    FIN MIENTRAS

    FIN ALGORITMO

    5. Diagrama de flujo

    Es una herramienta de la que dispone el analista para representar de forma clara y visual la secuencia de ejecución de un programa, así como el flujo de datos.

    Dependiendo de la fase de análisis en la que nos encontremos, el diagrama de flujo representará con más o menos detalle la secuencia de acciones y elementos que intervienen. Hay por tanto dos tipos:

    5.1. Diagrama de sistema (organigrama)

    Se representa en su parte central el programa o proceso que se describe. Este proceso estará rodeado en su parte superior por los soportes de entrada, y en la inferior por los de salida. A los lados puede tener soportes de entrada y de salida indistintamente.

    Algunos ejemplos de representación de elementos:

    ENTRADA

    SALIDA

    ENTRADA / SALIDA

    5.2. Ordinograma.

    También llamados diagramas de flujo de programa, representan con mucho más detalle la secuencia de acciones a realizar con los datos. Sus características son las que siguen:

  • Se debe representar el inicio y el final del programa, y además deben ser únicos.

  • El flujo del programa debe ir de arriba hacia abajo y de izquierda a derecha.

  • Se deberá guardar, en la medida de lo posible, simetría en la representación.

  • Las líneas que se usen deben ser rectas.

  • No se deben interceptar las líneas de flujo. Cuando tengan que cruzarse se usaran conectores.

  • Los símbolos característicos de los diagramas de flujo son:

    El tipo de diagrama aplicado a las distintas instrucciones tendría las siguientes formas:

    * ALTERNATIVA SIMPLE

    * ALTERNATIVA DOBLE

    * ALTERNATIVA MULTIPLE

    * REPETITIVA “MIENTRAS”

    * REPETITIVA “REPETIR HASTA”

    * REPETIRIVA “PARA…”

    EJERCICIOS

    8-Realizar un pseudo código y diagrama de flujo para obtener las notas de 50 alumnos y el número de aprobados.

    PROGRAMA: RELACION DE ALUMNOS APROBADOS

    ENTORNO: DECLARO alumno, aprobado de tipo entero

    DECLARO nota de tipo real

    ALGORITMO:

    alumno = 0

    aprobado = 0

    MIENTRAS (alumno < 50) HACER

    ESCRIBIR “Introduce la nota del alumno”, alumno

    LEER nota

    SI (nota>= 5) ENTONCES

    aprobado = aprobado + 1

    FIN SI

    alumno = alumno + 1

    FIN MIENTRAS

    ESCRIBIR “El número de aprobados es:”, aprobado, “alumnos”

    FIN ALGORITMO

    Ó

    PROGRAMA: RELACION DE ALUMNOS APROBADOS

    ENTORNO:

    DECLARO alumno, aprobado de tipo entero

    DECLARO nota de tipo real

    ALGORITMO:

    aprobado = 0

    alumno = 0

    PARA alumno de 0 HASTA 49 HACER

    ESCRIBIR “Introduce la nota del alumno”, alumno

    LEER nota

    SI (nota>= 5) ENTONCES

    aprobado = aprobado + 1

    FIN SI

    FIN PARA

    ESCRIBIR “El número de aprobados es:”, aprobado, “alumnos”

    FIN ALGORITMO

    Ó

    PROGRAMA: RELACION DE ALUMNOS APROBADOS

    ENTORNO:

    DECLARO alumno, aprobado de tipo entero

    DECLARO nota de tipo real

    ALGORITMO:

    aprobado = 0

    alumno = 0

    REPETIR

    ESCRIBIR “Introduce la nota del alumno”, alumno

    LEER nota

    SI (nota>= 5) ENTONCES

    aprobado = aprobado + 1

    FIN SI

    alumno = alumno +1

    HASTA (alumno > 49)

    ESCRIBIR “El número de aprobados es:”, aprobado, “alumnos”

    FIN ALGORITMO

    9. Realizar el pseudo código que permita obtener la suma y el producto de los 350 primeros números enteros.

    PROGRAMA: SUMA Y PRODUCTO DE LOS 350 PRIMEROS

    ENTORNO:

    DECLARO suma, producto, i de tipo entero

    ALGORITMO:

    suma ! 0

    producto ! 1

    PARA i = 1 HASTA i = 350 HACER

    suma = suma + i

    producto = producto * i

    FIN PARA

    ESCRIBIR “La suma de los números es:”, suma

    ESCRIBIR “El producto de los números es:”, producto

    FIN ALGORITMO

    Ó

    PROGRAMA: SUMA Y PRODUCTO DE LOS 350 PRIMEROS

    ENTORNO:

    DECLARO suma, producto, i de tipo entero

    ALGORITMO:

    suma ! 0

    producto ! 1

    i! 1

    MIENTRAS (i <= 350)

    suma! suma + i

    producto! producto +i

    i = i + 1

    FIN MIENTRAS

    ESCRIBIR “La suma de los números es:”, suma

    ESCRIBIR “El producto de los números es:”, producto

    FIN ALGORITMO

    El diagrama de flujo es idéntico al del bucle PARA

    Ó

    PROGRAMA: SUMA Y PRODUCTO DE LOS 350 PRIMEROS

    ENTORNO:

    DECLARO suma, producto, i de tipo entero

    ALGORITMO:

    suma ! 0

    producto ! 1

    i! 1

    REPETIR

    suma! suma + i

    producto! producto * i

    i! i + 1

    HASTA (i > 350)

    ESCRIBIR “La suma de los números es:”, suma

    ESCRIBIR “El producto de los números es:”, producto

    11. Realizar tres versiones de un pseudo código que describa la suma de los números pares comprendidos entre 2 y 200

    PROGRAMA: SUMA DE PARES ENTRE 2 Y 200

    ENTORNO:

    DECLARO suma, i de tipo entero

    ALGORITMO:

    suma ! 0

    PARA i = 0 HASTA i =200 [INCREMENTO 2] HACER

    suma! suma + i

    FIN PARA

    ESCRIBIR “La suma de los pares es:”, suma

    FIN ALGORITMO

    Ó

    PROGRAMA: SUMA DE PARES ENTRE 2 Y 200

    ENTORNO:

    DECLARO suma, i de tipo entero

    ALGORITMO:

    suma ! 0

    i! 0

    MIENTRAS (i<= 200) HACER

    suma! suma + i

    i! i + 2

    FIN MIENTRAS

    ESCRIBIR “La suma de los pares es:”, suma

    FIN ALGORITMO

    Ó

    PROGRAMA: SUMA DE PARES ENTRE 2 Y 200

    ENTORNO:

    DECLARO suma, i de tipo entero

    ALGORITMO:

    suma ! 0

    i! 0

    REPETIR

    suma! suma + i

    i! i + 2

    HASTA (i > 200)

    ESCRIBIR “La suma de los pares es:”, suma

    FIN ALGORITMO

    12. Realizar un pseudo código que dados dos números correspondientes a la base y al exponente, calcule la potencia asociada.

    PROGRAMA: POTENCIA

    ENTORNO:

    DECLARO base, exponente de tipo entero

    ALGORITMO:

    ESCRIBIR “Introduce la base:”

    LEER base

    ESCRIBIR “Introduce el exponente:”

    LEER exponente

    SI exponente = 0 HACER

    resultado! 1

    SI NO

    exponente! 1

    REPETIR

    resultado! base* resultado

    exponente! exponente - 1

    HASTA (exponente = 0)

    FIN SI

    FIN ALGORITMO

    14. Realizar un pseudo código que lea N números enteros introducidos por teclado e imprima: la suma de los pares, la cantidad de números pares y la media de los impares.

    PROGRAMA: CLASIFICACION DE NUMEROS ENTEROS

    ENTORNO:

    DECLARO N, num, suma _ pares, pares, suma_ impares de tipo entero

    ALGORITMO:

    ESCRIBIR “Cuantos números vas a introducir:”

    LEER N

    num ! 0

    suma _ pares ! 0

    suma _ impares ! 0

    PARA i = 1 HASTA i = N

    ESCRIBIR “Introduce número”, N, “:”

    LEER num

    SI (num MOD 2 = 0) ENTONCES

    suma _ pares ! suma _ pares + num

    num ! num + 1

    SI NO

    suma _ impares ! suma­ _ impares + num

    FIN SI

    FIN PARA

    ESCRIBIR “La suma de los pares es:”, suma _ pares

    ESCRIBIR “El número de pares es:”, pares

    ESCRIBIR “La media de los impares es:”, suma _ impares / (N - pares)

    FIN ALGORITMO

    EN LO SUCESIVO, LOS PROBLEMAS ESTARAN REFERIDOS A LA HOJA DE PROBLEMAS NUMERO 2.

    1. Una empresa desea saber qué cantidad de dinero debe pagar a sus empleados, a los cuales paga a final de semana. La hora de trabajo es pagada a 594 pts. y a 1188 pts. todas aquellas horas que superen las 40 semanales. Haga un algoritmo en el que introduciendo el número de horas trabajadas por un empleado en una semana, nos diga cuál es su sueldo.

    PROGRAMA: SALARIOS

    ENTORNO:

    DECLARO horas, extra, salario de tipo real

    ALGORITMO:

    ESCRIBIR “Introduzca el número de horas trabajadas:”

    LEER horas

    extra ! 0

    SI (horas > 40) ENTONCES

    extra ! horas - 40

    salario ! extra * 1188 + 40 * 594

    ESCRIBIR “El salario a pagar es:”, salario

    SI NO

    salario ! horas * 594

    ESCRIBIR “El salario a pagar es:”, salario

    FIN SI

    FIN ALGORITMO

    2. Diseña un algoritmo que visualice en pantalla la tabla de multiplicar del 1 al 10

    PROGRAMA: TABLA DE MULTIPLICAR DEL 1 AL 10

    ENTORNO:

    DECLARO a, b de tipo entero

    ALGORITMO:

    PARA a = 1 HASTA a = 10 HACER

    ESCRIBIR “Tabla del”, a, “:”

    PARA b = 1 HASTA b = 10 HACER

    ESCRIBIR a “*” b “=”, a * b

    FIN PARA

    FIN PARA

    FIN ALGORITMO

    Ó

    PROGRAMA: TABLA DE MULTIPLICAR

    ENTORNO:

    DECLARO a, b, de tipo entero

    ALGORITMO:

    a ! 1

    b ! 1

    MIENTRAS (a<=10) HACER

    ESCRIBIR “La tabla del “, a, “es:”

    MIENTRAS (b<= 10) HACER

    ESCRIBIR a, “*”, b, “=”, a * b

    b! b + 1

    FIN MIENTRAS

    a ! a + 1

    FIN MIENTRAS

    FIN ALGORITMO

    Ó

    PROGRAMA: TABLA DE MULTIPLICAR

    ENTORNO:

    DECLARO a, b, de tipo entero

    ALGORITMO:

    a! 1

    b! 1

    REPETIR

    ESCRIBIR “La tabla del”, a; “es:”

    REPETIR

    ESCRIBIR a, “*”, b, “=”, a * b

    b ! b + 1

    HASTA (b>10)

    a ! a + 1

    HASTA (a>10)

    FIN ALGORITMO

    3. Diseña un algoritmo en el que, dados dos números introducidos por el teclado, visualice los números comprendidos entre ambos (sin incluir los extremos), calcule la suma de los números pares e impares comprendidos entre ambos y los cuente.

    PROGRAMA: PROBLEMA 3

    ENTORNO:

    DECLARO num1, num2, intervalo, suma _ pares, suma _ impares de tipo entero

    ALGORITMO:

    ESCRIBIR “Introduce número menor:”

    LEER num1

    ESCRIBIR “Introduce número mayor”

    LEER num2

    SI (num2 > num1) ENTONCES

    pares ! 0

    suma _ pares ! 0

    impares ! 0

    suma _ impares ! 0

    PARA (intervalo = num2 - 1) HASTA (intervalo = num1 +1) HACER

    ESCRIBIR intervalo

    SI (intervalo MOD 2 = 0) ENTONCES

    pares ! pares + 1

    suma _ pares ! suma _ pares + intervalo

    SI NO

    impares ! impares + 1

    suma _ impares ! suma _ impares + intervalo

    FIN PARA

    FIN SI

    ESCRIBIR “Los números comprendidos entre ambos son:”, intervalo

    ESCRIBIR “El número de pares es:”, pares

    ESCRIBIR “El número de impares es:”, impares

    ESCRIBIR “La suma de los pares es:”, suma _ pares

    ESCRIBIR “La suma de los impares es:”, suma _ impares

    FIN ALGORITMO

    6. Vectores y Arrays

    Son dos tipos de estructuras, de las llamadas estructuras estáticas lineales. El carácter de estática se lo da el hecho de que una vez introducidos los datos (cargados), no varían de forma o de posición, salvo que una nueva instrucción o bucle lo impongan.

    6.1 Vectores

    Son estructuras estáticas de una dimensión. Se definen de la forma siguiente:

    nombre _ vector [dimensión]

    La dimensión determina el número de elementos que posee el vector.

    V.g.:

    DECLARO tabla [15] de tipo entero

    Sería un vector llamado “tabla”, que contiene 15 elementos.

    Por lo general, los vectores deben cargarse en algún momento del programa. Para ello, se suele utilizar un índice, que indicará la posición dentro del vector. Un bucle del tipo PARA es el más usado.

    V.g.:

    PARA i = 1 HASTA i = 15

    ESCRIBIR “Introduce elemento” i, “:”

    LEER tabla [i]

    FIN PARA

    6.2 Arrays (matrices)

    Son estructuras estáticas de dos dimensiones. Se definen de la forma siguiente:

    nombre _ array [fila] [columna]

    V.g.:

    DECLARO array [15] [20] de tipo entero

    Sería una matriz llamada “array”, que contiene 15 filas y 20 columnas.

    Por lo general, las matrices deben cargarse en algún momento del programa. Para ello, se suelen utilizar dos índices, que indicarán las posiciones dentro de la matriz. Un bucle del tipo PARA es el más usado.

    V.g.:

    PARA i = 1 HASTA i = 15

    PARA j = 1 HASTA j = 20

    ESCRIBIR “Introduce elemento” i, “,”, j, “:”

    LEER array [i] [j]

    FIN PARA

    FIN PARA

    EJERCICIOS

    4. Cree Una tabla de 10 elementos. Se pide:

    - Contar los elementos positivos, negativos, ceros y visualizar el resultado

    - Visualizar los elementos, sus cuadrados y sus cubos

    - Contar y visualizar los elementos pares y los impares

    PROGRAMA: TABLA 10 Y OTROS

    ENTORNO:

    DECLARO tabla [10], i, positivos, negativos, ceros, pares, impares de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 10 HACER

    ESCRIBIR “Introduce el valor”, i, “:”

    LEER tabla [i]

    FIN PARA

    ceros ! 0

    positivo ! 0

    negativo ! 0

    PARA i = 1 HASTA i = 10 HACER

    SI (tabla [i] = 0) ENTONCES

    ceros ! ceros + 1

    SI NO

    SI (tabla[i] > 0) ENTONCES

    positivo ! positivo + 1

    SI NO

    negativo ! negativo + 1

    FIN SI

    FIN SI

    FIN PARA

    ESCRIBIR “La tabla tiene “, positivos, “elementos positivos”

    ESCRIBIR “La tabla tienen”, negativos, “elementos negativos”

    ESCRIBIR “La tabla tiene”, ceros, “elementos de valor cero”

    PARA i =1 HASTA i = 10 HACER

    ESCRIBIR tabla[i]

    ESCRIBIR tabla [i] ^2

    ESCRIBIR tabla [i] ^3

    FIN PARA

    pares ! 0

    impares ! 0

    PARA i = 1 HASTA i = 10 HACER

    SI (tabla [i] MOD 2 = 0) ENTONCES

    ESCRIBIR “Los pares son:”

    ESCRIBIR tabla [i]

    pares ! pares + 1

    SI NO

    ESCRIBIR “Los impares son:”

    ESCRIBIR tabla [i]

    impares ! impares + 1

    FIN SI

    ESCRIBIR “El número de elementos pares es:”, pares

    ESCRIBIR “El número de elementos impares es:”, impares

    FIN PARA

    FIN ALGORITMO

    5. Cree una tabla de 20 elementos. Se pide:

    - Cargar los elementos positivos sobre otra tabla, y los negativos sobre otra diferente.

    - Una vez cargadas las tablas anteriores, se desea saber cuál es el mayor de los positivos, el mayor de los negativos, y el índice que ocupa en cada tabla (ojo: no los estamos ordenando).

    PROGRAMA: PROBLEMA 5

    ENTORNO:

    DECLARO principal [20], positiva [20], negativa [20] de tipo entero

    DECLARO i, j, k, mayor _ p, mayor _ n, de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 20 HACER

    ESCRIBIR “Introduce elemento”, i, “:”

    LEER principal [i]

    FIN PARA

    j ! 0

    k ! 0

    PARA i = 1 HASTA i = 20 HACER

    SI principal [i] >= 0 ENTONCES

    positiva [j] = principal [i]

    j ! j + 1

    SI NO

    negativa [k] ! principal [i]

    k ! k + 1

    FIN SI

    mayor _ p ! positiva [1]

    PARA i = 1 HASTA i = 20 HACER

    SI positiva [i] > mayor _ p ENTONCES

    mayor _ p ! positiva [j]

    j ! i

    FIN SI

    FIN PARA

    mayor _ n ! negativa [1]

    PARA i = 1 HASTA i = 20 HACER

    SI negativa [i] > mayor _ n ENTONCES

    mayor _ n ! negativa [k]

    k ! i

    FIN SI

    FIN PARA

    ESCRIBIR “El mayor de los positivos es el número”, mayor _ p, “y se encuentra en la posición”, j

    ESCRIBIR “El mayor de los negativos es el número”, mayor _ n, “y se encuentra en la posición”, k

    FIN ALGORITMO

    6. Genere una tabla de 5 filas y ocho columnas, de forma que las filas pares se llenen de unos y las impares de ceros

    PROGRAMA: MATRIZ 5X8

    ENTORNO:

    DECLARO i, j de tipo entero

    DECLARO tabla [5] [8] de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 5 HACER

    PARA j = 1 HASTA j = 8 HACER

    SI (i MOD 2 = 0) ENTONCES

    tabla [i] [j] ! 1

    SI NO

    tabla [i] [j] ! 0

    FIN SI

    FIN PARA

    FIN PARA

    FIN ALGORITMO

    7. Rellene la matriz de la siguiente forma:

    111111

    232323

    111111

    232323

    Hacer también el diagrama de flujo.

    PROGRAMA: MATRIZ PROBLEMA 7

    ENTORNO:

    DECLARO i, j, tabla [4] [6]

    ALGORITMO:

    PARA i = 1 HASTA i = 4 HACER

    PARA j = 1 HASTA j = 6 HACER

    SI (i MOD 2 = 1) ENTONCES

    tabla [i] [j] ! 1

    SI NO

    SI (j MOD 2 = 0) ENTONCES

    tabla [i] [j] ! 3

    SI NO

    tabla [i] [j] ! 2

    FIN SI

    FIN SI

    FIN PARA

    FIN PARA

    FIN ALGORITMO

    8. Crear una tabla de 4x6 de forma que calculemos la suma de cada fila y se visualice el resultado. Ídem para las columnas.

    PROGRAMA: TABLA 4X6 PROBLEMA 8

    ENTORNO:

    DECLARO i, j, tabla [4] [6], suma _ fila, suma _ columna de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 4 HACER

    PARA j = 1 HASTA j = 6 HACER

    ESCRIBIR “Introduce valor (“, i, “,”, j “):”

    LEER tabla [i] [j]

    FIN PARA

    FIN PARA

    PARA i = 1 HASTA i = 4 HACER

    suma _ fila ! 0

    PARA j = 1 HASTA j = 6 HACER

    suma _ fila ! suma _ fila + tabla [i] [j]

    FIN PARA

    ESCRIBIR “La suma de la fila”, i, “es:”, suma _ fila

    FIN PARA

    PARA j = 1 HASTA j = 6 HACER

    suma _ columna ! 0

    PARA i = 1 HASTA i = 4 HACER

    suma _ columna ! suma _ columna + tabla [i] [j]

    FIN PARA

    ESCRIBIR “La suma de la columna “, j, “es:”, suma _ columna

    FIN PARA

    FIN ALGORITMO

    9. Cargar una matriz en memoria de 6x10 de forma que cada elemento de la tabla sea la suma de su posición en la fila y de su posición en la columna, para posteriormente visualizarla.

    PROGRAMA: MATRIZ 6X10 PROBLEMA 9

    ENTORNO:

    DECLARO i, j, tabla [i] [j], de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 6 HACER

    PARA j = 1 HASTA j = 10 HACER

    tabla [i] [j] ! i + j

    ESCRIBIR “El valor (“, i, j, “) de la tabla es”, tabla [i] [j]

    FIN PARA

    FIN PARA

    FIN ALGORITMO

    10. Cargar dos vectores (A y B) numéricos de 25 componentes cada uno. Visualizar los elementos comunes a los dos vectores, así como sus posiciones.

    PROGRAMA: PROBLEMA 10

    ENTORNO: DECLARO A[25], B[25], i, j de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 25 HACER

    ESCRIBIR “Introduzca elemento”, i, “del vector A[25]”

    LEER A[i]

    ESCRIBIR “Introduzca elemento”, i, “del vector B[25]”

    LEER B[i]

    FIN PARA

    PARA i = 1 HASTA i = 25 HACER

    PARA j = 1 HASTA j = 25 HACER

    SI (A[i] = B[j]) ENTONCES

    ESCRIBIR “Elemento coincidente:” A[i]

    ESCRIBIR “En la posición”, i, j, “respectivamente”

    FIN SI

    FIN PARA

    FIN PARA

    FIN ALGORITMO

    11. Realizar un programa que genere una tabla de 10x5 componentes enteras, de forma que el valor de los elementos de cada columna sean respectivamente tablas de multiplicar de los números 1, 3, 5, 7, 9. Visualizar la tabla.

    PROGRAMA: PROBLEMA 11

    ENTORNO: DECLARO tabla[10] [5], i, j, de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 10 HACER

    PARA j = 1 HASTA j = 5 HACER

    tabla [i] + [j] ! i * (j * 2 - 1)

    ESCRIBIR tabla [i] [j]

    FIN PARA

    FIN PARA

    FIN ALGORITMO

    12. Cargar Un vector V de 18 componentes numéricas enteras. Crear a partir de él un vector Q, de modo que las componentes pares de V pasen a ser las impares de Q, y las impares de V sean las pares de Q.

    PROGRAMA: PROBLEMA 12

    ENTORNO: DECLARO V[18],Q[18], i, de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 18 HACER

    ESCRIBIR “Introduce elemento de posición”, i, “:”

    LEER V[i]

    FIN PARA

    PARA i = 1 HASTA i = 18 HACER

    SI (i MOD2 = 0) ENTONCES

    Q[i - 1] = V[i]

    SI NO

    Q[i + 1] = V[i]

    FIN SI

    FIN PARA

    FIN ALGORITMO

    13. Crear una tabla A de 10x5. Se desea crear a partir de ella una tabla B, de tal forma que la primera fila de B sea la última de A, la segunda fila de B sea la penúltima de A, y así sucesivamente hasta que la última fila de B sea la primera de A.

    PROGRAMA: PROBLEMA 13

    ENTORNO: DECLARO A[10][5], B[10][5], i, j, de tipo entero

    ALGORITMO:

    i! 1

    MIENTRAS (i<10)

    j! 1

    MIENTRAS (j<5)

    ESCRIBIR “Introduce elemento”, i, j, “:”

    LEER A[i][j]

    B[11 - i][j] ! A[i][j]

    j! j + 1

    FIN MIENTRAS

    i ! i + 1

    FIN MIENTRAS

    FIN ALGORITMO

    14. Cargar un vector de 20 componentes numéricos. Se pide:

    - Calcular e imprimir el mayor valor, la última posición que ocupa y el número de veces que se repite

    - Desplazar todas las componentes del vector un lugar a la izquierda; la primera pasará a la última posición

    - Escribir la suma de los números que sean pares y que se encuentren en posiciones impares ¿Cuántos valores cumplen estas condiciones.

    PROGRAMA: PROBLEMA 14

    ENTORNO: DECLARO Vector[20], i, aux, repv, suma, de tipo entero

    ALGORITMO:

    PARA i = 1 HASTA i = 20 HACER

    ESCRIBIR “Introduce elemento de posición”, i, “:”

    LEER Vector[i]

    FIN PARA

    mayor ! Vector [1]

    posición ! 1

    repv ! 0

    PARA i = 2 HASTA i = 20 HACER

    SI (Vector [i] > mayor) ENTONCES

    mayor ! Vector[i]

    posición ! i

    repv ! 0

    FIN SI

    SI (Vector[i] = mayor) ENTONCES

    repv ! repv + 1

    posición ! i

    FIN SI

    FIN PARA

    ESCRIBIR “El valor mayor es:”, mayor, “y se repite”, repv, “veces, siendo la última posición la número”, posición”

    aux ! Vector[1]

    PARA i = 1 HASTA i = 20 HACER

    Vector[i] = Vector[i+1]

    FIN PARA

    Vector[20] ! aux

    suma ! 0

    PARA i = 1 HASTA i = 19 [INCREMENTO 2]

    SI (Vector[i]MOD2 = 0) ENTONCES

    suma ! suma + Vector [i]

    FIN SI

    FIN PARA

    FIN ALGORITMO

  • Otras técnicas.

  • Diagrama de caja N-S (Nassi-Schneiderman)

  • Se basan en la representación de las distintas instrucciones utilizando “cajas”. La simbología es:

      • Alternativas

    • Simple

    • Doble

    • Variable

      • Repetitivas

    • Mientras

    • Repetir

  • Tablas de decisión

  • Es una herramienta basada en la construcción de una tabla en la que se recojan las condiciones que pueden dar el problema y las acciones que se deben tomar cuando se cumplan las condiciones.

  • Diagramas estructurados

  • Técnicas de programación

  • Existen tres tipos:

  • Técnica convencional

  • Fueron el comienzo de la programación, pero con el desarrollo de la tecnología, presentaba muchos inconvenientes. Para superar estos inconvenientes, se desarrollaron las IPT (Técnicas para a mejora de la programación), dando como resultado las técnicas estructurada y modular.

  • Programación estructurada

  • Deben cumplir las siguientes condiciones:

    • Debe ser un código comprensible sin necesidad de información adicional

    • Se puedan cambiar partes del programa sin que afecten al resto

    • El programa se implementa con partes fácilmente ensamblables

    Lo que diferencia a la programación estructurada de otra que no lo sea, son una serie de reglas que contienen los siguientes elementos:

  • Razonamiento deductivo (proceso descendente). Se define como el proceso mediante el cual un programa se resuelve en una serie de niveles de de arriba abajo, realizando refinamientos sucesivos (top-down). Adquiere una estructura jerárquica.

  • Recursos abstractos. La traducción de las ideas a las instrucciones no es directa. Para facilitar la utilización de los recursos abstractos se divide el problema en partes más pequeñas, lo que simplifica la concepción del mismo.

  • Estructuras básicas. Se basa en el teorema de la estructura, que dice que:”cualquier programa con un punto de entrada, sin bucles infinitos, puede describirse utilizando solamente las estructuras de control alternativa, repetitiva y/o secuencial (primitiva).

  • Programación modular

  • Consiste en la descomposición del problema en trozos denominados “módulos”, cada uno de los cuales realiza una tarea concreta. Presentan la siguiente estructura: un módulo principal desde el que se llamará al resto de los módulos, devolviendo el control al módulo principal cuando finalice.

    La mayoría de los lenguajes de programación ponen a disposición del usuario mecanismos para usar la modularidad: en “C” las funciones, en “BASIC” las subrutinas, en “PASCAL” los procedimientos y funciones, en “MODULA2” los módulos, etc.

    Existen dos tipos de módulos o subprogramas:

      • Funciones

    Módulos que, recibiendo uno o varios datos de entrada, devuelven un único valor a la salida. No se permiten funciones que no devuelvan nada. La estructura es la que sigue:

    TIPO _FUNCION NOMBRE _FUNCION (tipo _nombre parámetro _formal1, tipo _nombre parámetro _formal2, …)

    INSTRUCCIONES

    DEVOLVER RESULTADO

    FIN DE FUNCION

    V.g:

    int suma (int num1, int num2)

    {

    int resultado

    resultado = num1 + num2

    return resultado

    }

      • Procedimientos

    Son módulos que tienen las siguientes diferencias con respecto a la función:

    • Puede devolver más de un valor

    • Pueden no devolver ningún valor

    • Al llamar al procedimiento no hay que hacerlo desde una expresión. Se utiliza como una instrucción concreta

    En la programación modular, hay que hacer referencia al concepto de AMBITO DE UN IDENTIFICADOR (o variable), que se define como la parte del programa donde puede ser utilizado porque se conoce su existencia. Atendiendo al ámbito, las variables se pueden clasificar en:

      • Locales

    Se definen dentro de un módulo, no pudiendo acceder a ella desde fuera de éste. Incluso se puede definir una variable con el mismo nombre fuera del módulo. Se crean en la llamada a la función y se destruyen cuando finaliza la ejecución.

      • Globales

    Están definidas en el programa principal. Se puede acceder a ellas desde todos los módulos. En caso de que se declarase una variable local y global con el mismo nombre se accedería a la local por defecto, es decir, se accede siempre al ámbito más restringido.

    A continuación, se van a realizar una serie de clasificaciones de los parámetros formales, atendiendo a distintos criterios:

    a) Según sea su función

    - Parámetros de entrada: introducen datos del módulo. No modifican su valor. Lo utilizan las funciones.

    - Parámetros de salida: devuelven valores al exterior del módulo.

    - Parámetros de entrada/salida: introducen información al módulo y extraen información al exterior. El valor de entrada es distinto al de salida.

    b) Según se almacenen físicamente:

    - Paso de parámetro por copia: al realizar la llamada se copia el valor del parámetro real al formal, y pueden ocurrir los siguientes casos:

    - Por valor. Una vez que sea copiado el parámetro real al formal, al término de la ejecución del módulo, no se hace el inverso, es decir, no se copia el valor del parámetro formal a real (no se modifica el parámetro real). Es el que utilizan las funciones.

    - Por valor resultado. Al final de la ejecución se hace el inverso, es decir, se copia el valor del parámetro formal a real, variando su contenido.

    - Paso de parámetro por referencia: El parámetro real y formal tienen asociadas la misma dirección de memoria. Cuando se hace una llamada, la dirección de memoria del parámetro real se copia en el parámetro formal. Por tanto en la ejecución del módulo, al cambiar el contenido del parámetro formal se está cambiando el contenido del parámetro real. Es el método más utilizado con los procedimientos.

    ENTRADA / SALIDA

    ENTRADA / SALIDA

    SALIDA

    PROGRAMA

    ENTRADA

    TECLADO

    GENERICO

    IMPRESORA

    PANTALLA

    DISQUETE

    DISCO DURO

    PROCESO

    ENTRADA / SALIDA

    INICIO / FIN

    NO

    SI

    SI

    NO

    N

    3

    2

    1

    SI

    NO

    SI

    NO

    INICIALIZAR

    CONDIC.

    INSTRUCCION

    CAMBIAR CONTADOR

    NO

    SI

    FIN

    ESCRIBIR “El.. es:”, aprobado

    alumno = alumno + 1

    aprobado =aprobado + 1

    nota>=5

    LEER nota

    ESCRIBIR “Introduce … alumno”, alumno

    alumno<50

    alumno =0

    aprobado = 0

    INI-CIO

    NO

    SI

    SI

    NO

    NO

    SI

    SI

    NO

    FIN

    ESCRIBIR “El número de alumnos aprobados es:”, aprobado

    aprobado = aprobado + 1

    alumno = alumno + 1

    nota>=5

    LEER nota

    ESCRIBIR “Introduce la nota del alumno”, alumno

    alumno<=49

    alumno =0

    aprobado = 0

    INICIO

    NO

    SI

    SI

    NO

    FIN

    ESCRIBIR “El número de alumnos aprobados es:”, aprobado

    alumno = alumno + 1

    aprobado =aprobado + 1

    nota>=5

    LEER nota

    ESCRIBIR “Introduce la nota del alumno”, alumno

    alumno = 49

    alumno =0

    aprobado = 0

    INICIO

    INICIO

    i! 1

    suma! 0

    producto! 1

    num<=350

    suma!suma+i

    producto!producto*i

    i!i+1

    ESCRIBIR “La suma e:”, suma

    ESCRIBIR “El producto es:”, producto

    FIN

    NO

    SI

    INICIO

    i! 1

    suma! 0

    producto! 1

    num>350

    suma!suma+i

    producto!producto*i

    i!i+1

    ESCRIBIR “La suma e:”, suma

    ESCRIBIR “El producto es:”, producto

    FIN

    NO

    SI

    INICIO

    ESCRIBIR “Introduce base:”

    LEER base

    ESCRIBIR “Introduce exp:”

    LEER exponente

    exponente =0

    resultado! 1

    resultado! resultado * base

    exponente! exponente - 1

    exponente = 0

    ESCRIBIR “El resultado es 1”

    ESCRIBIR “El resultado es:”, resultado

    SI

    NO

    SI

    NO

    INICIO

    i ! 1

    i <= 4

    i ! 1

    j < 6

    i MOD2 = 1

    tabla [i] [j] = 2

    tabla [i] [j] = 1

    tabla [i] [j] = 3

    j ! j + 1

    i ! i + 1

    FIN

    j MOD2 = 0

    INICIO

    i ! 1

    i < = 25

    ESCRIBIR “Introduzca elemento”, i, “del vector A[25]”

    LEER A[i]

    ESCRIBIR “Introduzca elemento”, i, “del vector B[25]”

    LEER B[i]

    i ! i + 1

    SI

    NO

    i ! 1

    i<=25

    j ! 1

    j<=25

    A[i] = B[j]

    ESCRIBIR…

    j ! j + 1

    i ! i + 1

    SI

    FIN

    NO

    NO

    SI

    SI

    NO

    INICIO

    i! 1

    i<=18

    ESCRIBIR…

    LEER…

    i! i + 1

    i ! 1

    i <= 18

    Q[i-1]=V[i]

    Q[i+1]=V[i]

    i! i+1

    imod2=0

    FIN

    INICIO

    i ! 1

    i<= 10

    j! 1

    j<= 5

    ESCRIBIR…

    LEER…

    B[11-i][j] ! A[i][j]

    j! j + 1

    i! i + 1

    FIN

    NO

    SI

    NO

    SI

    SI

    NO

    NO

    SI

    NO

    SI

    CONDICION

    SI

    INSTRUCCIONES

    NO

    SI

    CONDICION

    INSTR.1

    INSTR.2

    VARIABLE

    VALOR1

    VALOR2

    ENOTROCASO

    INSTR.1

    INSTR. 2

    INSTR. N

    CONDICION

    INSTRUCCIONES

    INSTRUCCION

    CODICION