Documente Academic
Documente Profesional
Documente Cultură
Hnicken, Helvia E.
1. RESOLUCIN DE UN PROBLEMA
Qu es la programacin lgica? Lgica: Es el arte de razonar. Programacin lgica: Es el tipo de programacin en la cual las sentencias son sentencias lgicas, tales como implicaciones lgicas, proposiciones lgicas, etc. Ninguna computadora por s sola puede realizar las tareas que se le encomiendan; para que la mquina pueda trabajar es necesario que alguien le indique qu debe hacer y cmo tiene que hacerlo. El conjunto de instrucciones que componen un programa debe codificarse en un lenguaje entendible por la mquina(lenguaje o cdigo de mquina); como han ido evolucionando los lenguajes, hoy es posible hacerlo con un lenguaje de alto nivel, lo ms prximo al lenguaje humano. Si queremos que una computadora lleve a cabo un proceso, antes que nada habr que programarla para ello. Tendremos que construir un programa que le indique qu pasos ha de seguir para efectuar dicho proceso de un modo totalmente correcto. Se desprende que, una computadora no tiene inteligencia por s sola, no olvidemos que la computadora es una mquina creada por el hombre y, por tanto, no podr realizar una tarea que no haya sido previamente determinada por l. El objetivo es, que frente a un problema dado, diseemos una solucin que pueda ser realizada por un computador. Para ello necesitamos: 1. Un lenguaje o notacin para expresar la solucin obtenida. 2. Escribirla en un lenguaje comprensible por la mquina, por ejemplo: BASIC, COBOL, Pascal, C, etc.
Entrada = datos
procesador
Salida = informacin
La figura muestra los componentes de un sistema de proceso de la informacin: entrada, salida y procesador. El procesador, que puede ser bastante complicado, se representa por una simple caja y puede aceptar datos llamados entrada y esta entrada se transforma entonces para producir una informacin denominada salida o resultados.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
Basados en este esquema, muchos dispositivos u organismos pueden ser considerados sistemas de procesamiento de la informacin. Un termostato que controla la temperatura de un edificio es un ejemplo, la entrada es la temperatura media y la salida es una seal que controla la caldera del aire acondicionado. El corazn, es un sistema complejo de informacin. El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especfico o clase de problemas, se denomina algoritmo. Cuando el procesador es una computadora, el algoritmo se expresar en forma de programa escrito en un lenguaje de programacin.
La idea es, dado un problema determinado, disear una solucin que pueda ser realizada por una computadora: Partes de un programa Entrada de datos. La constituyen todas aquellas instrucciones que toman datos de un dispositivo externo, almacenndolos en la memoria central para que puedan ser procesados. Proceso. Est formado por las instrucciones que modifican los objetos a partir de su estado inicial hasta el estado final, dejando stos disponibles en la memoria central. Salida de resultados. Conjunto de instrucciones que toman los datos finales de la memoria central y los envan a los dispositivos externos.
MEMORIA CENTRAL
ENTRADA PROCESO SALIDA
Datos
Desarrollo de un programa
Datos Requeridos
El objeto de un programa es resolver un problema, si es muy complejo y extenso, no se podra programar en una sola etapa, entonces, el estudio se hace por etapas y para su programacin se divide en varias unidades y/o programas. A un problema de esta magnitud se lo denomina aplicacin y consta de un nmero ms o menos grande de programas. Desarrollo de una aplicacin Todo comienza cuando surge la necesidad de la automatizacin de un conjunto de tareas, y finaliza cuando esa necesidad es satisfecha con una solucin informatizada. Mientras que, en el traspaso problemasolucin se fue desarrollando lo que se da en llamar: ciclo de vida de un sistema o desarrollo de aplicaciones.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
El desarrollo de un programa comprende el conjunto de etapas que van desde el planteamiento del problema inicial en la fase de anlisis hasta su solucin informatizada a un costo razonable. Etapas:
A. Planteamiento de un Problema
construccin del programa
A2. Diseo del Algoritmo A3. Codificacin del Programa B. Edicin y Puesta a Punto C. Documentacin
D. Explotacin
Fase de construccin de un programa Esta fase va desde el planteamiento de un problema hasta la obtencin de un algoritmo que lo resuelve codificado en un lenguaje de programacin. Se compone a su vez en: Definicin del problema Anlisis del problema Programacin de la solucin del problema Diseo del algoritmo Codificacin del programa Estas etapas generan una documentacin que se engloba en lo que se llama: cuaderno de carga.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
Qu datos se necesitan para resolver el problema? (Entradas) En esta etapa, bsicamente, se identifica el problema y se decide qu tipo de solucin se requiere y si ello implica software, se definirn los requerimientos a cubrir. Si esa solucin requiere software, el analista definir las condiciones que debe cumplir: Definicin de salida Contenido: es el tipo de informacin que se proporcionar y a qu nivel de detalle. Formato: cmo mostrar la informacin, por impresora, pantalla o grfico. Tiempo: periodicidad del informe; es decir, cundo necesita la informacin el usuario, por ejemplo diaria, semanalmente o mensualmente. Flexibilidad: los programas no deben ser rgidos, al punto de que no puedan ser modificados para adaptarse a condiciones cambiantes. Definicin de entrada Datos necesarios. Disponibilidad de los datos. Procedimientos para obtener informacin. Introduccin de los datos: cmo se ingresarn al sistema. Definicin de tareas de procesamiento Restricciones de personas: el software debe estar diseado de modo que el sistema d avisos claros a los usuarios acerca de lo que deben hacer, cundo hacerlo y cmo; para que los usuarios no deban estar especializados al hacer uso del sistema. Restricciones del equipo: el software debe estar diseado para trabajar en computadora, equipo perifrico y software de sistema que se encuentren a disposicin o sean factibles de adquirir.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
Slo cuando se complete el diseo se podr dar inicio a la siguiente etapa: la codificacin real de los programas. Y es en esta fase en donde se hace la eleccin del lenguaje de programacin que mejor se adapte.
editor
Edicin
Segn el tipo de traductor que se utilice, los lenguajes de alto nivel se clasifican en lenguajes interpretados y lenguajes compilados. programa Son lenguajes interpretados aquellos en los que ejecutable el sistema traduce una instruccin y la ejecuta, y as sucesivamente con las restantes.
Ejecucin
Son lenguajes compilados aquellos en los que, primero se traduce el programa fuente completo, obtenindose un cdigo intermedio o mdulo objeto (programa objeto); despus, se fusiona ste con rutinas o libreras necesarias para su ejecucin en un proceso llamado linkado y que obtiene como resultado un mdulo ejecutable (programa ejecutable). La ventaja de los lenguajes compilados, frente a los interpretados, son su rpida ejecucin y, en caso de necesitar posteriores ejecuciones del mismo programas ejecutable almacenado. La puesta a punto del programa hace referencia a la localizacin, verificacin y correccin de errores de programacin para obtener un programa que funcione correctamente. La puesta a punto consta de las siguientes etapas: Deteccin de errores;
LGICA COMPUTACIONAL
Hnicken, Helvia E.
Prueba del programa. Todo esto se hace para prevenir tantos errores como sea posible detectar a la hora de ejecutar el programa, tambin sirve para facilitar la deteccin y correccin de errores. Los errores tpicos que se presentan son: Errores de sintaxis Errores de lgica Errores de sintaxis. Se originan en el momento de compilacin/interpretacin del programa y se deben a causas propias de la sintaxis del lenguaje como escrituras incorrectas de instrucciones, omisin de signo, etc. Estos errores se descubren con facilidad, pero puede suceder que, un error de este tipo, no sea tal, sino que pone de manifiesto otro tipo de error diferente. Ejemplo: SUMA = SUMA + B En la mayora de los lenguajes compilados puede dar error durante la ejecucin si la variable SUMA no ha sido declarada.
Errores de lgica. Los errores en la lgica del programa pueden ser producidos en la fase de compilacin o ejecucin. Los que suceden durante la ejecucin de un programa, normalmente, son ms difciles de detectar. Se pueden observar dos categoras: los que detienen la ejecucin del programa y los que no la detienen, pero que producen resultados errneos. Ejemplo: R = S/C Si C es cero, muchos de los errores lgicos slo se manifiestan en el momento de la ejecucin; por ello se denomina tambin errores de ejecucin.
Si se omite el segundo smbolo del producto (*) y la instruccin se convierte en L L = 2 * P * R= 2 * PR, la omisin de este smbolo no se reconoce como error de sintaxis en la fase de compilacin o interpretacin, pero dara resultados errneos al ejecutarse.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
En sntesis, un programa de computadora es un conjunto de instrucciones -rdenes dada a la mquina- que producirn la ejecucin de una determinada tarea. En esencia, un programa es un medio para conseguir un fin, ese fin es definido como la informacin necesaria para solucionar un problema. Una solucin a un problema puede no ser la nica, pueden haber varias. Estas soluciones, luego de ser formuladas y analizadas, permiten inferir en cul es la mejor solucin de todas las planteadas, con esto queremos afirmar que, en circunstancias bien determinadas se considerar una nica como la ms eficaz y eficiente.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
Actividades 1
Conteste los siguientes puntos. 1. Busca el significado de las siguientes palabras: a) Algoritmo b) Aplicacin c) Archivo d) Cdigo e) Documentacin f) Lenguaje de alto nivel
m) Programador n) Usuario 2. En qu etapa se debe documentar el programa? 3. En qu momento -etapa-, estoy en condiciones de elegir el lenguaje de programacin que mejor se adapte a la solucin del problema? 4. En qu etapa se termina de definir el problema a solucionar? 5. Los datos de qu etapa necesito para realizar, por ejemplo, un diagrama de flujo? 6. En qu etapa se clarifica qu entradas, qu procesos y qu salidas va a tener el programa? 7. En qu etapa me doy cuenta si mi programa no funciona correctamente debido a que tiene errores (bugs)? 8. Por qu le parece a usted que puede resultar el paso del algoritmo al cdigo -instrucciones dadas a la computadora- una tarea compleja? 9. Qu diferencias ve entre el grfico de un sistema de procesamiento de informacin y el grfico de las partes del programa? 10. Para qu se programa?
LGICA COMPUTACIONAL
Hnicken, Helvia E.
Todo objeto tiene sus atributos: Nombre: Es con el cual se identifica al mismo. Para identificarlo se utiliza una secuencia de uno o ms caracteres en donde el primer caracter es una letra, los siguientes pueden ser letras , dgitos o algunos caracteres especiales (depende del lenguaje). No puede usarse un espacio como caracter de la secuencia. El espacio determina el fin de la secuencia. Es preferible que dicho nombre indique algo sobre el propsito para el cual se emplea. Nombres bien elegidos, no solo hacen los algoritmos ms fciles de leer y entender, sino tambin de modificar los ya escritos antes. Tipo: Es el conjunto de valores vlidos que puede tomar. Conjunto de caractersticas comunes que identifican todos los posibles estados que el objeto de ese tipo puede tomar. Valor: Es el elemento del tipo que se le asigna. El cual puede variar al pasar de un estado a otro, otros sin embargo no cambian nunca su valor. Por tanto los objetos de un programa son como cajas con tapas en donde aparece adherida una etiqueta (nombre), sta caja tiene una forma determinada (tipo) y dentro de ellas hay almacenada informacin (valor).
2.1.1. Constante
Es un objeto de valor invariable a lo largo de la ejecucin de un programa, es decir que tiene un valor concreto. Ejemplos: El signo = es transferir (mover o asignar) lo que se halla a la derecha del smbolo hacia la variable de la izquierda.
PI = 3.141592 e = 2.718281
LGICA COMPUTACIONAL
Hnicken, Helvia E.
10
2.1.2. Variable
Es un objeto cuyo valor puede ser modificado a lo largo de la ejecucin de un programa. Ejemplos:
Porque ...
Porque ...
LGICA COMPUTACIONAL
Hnicken, Helvia E.
11
Lo mismo dicho en otros trminos es: Campo: Un campo es un rea de almacenamiento principal que contiene datos y resultados intermedios de los clculos o resultados finales. entero numricos real Los campos pueden contener caracteres alfabticos alfanumricos Ejemplo de nombres de campo: NOMBRE MATRICULA DNI CAL1 CAL2
Al mencionar un campo por su nombre, lo que en realidad se hace es extraer el contenido de dicho campo, sirviendo el nombre slo para indicar una posicin determinada en la memoria de la mquina. Como se dijo, los campos pueden contener caracteres slo numricos, slo alfabticos o una combinacin de ambos. Ejemplo: PEREZ NOMBRE 160114 MATRICULA 8 CAL1 9 CAL2
En este ejemplo NOMBRE es un campo alfabtico, su contenido es PEREZ; MATRICULA es un campo numrico que contiene 160114 y CAL1, CAL2 son campos numricos que contienen 8 y 9 respectivamente. [Realizar las siguientes operaciones entre campos e indicar el contenido final de los mismos, si el contenido inicial es]: 1. 4 A 2 B A a b c d e f g A=B C=A B = (A + B + C )/ 2 A=A+C C=B-A C=C-A A=A*B B 3 C C
LGICA COMPUTACIONAL
Hnicken, Helvia E.
12
2.
10 X
20 Y
60 Z
2.2. Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos de operacin y nombres de funciones especiales. Una expresin consta de: Operandos Operadores Ejemplo: 5 + 3 Donde 5 y 3 son operandos y el signo + es el operador
Segn el resultado de evaluar la expresin sea un nmero, una serie alfanumrica o uno de los valores lgicos (Verdadero o Falso), es decir, segn el tipo de objetos que manejan, las expresiones se clasifican en: Expresiones aritmticas: anlogas a frmulas matemticas, en donde se utilizan: a) operadores tipo aritmticos y b) variables y constantes numricas (reales o enteras). Ejemplo: -8*2+4/2-3 PI * SQR(X)
Expresiones alfanumricas: se utilizan operadores alfanumricos y producen resultados de tipo alfanumricos. Ejemplo: Lic. + NOM
Expresiones relacionales: Se utilizan operadores relacionales. Se compara entre dos valores del mismo tipo, es decir que los operandos son ambos numricos, ambos carcter o ambos del tipo lgico. El resultado de la evaluacin de una expresin relacional es de tipo lgico: Falso o Verdader. Ejemplo: A+B <= A*B Expresiones lgicas: Se utilizan operadores lgicos. El resultado de este tipo de expresin es un valor lgico: Falso o Verdadero, el cual se deduce de analizar la tabla de verdad correspondiente a los conectores lgicos. Ejemplo: A > 10 AND A < 20
LGICA COMPUTACIONAL
Hnicken, Helvia E.
13
2.2.1. Operadores
Clasificacin de los operadores que conectan los objetos en las expresiones, segn su tipo: TIPO Parntesis Aritmticos SMBOLO () ** ^ *, / +, Alfanumricos Relacionales + = < <= > >= <> Lgicos NOT AND OR Potencia Producto, divisin Suma, diferencia Concatenacin Igual a Menor que Menor o igual que Mayor que Mayor o igual que Distinto a Negacin Conjuncin Disyuncin Conectan expresiones de tipo lgico. Su evaluacin da como resultado Verdadero o Falso. Conectan campos alfanumricos Conectan objetos, campos o expresiones de cualquier tipo. Su evaluacin da como resultado Verdadero o Falso. NOMBRE FUNCIN Anida expresiones Conectan objetos o campos numricos
Los operadores lgicos NOT, AND y OR se evalan segn las tablas de verdad, siendo X e Y expresiones booleanas cuyo resultado de las operaciones lgicas viene determinado por dichas tablas: Operador NOT X F V NOT X V F Operador AND X F F V V Y F V F V X AND Y F F F V Operador OR X F F V V Y F V F V F V V V X OR Y
Todos los operadores de una expresin siguen el siguiente orden al evalluarlos: 1 2 3 4 5 6 7 8 Parntesis Potencias Productos y divisiones Sumas y Restas Concatenacin Relacionales Negacin Conjuncin (Comenzando por los ms internos)
9 Disyuncin Cuando en una expresin aparece ms de un operador de cualquier tipo, el orden de evaluacin comienza por el operador de mayor prioridad; si dos o ms operadores son de la misma prioridad se evalan de izquierda a derecha. Ejemplo:
LGICA COMPUTACIONAL
Hnicken, Helvia E.
14
a.
b.
VERDADERO
c.
Componentes De un Programa
Expresiones
Acciones O Instrucciones
(*) Tambin llamadas acciones elementales, son aquellas que pueden ser interpretadas por el procesador sin informacin adicional. (**) Son aquellas que pueden subdividirse en acciones menos complejas.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
15
Actividades 2
1. [Responder]: a. El tiempo crea hroes y destruye celebridades b. La elegancia de la honestidad no necesita adornos Cuntos caracteres tiene la cadena a? ... Cuntos caracteres tiene la cadena b? ... 2. Un campo puede ser de tipo alfanumrico y numrico a la vez? 3. [Tache lo que no corresponda, indicando si el nombre de campo correspondiente es correcto ]: Nombre de un Campo IVA 160114 1APELLIDO NOMBRE2 HORARIO CLASE Resultado Falso Falso Falso Falso Falso Verdadero Verdadero Verdadero Verdadero Verdadero
4. [Tache lo que no corresponda]: A 7 -3 8 9 5 B 7 3 10 9 1 Expresin Relacional A<>B A = B A>=B A<=B A < B Resultado Falso Falso Falso Falso Falso Verdadero Verdadero Verdadero Verdadero Verdadero
5. [Evaluar las siguientes expresiones paso a paso, teniendo en cuenta los valores iniciales de las siguientes variables y constantes]: 3.141592 PI a. 2.718281 E 1 U 5 V 2 W
b. ( U^ ( V + W ) + 3 * ( V / U )) / W c. d.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
16
3. ALGORITMO
Algoritmo: Es una descripcin paso a paso de algn proceso . La palabra algoritmo deriva del matemtico rabe AL -KUHARITMI, quien describi mtodos para solucionar problemas aritmticos. Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora que los ejecuta. Es decir que, un lenguaje de programacin es tan slo un medio para expresar un algoritmo y que una computadora es slo un procesador para ejecutarlo. Cabe destacar la importancia de la fase de diseo del algoritmo, la cual requiere creatividad y conocimientos profundos de la metodologa de la programacin (metodologa necesaria para resolver problemas mediante programas).
Para aclarar este concepto de algoritmo, veremos como ejemplo el caso que ocurre a menudo, el cambio de un neumtico pinchado.
4 ...
5 ... 6 ...
Nota: A este algoritmo se le podran agregar muchos detalles ms.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
17
Un algoritmo debe reunir las siguientes caractersticas generales: de estar escrito de tal forma que facilite su lectura y comprensin.
Legibilidad. Ha
Portabilidad. Su diseo debe permitir la codificacin en diferentes lenguajes de programacin, as como su instalacin en diferentes sistemas -que se pueda ejecutar en diferentes plataformas hardware-. Modificabilidad. La de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones necesarias para adaptarlo a una nueva situacin. Eficiencia. Se deben aprovechar al mximo los recursos del computador, minimizando la memoria utilizada y el tiempo de proceso o ejecucin.
Modularidad. Ha de estar subdividido en bloques o mdulos, cada uno de los cuales realizar una parte del conjunto del trabajo. Estructuracin. Debe cumplir las reglas de la programacin estructurada para facilitar la verificacin, depuracin y mantenimiento del programa.
Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo de un lenguaje de programacin en particular, lo que significa que permitira que ese algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para lograrlo, es necesario que ese algoritmo se pueda representar grficamente o numricamente. Algunos de los mtodos para representar un algoritmo son: Diagrama de flujo Diagrama N-S (Nassi-Schneiderman) Seudocdigo Lenguaje espaol Frmulas
Nota: Ms adelante desarrollaremos los mtodos de Seudocdigo y Diagrama de Flujo. Para mayor informacin sobre el resto de los mtodos consulte bibliografa referente a los mismos.
Programacin modular
El programa consta de mdulos; cada uno de los cuales realiza una tarea concreta.
Programacin Estructurada
El programa es estructurado, es decir que utiliza lo que se llama: estructuras de control
LGICA COMPUTACIONAL
Hnicken, Helvia E.
18
Mdulo 1
Mdulo 2
Mdulo 3
Mdulo 4
Mdulo 5
Mdulo 6
Mdulo 7
Mdulo 8
Mdulo 9
Mdulo 10
El montaje de la red se hace en modo ascendente (botton -up), por lo que un programador puede estar escribiendo el mdulo 8 mientras otro el mdulo 9. Una vez terminados ambos se puede comprobar su funcionamiento con un ficticio 4 que llama a ambos. El mdulo est constitudo por una o varias instrucciones fsicamente contiguas y lgicamente encadenadas, las cuales se pueden referenciar mediante un nombre y pueden ser llamadas desde diferentes puntos de un programa. Un mdulo puede ser: a) Un programa, b) Una funcin, c) Una subrutina (o procedimiento). Cada mdulo slo puede tener una entrada y una salida que lo enlazan con el mdulo principal, incluso habiendo estructuras repetitivas y alternativas dentro de un mdulo. Caractersticas de un mdulo: pueden tener la mxima cohesin y el mnimo de acoplamiento (mxima independencia entre ellos). La salida del mdulo debe ser funcin de la entrada, pero no de ningn estado interno. En esencia, el mdulo ha de ser una caja negra que facilite unos valores de entradas y suministre unos valores de salida que sean funcin de las entradas. Requisitos de la programacin modular: a) Establecimiento de un organigrama modular, b) Descripcin del mdulo principal, c) Descripcin de los mdulos bsicos o secundarios y, d) Normas de la programacin. El organigrama modular se realiza mediante bloques, en el que cada uno corresponde a un mduo y muestra grficamente la comunicacin entre el mdulo principal y los secundarios. El mdulo principal debe ser claro y conciso, reflejando los puntos fundamentales del programa. Los mdulos bsicos deben resolver partes bien definidas del problema. Slo pueden tener un punto de entrada y un punto de salida. Si un mdulo es complejo de resolver, conviene se subdivida en submdulos. Ningn mdulo puede ser llamado desde distintos puntos del mdulo principal. Las normas de programacin dependern del anlisis de cada problema y de las normas generales o particulares que haya recibido el programador. Criterios de modularizacin. La divisin de un programa en mdulos debe cumplir los siguientes criterios: Cada mdulo debe corresponder a una funcin lgica perfectamente diferenciada. El tamao de cada mdulo es variable. Deben ser pequeos para que sean claros y de poca complejidad. Evitar variables externas. Procurar no utilizar demasiados niveles de modularizacin para evitar la complejidad de la red. Estructura de caja negra para cada mdulo (la salida debe ser funcin exclusiva de la entrada). Las tcnicas de programacin modular aportan un mtodo o filosofa para la descomposicin eficaz de un problema en problemas o mdulos ms sencillos. Se pueden utilizar criterios de programacin
LGICA COMPUTACIONAL
Hnicken, Helvia E.
19
modular y posteriormente utilizar mtodos de programacin estructurada dentro de cada mdulo independientemente. Una vez terminado el diseo de los programas de cada mdulo, realizar el montaje del programa completo mediante un diseo ascendente.
Teorema de la estructura. Se basa en el concepto de diagrama o programa propio que consiste en que toda estructura tenga un solo punto de entrada y un solo punto de salida. Todo diagrama o programa propio, cualquiera que sea el trabajo que tenga que realizar, se puede hacer utilizando tres nicas estructuras de control que son la secuencia, alternativa y repetitiva.
Un programa estructurado es entonces: Fcil de leer y comprender. Fcil de codificar en una amplia gama de lenguajes y en diferentes sistemas. Fcil de mantener. Eficiente, aprovechando al mximo los recursos del computador. Modularizable. En sntesis, se debe realizar un programa siguiendo tcnicas o mtodos estandarizados, los ms empleados son: la programacin modular y la programacin estructurada. Estas tcnicas suelen ser complementarias, ya que el anlisis de un problema puede utilizar criterios de programacin modular para dividirlo en partes independientes y utilizar mtodos de estructuracin en la programacin de cada mdulo. Todo ello, para evitar: a)Programas muy rgidos con problemas de adaptacin a nuevas configuraciones, b) Prdida de tiempo en la correccin de errores, c) Difcil comunicacin entre los programadores, d) Evitar que el programa tenga una relacin estrecha con el programador que lo realiz, e)Modificaciones difciles de hacer, implicando mucho tiempo y elevado coste de mantenimiento, lo que conduce a colocar parches que complican el diseo inicial o que el programa caiga en desuso, frente al elevado coste de actualizacin que al final se optar por crear una nueva aplicacin que sustituya a la existente y, f) Deficiencias en la documentacin.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
20
Actividades 3
1. [Coloque los siguientes pasos en orden lgico] Algoritmo para preparar el mate.
1. LLENAR EL MATE. 2. PONERLA A CALENTAR. 3. CEBAR EL MATE. 4. BUSCAR EL MATE. 5. RETIRARLA DEL FUEGO. 6. LLENAR LA PAVA DE AGUA. 7. VIGILAR EL AGUA. 8. BUSCAR LA BOMBILLA, LA YERBA Y EL AZUCAR. 9. PRENDER EL FUEGO. Solucin:
6 ...
7 ... 8 9
2. [Enuncie algn otro ejemplo de algoritmo]
[Enuncie los pasos generales necesarios que llevara a cabo con el ejemplo de algoritmo que acaba de mencionar]
1.
2.
3. 4. 5. 6.
[Tmese unos segundos y vuelva a leer el concepto de algoritmo...]
LGICA COMPUTACIONAL
Hnicken, Helvia E.
21
4. DIAGRAMA DE FLUJO
[Ver anexo de smbolos]
En la parte superior: soportes que suministran En la parte superior: smbolo de comienzo del los datos de entrada. (Smbolos de soporte de programa. (1). Entrada). Smbolo de operaciones. (2). En el centro: el programa y su identificacin. De arriba abajo, de izquierda a derecha: la (rectngulo central: smbolo de proceso). secuencia en que se realizan. (3). En la parte inferior: soporte para los Al final: smbolo de fin del programa. (4). resultados. (Smbolos de soporte que reciben los datos de Salida). A la derecha e izquierda: los soportes de datos de Entrada/Salida. El flujo de los datos. (lneas de flujo).
Ejemplo: Ejemplo:
Entrada de datos
(1)
Inicio
(3)
Actualizacin
Archivo
(2)
Listado de incidentes
Visualizacin de datos
(3)
(3) (4)
Fin
LGICA COMPUTACIONAL
Hnicken, Helvia E.
22
[Complete los espacios del diagrama de flujo que correspondera al algoritmo de cambio de un neumtico]
En la representacin de ordinogramas, es conveniente seguir las siguientes reglas: El comienzo del programa figurar en la parte superior del ordinograma. Los smbolos de comienzo y fin debern aparecer una nica vez, utilizando el smbolo de parada (STOP) para representar cualquier otro tipo de interrupcin o finalizacin. El flujo de las operaciones ser, siempre que sea posible, de arriba a abajo y de izquierda a derecha, en cuyo caso pueden omitirse las puntas de flecha.
Se debe guardar una cierta simetra en la representacin de bifurcaciones y bucles, as como en el conjunto total del ordinograma. Se evitarn siempre los cruces de lneas de flujo utilizando conectores. El uso de comentarios estar restringido al mnimo imprescindible; al contrario que en la codificacin, en la que son mucho ms recomendables. Si en un ordinograma se ha separado una parte de otra por medio de un conector, las posibles conexiones que puedan aparecer desde esta ltima a la anterior, se harn igualmente con conectores, evitando el uso de lneas de flujo directas.
Los smbolos que se utilizan para la representacin grfica en los diagramas de flujo son establecidos por las Normas IRAM 36002 y 36003 correspondientes al INSTITUTO ARGENTINO de RACIONALIZACION de MATERIALES.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
23
Ejemplo: Programa que lee un nmero del dispositivo estndar de entrada y comprueba e imprime en el dispositivo estndar de salida si dicho nmero es nulo, positivo o negativo.
Tabla de verificacin o prueba de escritorio C 0 1 2 3 4 5 paso realizado [C = 0] [C = C + 1] [C = C + 1] [C = C + 1] [C = C + 1] [C = C + 1] 39 -175 74 0 82 [Leer N] [Leer N] [Leer N] [Leer N] [Leer N] POSITIVO NEGATIVO POSITIVO NULO POSITIVO N paso realizado SALIDA
[Grafique por lo menos un smbolo (de sistema) que representara cada parte de un programa ] ENTRADA PROCESO SALIDA
LGICA COMPUTACIONAL
Hnicken, Helvia E.
24
4.3.1. Contadores.
Un contador es un campo de memoria cuyo valor se incrementa en una cantidad fija, positiva o negativa, generalmente asociado a un bucle. Es un caso particular del acumulador. Se utiliza en los siguientes casos: Para contabilizar el nmero de veces que es necesario repetir una accin (variable de control del bucle). Para contar un suceso particular solicitado por el enunciado de problema (asociado a un bucle o independientemente). CONT CONT + 1
4.3.2. Acumuladores.
Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces en cantidades variables. Se utiliza en aquellos casos en que se desea obtener el total acumulado de un conjunto de cantidades, siendo preciso inicializarlo con el valor 0. Tambin en las situaciones en que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador, debindose inicializar con el valor 1. ACUM ACUM + NOTA
4.3.3. Interruptores.
Tambin se denominan SWITCHES, BANDERAS, CONMUTADORES. Un interruptor es un campo de memoria que puede tomar dos valores exclusivos (0 y 1, -1 y 1, FALSO y VERDADERO, etc.). Se utiliza para: Recordar en un determinado punto de un programa la ocurrencia o no de un suceso anterior, para salir de un bucle o para decidir en una instruccin alternativa qu acciones realizar. Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
25
Actividades 4
1. [Tache lo que no corresponda y fundamente su eleccin] Supone usted que un diagrama de flujo deba reflejar: El comienzo del programa. SI NO
Porque ...
Las operaciones. S I NO
Porque ...
Porque ...
Porque ...
2. Cada operacin lgica se identifica con un smbolo distinto. [Usted deber rellenar la lnea punteada con el grfico del smbolo correspondiente a cada punto ] Utilizamos la caja ... finaliza (FIN). .. para indicar donde comienza el diagrama (INICIO) y donde
Utilizamos la caja ... .. llamada caja de asignacin, para encerrar instrucciones de ejecucin de ciertas acciones como por ejemplo sumar nmeros, calcular la raz cuadrada de un nmero, etc. Utilizamos ... .. para encerrar una pregunta. Esta caja se denomina caja de decisin, pues la respuesta a la pregunta nos seala qu debe hacerse a continuacin. Se utilizan ... Utilizamos ...
... para conectar caminos, tras roturas previas del flujo del algoritmo.
Utilizamos ... ... para representar cualquier tipo de entrada o salida desde el programa o sistema; por ejemplo, entrada de teclado, salida en impresora o pantalla, etc.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
26
5. SEUDOCDIGO
Es una herramienta para disear algoritmos -diseo de la solucin de un problema por computadoraNo depende de un lenguaje de programacin particular. Utiliza palabras y frases del lenguaje natural (en este caso: el espaol), y sujetas a determinadas reglas. El seudocdigo es utilizado en la fase de diseo del programa, por ser, la utilizacin de un lenguaje, debido a su rigidez, no aconsejable.
6. ESTRUCTURAS BSICAS
Como versa el Teorema de la estructura, decimos que toda accin se puede realizar utilizando tres estructuras bsicas de control, la estructura secuencial, alternativa y repetitiva.
Secuencial
ESTRUCTURAS BASICAS
Alternativa (IF)
Alternativa Simple (IF) Alternativa Doble (IF) Alternativa Mltiple (CASE) Para (FOR)
Repetitiva
LGICA COMPUTACIONAL
Hnicken, Helvia E.
27
LGICA COMPUTACIONAL
Hnicken, Helvia E.
28
expresin
V1 Proceso 1
V2 Proceso 2
Vn Proceso N
Opcin EXPRESION de: V1 hacer I1; I2; ...; Ip V2 hacer J1; J2; ...; Jq Otros Vn hacer K1; K2; ...; Kr Otro hacer L1; L2; ...; Ls Proceso Finopcin
Se repiten las instrucciones I1, I2, ...In, un nmero fijo de veces, tantas como sucesivos valores toma la variable de control del bucle Vc desde, inicialmente Vi, incrementndose a cada repeticin en In, hasta que el valor de Vc supera Vf. Si el incremento es +1 no hace falta expresarlo.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
29
En esta estructura se repite una accin mientras se cumpla la condicin que controla el bucle. El nmero de iteraciones oscila entre 0 e infinito dependiendo de la evaluacin de la condicin, esta condicin a evaluar es una expresin lgica ya que devuelve verdadero o falso. Mientras la condicin sea verdadera el ciclo continuar ejecutndose y la primera vez que sea falso el ciclo finaliza. A diferencia del for no dispone del paso de incrementacin por lo tanto este debe estar incluido dentro del cuerpo de sentencias.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
30
LGICA COMPUTACIONAL
Hnicken, Helvia E.
31
La instruccin LET LET Variable = Expresin LET: nombre de la instruccin, que puede omitirse. Variable: nombre de la variable numrica o alfanumrica a la que se quiere asignar un valor Expresin: puede ser una expresin numrica o alfanumrica. Nunca se puede realizar una asignacin del valor de una expresin alfanumrica a una variable numrica, ni viceversa. Esta instruccin permite asignar un valor a una variable, ya sea numrica o alfanumrica. Ejemplo: LET A = 2 A = 2 D = (B + C) / 2 LET A$ = PENTIUM D$ = B$ + C$ La instruccin SWAP SWAP Variable1, Variable2 SWAP: nombre de la instruccin. Variable1: nombre de la primera variable. Variable2: nombre de la segunda variable. Esta instruccin permite intercambiar los valores de dos variables, es decir, asignar a la primera el valor de la segunda y a sta el valor de la primera. Ejemplo: SWAP A, B SWAP A$, B$ Instrucciones READ/DATA READ Variable DATA Constante READ: nombre de la instruccin. DATA: nombre de la instruccin. Variable: nombre de cada una de las variables donde se irn asignando las constantes almacenadas en el fichero interno. Constante: cada uno de los valores que se almacenar en el fichero interno que se crear. Estas dos instrucciones se complementan. El hecho de especificar instrucciones DATA en un programa BASIC hace que se cree un fichero interno con los datos de tales instrucciones, datos que posteriormente pueden leerse y asignarse a variables mediante instrucciones READ. Ejemplo: 10 READ A, B, C, D 20 DATA 5, 10, 15, 20 30 PRINT A, B, C, D Instruccin de entrada de datos En la variable A se almacenar el valor 5, en la B el 10, en la C el 15 y en la D el 20; por lo tanto al ejecutar la instruccin de la lnea 30, se imprimirn los valores 5, 10, 15, 20.
La instruccin INPUT INPUT Mensaje; Variable INPUT: nombre de la instruccin. Mensaje: literal que aparece en pantalla para avisar al operador que debe digitar algn dato, que puede omitirse. Variable: cada uno de los nombres de variable en las que se irn almacenando los datos entrados desde teclado. La funcin de esta instruccin consiste en leer datos que se entran desde teclado y asignarlo a una o ms variables especificadas en la instruccin. Ejemplo: INPUT A INPUT Lado ; B INPUT Lado , C INPUT Datos: ; A, B, C
LGICA COMPUTACIONAL
Hnicken, Helvia E.
32
Instrucciones de salida de datos La instruccin PRINT PRINT Expresin PRINT: nombre de la instruccin. Expresin: Cualquier expresin, ya sea numrica o alfanumrica. Es la instruccin utilizada para visualizar informacin en la pantalla de la computadora. Ejemplo: PRINT PEPE PRINT AREA = ; A PRINT TAB(10); AREA = ; A En este caso, tal mensaje, en lugar de visualizarse a partir de la primera posicin de la lnea, se visualizara a partir de la 10. La instruccin LPRINT LPRINT Expresin Esta instruccin realiza lo mismo que la instruccin PRINT, pero, en lugar de visualizar informacin en pantalla, la imprime en la impresora. Instrucciones de control La instruccin GOTO GOTO N de lnea GOTO: nombre de la instruccin. N de lnea: nmero de la lnea de programa a la que se le va a ceder el control de ejecucin. Ejemplo: 10 REM Aqu se irn ejecutando las instrucciones secuenciales a partir 20 A = 5 de la lnea de programa 10, hasta llegar a la lnea 70, en la 30 B = 10 cual encontramos una instruccin GOTO que cede el control 40 PRINT A, B de la ejecucin a la lnea 40. 50 A = A + 5 Para el caso citado se observa que el programa no terminar 60 B = B + 10 nunca. 70 GOTO 40 La instruccin IF...THEN...ELSE IF Condicin THEN Instruccin ELSE Instruccin END IF IF: palabra que forma parte del nombre de la instruccin. Condicin: puede ser una expresin numrica, de comparacin o lgica. THEN: palabra que forma parte del nombre de la instruccin. Instruccin: puede ser una instruccin cualquiera. ELSE: palabra que forma parte del nombre de la instruccin. END IF: cierra la instruccin IF, por lo tanto es su ltima palabra. Es til para realizar un tratamiento diferente de un proceso, segn se cumpla o no una determinada condicin. Ejemplo: IF A > B THEN PRINT B, A ELSE PRINT A, B END IF
LGICA COMPUTACIONAL
Hnicken, Helvia E.
33
La instruccin WHILE WHILE Condicin Instruccin WEND WHILE: palabra que forma parte del nombre de la instruccin. Condicin: puede ser una expresin numrica, de comparacin o lgica. Instruccin: puede ser una instruccin cualquiera. WEND: es la ltima palabra que forma parte de la instruccin y es la encargada de cerrar el bucle WHILE. Ejemplo: WHILE N > 0 A = A + N AM = AM * N WEND La instruccin DO-WHILE DO WHILE Condicin Instruccin LOOP Ejemplo: DO WHILE N > 0 A = A + N AM = AM * N LOOP
A este formato se lo utiliza indistintamente con el anteriormente expuesto, ya que realiza lo mismo.
La instruccin DO-UNTIL DO Instruccin LOOP UNTIL Condicin Ejemplo: DO S=S+N M=M*N LOOP UNTIL N > 0 La instruccin FOR FOR Variable de control = Valor inicial TO Valor final STEP Incremento Instruccin NEXT Variable de control FOR: palabra que forma parte del nombre de la instruccin. Variable de control: nombre de una variable entera o de simple precisin. Valor inicial: valor inicial que tomar la variable de control. TO: palabra que forma parte del nombre de la instruccin. Valor final: es el valor que tomar la variable de control por encima del cual el bucle llegar a su final. STEP: palabra que puede formar parte del nombre de la instruccin o no, es decir, es opcional. Incremento: tambin es opcional, pero, si se especifica, indica el valor que se le ir sumando al valor de la variable de control hasta llegar a su valor final. NEXT: nombre de la instruccin ltima de FOR, es la que cierra el bucle. Variable de control: nombre de la variable de control especificada en la primera instruccin del bucle. Cada vez que se pasa por la instruccin NEXT, se aumenta el valor de esta variable en un valor igual al especificado en el parmetro incremento de la instruccin FOR. Este parmetro es variable, ya que con la palabra NEXT es suficiente. El BASIC asocia el primer NEXT que encuentra con el ltimo FOR que ha encontrado. Ejemplo: FOR J = 1 TO 5 INPUT N A = A + N AM = AM * N NEXT I
LGICA COMPUTACIONAL
Hnicken, Helvia E.
34
Instruccin CASE SELECT CASE expresin a probar CASE expresin-1 Instruccin-1 CASE expresin-2 Instruccin-2 CASE expresin-n Instruccin-n END SELECT SELECT CASE: nombre de la instruccin. expresin: cualquier expresin numrica o de cadena a probar. CASE: palabra que forma parte del nombre de la instruccin que, si coincide con el estado de la expresin se proceder a una accin acorde al evento. expresin-1/-2/-n: es la expresin para comparar con la expresin a probar. Instruccin-1/-2/-n: puede ser una instruccin cualquiera. END SELECT: palabra que forma parte de la instruccin. Es la que cierra la misma, por tanto es la ltima.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
35
LEN: calcula la longitud en nmero de caracteres de una serie alfanumrica dada. Ejemplo: A$ = PENTIUM A = LEN(A$) en este caso A tomar el valor 7. MID$: realiza la extraccin de una subserie dentro de una serie de caracteres alfanumricos, empezando desde una posicin determinada. Extraemos de A$ la subserie que comienza en la Ejemplo: A$ = PEPITA JIMENEZ posicin 8 hasta el final porque no B$ = MID$(A$, 8) hemos especificado el parmetro longitud. Entonces en B$ tendremos JIMENEZ. Si B$ = MID$(A$, 1, 6) tendremos en B$ la subserie PEPITA porque hemos especificado, desde la posicin 1, 6 caracteres. RIGHT$: es similar a la funcin LEFT$ con la excepcin de que toma los caracteres desde el final (derecha). Ejemplo: PRINT RIGHT$(N3$, 2) los dos caracteres de extrema derecha de la serie alfanumrica N#$ sern representados. STR$: convierte el valor de una expresin numrica en una serie alfanumrica. Ejemplo: A$ = STR$(1560) PRINT A$ en este caso A$ ser igual a 1560. VAL: convierte una serie alfanumrica en numrica. Ejemplo: A$ = 1560 A = VAL(A$) en este caso, A ser igual a 1560. Otras funciones SLEEP: segundos SLEEP: nombre de la instruccin. segundos: el nmero de segundos durante los que se suspender temporalmente la ejecucin del programa. Ejemplo: SLEEP 10 UCASE$(expresin-cadena$) LCASE$(expresin-cadena$) expresin-cadena$: es cualquier expresin de cadena. Estas funciones convierten cadenas en letras minsculas o letras maysculas. Ejemplo: TEST$ = La cadena PRINT TEST$ PRINT LCASE$(TEST$); en minsculas PRINT UCASE$(TEST$); EN MAYUSCULAS
BIBLIOGRAFA
COMO PROGRAMAR SU COMPUTADOR PERSONAL BASIC elemental para PC. Autor: Carl Shipman. Edit.: EL ATENEO
FUNDAMENTOS DE PROGRAMACION. Autor: Luis Joyanes Aguilar. Editorial Mc Graw-Hill INFORMATICA PRESENTE Y FUTURO. Autor: Donald H. Sanders. Editorial Mc Graw-Hill METODOLOGIA DE LA PROGRAMACION. Autor: Alcalde Garca. Editorial Mc Graw-Hill PROGRAMACION COBOL. Autores: Fernando Garca; Almudena Cerro y J. Manuel Diez Perla. Editorial Mc Graw-Hill
LGICA COMPUTACIONAL
Hnicken, Helvia E.
36
Actividades 4, 5, 6, 7
1. Investigue en qu ocasiones es conveniente aplicar estructuras alternativas para la resolucin de un algoritmo estructurado. 2. De acuerdo a lo que usted entiende, cundo es conveniente utilizar estructuras repetitivas en el diseo de un algoritmo? 3. Realizar un programa que calcule la suma, resta, multiplicacin y divisin de dos nmeros ingresados. 4. Indique los pasos algortmicos que se siguen para de formatear un diskette de de 1.44MB. 5. Similar al punto anterior, identifique los pasos que lleva a cabo para colocar la mesa para comer. 6. Realice un programa en el que se intercambien los valores de dos variables numricas. Realizar tambin el seudocdigo del mismo. Anlisis: Se utiliza una variable auxiliar (por ejemplo AUX), que va a contener temporalmente a uno de los valores dados. Las variables que se utilizarn son: A B AUX, donde A es el primer valor; B es el segundo valor y AUX es la variable auxiliar. Se asigna uno de los valores de las variables a la variable auxiliar: AUX = A Se asigna el valor de la otra variable B a la primera. Luego, se asigna el valor de la variable auxiliar a la segunda variable. A=B B = AUX
7. Programa que obtenga la potencia, raz cuadrada y raz cbica de un nmero. 8. Programa que obtenga el promedio de las notas obtenidas en tres parciales. 9. Programa que resuelva la siguiente expresin: 10. Programa que resuelva la siguiente expresin: (A+B*C)/2 B2 - 4AC
11. Programa que evale la siguiente expresin, para N1 = 8 y N2 = 2: 5 * N2 - 3 * N1 ^ 2 * N2 12. Programa que resuelva la siguiente expresin: 13. Programa que resuelva la siguiente expresin:
2 r
x2
z2
-x1)2 + (y2 - y1)2 B A2
y2
14. Programa que resuelva la siguiente expresin: (x2 15. Programa que resuelva la siguiente expresin:
16. Pase el siguiente seudocdigo a diagrama de flujo (de programa), y luego, al lenguaje BASIC: inicio escribir Cul es tu nombre? leer NOMBRE escribir HOLA!, NOMBRE escribir Seamos amigos fin 17. Programa que, al ingresar un 1 imprima VERDADERO. Al ingresar un 0 imprime FALSO. 18. Programa que indique si el nmero ingresado es negativo. 19. Programa que imprima un mensaje diciendo si el nmero que se ingres es positivo, negativo o nulo. 20. Programa que indique si el nmero entero ingresado es par o impar. 21. Programa que obtenga el menor de dos nombres ingresados.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
37
22. Programa que obtenga el mayor de dos valores ingresados. 23. Pasar a ordinograma el siguiente algoritmo: a) OBTENER EL PRIMER NMERO (ENTRADA), DENOMINADO NUM1. b) OBTENER EL SEGUNDO NMERO (ENTRADA), DENOMINADO NUM2. c) COMPARA NUM1 CON NUM2 Y SELECCIONAR EL MAYOR; SI LOS DOS ENTEROS SON IGUALES, SELECCIONAR NUM1. LLAMAR ESTE NMERO MAYOR. d) OBTENER EL TERCER NMERO (ENTRADA), DEMOMINARLO NUM3. e) COMPARAR MAYOR CON NUM3 Y SELECCIONAR EL MAYOR; SI LOS DOS ENTEROS SON IGUALES, SELECCIONAR EL MAYOR, DENOMINAR A ESTE NMERO MAYOR. f) PRESENTAR EL VALOR DE MAYOR (SALIDA)
g) FIN 24. Disee un algoritmo (diagrama de flujo) que resuelva el procedimiento para enviar una carta utilizando los smbolos correspondientes que contengan: PONER LA DIRECCIN EN EL SOBRE INICIO PEGAR FRANQUEO COMN EN EL SOBRE FIN PEGAR FRANQUEO DE VA AREA EN EL SOBRE ES VA AREA? PEGAR EL SOBRE COLOCAR LA CARTA EN EL SOBRE TIRAR LA CARTA DENTRO DEL BUZN
25. Disee un algoritmo (ordinograma) que resuelva el problema de hornear una torta. EST LISTO EL HORNO? FIN ENCENDER EL HORNO APAGAR EL HORNO INICIO ESPERAR 10 MINUTOS DEJAR DESCANSAR 45 MINUTOS PREPARAR EL BATIDO DE LA TORTA RETIRAR LA TORTA DEL HORNO EST LA TORTA SUFICIENTEMENTE COCIDA? COLOCAR LA TORTA EN EL HORNO ESPERAR UN MINUTO O DOS ESPERAR UN MINUTO O DOS
26. Programa que calcule el rea de un tringulo dada la base y altura del mismo. La frmula es: S = (1 / 2) B * H Realice la tabla de verificacin para los valores de base = 4.5 y altura = 7.2 27. Disee el algoritmo que calcule el rea de un tringulo en funcin de las longitudes de sus lados.
LGICA COMPUTACIONAL
Hnicken, Helvia E.
38
Frmula:
Area
pp a p b p c
donde p = (a + b + c) / 2 (semipermetro). 28. Programa que calcule el radio de un crculo conociendo su rea para:
r2
se puede resolver
A/
29. Programa que resuelve una ecuacin de segundo grado Ax2 + Bx + C = 0 Anlisis: Las soluciones o races son:
X1
B^ 2 2A
4 AC
X2
B^ 2 4 AC 2A
Es preciso que el discriminante sea mayor que cero. Discriminante: D = B^2 - 4AC Entonces, si: D=0
X1
B 2A
X2
B 2A
D < 0 X1 y X2 no tienen solucin real. 30. Programa que, de 10 nmeros ingresados indique cuntos de ellos fueron positivos, cuntos negativos y cuntos nulos. 31. Programa que calcule la media de las notas del parcial de una clase de 10 alumnos. 32. De 10 nmero ingresados, la salida indicar cul fue el mximo. 33. Programa que obtenga el valor mnimo de las temperaturas registradas en la semana. 34. Programa que obtenga simultneamente el mximo y el mnimo de 7 nmeros ingresados. 35. Programa que acumule los valores ingresados hasta que se introduzca uno negativo. 36. Programa que acumule nmeros mientras no se ingrese un cero. 37. Programa que multiplique los nmeros ledos hasta que el contador supere el nmero 5. 38. Programa que escriba los nombres de los das de la semana en funcin del valor de una variable numrica DIA.
Los das de la semana son 7, es decir que el rango de valores DIA ser 1..7 y si DIA toma un valor fuera de ese rango, deber indicarlo con un mensaje de error. 39. Programa que sume los nmeros pares comprendidos entre 10 y 20 inclusive. 40. Programa que ingrese 5 veces un nmero distinto cada vez e imprima la suma de todos ellos. 41. Programa que repita 3 veces a) el ingreso de dos nmeros, b) compara cul es el menor y c) imprime el menor obtenido. 42. Programa que obtenga el promedio de las notas de un curso de 10 alumnos. 43. Program que sume los nmeros impares entre 4 y 10 inclusive. Realizar la tabla de verificacin. 44. Programa que de 10 nmeros ingresados obtenga cuntos de ellos fueron negativos. 45. Programa que determine en un conjunto de 15 nmeros naturales: a)Cuntos son menores que 8?; b)Cuntos mayores que 20?; y Cuntos estn comprendidos entre 10 y 15? 46. Programa que lea 4 veces 2 nmeros y los imprima ordenados en forma descendente. 47. Algoritmo que sume independientemente los pares y los impares de los nmeros comprendidos entre 1 y 16. Utilizar un interruptor, tambin llamado switch en dicha solucin. 48. Algoritmo principal que llame a una subrutina segn corresponda. Con dos nmeros ingresados realizar una de las acciones posibles:
LGICA COMPUTACIONAL
Hnicken, Helvia E.
39
Sumar los dos nmeros ingresados Restar Multiplicar Dividir Raz cuadrada Raz cbica 49. Algoritmo que obtenga el producto de dos nmeros enteros positivos mediante sumas sucesivas. 50. Algoritmo que resuelva la siguiente ecuacin algebraica:
1/7
68 a b 2 /c c a
m
72 a / b c bn
1/3
LGICA COMPUTACIONAL
Hnicken, Helvia E.
40
ANEXO SIMBOLOS
TAMBOR (E/S).
MAGNETICO
IMPRESORA (S).
TECLADO (E). La funcin de E es introducida manualmente por medio del teclado, de posicionamientos de palancas, de pulsadores, etc. PANTALLA (S). La funcin de salida es visual, mediante indicadores, pantallas de televisin, mquinas de escribir, etc. interiores al sistema. SOPORTE MAGNETICO (E/S). Conectado al sistema. Ej.: cinta magntica, tambor magntico, disco magntico. SIMBOLOS DE PROCESO DESCRIPCION PROCESO.
DISKETTE (E/S).
CINTA (E/S).
ENCAPSULADA
Operacin AUXILIAR. Efectuada con un equipo que no se encuentre bajo el control directo de la unidad central de tratamiento. CLASIFICACION DE ARCHIVOS. Ordenacin de un grupo de artculos con arreglo a una secuencia particular. FUSION DE ARCHIVOS. Combinacin de dos o ms series en una nica serie. PARTICION DE ARCHIVOS. Extraccin de una o varias series particulares a partir de una sola.
SIMBOLOS DE OPERACIN
LGICA COMPUTACIONAL
Hnicken, Helvia E.
41
SIMBOLO DE COMENTARIOSDESCRIPCION COMENTARIO. Se utiliza para aadir comentarios clasificadores a otros smbolos del diagrama de flujo. Se pueden dibujar a cualquier lado del smbolo.
SIMBOLO DE DECISION
DESCRIPCION DECISION (2/3 SALIDAS). Indica operaciones lgicas o de comparacin entre datos -normalmente dos- y en funcin del resultado de la misma determina cul de los distintos caminos alternativos del programa se debe seguir; normalmente tiene dos salidas (respuestas SI o NO), pero puede tener tres o ms segn los casos.
LINEAS DE FLUJO
SIMBOLO DE CONEXION
DESCRIPCION REAGRUPAMIENTO
CONECTOR EN LA MISMA PAGINA. Sirve para enlazar dos partes cualesquiera de un ordinograma a travs de un conector en la salida y otro conector en la entrada. Se refiere a la conexin en la misma pgina del diagrama. CONECTOR EN DISTINTA PAGINA. Conexin entre dos puntos del organigrama situado en pginas diferentes.