|
|
ORIENTADO A OBJETOS Elaborado por: Alberto Bueno ABCSOFT 2010 - 2021
Secuencia para el procesamiento de datos Características de los programas Estructura general de un programa Partes principales de un programa Forma de escribir un algoritmo en pseudocódigo Forma de declarar las variables Forma de declarar las constantes INSTRUCCIONES DE ENTRADA Y SALIDA DE DATOS Instrucción de lectura SENTENCIAS DE CONTROL CONDICIONAL Sentencias de control condicional simple Sentencias de control condicional doble Sentencias de control condicional con condiciones múltiple Sentencias de control condicional múltiple SENTENCIAS DE CONTROL REPETITIVO Sentencias de control repetitivo no condicional Sentencias de control repetitivo condicional Subprogramas Procedimientos Técnicas de programación Programación modular Tamaños de los módulos Diseño descendente Estructura básica Programa principal y los módulos
INFORMÁTICA Ciencia que se encarga de la organización y mantenimiento de la información haciendo uso de los sistemas integrados de cómputo.
COMPUTACIÓN Conjunto de métodos y técnicas que permiten administrar, manipular y controlar en forma automática y correcta la información, utilizando para ello la ayuda de un computador.
COMPUTADORA Máquina electrónica capaz de ejecutar programas (listas de instrucciones), almacenar datos, realizar operaciones con ellos (procesamiento electrónico de datos) y obtener resultados o información a partir de los mismos.
SISTEMAS Conjunto de elementos que interactúan entre sí para realizar una tarea o resolver un problema que se presenta en la organización. SECUENCIA PARA EL PROCESAMIENTO DE DATOS
|
|
LENGUAJE DE PROGRAMACION Un lenguaje de programación es un conjunto de palabras adaptadas y/o modificadas a partir de un lenguaje humano, y que permiten comunicarnos con el computador, a través de las le indicamos a la computación los procesos a llevar a cabo.
ALGORITMO Un algoritmo se puede definir como un conjunto de reglas, procedimientos y/o instrucciones lógicas que se deben ejecutar en un orden especifico para resolver un problema. El uso de los algoritmos tiene un gran valor estratégico en las computadoras; ya que ellas pueden resolver un determinado problema después de que se le ha dicho como resolverlo. Todo algoritmo debe cumplir las siguientes características fundamentales: Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. Un algoritmo debe estar definido. Si se elabora varios algoritmos todos deben dar el mismo resultado. Un algoritmo debe ser finito. Todo algoritmo tiene que terminar en algún momento, es decir tiene un número determinado de pasos.
PROGRAMA Denominado programa al conjunto de instrucciones escritas en un orden lógico y codificado en un determinado lenguaje de programación, las cuales permiten llevar a cabo un determinado proceso previamente establecido.
PROGRAMACIÓN Es proceso de diseñar, crear, escribir, probar y depurar un código, llamado código fuente, el que está elaborado en un lenguaje de programación
PROGRAMACIÓN ESTRUCTURADA La técnica actual para el desarrollo y diseño de programa, cuyo objetivo principal es la de facilitar la compresión del programa y además permitir de forma rápida, las ampliaciones y modificaciones que surjan en el período de vida de un programa o una aplicación. Esta técnica empleada se define como técnica del diseño descendente de programas (TOP-DOWN); actualmente conocida como programación estructurada.
PROGRAMACIÓN MODULAR La idea de la programación modular nació con el fin de hacer más compresible y fácilmente modificable los programas mediante el desarrollo de los programas por módulos. Todo programa puede descomponerse en pequeños subprogramas o módulos individuales y más independientes entre sí que sea posible. Los subprogramas se ejecutarán en el orden indicado por el programa principal, el cual irá llamando a cada uno de ellos en la medida que se necesiten. Cada subprograma tendrá acceso sólo a los datos que necesite, limitando al máximo el acceso a datos manejados por otros subprogramas o módulos. Las variables y estructura de datos deben definirse o declararse al principio de cada módulo, no debiendo utilizar variables no definidas. Evitar al máximo posible el emplear instrucciones de salto que hace difícil la lectura del programa.
PROGRAMACIÓN ORIENTADA A OBJETOS También conocido como POO, es una programación que está orientada al objeto. Objeto es un ítem, que existe en el mundo real y tiene forma, nombre y actividades que realizan. Algunos objetos pueden ser vistos o sea son objetos físicos y otros no se les puede ver, se les considera objetos abstracto. Los objetos del mundo real pueden existir como una clase y sus respectivas herencias, ósea los objetos que heredan, considerados también como subclases y los objetos que son tipos del objeto, como objetos físicos.
PROGRAMACIÓN DECLARATIVA Se base en el desarrollo de programas especificado o “declarando” un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla. No existen asignaciones destructivas, y las variables son utilizadas con transparencia referencial.
CARACTERÍSTICAS DE LOS PROGRAMAS
La solución de un determinado problema por medios automatizados, puede ser construida por diferentes algoritmos de resolución o programas. La selección del que da solución adecuada se basará en una serie de reglas importantes que permita la evaluación del costo de diseño y mantenimiento del programa. Para lo cual las características generales que debe tener todo programa son las siguientes:
LEGIBILIDAD Debe estar escrito de tal forma que facilite su lectura y compresión por cualquier persona.
PORTABILIDAD Su diseño debe permitir la codificación en diferentes lenguajes de programación y la instalación en diferentes sistemas de computación.
MODIFICALIDAD Debe permitir los cambios, modificaciones y actualizaciones necesarias para una nueva situación del medio ambiente. Dar facilidad al mantenimiento a las necesidades presentes y futuras del usuario.
EFICIENCIA Realizar de manera adecuada, el aprovechar al máximo los recursos del computador, minimizando memoria, tiempo de proceso y ejecución en todas las etapas del proyecto a realizar.
MODULARIDAD El diseño general debe estar subdividido en bloques o módulos, cada uno de los cuales realiza una parte del conjunto del sistema, simplificando de esta manera el mantenimiento de los mismos.
ESTRUCTURACIÓN La elaboración de todo programa debe cumplir la regla de la “programación estructurada”, que consiste en la solución del problema mediante el diseño descendente, arriba hacia abajo, definiendo los procedimientos para facilitar la verificación depuración y mantenimiento del programa.
DIAGRAMA DE FLUJO Un diagrama de flujo es una colección de símbolos de una forma característica que están conectados por segmentos de línea y cada uno de ellos representa un tipo de actividad. El diagrama de flujo describe en forma gráfica el algoritmo que el lenguaje de programación va a emplear. De esta manera se evitará ambigüedades y malas interpretaciones a menos que el analista sea una persona extremadamente cuidadosa en la elección de sus palabras.
ESTRUCTURA GENERAL DE UN PROGRAMA
Un programa se puede considerar como una secuencia de procedimientos o tareas (instrucciones) que se realizarán una tras otra para manipulación e un conjunto de objetos (datos). En todo programa se encuentran dos bloques para la descripción de dos aspectos.
Bloque de declaraciones En donde se especifica todos los objetos que utilizan el programa (constantes, variables, tablas, registros, archivos, etc.)
Bloque de instrucciones Compuesto por todas las expresiones que se han de realizar dentro del programa para la obtención de los resultados deseados. |
|
|
|
PARTES PRINCIPALES DE UN PROGRAMA
Un programa tiene tres partes fundamentales, que se encuentran dentro del bloque de instrucciones; estas partes pueden estar bien diferenciadas, en la mayoría de las aplicaciones se encuentran entremezcladas en todo el programa.
ENTRADA DE DATOS: Son todas aquellas instrucciones que toman datos de un dispositivo externo.
PROCEDIMIENTO: Es la parte del proceso que está formando por las instrucciones que modifican a los objetos a partir de su estado inicial hasta su estado final.
SALIDA DE RESULTADOS: Conjunto de instrucciones que toman los datos finales de la memoria central y los envían a los dispositivos externos. |
|
|
|
Los elementos que conforman un programa se dividen en dos: elementos básicos y elementos auxiliares.
Elementos básicos
Elementos auxiliares
CONTANTES Son elementos que tiene un nombre y hace referencia a una posición de memoria donde se guarda un dato, cuyo valor permanece invariable durante la ejecución del programa.
VARIABLES Son elementos que tienen un nombre que hace referencia a una posición de memoria donde se guarda un dato, el cual puede ser modificado en cualquier momento de la ejecución del programa.
OPERADORES Son elementos representados por símbolos que se emplean para realizar operaciones fundamentales y sirven para la construcción de expresiones. Y se puede utilizar de forma general. |
|
|
|
EXPRESIONES Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombre de funciones especiales. Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas para la ejecución de las operaciones indicadas. Una expresión consta de operadores y operando. Según sea el tipo de objetos que manipulan, se clasifican las expresiones en:
Ejemplo: Log 2*(A + B)
Ejemplo: “Sr.” + NOMBRES
Ejemplo: A > 1 AND C <= (B + D)
BUCLE También denominado lazo (loop) es una parte del algoritmo, cuya función principal es repetir un número determinado de veces mientras se cumpla la condición de un proceso. Los bucles se caracterizan por ser independiente o sin anidamiento. Un bucle puede ser anidado o encerrar varias condiciones.
CONTADOR El contador es un elemento que forma parte del programa, el cual tiene un nombre que hace referencia a una posición de memoria donde se guarda un dato, cuyo valor se incrementa en una cantidad fija, para contar o enumerar sucesos o acciones, positivas o negativas; generalmente asociada a un bucle o proceso repetitivo.
ACUMULADOR El acumulador es un elemento que forma parte del programa, el cual tiene un nombre que hace referencia a una posición de memoria donde se almacena un dato, cuyo valor acumula gradualmente el resultado de una operación.
INTERRUPTOR Se le llama también conmutador (switch), es el proceso por el cual una variable puede tomar diferentes valores dentro del algoritmo de un programa, permitiendo conmutar información de una a otra parte del mismo.
ESTRUCTURA La estructura en un programa consiste en que toda la estructura tenga una sola puerta de entrada y una sola puerta de salida. Y son tres única estructura de control; la estructura secuencial, la estructura alternativa y la estructura repetitiva. Estructura Secuencial: Es una estructura con una sola entrada y una sola salida en donde existen una serie de procesos que se ejecutan en forma lineal y en el orden que se encuentran.
Una de las primera formas de realizar un programa, es primero desarrollando su algoritmo, esto permite visualizar en forma panorámica como está formado el programa y como se llega a la solución. El algoritmo define el problema, además permite analizar los datos y luego diseñar una solución. Mientras que el diagrama de flujo establece la secuencia lógica y las diferentes alternativas a seguir en la solución del caso. El diagrama de flujo visualiza en donde empieza el caso, como único punto de inicio y en donde acaba este, como único punto de finalización; además muestra las rutas o bifurcaciones que pudiera seguir la solución del caso a través del programa. Para luego codificarlo a través de un lenguaje de programación, generando el código fuente. O en otro caso puede ser con el lenguaje natural, conocido también como pseudocódigo.subir
Formato Vertical: En él el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito. Formato Horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha. Formato Panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra. Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos. subir |
|
El Pseudocódigo es un lenguaje de especificación de algoritmos, que a través de un conjunto de palabras permiten representar la solución a un problema previamente planteado. Pseudocodificación de Programas: Los pseudocodificación de programas, puede describir la solución de un problema en forma de algoritmo dirigido a un computador, utilizando frases y palabras del lenguaje natural, sujeta a reglas especificas. Los Pseudocódigos son una herramienta para la programación. Debido a su flexibilidad, permite obtener la solución a un problema mediante aproximaciones sucesivas, es decir, mediante lo que se define como diseño descendente. Todo pseudocódigo debe posibilitar lo siguiente:
Forma de describir un algoritmo en pseudocódigo: Un algoritmo constará de dos componentes principales: una cabecera de programa y un bloque algoritmo. La cabecera del programa es una acción simple que comienza con la palabra algoritmo. Esta palabra está seguida por el nombre asignado al programa completo. El bloque algoritmo es el resto del programa y consta de dos componentes o secciones: las acciones de declaración y las acciones ejecutables. Las declaraciones definen o declaran las variables y constantes. Las acciones ejecutables son las acciones que posteriormente deberá realizar la computadora cuando el algoritmo convertido en programa se ejecute. |
|
Forma de declarar las variables: La declaración de variables consiste en indicar el nombre y tipo de dato que almacenará cada una de las variables que intervienen en el algoritmo. Esta sección comienza con la palabra reservada VAR.
Sintaxis: VAR Lista de variables 1: tipo 1 VAR Lista de variables 2: tipo 2 …. VAR Lista de variables n: tipo n Los tipos de datos que se pueden especificar son:
1 Entero 2 Real 3 Carácter 4 Cadena 5 Lógico
Ejemplo VAR Contar, sumar tipo entero VAR Sueldo, neto, impuesto tipo real VAR Trabajador tipo cadena Forma de declarar las constantes: La declaración de constantes consiste en indicar el nombre de la constante y el valor que tendrá durante la ejecución del programa.
Sintaxis: CONST Nombre = valor
Ejemplo CONST pi = 3.141592 CONST max = 99 CONST min = 0
Sentencias de asignación de información: Es el modo de darle valor a las variables. La operación se presenta por un símbolo u operador. La operación de asignación se conoce con el nombre de instrucción o sentencia de asignación cuando se refiere al lenguaje de programación.
Nombre de variable ← expresión
Ejemplo: var1 ← 10 var2 ← 23 nombre ← “OPERACIONES” suma ← var12 + var2 Sentencias de comentario: Los comentarios dentro de un programa tienen la finalidad de identificar y documentar dicho programa. Los comentarios en algoritmo pseudocodificados se representa por las llaves {}
Ejemplo {Programa de actualización (ARTICULO)}
(1) Convertir en expresiones aritméticas algorítmicas las siguientes expresiones:
(a) 5(x + y) 2 (b) a2 + b2 _ a (c) 2(x - a)(a + x)(x - a2) a2 - b2 b (2) Calcule el valor de las siguientes expresiones:
(a) 2 + 2 * 2 + 2 * 2 (b) 2 ^ 2 * 2 (c) -2 ^ 3 (d) 1 * 1 / 1 + 1 - 1
(3) Encontrar el valor de la variable ABCSOFT después de la ejecución de las siguientes operaciones.
ABCSOFT = 4.0 * 5 (c) ABCSOFT = A * B * C * S * O * F * T A = 2.5 B = 1.5 C = 3.8 ABCSOFT = A ^ B - C
(4) Escribir las siguientes expresiones en forma de expresiones algorítmica.
(5) Deducir el valor que toman las variables tras la ejecución de las siguientes instrucciones: X = 4 Y = X Y = X + 5
(6) ¿Qué se obtiene de las variables M, N y O después de ejecutar las instrucciones siguientes? M = 3, N= 20, P = M + N, N = M + N, M = N
(7) Si el valor de X es 3, Y es 3 y Z es 2, evaluar la expresión X ^ Y ^Z
(8) Escribir las siguientes expresiones algorítmicas como expresiones algebraicas:
(a) b ^2 + 4 *a *c (b) 5 * a ^ 2 – 4 * a ^2 + 12 * b ^ 2 – 20 (c) (a + b) / (a – b) ^ 2 (d) ((c * (1 + i) ^ 2) – 1) / (((1 + i ) ^ n) * i))
(9) Evaluar la expresión:
4 / 2 * 8 /4 + 1 / 2 ^ 1 / 3 ^ 2 / 4 * 2
INTRUCCIONES DE ENTRADA Y SALIDA DE DATOS Instrucción: ESCRIBIR Muestra en pantalla un mensaje, el contenido de una variable, constante, campo o el resultado de una expresión.
Sintaxis: ESCRIBIR <mensaje/variable/campo/expresión>
Ejemplos: ESCRIBIR “Ingreso de datos “ ESCRIBIR código ESCRIBIR nombre ESCRIBIR sumax + sumay
Instrucción: LEER Permite el ingreso de datos, almacenado dichos valores en las variables de memoria correspondientes.
Sintaxis: LEER <lista de variables> Ejemplo: LEER código LEER nombre
SENTENCIAS DE CONTROL CONDICIONAL
SENTENCIA DE CONTROL CONDICIONAL SIMPLE Permite evaluar una expresión lógica en un punto específico del programa. Si la condición establecida se cumple, entonces se ejecutará un determinado proceso, si es falsa se continuará la ejecución del programa después de FIN_SI.
Sintaxis: SI <condición> ENTONCES <instrucción 1> <instrucción 2> …. <instrucción n> FIN_SI |
|
SENTENCIA DE CONTROL CONDICIONAL DOBLE Permite evaluar una expresión lógica en un punto específico del programa, ejecutándose un proceso cuando la condición establecida se cumple y otro cuando es falso. Luego de ejecutado uno de los procesos se continuará la ejecución del programa después de FIN_SI.
Sintaxis: SI <condición> ENTONCES <instrucción 1> {proceso que realizan la parte verdadera} <instrucción 2> …. <instrucción n> SINO <instrucción 1> {proceso que realizan la parte falsa} <instrucción 2> …. <instrucción n> FIN_SI |
|
|
|
Ejemplo: Se tiene un algoritmo que desea saber si la edad de una persona la cual se ingresa por teclado conjuntamente con su nombre es mayor de edad o no es mayor de edad; si es mayor de edad preguntar por su DNI; en caso contrario mostrar la edad de la persona.
PLANTEAMIENTO DE RESOLUCION DEL CASO
Edad NOMBRE, EDAD, DNI SI EDAD >17 años entonces le preguntará por su DNI DEFINICION DE LAS VARIABLES DEL CASO
RESUMEN: VAR EDAD de tipo entero corto VAR NOMBRE de tipo cadena VAR DNI de tipo entero largo ALGORITMO DEL CASO |
|
![]()
|
|
PSEUDOCODIGO DEL CASO {Programa que permite saber si la persona es mayor de edad} INICIO {Definición de las variables del caso, esta parte corresponde a las declaraciones del programa} VAR EDAD de tipo entero corto VAR NOMBRE de tipo cadena VAR DNI de tipo entero largo ESCRIBIR”Ingrese apellidos y nombres: “ LEER NOMBRE ESCRIBIR”Ingrese su edad: “ LEER EDAD SI EDAD >= 18 ENTONCES ESCRIBIR “Es ud., mayor de edad…” ESCRIBIR ”Ingrese su dni: “ LEER DNI SINO ESCRIBIR “Es ud., menor de edad…” FIN_SI FINAL |
|
SENTENCIA DE CONTROL CONDICIONAL CON MULTIPLES CONDICIONES Instrucción: SI_ENTOCES_SINOSI_SINO Permite al programa tener un común uso de una selección múltiple que equivaldría a anidar varias funciones de selección. Una vez que se cumpla con una de las condiciones que se presenta esta excluye a las demás condiciones que se presenta, siendo estas falsas. Pero si la condición previa no cumple, entonces se recurre a una segunda condición a ser evaluada, y también se tiene dos alternativas la verdadera y la falsa; y esto se seguirá hasta un máximo de siete condiciones, como validad permitidas. Una vez seleccionada una de ellas de las posibles alternativas se continuarán ejecutándose las instrucciones del programa que siguen a FIN_SI. Esta estructura ejecutará solo las instrucciones que cumpla con las condiciones esperadas en el programa.
Sintaxis: SI <condición> ENTONCES <instrucción 1> {proceso que realizan la parte verdadera} <instrucción 2> …. <instrucción n> SINO SI <condición> ENTONCES <instrucción 1> {proceso que realizan la parte falsa, pero se vuelve a evaluar} <instrucción 2> …. <instrucción n> …. SINO SI <condición> ENTONCES <instrucción 1> {proceso que realizan la parte falsa, pero se vuelve a evaluar} <instrucción 2> …. <instrucción n> SINO <instrucción 1> {proceso que realizan la parte falsa} <instrucción 2> …. <instrucción n> FIN_SI |
|
SENTENCIA DE CONTROL CONDICIONAL MULTIPLE Permite al programa seleccionar una de las varias alternativas codificadas y ejecutar el proceso que corresponde. Una vez seleccionada cualquiera de las posibles alternativas se continuarán ejecutándose las instrucciones del programa que siguen a FIN_SEGUN. Una vez seleccionada el valor coincidente ejecuta las instrucciones y luego se salta fuera de la estructura.
Sintaxis: HACER SEGÚN <condición> SEGÚN <valor 1> <instrucción 1> <instrucción 2> …. <instrucción n> SEGÚN <valor 2> <instrucción 1> <instrucción 2> …. <instrucción n> … SEGÚN <valor n> <instrucción 1> <instrucción 2> …. <instrucción n> DEFECTO <mensaje/instrucción> FIN_SEGUN |
|
SENTENCIAS DE CONTROL REPETITIVO
SENTENCIA DE CONTROL REPETITIVO NO CONDICIONAL Permite al programa llevar a cabo la ejecución secuencial de un proceso (instrucción o conjunto de instrucciones) desde un valor inicial hasta un valor final sin interrupciones. Esta instrucción se utiliza como un contador, el cual cuenta procesos, valores, enumera acciones y repite actividades. Esta instrucción cuenta en forma ascendente o sea desde 1,2,3,4,5,6,…, hasta el último valor o forma descendente o sea desde el último valor …,6,5,4,3,2,1; hasta un valor inicial o valor inicial predeterminado. Cuando se termine la cuenta se continuará la ejecución del programa después de FIN_PARA.
Sintaxis: PARA <variable> <valor inicial> hasta <valor final> paso < <instrucción 1> <instrucción 2> …. <instrucción n> FIN_PARA
Variable: Es la variable que permite contar los procesos que ocurren en la instrucción para, esta cuenta lo hace desde un valor inicial hasta un valor final; en forma ascendente o en forma descendente. Valor Inicial: Es el valor en donde se inicia la cuenta de los sucesos; y puede ser cualquier valor de inicio. Si se desea contar sucesos este puede empezar desde 0 ó desde 1. Para el caso de los arreglos o matrices se empieza desde 0; para el caso que se desea contar eventos esta puede empezar desde 1; y para otros casos se puede empezar de cualquier valor. Para el caso de cuentas regresivas o descendentes esta se empieza del último valor hacia el principio. Valor Final: Es el valor en donde se finaliza la cuenta de los sucesos; para el caso de cuentas regresivas o descendentes esta será el valor final de la cuenta, así sea el número 1 ó 0. Paso: Es el valor el cual determina como se realizará la cuenta ascendente o descendente; para el caso de cuentas de enumeración (contar de uno en uno), no es necesario colocar esta parámetro de cuenta, para el caso en donde se realice cuentas regresivas si es necesario colocar este parámetro, porque si no se colocar no se podrá realizar la cuenta regresiva. Para otros casos en donde la cuenta no sea de enumeración sino se cuente en forma par o de otro forma menos de enumeración se colocará un valor de incremento o decremento. Los valores de incrementos son positivos, los valores de decrementos son negativos. |
|
|
|
Ejemplo 01: Se desea realizar la cuenta de los valores que se ingresa por teclado, desde 1 hasta 10. INICIO VAR x tipo entero corto VAR y tipo entero PARA x = 1 hasta 10 {definición de la variable desde donde cuenta y hasta donde contará} ESCRIBIR “Ingrese un número por teclado “ LEER y FIN_PARA ESCRIBIR “Total de número ingresados “, x FINAL
En este ejemplo no se incluyo el parámetro de paso, porque no es necesario indicar que la cuenta es de uno en uno, el programa ya lo define y la computadora ya no entiende.
Ejemplo 02: Se desea presentar los números pares desde el 2 hasta 100. INICIO VAR x tipo entero corto PARA x = 2 hasta 100 paso 2 {inicia en 2 y cuenta hasta 100 con incremento de dos en dos} ESCRIBIR x FIN_PARA FINAL
En este ejemplo se incluye el parámetro de paso y se indica que la cuenta se hará de dos en dos hasta el final de la cuenta, que la define el valor final. SENTENCIA DE CONTROL REPETITIVO CONDICIONAL Permite al programa llevar a cabo la ejecución secuencial de un proceso (instrucciones o conjunto de instrucciones) mientras la condición establecida se cumpla o sea verdad. Cuando la condición establecida deja de cumplirse o es falsa se continuará la ejecución del programa después de FIN_MIENTRAS.
Sintaxis: HACER MIENTRAS <condición> <instrucción 1> <instrucción 2> …. <instrucción n> FIN_MIENTRAS
Ejemplo 01: Realizar un algoritmo que permita ingresar los siguientes datos de alumnos: apellidos y nombres, primera y segunda nota. El algoritmo deberá calcular y mostrar el promedio obtenido y además determinar las condiciones del alumno (Aprobado o Desaprobado). Este proceso se repetirá mientras el usuario así lo desee.
{Programa que repite el proceso de ingreso de datos} INICIO VAR nombre tipo cadena VAR nota1, nota2 tipo entero VAR promedio tipo real VAR rpta tipo carácter rpta = ‘s’ HACER MIENTRAS rpta=’s’ ESCRIBIR “Ingrese apellidos y nombres “ LEER nombre ESCRIBIR “Ingrese primera nota “ LEER nota1 ESCRIBIR “Ingrese segunda nota “ LEER nota2 {Calculando el promedio} Promedio = (nota1 + nota2)/2 {Determinar la condición del alumno} SI promedio >= 10.5 ENTONCES ESCRIBIR “Condición: APROBADO” SINO ESCRIBIR “Condición: DESAPROBADO” FIN_SI {Preguntando si desea repetir el proceso} ESCRIBIR “Desea continuar (S/N)” LEER rpta FIN_MIENTRAS FINAL |
|
|
|
Ejemplo 02: Desarrolle un programa que permita ingresar los datos de n alumnos. Para cada alumno se ingresará su nombre y 6 notas. Calcular y mostrar en pantalla el promedio para cada uno de estos alumnos. El proceso terminará cuando se ingrese la palabra “FIN” como nombre del alumno. Al finalizar mostrar el promedio general de todos los alumnos.
{Generación de Actas} INICIO VAR nombre tipo cadena VAR x, numalumnos tipo entero VAR nota, suma, media, sumamedia, mediatotal tipo reales numalumno = 0 sumamedia = 0 nombre = “ “ HACER MIENTRAS <> “FIN” numalumno = numalumno + 1 suma = 0 i = 0 HACER MIENTRAS i<=6 i = i + 1 ESCRIBIR “Ingrese la nota “,i”: “ LEER nota suma = suma + nota FIN_MIENTRAS media = suma / 6 {también puede haber divido entre i} ESCRIBIR nombre, media FIN_MIENTRAS mediatotal = sumamedia / numalumno ESCRIBIR “Nota media total es: “, mediatotal FINAL
SUBPROGRAMAS Los subprogramas son pequeños módulos que están diseñados para llevar a cabo una tarea específica. Los subprogramas pueden ser de dos tipos: PROCEDIMIENTOS Y FUNCIONES.
PROCEDIMIENTOS Un procedimiento es un subprograma que ejecuta un proceso específico. Un procedimiento es llamado desde el algoritmo o programa principal mediante su nombre y una lista de parámetros actuales o bien con la instrucción LLAMAR. Al llamar al procedimiento de detiene momentáneamente el programa que se estuviera realizado y el control pasa al procedimiento llamado. Después que las acciones del procedimiento se ejecutan, ser regresa a la acción siguiente a la que se llamo. Un procedimiento se declara igual que una función, pero su nombre no está asociado a ninguno de los resultados que obtiene.
Sintaxis: Declaración de procedimientos PROCEDIMIENTO <nombre> <lista de parámetros> <declaración de variables o constantes> INICIO <instrucción 1> <instrucción 2> …. <instrucción n>FINAL Invocación de procedimientos LLAMAR <nombre del procedimiento> <lista de parámetros> |
|
PROCEDIMIENTO |
|
Matemáticamente una función es una operación que toma una o más valores llamados argumentos y produce un valor denominado resultado (valor de la función para los argumentos dados). Cada función invoca utilizando su nombre en una expresión con los argumentos actuales o reales encerrados entre paréntesis. Las funciones incorporadas al sistema de denominan FUNCIONES INTERNAS y las funciones definidas por el usuario FUNCIONES EXTERNAS. Cuando las funciones estándares o internas no permite realizar el tipo de cálculo deseado es necesario recurrir a las funciones externas que pueden ser definidas por el usuario mediante una declaración de función. Declaración de funciones: La declaración de una función requiere de una serie de pasos que la definen. Una función como subprograma tiene una constitución similar a los algoritmos; por consiguiente, constará de una cabecera con la definición de la función y segundo por el cuerpo de la función, que serán una serie de instrucciones cuya ejecución hará que se asigne un valor al nombre de la función. Invocación a las funciones: Una función puede ser llamada solo por referencia. Cada vez que se llama a una función desde el algoritmo principal se establece automáticamente una correspondencia entre los parámetros formales y los parámetros actuales. Debe haber exactamente el mismo número de parámetros actuales que de parámetros formales en la declaración de la función y se presupone una correspondencia uno a uno de izquierda a derecha entre los parámetros formales y los actuales.
Sintaxis: FUNCION <nombre> <lista de parámetros> <declaración de variables o constantes> INICIO <instrucción 1> <instrucción 2> …. <instrucción n> FINAL
LLAMAR <nombre del procedimiento> <lista de parámetros> |
|
LLAMAR A UNA FUNCION
|
FUNCIÓN |
Ejemplo 01: Se pide crear una función que permita ingresar un número y que a través de una función permita calcular el factorial de dicho número. {Programa que demuestra el uso de una función} INICIO {Programa principal} VAR x, y tipo entero ESCRIBIR “Ingrese un número: “ LEER x y = factorial(x) ESCRIBIR “El factorial es: “,y FINAL {Función factorial} FUNCION factorial(n) INICIO VAR f, i tipo entero {Cuerpo de la función} f = 1 PARA i = 1 hasta n f = f * i FIN_PARA factorial = f FINAL
Ejemplo 02: Crear un procedimiento llamado raya que permita trazar una línea. A dicho procedimiento se le pasará el número de la línea y el ancho de dicha línea. {Programa de demuestra el uso de un procedimiento} INICIO {Trazar una línea en la fila 1 con un ancho de 70 caracteres} LLAMAR raya (1,70) {Trazar una línea en la fila 3 con un ancho de 70 caracteres} LLAMAR raya (3, 70) FINAL {Procedimiento raya} PROCEDIMIENTO raya(lin, ancho) INICIO VAR i tipo entero PARA i =1 hasta ancho POSICION (lin, 1) ESCRIBIR “=” FIN_PARA FINAL
TÉCNICAS DE PROGRAMACIÓN Las técnicas que constituyen la programación son los diagramas de flujo, es la primera representación grafica de algoritmos y programas. Las nuevas técnicas se centran en la programación modular y programación estructurada de manera que se puede conseguir un programa eficaz.
PROGRAMACIÓN MODULAR La programación modular enseñará la descomposición de un programa en modulo más simples de programar, y la programación estructurada permitirá la escritura de programas fáciles de leer y modificar. En un programa estructurado el flujo lógico se gobierna por las estructuras de control básicas:
|
|
|
|
TAMAÑO DE LOS MODULOS En la elaboración de un modulo no existe una regla fija que permita determinar el tamaño; un tamaño adecuado que se debe considerar es una página (30 a 50 líneas de programación). Si no es posible se tendrán que descomponer el modulo en otros submódulos, de tal manera de no realizar esfuerzos para su diseño. Si el modulo tuviera pocas líneas sería conveniente incorporarlo a otro modulo; los módulos de mayor tamaño es probable que ejecuten tareas múltiples y no siempre se conseguirá descomponer en unidades más pequeñas. El término de programación estructura; es un conjunto de técnicas que han evolucionado desde los primeros trabajos de Edgar Dijktra. Estas técnicas aumenta considerablemente la productividad del programa reduciendo en elevado grado el tiempo que se requiere para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los problemas y por consiguiente reducen los errores. La programación estructurada hace que los programas sean más fáciles de escribir, verificar, leer y mantener. Los programas deben estar dotados de una estructura. A esta se incorpora un conjunto de técnicas que son:
DISEÑO DESCENDENTE El diseño descendente, es el proceso por el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración de modo que se relacionen una con otras mediante entrada y salidas de información. De tal modo que el problema se descomponga en etapas o estructuras jerárquicas, de modo que se pueda considerar cada estructura como uno solo e independiente. La programación estructurada se auxilia de los recursos abstractos en lugar de los recursos concretos de que dispone. Descomponer un programa en términos de recursos abstractos según Dijktra consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples capaz de ejecutarlas o constituyan instrucciones de computadora disponibles.
ESTRUCTURA BASICA En mayo de 1966 Böhm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control.
Un programa se define como propio si cumple las siguientes características:
PROGRAMA PRINCIPAL Y LOS MODULOS Un programa que está diseñado mediante la técnica de modularidad quedará construido por dos partes claramente diferenciadas.
EL PROGRAMA PRINCIPAL Describe la solución completa del problema y costa principalmente de llamar a los módulos que necesita. Al llamar a un módulo, se indica que el proceso de ejecución del programa debe continuar en el módulo que se llama, regresando luego al principal después de que concluya el proceso. El programa principal debe contener, además, instrucciones y sentencias de control, que se ejecutan de forma inmediata por el procesador. Una característica del programa principal es que debe contener pocas líneas de codificación, en donde se debe diferenciar los procesos que se debe seguir por medio de los módulos para obtener los resultados deseados.
LOS MODULOS Los módulos se pueden encontrar en distintas partes del programa principal. Su estructura coincide básicamente con la del programa con algunas diferencias en el encabezamiento y finalización. En consecuencia un módulo puede tener sus propios submódulos correspondiente a un refinamiento del mismo. Un módulo es ejecutado por el procesador exclusivamente al ser llamado por el programa principal o por otro módulo. Los módulos que tiene un programa principal pueden ser de dos maneras: módulos internos o módulos externos. Los módulos internos son los que figuran junto al programa principal, se encuentra en el mismo listado. Mientras que los módulos externos, son aquellos que figuran físicamente separados del programa principal. Son compilados separadamente, e incluso pueden haber sido codificado en un lenguaje de programación distinto al del programa principal. AMBITO DE LAS VARIABLES DE UN PROGRAMA Las variables de un programa, cuando este está compuesto de módulos, funciones y procedimientos tiene un ámbito o lugar en donde pueden desarrollarse o sea ser utilizada por el programa y por los módulos que tiene este. Existe dos tipos de ámbitos par las variables; las variables locales, consideradas como variables privadas, por que se usa solo en módulo y no pueden ser empleadas por otros módulos, como tampoco trasferir sus resultados a otros módulos ni al principal. El otro tipo de ámbito de las variables son las variables globales, consideradas como variables públicas, por que se utilizan en los diferentes módulos que tiene el programa como también el módulo principal.
Ejemplo 01 Desarrollar un programa mostrar el promedio de un alumno; pero los alumnos se dividen en tres categorías: alumnos del nivel inicial, alumnos del nivel primario y alumnos del nivel secundario. Cada nivel se compone de un módulo, además del menú de opciones.
INICIO {Programa elegir un nivel y procesar sus notas} VAR GLOBAL p tipo entero VAR GLOBAL n tipo cadena VAR LOCAL a tipo entero VAR LOCAL opción tipo entero a = 1 HACER LLAMAR menú ESCRIBIR “Opción a elegir? “ LEER opción HACER SEGÚN opción SEGÚN 1 LLAMAR inicial SEGÚN 2 LLAMAR primaria SEGÚN 3 LLAMAR secundaria SEGÚN 4 a = 0 DEFECTO ESCRIBIR “Opción no validad” FIN_SEGUN SI a = 0 ENTONCES BORRAR PANTALLA SINO ESCRIBIR “Resultado final del alumno “ ESCRIBIR “Alumno: “, n ESCRIBIR “Promedio: “, p MIENTRAS (a) FINAL PROCEDIMIENTO menú INICIO ESCRIBIR “ Menú Principal” ESCRIBIR “Elige una de las siguientes opciones” ESCRIBIR “1. Secciones de Inicial” ESCRIBIR “2. Secciones de Primaria” ESCRIBIR “3. Secciones de Secundaria” ESCRIBIR “4. Salir” FINAL PROCEDIMIENTO inicial INICIO ESCRIBIR “Procedimiento Inicial” ESCRIBIR “Nombre del Alumno” LEER n ESCRIBIR “Promedio del Alumno” LEER p FINAL PROCEDIMIENTO primaria INICIO ESCRIBIR “Procedimiento Primaria” ESCRIBIR “Nombre del Alumno” LEER n ESCRIBIR “Promedio del Alumno” LEER p FINAL PROCEDIMIENTO secundaria INICIO ESCRIBIR “Procedimiento secundaria” ESCRIBIR “Nombre del Alumno” LEER n ESCRIBIR “Promedio del Alumno” LEER p FINAL
Ejemplo 02 Desarrolle un programa que permita ingresar tres notas y obtener el promedio de la notas. Para lo cual tendremos un módulo de ingreso de notas, una función que permita calcular el promedio.
INICIO {Programa que pasa parámetros a un modulo y este devuelve un resultado PROCEMIENTO ingresar {declaración del módulo} FUNCION promedio (i tipo real, j tipo real, k tipo real) VAR x, y, z tipo entero VAR nombre tipo cadena VAR suma tipo real ESCRIBIR “Programa que calcula el promedio de notas” LLAMAR PROCEDIMIENTO ingresar suma = promedio(x, y, z) {muestra el promedio de notas} ESCRIBIR “Promedio: “, suma FINAL {ingresar las notas al módulo ingresar} PROCEMIENTO ingresar INICIO ESCRIBIR “Ingreso de Notas del Alumno” ESCRIBIR “Alumno: “ LEER nombre ESCRIBIR “Nota 1: “ LEER x ESCRIBIR “Nota 2: “ LEER y ESCRIBIR “Nota 3: “ LEER z FINAL {calcular el promedio de notas} FUNCION promedio (i tipo real, j tipo real, k tipo real) INICIO VAR s tipo real s = (i + j + k)/3 RETORNAR s FINAL
Ejemplo Nº 3 El jefe de proyecto le ha pedido que desarrolle una calculadora como aplicación de un sistema contable, esta calculadora deberá realizar solo las cuatro operaciones que son suma, resta, multiplicación y división. El procedimiento de la calculadora es como cualquiera deberá ingresar los valores de cálculo y el operador de la operación.
PLANTEAMIENTO DE LA SOLUCION DEL CASO
DEFINICIONES DEL PROYECTO DEFINICIONES DE LOS MODULOS DEL PROYECTO
DEFICIONES DE LAS VARIABLES DEL PROYECTO
Nota: todas las variables son globales, porque su ámbito es en todo el proyecto de la calculadora, por lo tanto deberán ingresar a cada modulo para realizar la operaciones. |
|
ALGORITMO DEL CASO
|
|
PSEUDOCODIGO DEL CASO {Programa de calculadora} INICIO {Definición del módulo principal} {Definición de los módulos del proyecto de sistema} MODULO ingreso MODULO calculo MODULO mostrar VAR dato1, dato2, resultado tipo real VAR operador tipo carácter {Llamar a los módulos} LLAMAR MODULO ingreso LLAMAR MODULO calculo LLAMAR MODULO mostrar MODULO ingreso INICIO ESCRIBIR “ingrese primer dato: “ LEER dato1 ESCRIBIR “ingrese segundo dato: “ LEER dato2 ESCRIBIR “¿Qué operación desea realizar (+,-,*,/): “ LEER operador FINAL MODULO calculo INICIO HACER SEGÚN operador SEGÚN ‘+’ resultado = dato1 + dato2 SEGÚN ‘-’ resultado = dato1 - dato2 SEGÚN ‘*’ resultado = dato1 * dato2 SEGÚN ‘/’ resultado = dato1 / dato2 FIN_SEGUN FINAL MODULO mostrar INICIO ESCRIBIR “El resultado es: “, resultado FINAL FINAL |