Você está na página 1de 36

Universidad Nacional de Santiago del Estero

Facultad de Ciencias Exactas y Tecnologas

INGRESO 2008

INTRODUCCIN A LA INFORMTICA

Introduccin a la Informtica

CONTENIDOS MNIMOS Algoritmos. Definicin. Pasos elementales, propiedades (ausencia de ambiguedad, generalidad, tiempo de respuestas), dominio, errores en la construccin (errores de dominio y de lgica), situaciones problemticas. Etapas en la resolucin de problemas con computadora: anlisis del problema, diseo de una solucin, especificacin de algoritmos, escritura de programas, verificacin. Estructuras de control: definicin, estructura secuencial, estructura de seleccin (con dos alternativas de accin y con ms de dos alternativas de accin), estructura de iteracin (repeticin, iteracin precondicionales, iteracin pos-condicionales), situaciones problemticas para cada estructura de control y situaciones problemticas que involucren todas las estructuras de control. Formas de expresar un algoritmo mediante diagramas de flujo (simbologa, utilidad, representacin de las estructuras de control).

Ingreso 2008

Introduccin a la Informtica

1. PROBLEMAS DE COMPUTACION

1.1 Objetivo La resolucin de problemas utilizando como herramienta una computadora requiere contar con la capacidad de expresin suficiente como para indicar a la mquina lo que debe llevarlo a cabo. Se comenzara resolviendo situaciones del mundo real tratando de utilizar determinados elementos que caracterizan a una secuencia de ordenes que una computadora puede comprender. El tema central de este curso es la definicin del concepto de algoritmo y los elementos que lo componen. 1.2 Introduccin La Informtica es la ciencia que estudia el anlisis y resolucin de problemas utilizando computadoras. La palabra ciencia se relaciona con una metodologa fundamentada y racional para el estudio y resolucin de los problemas. En este sentido la Informtica se vincula especialmente con la Matemtica. Si se busca en el diccionario una definicin de la palabra problema podr hallarse alguna de las siguientes: Cuestin o proposicin dudosa, que se trata de aclarar o resolver. Enunciado encaminado a averiguar el modo de obtener un resultado cuando se conocen ciertos datos. La resolucin de problemas mediante una computadora consiste en dar una adecuada formulacin de pasos precisos a seguir.

1.3. Resolucin de Problemas Si se piensa en la forma en que una persona indica a otra como resolver un problema, se vera que habitualmente se utiliza un lenguaje comn y corriente para realizar la explicacin, quiz entremezclado con algunas palabras tcnicas. Esto es un riesgo muy grande. Los que tienen cierta experiencia al respecto saben que es difcil transmitir el mensaje y por desgracia, con mucha frecuencia se malinterpretan las instrucciones y por lo tanto se \ejecuta incorrectamente" la solucin, obtenindose errores. Cuando de una computadora se trata, no pueden utilizarse indicaciones ambiguas. Ante cada orden resulta fundamental tener una nica interpretacin de lo que hay que realizar. Una mquina no posee la capacidad de decisin del ser humano para resolver situaciones no previstas. Si al dar una orden a la computadora se produce una situacin no contemplada, ser necesario abortar esa tarea y recomenzar todo el procedimiento nuevamente. Adems, para poder indicar a la computadora las ordenes que debe realizar es necesario previamente entender exactamente lo que se quiere hacer. Es fundamental conocer con qu informacin se cuenta y qu tipo de transformacin se quiere hacer sobre ella.

Ingreso 2008

Introduccin a la Informtica

Una vez que se comprende un problema, se debe decidir que tipo de problema es. Dos tipos de problemas comunes son:

Los problemas que buscan respuestas: si un ejercicio implica el clculo del nmero de palabras que hay en un libro o la biseccin de una lnea utilizando regla y comps, se trata de un trabajo en que se debe encontrar algo que se desconoce. La forma en que esto se haga no es de particular importancia siempre y cuando se obtenga la respuesta correcta (aunque es deseable que sea por un medio fcil). Los problemas que buscan pruebas: cuando se pide que se pruebe que hay 720 formas de colocar seis libros en una fila, se est dando la respuesta. La tarea es distinta a la de encontrar una respuesta porque ya se sabe lo que se desea. Todo lo que se tiene que hacer es determinar la relacin entre los datos y la respuesta.

Es importante observar que en un problema en que se buscan respuestas se tiene que elaborar una solucin, mientras que cuando se pide que se pruebe slo es necesario demostrar que existe (o no existe) una solucin, sin crearla. Los problemas de computacin no pueden ser problemas en que se busquen pruebas porque el propsito del trabajo de las computadoras es encontrar respuestas que no se conocen de antemano. Pero tampoco se les puede considerar como problemas en que se busquen respuestas porque es la computadora misma la que determina la respuesta, no la persona que trabaja con ella. Los problemas de computacin pertenecen a una tercera clase: los problemas que buscan mtodos, aqu se busca un mtodo mediante el cual se pueda derivar una respuesta. El proceso de resolver problemas mediante computadoras se describe en la figura 1.Se trata de encontrar un mtodo por medio del cual se pueda resolver un problema. Una vez que se haga esto, la computadora se hace cargo del mismo y suministra las respuestas a la pregunta.

Figura 1.

Esta es una simplificacin porque una vez que se tiene un mtodo es necesario expresar este mtodo en una forma en que la computadora pueda operarlo (un programa).

A continuacin se analizaran en forma general las distintas etapas que deben seguirse para poder llegar a resolver un problema utilizando una computadora como herramienta.

Ingreso 2008

Introduccin a la Informtica

2. ETAPAS EN LA RESOLUCIN DE PROBLEMAS CON COMPUTADORA

La resolucin de problemas utilizando como herramienta una computadora no se resume nicamente en la escritura de un programa, sino que se trata de una tarea ms compleja. El proceso abarca todos los aspectos que van desde interpretar las necesidades del usuario hasta verificar que la respuesta brindada es correcta. Las etapas son las siguientes:

Anlisis del problema En esta primer etapa, se analiza el problema en su contexto del mundo real. Deben obtenerse los requerimientos del usuario. El resultado de este anlisis es un modelo preciso del ambiente del problema y del objetivo a resolver. Dos componentes importantes de este modelo son los datos a utilizar y las transformaciones de los mismos que llevan al objetivo. Diseo de una solucin La resolucin de un problema suele ser una tarea muy compleja para ser analizada como un todo. Este aspecto puede facilitarse mediante la identificacin de las partes (sub-problemas) que componen el problema y la manera en que se relacionan. Cada uno de estos subproblemas debe tener un objetivo especfico, es decir, debe resolver una parte del problema original. La unin de todos los subproblemas es lo que permitir obtener la solucin buscada. Especificacin de algoritmos Cada uno de los subproblemas que componen la solucin deben ser especificados a travs de un algoritmo. Esta etapa busca obtener la secuencia de pasos a seguir para resolver el problema. La eleccin del algoritmo adecuado es fundamental para garantizar la eficiencia de la solucin. Sobre esta etapa en especial es donde profundizaremos en este curso. Escritura de programas Un algoritmo es una especificacin simblica que debe convertirse en un programa real sobre un lenguaje de programacin concreto. A su vez, un programa escrito en un lenguaje de programacin determinado (ej: Pascal, Ada, etc) es traducido automticamente al lenguaje de mquina de la computadora que lo va a ejecutar. Esta traduccin, denominada compilacin, permite detectar y corregir los errores sintcticos que se cometan en la escritura del programa. Verificacin Una vez que se tiene un programa escrito en un lenguaje real se debe verificar que su ejecucin conduce al resultado deseado, utilizando datos representativos del problema real. Sera deseable poder armar que el programa es correcto, ms all de los datos particulares de una ejecucin. Sin embargo, en los casos reales es muy difcil realizar una verificacin exhaustiva de todas las posibles condiciones de ejecucin de un sistema de software. La facilidad de verificacin y la depuracin de errores de funcionamiento del programa conducen a una mejor calidad del sistema y es un objetivo central de la Ingeniera de Software.

Ingreso 2008

Introduccin a la Informtica

Del detalle de las etapas anteriores puede observarse que:

El proceso de resolucin de problemas utilizando una computadora como herramienta comienza y termina con una etapa de anlisis. La deteccin de errores en alguna de estas etapas puede llevar a revisar aspectos de la solucin analizados previamente. La programacin de la solucin en un lenguaje especfico es slo una pequea parte de toda la tarea que hay que realizar.

Podemos tambin presentar el mtodo de resolucin de problemas donde las etapas se expresan de la siguiente manera: Etapa 1: Identificar el problema, dando respuesta a Que resultado se debe obtener, Que datos estn disponibles, y Que condiciones o restricciones se deben tener en cuenta para la resolucin. Etapa 2: Definir y representar el modo de resolver el problema. Etapa 3: Explorar las posibles estrategias para solucionar el problema y seleccionar la ms conveniente. Etapa 4: Probar la estrategia de solucin seleccionada, evaluando los efectos y comprobar si resuelve el problema. Etapa 5: Implementar la solucin.

Como se habl en clases anteriores, el proceso de resolver problemas mediante computadores, consiste en encontrar un mtodo por medio del cual se pueda resolver un problema. Una vez encontrado (diseado) el mtodo, el computador se encarga de ejecutarlo y suministrar la respuesta/ solucin al problema planteado. El proceso as presentado, est muy simplificado, ya que una vez obtenido el mtodo ( o resuelto como hacerlo) es necesario expresarlo en una forma que pueda ser operado/ejecutado por el computador. Por tanto el profesional informtico deber realizar tres trabajos: Creacin del algoritmo; Codificacin del algoritmo creado y Operacin del algoritmo en el computador. En este momento surgen nuevos conceptos: ALGORITMOS, CODIFICACIN y OPERACIN. Estos tres conceptos ordenados en secuencia constituyen precisamente el Mtodo para resolver problemas mediante computadoras. A continuacin se explican cada unos de ellos. 1. Creacin del algoritmo: significa crear un mtodo de resolucin de un problema determinado. Como resultado de este paso se obtiene un Algoritmo (Es el nico Paso que veremos en este curso) 2. Codificacin del algoritmo creado: una vez obtenido el algoritmo, debe ser escrito en un lenguaje de programacin, de manera que pueda ser interpretado por el computador. Como resultado de este paso se obtiene un programa. 3. Operacin del algoritmo en el computador, implica la ejecucin del programa en el computador para obtener el resultado o solucin del problema.

ALGORITMO

PROGRAMA

RESULTADO

Ingreso 2008

Introduccin a la Informtica

3. ALGORITMOS 3.1. Introduccin

La etapa vital de la solucin de un problema con una computadora es el diseo del algoritmo y de la estructura fundamental de datos. Un algoritmo es un procedimiento expresado precisamente para obtener la solucin del problema, la que se presenta de manera subsecuente a una computadora en el lenguaje de programacin seleccionado. Los algoritmos se presentan de una manera conveniente para un lector humano, mientras que los programas sirven a las necesidades de las computadoras. Es importante recordar mientras diseamos un algoritmo que una computadora slo sigue las instrucciones y no puede actuar si no se le ha ordenado de manera explcita. Por lo tanto, el solucionador de problemas debe prever cualquier aspecto del problema en el propio algoritmo. La palabra algoritmo deriva del nombre de un matemtico rabe del siglo IX, llamado Alkhuwarizmi, quien estaba interesado en resolver ciertos problemas de aritmtica y describi varios mtodos para resolverlos. Estos mtodos fueron presentados como una lista de instrucciones especficas (como una receta de cocina) y su nombre se utiliza para referirse a dichos mtodos.

3.2. Definicin Un algoritmo es, en forma intuitiva, una receta, un conjunto de instrucciones o de especificaciones sobre un proceso para hacer algo. Ese algo generalmente es la solucin de un problema de algn tipo. Formalmente un algoritmo se puede definir de la siguiente forma:

Un algoritmo puede definirse como una secuencia ordenada de pasos elementales, exenta de ambigedades, que lleva a la solucin de un problema dado en un tiempo finito.

Para comprender la definicin anterior se clarifica algunos conceptos.

Ejemplo: escriba un algoritmo que permita preparar una tortilla de papas de tres huevos.

Si la persona que resuelva el problema es un cocinero lo resuelve sin mayor nivel de detalle, pero si no lo es, se deben describir los pasos necesarios para realizarlo: Paso 1: Mezclar papas fritas, huevos y una pizca de sal en un recipiente. Paso 2: Freir.

Esto podra resolver el problema, pero si la persona que lo ejecute no sabe cocinar, se debe detallar, cada uno de los pasos mencionados, pues estos no son lo bastante simples para un principiante. De esta manera el primer paso se puede descomponer en:

Ingreso 2008

Introduccin a la Informtica

Paso 1: Pelar las papas Paso 2: Cortarlas en cuadraditos Paso 3: Frer las papas Paso 4: Batir los huevos en un recipiente Paso 5: Verter las papas en un recipiente y echar una pizca de sal

El tercer paso puede descomponerse en:

Calentar el aceite en la sartn Verter el contenido del recipiente en la sartn Dorar la tortilla de ambos lados

Ntese que si la tortilla la va a ejecutar un nio, alguna tareas, por ejemplo batir huevos, pueden necesitar una mejor especificacin. Con este ejemplo se pretende mostrar que la lista de pasos elementales que compongan nuestro algoritmo depende de quien sea el encargado de ejecutarlo. Si en particular, el problema va a ser resuelto utilizando una computadora, el conjunto de pasos elementales conocidos es muy reducido, lo que implica un alto grado de detalle para los algoritmos.

Se considera entonces como un paso elemental aquel que no puede volver a ser dividido en otros ms simples.

Otro aspecto importante de un algoritmo es su nivel de detalle, que no debe confundirse con el concepto de paso elemental. En ocasiones, no se trata de descomponer una orden en acciones ms simples sino que se busca analizar cules son las rdenes relevantes para el problema. Para comprender lo expuesto se lo analiza con un ejemplo:

Ejemplo: escriba un algoritmo que describa la manera en que Ud. se levanta todas las maanas para ir al trabajo. Paso 1: Salir de la cama Paso 2: Quitarse el pijama Paso 3: Ducharse Paso 4: Vestirse Paso 5: Desayunar Paso 6: Arrancar el auto para ir al trabajo

La solucin del problema se expres en seis pasos, descartando aspectos que se suponen o sobreentienden, como colocarse los zapatos al vestirse o abrir la puerta del auto pues a nadie se le

Ingreso 2008

Introduccin a la Informtica

ocurrira ir a trabajar descalzo. En cambio existen aspectos que no pueden obviarse o suponerse porque el algoritmo perdera lgica, por ejemplo el paso vestirse, no puede ser omitido. Puede discutirse si se requiere un mayor nivel de detalle o no, pero no puede ser eliminado del algoritmo. Un buen desarrollador de algoritmos deber reconocer esos aspectos importantes y tratar de simplificar al mnimo su especificacin de manera de seguir resolviendo el problema con la menor cantidad de rdenes posibles. Adems, en la definicin de algoritmo se hace referencia a la ambigedad y tiempo de respuesta, debido a que todo algoritmo debe cumplir con ciertas propiedades para que se lo considere como tal y proporcione el resultado deseado cuando un programa basado en l se presenta a una computadora. Un algoritmo debe cumplir las siguientes propiedades:

Ausencia de Ambigedad: si se trabaja dentro de cierto marco o contexto, la representacin de cada paso de un algoritmo debe tener una nica interpretacin. Ejemplo: indique la forma de condimentar una salsa. Incorrecto: ponerle algunas especies a la salsa. Correcto: ponerle sal, pimienta y organo a la salsa.

Generalidad: un algoritmo se puede realizar para varios problemas que se relacionan entre si, es decir, se debe aplicar a un problema o clase de problemas especficos. Ejemplo: indique la forma de marcar un nmero de telfono. Incorrecto: si la solucin del algoritmo sirve para marcar solamente el nmero 4220234, solo tendr valor para ese nmero. Correcto: si la solucin es un mtodo para marcar cualquier nmero, entonces es til. Por supuesto, debe haber alguna restriccin a la generalidad de un algoritmo.

Tiempo de respuesta: la ejecucin de un algoritmo debe finalizar despus de que se haya llevado a cabo una cantidad finita de pasos. De otra manera, no se puede exigir que la ejecucin produzca una solucin. Ejemplo: Llene la zanja con ese montn de arena Algoritmo: tome una pala y empiece a echar arena en la zanja. Cuando se llene la zanja detngase. ( se est seguro que en algn momento parar, aunque no se sabe cuanto tardar).

3.3. Dominio de un Algoritmo La clase o el conjunto de datos y las condiciones para las cuales un algoritmo trabaja correctamente se llama dominio. Cuando se trata de resolver cualquier problema es necesario definir el dominio del algoritmo y despus verificar que trabaja para todos los casos que se encuentran dentro de ese dominio. Al decidir el dominio de un algoritmo es necesario incluir todas las situaciones similares, pero los casos remotos o poco probables se pueden omitir.

Ingreso 2008

Introduccin a la Informtica

3.4. Errores en la Construccin de un Algoritmo

En la construccin de algoritmos se consideran dos tipos de errores: Errores de Dominio: se presentan cuando no se han especificado todas las situaciones que se pueden presentar en la prctica o se ha descuidado la apreciacin de su importancia. Las pruebas ms difciles son aquellas que verifican que se ha seleccionado un dominio correcto para el algoritmo. Cuando una situacin no prevista se presenta, hay tres opciones: Ignorarla porque es improbable y quizs nunca ocurra. Restringir el dominio del algoritmo para excluirla. Corregir el algoritmo.

Errores de Lgica: son aquellos errores que se detectan despus de que se ha definido en forma adecuada el dominio de un algoritmo, en la etapa de prueba o verificacin. se deben principalmente a las siguientes causas:

Etapas incorrectas Secuencia incorrecta de etapas.

Ingreso 2008

Introduccin a la Informtica

ACTIVIDAD N 1: ALGORITMOS

1- Dados los enunciados de los siguientes problemas y su correspondiente algoritmo de solucin, decir si las soluciones propuestas cumplen con las propiedades que debe tener un algoritmo; en el caso de no hacerlo indicar cuales son los errores. a) Problema: Abordar un taxi 1. Situarse al borde de la acera de cara al lado apuesto de la calle. 2. Buscar la seal de taxi. 3. Al ver la seal, silbar y hacer ademanes para llamar su atencin. 4. Fin b) Problema: Cambiar la rueda pinchada de un automvil teniendo un gato mecnico, una rueda de reemplazo y una llave inglesa. 1. Aflojar los tornillos de la rueda pinchada con la llave inglesa 2. Ubicar el gato mecnico en su sitio 3. Levantar el gato hasta que la rueda pinchada pueda girar 4. Quitar los tornillos y la rueda pinchada. 5. Poner la rueda de repuesto y los tornillos. 6. Fin

c) Problema: Preparar una tortilla de papas de tres huevos. 1. Pelar las papas 2. Cortarlas en cuadraditos 3. Frer las papas 4. Batir los huevos en un recipiente 5. Verter las papas en un recip. y echar una pizca de sal 6. Frer la tortilla 7. Fin

d) Problema: Levantarse a las maanas para ir al trabajo. 1. Apagar el despertador 2. Salir de la cama 3. Quitarse el pijama 4. Higienizarse 5. Vestirse 6. Si no hay tiempo, tomar el portafolio / la cartera e ir al paso 9 7. Desayunar 8. Buscar el portafolio o la cartera y e ir al paso 7 9. Salir de la casa 10. Fin

e) Problema: Cambiar un foco quemado de una lmpara en el techo. 1. Colocar la escalera debajo de la lmpara quemada 2. Elegir un foco nuevo similar al anterior 3. Subir por la escalera 4. Girar el foco quemado en sentido contrario al de las agujas del reloj 5. Ubicar el nuevo foco en el mismo lugar 6. Enroscar en el sentido de las agujas del reloj hasta que quede apretado 7. Bajar de la escalera 8. Fin

Ingreso 2008

10

Introduccin a la Informtica

f) Problema: Obtener una determinada pgina de un libro. 1. Abrir el libro en la pagina 1. 2. Si la pgina que est examinando es la pgina 15 detngase. 3. En caso contrario, observe la siguiente, pasando una hoja, si es necesario. 4. Repetir los pasos 2 y 3 tan a menudo como se requiera 5. Fin

2- Escriba la secuencia lgica para los siguientes algoritmos de solucin


Problema: Preparar una taza de caf con leche. Considerar que se cuenta con todos los elementos necesarios

1. Buscar la taza 2. Calentar la leche 3. Encender la hornalla 4. Endulzar 5. Agregar leche al caf 6. Hacer el caf 7. Fin Problema: "Puesta en escena de una obra de teatro" 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Redaccin del guin. Ensayo final con el vestuario terminado. Iniciacin del programa de publicidad. Estreno de la obra en el teatro de la ciudad. Terminacin de los ensayos sin vestuario. Seleccin de los actores. Crtica de la obra en los peridicos. Iniciacin de los ensayos sin vestuario Terminacin de la confeccin del vestuario Terminacin de la escenografa Venta de boletos Problema: " Lanzar a la venta un nuevo producto" 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Pruebas de control de calidad Diseo de publicidad Investigacin de mercado Diseo de especificaciones Estimacin de costos Empaquetado y al mercado Diseo final Produccin y Ensamblado Determinacin del sistema de distribucin Diseo de efecto en el consumidor Anlisis costo - beneficio Determinacin del precio Lanzamiento de la propaganda

Ingreso 2008

11

Introduccin a la Informtica

4. ESTRUCTURAS DE CONTROL BSICAS Al ser un algoritmo una secuencia de pasos ordenados, estos deben seguir una trayectoria para su ejecucin desde el primer paso hasta el ltimo. Esta trayectoria se denomina flujo de control que indica el orden en el cual deben ejecutarse los pasos elementales. Para organizar el flujo de control de un algoritmo se utilizan estructuras de control, estas son construcciones algortmicas lineales, de seleccin e iteracin. Las dos ltimas alteran el flujo de control lineal del algoritmo. Las estructuras de control bsicas para organizar el flujo de control en un algoritmo, son las siguientes:

Estructura secuencial Estructura de seleccin Estructura de iteracin

4.1. Estructura Secuencial

La estructura de control ms simple est representada por una sucesin de acciones que se ejecutan de arriba hacia abajo sin bifurcaciones, es decir, una accin a continuacin de otra.

Ejemplo: escriba un algoritmo que describa la forma en que una persona se levanta todas las maanas para ir al trabajo. Paso 1: Salir de la cama Paso 2: Quitarse el pijama Paso 3: Ducharse Paso 4: Vestirse Paso 5: Desayunar Paso 6: Arrancar el auto para ir al trabajo A continuacin se presenta grficamente esta estructura.

Accin 1 Accin 2

Accin 3

Ingreso 2008

12

Introduccin a la Informtica

4.2. Estructura de Seleccin

En un algoritmo representativo de un problema real es prcticamente imposible que las instrucciones sean secuenciales puras. Es necesario tomar decisiones en funcin de los datos del problema. A travs de la seleccin se incorpora, a la especificacin del algoritmo, la capacidad de decisin. De esta forma ser posible seleccionar una de dos alternativas de accin posibles durante la ejecucin del algoritmo. La seleccin se expresa con el siguiente pseudocodigo: Si (condicin) entonces accin o acciones a realizar si la condicin es verdadera (1) sino accin o acciones a realizar si la condicin es verdadera (2)

donde condicin es una expresin que al ser evaluada puede tomar solamente uno de los dos valores posibles: verdadero o falso. En el caso que la condicin a evaluar resulte verdadera se ejecutarn las acciones (1) y no se ejecutarn las acciones (2). Si la condicin a evaluar resulta falsa se ejecutarn las acciones (2) y no las acciones (1). A continuacin se presenta grficamente esta estructura.
falso Evaluar condicin verdadero

Acciones si condicin es falsa

la

Acciones si la condicin es verdadera

Puede ocurrir que no se tengan que representar acciones cuando la condicin es falsa. En este caso se utilizar la siguiente notacin: Si (condicin) entonces accin o acciones a realizar si la condicin es verdadera A continuacin se presenta grficamente esta estructura.
falso Evaluar condicin verdadero

Acciones si la condicin es verdadera

Ingreso 2008

13

Introduccin a la Informtica

Si al evaluar un decisin toma ms de dos valores, se utilizar la siguiente notacin:

Si (variable de decisin) Valor 1: Accin 1 Valor 2: Accin 2 .......................... Valor N: Accin N [Otro: Accin N+1]

A continuacin se presenta grficamente esta estructura.

Evaluar la variable de decisin

Acciones cuando variable de decisin = valor 1

Acciones cuando variable de decisin = valor 2

Acciones cuando variable de decisin = valor n

ACTIVIDAD N 2: ALGORITMOS y ESTRUCTURA DE CONTROL

1- Dados los enunciados de los siguientes problemas y su correspondiente algoritmo de solucin, utilizando estructuras de control de seleccin, indicar los datos que necesita utilizar, los resultados a obtener y si se llega al resultado deseado. a) Problema Un amigo le ha pedido que compre en el kiosco $2 de caramelos de menta. Si no hay, debe comprar $1 de cualquier tipo de caramelos. Solucin 1 1. Ubicarse en el kiosco 2. Si (tiene caramelos de menta) Entonces 3. Sino 4. 5. Fin Comprar $1 de otro tipo de caramelos Comprar $2 de caramelos menta 3. Solucin 2 1. Ubicarse en el kiosco 2. Si (tiene caramelos de menta) Entonces Comprar $2 de caramelos menta

4. Comprar $1 de otro tipo de caramelos 5. Fin

Ingreso 2008

14

Introduccin a la Informtica

b) Hacer una llamada telefnica desde un telfono pblico a moneda. Considere que se cuenta con la moneda y siempre se encuentra un telfono. Solucin 1 1. Obtener una moneda 2. Encontrar un telfono 3. Si (el telfono tiene tono) Entonces 4. Marcar el nmero 5. Hablar Sino 6. Buscar otro telfono 7. Fin Solucin 2 1. Obtener una moneda 2. Encontrar un telfono 3. Si (no tiene tono el telfono) Entonces 4. Buscar otro telfono 5. Marcar el nmero 6. Hablar 7. Fin

c) Se busca escribir un algoritmo para colgar un cuadro. Solucin 1 Solucin 2 1. Clavar el clavo 2. Si (no quedo firme el clavo) Entonces 3. Golpear el clavo un poco ms 4. Colgar el cuadro 5. Fin 1. Clavar el clavo 2. Si (no quedo firme el clavo) Entonces 3. Golpear una vez ms Sino 4. Colgar el cuadro 5. Fin

d) Obtener la pgina X de un libro


1. Tomar el libro 2. Obtener el N de la pagina deseada y llamarla X 3. Abrir el libro en la pagina 1 4. Si ( el N de pagina es igual a X) Entonces 5. Vaya al paso 5 Sino 6. Pasar una hoja si es necesario 7. Fin

2- Escriba los algoritmos de solucin para los siguientes problemas. a) Preparar un t. Considere que si no dispone de un saquito de t debe preparar un mate cocido, y que de seguro existe el saquito de mate cocido. Tenga en cuenta que la preparacin de las dos infusiones tienen muchos pasos en comn. b) Una persona desea ingresar a un recital a beneficio. Para obtener la entrada al mismo, deber presentarse en la ventanilla del club con un bolsn de paales o bien con una caja de leche. En el caso de que la persona no lleve los paales o la leche, podr comprar la entrada en la ventanilla de dicho club. c) Juan program jugar al bsquet con sus amigos el jueves de la semana que viene, en caso de no poder hacerlo ir a visitar a su novia. El partido se realizar en la cancha del parque Aguirre si no llueve, mientras que si esta lloviendo a la hora programada, jugarn en el estadio techado del colegio siempre y cuando no este ocupado. d) Una persona va por la ruta y se le pincha una rueda, para cambiar la misma deber contar con tres elementos (gato mecnico, rueda de auxilio y llave inglesa), los cuales no sabe si se encuentran en el bal del auto. Si no posee alguno de estos elementos necesarios llamar a la gra de auxilio.

Ingreso 2008

15

Introduccin a la Informtica

4.3. Estructura de Iteracin

Una extensin natural de una estructura secuencial consiste en repetir N veces un bloque de acciones. El fin de la repeticin depender de un valor predefinido o del cumplimiento de una determinada condicin. Existen dos formas de expresar esta estructura la Repeticin y la Iteracin en este curso solo utilizaremos la iteracin.

Iteracin Puede ocurrir que se desee ejecutar un conjunto de acciones de un algoritmo desconociendo el nmero exacto de veces que se ejecutan. Para estos casos existen estructuras de control iterativas

condicionales, es decir, las acciones se ejecutan dependiendo de la evaluacin de una condicin. Por lo tanto, dentro de una estructura iterativa, adems de una serie de pasos elementales que se repiten; es necesario contar con un mecanismo que lo detenga. Podemos definir una estructura iterativa como la estructura de control que permite al algoritmo ejecutar en forma repetitiva un conjunto de acciones utilizando una condicin para indicar su finalizacin. Estas estructuras se clasifican en pre-condicionales y pos-condicionales. Las estructuras pre-condicionales evalan la condicin y, si es verdadera, se ejecuta el conjunto de acciones; esto hace que dicho conjunto se puede ejecutar 0, 1 o ms veces. La notacin para esta estructura es la siguiente:

Mientras (condicin) Accin o acciones a realizar en caso de que la condicin sea verdadera.

La condicin es una expresin que slo puede tener uno de dos valores posibles: verdadero o falso. A continuacin se presenta grficamente esta estructura.

falso Evaluar condicin

verdadero

Ejecutar las acciones correspondientes

Las estructuras pos-condicionales, primero se ejecuta el conjunto de acciones, luego se evala la condicin y, si es falsa, se ejecuta nuevamente el bloque de acciones. A diferencia de la estructura anterior iterativa anterior, el conjunto de acciones se debe ejecutar 1 o ms veces. Ntese que, en este caso, el bloque de accin se ejecuta antes de evaluar la condicin, por lo tanto se lleva a cabo al menos una vez. La notacin a utilizar para esta estructura es la siguiente:

Ingreso 2008

16

Introduccin a la Informtica

Accin o acciones a realizar en caso de que la condicin sea falsa Hasta (condicin)

A continuacin se presenta grficamente esta estructura.

Ejecuta las acciones correspondientes

falso Evaluar condicin

verdadero

ACTIVIDAD N 3: ALGORITMOS y ESTRUCTURA DE CONTROL

1- Dados los enunciados de los siguientes problemas y su correspondiente algoritmo de solucin, en lo que se utilizan estructuras de seleccin y de iteracin, analizar cada una de las soluciones propuestas e indicar, datos de entrada, de salida y si se obtiene con los mismos el resultado deseado.

a)

Se busca escribir un algoritmo para colgar un cuadro. Solucin 1 1 Clavar el clavo 2 Si (no quedo firme el clavo) Entonces 3 Golpear el clavo un poco ms 4 Colgar el cuadro 5 Fin Solucin 2 1 Clavar el clavo 2 Mientras (no quede firme el clavo) 3 Golpear el clavo una vez ms 4 Colgar el cuadro 5 Fin

b) Se necesita hornear una pizza en un horno defectuoso. El horno se apaga cada cierto tiempo y debe ser encendido nuevamente. Como condicin sabemos que tenemos una cantidad ilimitada de fsforos y dispone de la prepizza y todos los elementos necesarios
Solucin 1 1 Encender el horno 2 Poner la pizza en el horno 3 Si (el horno se apag) Entonces 4 Encender nuevamente el horno 5 Si (no est lista la pizza) Entonces 6 Esperar 1 minuto 7 Apagar el horno 8 Sacar la pizza 9 Fin Solucin 2 1 Encender el horno 2 Poner la pizza en el horno 3 Mientras (no este lista la pizza) 4 Esperar 1 minuto 5 Si (el horno se apag) Entonces 6 Encender nuevamente el horno 7 Apagar el horno 8 Sacar la pizza 9 Fin

Ingreso 2008

17

Introduccin a la Informtica

c) El Sr. Lombardi ha recibido su pago en un nico cheque. Para cobrarlo deber presentarse en el banco con su DNI, y este le pagar siempre y cuando la cuenta tenga fondos. Solucin 1: 1 Entrar al banco. 2 Colocarse en la caja correspondiente 3 Mientras (no le llega el turno) 4 Esperar 1 minuto 5 Si (tiene el cheque) Entonces 6 Si (tiene el DNI) Entonces 7 Cobrar Sino 8 Maldecir 9 Salir del banco 10 Fin Solucin 2: 1 Entrar al banco. 2 Colocarse en la caja correspondiente 3 Esperar 1 minuto 4 Hasta ( que le llegue su turno) 5 Si (tiene el cheque) Entonces 6 Si (tiene el DNI) Entonces 7 Presentar el cheque al cajero 8 Si ( tiene fondos en la cuenta) Entonces 9 Cobrar Sino 10 Maldecir 11 Salir del banco 12 Fin d) Juan se encuentra sintonizando la radio para escuchar el programa R & P. Luego de escuchar el programa, debe apagar la radio. Considere que el programa esta siendo actualmente transmitido. Solucin 1 1 Encender la radio. 2 Sintonizar una estacin de radio 3 Si (estn transmitiendo R & P) Entonces 4 Escuchar el programa 5 Apagar la radio. 6 Fin Solucin 2: 1 Encender la radio. 2 Sintonizar una estacin de radio 3 Hasta (que estn transmitiendo R & P) 4 Escuchar el programa 5 Apagar la radio. 6 Fin

Solucin 3: 1 Encender la radio. 2 Mientras (no estn transmitiendo R & P) 3 Sintonizar una estacin de radio 4 Escuchar el programa. 5 Apagar la radio. 6 Fin

Ingreso 2008

18

Introduccin a la Informtica

e) Con el fin de mejorar el arbolado de la Av. Belgrano, la municipalidad desea plantar 300 ligustros en la platabanda de las 10 cuadras de dicha avenida. Para realizar dicha tarea resulta necesario descargar el ligustro, cavar un pozo y plantarlo. Solucin 1 1 Detener el Camin 2 Descargar el ligustro 3 Cavar un pozo 4 Plantar el Ligustro 5 Contar que se ha plantado un ligustro ms 6 Hasta (Se han plantado 300 ligustros) 7 Encender el Camin 8 Avanzar a la siguiente cuadra. 9 Fin Solucin 2: 1 Detener el Camin 2 Mientras (no se hayan plantado los 30 ligustros) 3 Cavar un pozo 4 Descargar el ligustro 5 Plantar el Ligustro 6 Contar que se ha plantado un ligustro ms 7 Encender el Camin 8 Avanzar a la siguiente cuadra. 9 Fin Solucin 2: 1 Detener el Camin 2 Mientras (no se hayan plantado los 30 ligustros) 3 Cavar un pozo 4 Descargar el ligustro 5 Plantar el Ligustro 6 Encender el Camin 7 Avanzar a la siguiente cuadra. 8 Fin

2- Escriba los algoritmos de solucin para los siguientes problemas, teniendo en cuenta el uso de las estructuras de control correspondientes. a) Una pileta debe ser vaciada utilizando un balde. Considerando que no conoce cuntos baldes necesitar sacar para vaciar la pileta. b) Trasladar 70 cajas de 30 kilos cada una, desde la sala A a la Sala B. Considere que slo llevar una caja a la vez porque el contenido es muy frgil. Para realizar el trabajo debe ponerse un traje especial y quitrselo luego de haber realizado el trabajo. c) Ud. desea ordenar una bolsa con 54 fotografas viejas de manera que todas queden al derecho; esto es, con la imagen hacia Ud. y cabeza arriba. d) Usted desea comprar la revista Crucigramas que cada mes tiene reservada en el puesto de revistas que se encuentra en la esquina de su casa, al otro lado de la calle. Verifique que no pasen autos antes de cruzar.

Ingreso 2008

19

Introduccin a la Informtica

5. MANEJO DE DATOS 5.1. Datos Los programas que implementan los algoritmos necesitan alguna manera de representar los objetos del mundo real. Para ello los algoritmos operan sobre datos y estructuras de distinta naturaleza, tales como nmeros, letras, smbolos, etc. Por lo tanto un dato es la expresin general que describe los objetos con los cuales opera una computadora. Los tipos de datos estn ligados a un conjunto de operaciones que permiten su creacin y manipulacin. Los tipos de datos se caracterizan por: Un rango de valores posibles Un conjunto de operaciones realizables sobre ese tipo Su representacin

Los tipos de datos simples son: Numrico Lgico Carcter

Los algoritmos contienen ciertos valores que no deben cambiar durante la ejecucin del mismo. Tales valores se llaman Constantes. De igual forma existen otros valores que cambian durante la ejecucin del mismo, estas son las Variables. Una constante es una partida de datos(objetos) que permanece sin cambios durante todo el desarrollo del algoritmo o durante la ejecucin del programa. Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecucin del programa.

5.2. Expresin. Definicin

Una expresin es un conjunto de variables y/o constantes unidas por operadores. Dependiendo del tipo de operadores con que se este trabajando y el resultado obtenido podremos hablar de Expresiones Aritmticas o Expresiones Lgicas.

Operadores Aritmticos + Suma Resta * Multiplicacin / Divisin Potencia Una Expresin Aritmtica es aquella que cuando se la evala siempre se obtiene un resultado numrico. Ejemplos de expresiones aritmticas 2 * 5 + 7 = 17 3 * A / 4 + Cont 2 Suma = Suma + N Operadores Relacionales

Ingreso 2008

20

Introduccin a la Informtica

< > <= >= = <>

Menor Mayor Menor igual Mayor igual Igual a Distinto a

Operadores Lgicos NOT AND OR Una Expresin Lgica es aquella que cuando se la evala siempre se obtiene un resultado Verdadero o Falso. Ejemplos de Expresiones Lgicas (8 < 4) da como resultado falso (2.5 * 4= 10) da como resultado verdadero (8 > 3) da como resultado verdadero NOT (8 > 3) da como resultado falso (7 > 2.4) AND (9=3) es una expresin que da un resultado falso (7 > 2.4) OR (9=3) es una expresin que da un resultado verdadero

Orden de Evaluacin Operador NOT *, /, AND +, -, OR <, >, <=, >=, =, <>, Prioridad Ms alta (se evala primero)


Ms baja ( se evala al ltimo)

Si existen parntesis, las expresiones de su interior se evalan primero

Ingreso 2008

21

Introduccin a la Informtica

6. ALGORITMOS Y LGICA

En algunas de las estructuras de control se indica el uso de condiciones para definir las acciones a tomar, pero no la forma en que estas pueden combinarse. Cuando se presenta un problema se requiere combinar expresiones, en las condiciones, para poder representar una situacin a evaluar. Algunos conceptos bsicos de la lgica proposicional permiten clarificar este aspecto.

6.1. Proposiciones

Las estructuras de control de seleccin e iteracin requieren, para su funcionamiento, la evaluacin de una condicin. Estas condiciones se corresponden con lo que en trminos de lgica se conoce como proposiciones. Entonces podemos definir una proposicin de la siguiente manera:

Una proposicin es una expresin de la cual tiene sentido decir si es verdadera o falsa, o sea es posible asignarle un valor de verdad (verdadero o falso, pero no ambos).

Ejemplos: El techo es de madera (verdad) 8 es primo (falso) El color azul vale menos que el color verde (no se le puede asignar un valor de verdad, por lo tanto no es proposicin)

6.2. Proposiciones Atmicas y Moleculares

El trmino atmico, en lgica,

se utiliza con su significado de algo que no puede ser dividido

nuevamente. Formalmente se define una proposicin atmica de la siguiente forma:

Una proposicin es considerada atmica si no puede ser descompuesta en otras proposiciones

Ejemplos: Hace calor La lapicera es azul Pedro es abogado

Una proposicin molecular se define de la siguiente forma:

Cuando en una expresin se unen varias proposiciones atmicas se forma una proposicin molecular o compuesta

Ingreso 2008

22

Introduccin a la Informtica

La unin se realiza mediante conectivos lgicos o trminos de enlace. Estos trminos de enlace son de gran importancia y se emplean reglas precisas para el uso de esta clase de trminos. Los trminos de enlace a utilizar son: y, o, no. Los dos primeros se utilizan para conectar proposiciones atmicas, en tanto que el conectivo no, solamente se coloca frente a una proposicin atmica.

Ejemplos: Hace mucho fro o hay mucha humedad Juan es rubio y Pedro es morocho No es cierto que aprob Fundamentos de la Programacin

Por lo tanto se puede expresar que una proposicin es atmica si no tiene conectivos lgicos, en caso contrario es molecular.

6.3. Simbolizacin

Las proposiciones atmicas, moleculares y los conectivos lgicos se simbolizan con el objeto de facilitar las operaciones en el planteo y solucin de problemas. Para simbolizar las proposiciones atmicas se utilizan letras minsculas:

Ayer fue un da ventoso. Si se considera p = ayer fue un da ventoso, esta proposicin puede ser simbolizada como: p Juan es ingeniero. Si se llama q = Juan es ingeniero, la proposicin se simboliza como: q.

Para simbolizar proposiciones moleculares se aplica los siguientes pasos:

Determinar cuales son las proposiciones atmicas que la componen. Simbolizar las proposiciones atmicas como se explico anteriormente. Unir las proposiciones con los conectivos lgicos. Para cada conector lgico se define un smbolo, los cuales se muestran en la tabla 2.1.

Conectivo Y / AND O / OR

Simbolizacin

NO / NOT Tabla 2.1. Conectores Lgicos

Ingreso 2008

23

Introduccin a la Informtica

Ejemplo: Juan es abogado y es juez p = Juan es abogado q = Juan es juez Simbolizando p q

Hace fro o hay mucha humedad p = hace fro q = hay mucha humedad Simbolizando p q

6.4. Tablas de verdad

Para poder analizar cualquier proposicin compuesta y decir qu valor de verdad tiene, es usual hacerlo a travs de lo que se conoce como tabla de verdad, la cual se define de la siguiente manera:

La tabla de verdad de una proposicin es, como su nombre lo indica, una tabla donde se muestran todas las combinaciones posibles de los valores de verdad de dicha proposicin.

6.4.1. Conjuncin Dadas dos proposiciones cualquiera p y q, la proposicin molecular p q representa la conjuncin de p y q.

La conjuncin de dos proposiciones es cierta nicamente en el caso en que ambas proposiciones lo sean. Dadas dos proposiciones cualesquiera p y q, si ambas son verdaderas, entonces p q, que representa la conjuncin de p y q, es verdadera. Cualquier otra combinacin da como resultado una proposicin molecular falsa. La tabla 2.2 representa la tabla de verdad de la conjuncin p q utilizando las cuatro combinaciones posibles de valores de verdad para p y q.

p V V F F

q V F V

pq V F F

F F Tabla 2.2. Tabla de Verdad de Conjuncin

Ingreso 2008

24

Introduccin a la Informtica

6.4.2. Disyuncin Dadas dos proposiciones cualesquiera p y q, la proposicin molecular p q representa la disyuncin de p y q.

La disyuncin entre dos proposiciones es cierta cuando al menos una de dichas proposiciones lo es.

La disyuncin utiliza el trmino de enlace o / OR en su sentido incluyente. Esto significa que basta con que una de las dos proposiciones sea verdadera para que la disyuncin sea verdadera. Dadas dos proposiciones cualesquiera p y q, su disyuncin, p q, ser falsa cuando ambas proposiciones sean falsas. La tabla 2.3 representa la tabla de verdad de la disyuncin p q utilizando las cuatro combinaciones posibles de valores de verdad para p y q.

p V V F F

q V F V

pq V V V

F F Tabla 2.3. Tabla de Verdad de Disyuncin

6.4.3. Negacin Dada una proposicin p, su negacin p, permitir obtener el valor de verdad opuesto.

El valor de verdad de la negacin de una proposicin verdadera es falso y el valor de verdad de la negacin de una proposicin falsa es verdadero. Dada una proposicin p, la tabla xx representa los posibles valores de verdad de p para los dos valores de verdad posibles de p.

Ingreso 2008

25

Introduccin a la Informtica

ACTIVIDAD N4: EXPRESIONES

1. Dadas las siguientes expresiones, identifique variables, constantes, tipos de operadores, calcule el resultado e indique de que tipo es el mismo. Variables Ctes, Operadores Tipo del resultado

Asignacin

Expresin B - A * (B + C) * 2 + 1

Resultado .............. .............. .............. .............. ............. .............. ..............

A=1, B=5, C=0

A + C * 3 - 2 / 12 ((C +3 * (5 + 2) / 10)* A) (- 1) (A + 10 / 5 * A (B 2) ) * (- 1) A* B + ( B - C ) * 3 / (B 3) A = (A + ( B - C ) * 3)

A=1, B= -2, C=3

A+B-C/3 C > (A + ( B - C ) * 3) (A - B - C / 3+2) (-2) (2+3*N1) <> 6 + (N2-1) (1+(2/2)*N2) < 4 * N1

.............. .............. .............. .............. .............. .............. .............. .............. .............. .............. .............. .............. ..............

N1=3, N2=6 2 - 6/2 * (N1 - N2) = 0 N2 >= N1+ (3 / N1) S 2 <= R + S (S+S)* (-1) >= (R+1) (-1) T and (R <= S) or (not U) R=2, S=6 T= verdadero U= falso R<= S / 3 and T Not U and ( S < 1 ) or T T and ( R<= 2 ) T or U and ( R < S ) (R*2> S-3) or (R>S-1) and (S<5)

Ingreso 2008

26

Introduccin a la Informtica

7. FORMAS DE EXPRESAR UN ALGORITMO

Un mismo algoritmo puede ser expresado de distintas formas.

Lenguaje comn. En el lenguaje normal que hablamos y escribimos; til para comunicar un algoritmo a otra persona o en una fase de anlisis previo de un sistema computacional. Diagramas de flujo. Es un lenguaje grfico; til para visualizar en forma rpida la secuencia lgica de pasos a seguir para un algoritmo y de gran ayuda para la traduccin del mismo a un programa de computacin Tablas de Decisin: Expresan en forma de tablas las distintas alternativas que intervienen en un algoritmo y las operaciones elementales a realizar en cada alternativa. Muy tiles para analizar la lgica de un algoritmo en forma exhaustiva y precisa. Pseudocdigo: Es una tcnica para expresar en lenguaje natural la lgica de un programa, es decir, su flujo de control. El seudocdigo no es un lenguaje de programacin sino un modo de plantear un proceso de forma que su traduccin a un lenguaje de alto nivel sea sencillo para el programador. Lenguajes de Programacin: Es la forma obligada de expresin de un algoritmo para que pueda ser ledo, ejecutado y almacenado por el computador.

7.1. Diagramas de Flujo

Un diagrama de flujo es la representacin grfica o visual de un algoritmo. Se usan en el planeamiento, desarrollo y estructuracin de un algoritmo. Mediante los diagramas de flujo el algoritmo se puede comunicar y documentar (porque ensea y describe el proceso). Formalmente, un diagrama de flujo es un diagrama formado por smbolos (cajas, bloques, figuras) y flechas o lneas de flujo que conectan los smbolos entre si. Los smbolos denotan los pasos esenciales del algoritmo y las flechas indican la secuencia. Se dibujan de tal manera que la direccin del flujo sea hacia abajo o de izquierda a derecha.

7.2. Simbologa Bsica de los Diagramas de Flujo Los smbolos que se describen a continuacin, para la representacin grfica de los diagramas de flujo, son de uso universal. SMBOLO SIGNIFICADO Indica principio o fin de un algoritmo.

Indica entrada de datos.

Ingreso 2008

27

Introduccin a la Informtica

Indica la salida de la informacin.

Se usa generalmente para sentencias o enunciados de asignacin (accin de asignar) y para la realizacin de un proceso matemtico. Permite evaluar una expresin relacional lgica que puede tomar un valor verdadero o falso. En funcin de este resultado el flujo del algoritmo seguir una determinada direccin. Se usa cuando el diagrama es largo y se requiere ms de una hoja de papel o para evitar lneas que se crucen. Simbolizan mdulos o segmentos lgicos

Indica la direccin del algoritmo en cada momento mediante una flecha.

7.3. Utilidad de los Diagramas de Flujo

El diagrama de flujo refleja los pasos sucesivos que el computador debe dar para llegar a la solucin de un problema. Las principales razones por las cuales es generalmente aconsejable el trazado de un diagrama de flujo son las siguientes: Oportunidad de verificar la lgica de la solucin. Sirve de gua al programador para la codificacin del programa. Permite fcilmente modificar un programa. Es til para la discusin grupal. Sirve para documentar el programa.

ACTIVIDAD N5: ALGORITMOS Y DIAGRAMAS DE FLUJO

1. Dados los siguientes problemas y su correspondiente algoritmo de solucin, se pide: Determinar datos de entrada, resultados y dominio del problema. Expresar mediante diagramas de flujo los algoritmos propuestos. Probar la solucin propuesta.

Ingreso 2008

28

Introduccin a la Informtica

a) Leer un nmero, determinar y mostrar el anterior y el siguiente 1. Inicio 2. Leer un nmero en la variable NUM 3. Decrementar en una unidad el valor de NUM y asignarlo a la variable ANT 4. Incrementar en una unidad el valor de NUM y asignarlo a la variable SIG 5. Mostrar el contenido de las variables NUM, ANT y SIG 6. Fin b) Leer la base y la altura de un tringulo, calcular y mostrar la superficie del mismo 1. Inicio 2. Leer un nmero en la variable BASE 3. Leer un nmero en la variable ALTURA 4. Realizar el producto entre el contenido de BASE y ALTURA, luego dividirlo entre 2; y al resultado asignarlo a la variable SUP 5. Mostrar el valor de SUP 6. Fin c) Leer dos nmeros intercambiar sus valores. Mostrar los valores originales de los nmeros ingresados y los resultantes luego del intercambio. 1. Inicio 2. Leer un nmero en la variable X 3. Leer un nmero en la variable Y 4. Mostrar Valor X: X 5. Mostrar Valor Y: Y 6. Asignar el valor de X a la variable AUX 7. Asignar el valor de Y a la variable X 8. Asignar el valor de AUX a la variable Y 9. Mostrar Valor X: X 10. Mostrar Valor Y: Y 11. Fin d) Leer tres nmeros y almacenarlos en las variables A, B y C respectivamente y realizar la siguiente operacin algebraica: A * B + 32/ 8 + 7* C , calcular y mostrar su resultado. 1. Inicio 2. Leer un nmero en la variable A, B y C 3. Asignar el resultado de multiplicar el contenido de A y B a la variable AUX 4. Asignar el resultado de dividir el valor 32 entre 8 a la variable D 5. Asignar el resultado de multiplicar el valor 7por C a la variable P 6. Asignar el resultado de sumar el contenido de AUX, D y P a la variable RESULT 7. Mostrar RESULT 8. Fin

Ingreso 2008

29

Introduccin a la Informtica

e) Leer un nmero entero, determinar si el mismo es par o impar. 1. Inicio 2. Leer un nmero en la variable NUM 3. Realizar la divisin de NUM entre 2 y tomar la parte entera; luego multiplicar por 2 y el resultado asignarlo a la variable PAR 4. Si ( PAR es igual a NUM) Entonces 5. Mostrar El nmero es par Sino 6. 7. Fin Mostrar El nmero es Impar

f) Leer dos nmeros enteros, mostrar aquellos que sean de tres dgitos. 1. Inicio 2. Leer un nmero en la variable X 3. Leer un nmero en la variable Y 4. Si (X es mayor que 99) y (X es menor igual que 999) 5. Entonces 6. Mostrar X 7. Si (Y es mayor que 99) y (Y es menor igual que 999) 8. Entonces 9. Mostrar Y 10. Fin

2. Dados los siguientes problemas realizar: Los algoritmos de solucin correspondiente, utilizando diagrama de flujo. Determinar datos de entrada y salida Efectuar la prueba o verificacin a) Leer un nmero, encontrar el valor absoluto, mostrar el nmero y su valor absoluto. b) Leer un nmero entero mostrar si es positivo, negativo o nulo. c) Leer el radio de una circunferencia, calcular el rea y la longitud de la misma. d) Leer una medida expresada en metros, convertirla a su equivalente en decmetros, centmetros y milmetros. Mostrar las cuatro magnitudes con sus respectivas unidades. e) Leer 3 nmeros, calcular y mostrar el promedio de los mismos. f) Leer las edades de 2 nios en edad escolar. Mostrar la edad del mayor de ellos. Se asume que las edades ledas son distintas. g) Leer dos nmeros determinar si uno es mltiplo del otro. h) Leer tres nmeros que representan las edades de 3 nios en edad escolar, se pide: Mostrar la edad de aquel cuya edad este entre 8 y 12 aos inclusive.

Ingreso 2008

30

Introduccin a la Informtica Mostrar la menor edad i) Mostrar el costo de una llamada telefnica, se lee la duracin en minutos y se conoce lo siguiente: Toda llamada que dure 3 minutos o menos tiene un costo de $5. Cada minuto adicional cuesta $3. j) Leer un nmero de 3 cifras, se pide: Mostrar el primer y el ltimo dgito, solo si el digito central es par. Mostrar la suma del primer ms el ltimo dgito, si el digito central es impar. Mostrar el mensaje Capica si el nmero ingresado lo es. k) Leer 3 nmeros de un dgito, se pide componer con ellos un nmero de 3 dgitos. Mostrar el nmero obtenido. Ejemplo: A= 4 B= 7 C= 9 Nmero obtenido NUM= 479

Actividad N 6: ALGORITMOS y DIAGRAMAS DE FLUJO


1. Dados los siguientes problemas y su correspondiente algoritmo de solucin, se pide: Determinar datos de entrada, resultados y dominio del problema. Expresar mediante diagramas de flujo los algoritmos propuestos. Probar la solucin propuesta. a) Leer diez nmeros enteros, se pide calcular y mostrar la suma de los mismos. 1. Inicio 2. Asignar a la variable SUM el valor 0. 3. Asignar a la variable C el valor 1 4. Mientras (C sea menor o igual que 10) 5. 6. 7. Leer un nmero en la variable NUM Sumar el valor de NUM a SUM y asignar el resultado a SUM Incrementar en una unidad la variable C y asignar el resultado a C

8. Mostrar el valor de SUM 9. Fin b) Leer cincuenta nmeros enteros, se pide calcular y mostrar el promedio de los mismos. 1. Inicio 2. Asignar a la variable SUM el valor 0. 3. Asignar a la variable C el valor 0 4. Mientras (C sea menor que 50) 5. 6. 7. Leer un nmero en la variable NUM Sumar el valor de NUM a SUM y asignar el resultado a SUM Incrementar en una unidad la variable C y asignar el resultado a C

8. Dividir el contenido de la variable SUM entre C y asignar el resultado en la variable PROM 9. Mostrar el valor de PROM 10. Fin

Ingreso 2008

31

Introduccin a la Informtica

c) Dadas cincuenta monedas ( que pueden ser de 25 o 50 ctvos, o de 1 peso), calcular y mostrar cuantas monedas hay de cada valor 1. Inicio 2. Asignar a la variable Cant el valor 0 3. Asignar a la variable C25 el valor 0 4. Asignar a la variable C50 el valor 0 5. Asignar a la variable C1 el valor 0 6. 7. Tomar una Moneda Si ( Moneda = 25) Entonces 8. C25= C25 +1 Sino 9. Si ( Moneda = 50) Entonces 10 . Sino 11. Si ( Moneda = 1) Entonces 12. 13. Cant = Cant + 1 C1= C1 +1 C50= C50 + 1

14. Hasta (Cant = 50) 15. Mostrar C25, C50, C1 16. Fin d) Leer cien nmeros enteros, se pide calcular y mostrar la suma de los positivos y la cantidad de los negativos y nulos. 1. Inicio 2. Asignar a la variable SUMP el valor 0. 3. Asignar a la variable CNEG el valor 0. 4. Asignar a la variable CNU el valor 0. 5. Asignar a la variable C el valor 1 6. Mientras (C sea menor O igual que 100) 7. 8. 9. 10. 11. 12. resultado a CNEG Leer un nmero en la variable NUM Si (NUM >0 ) Entonces Sumar el valor de NUM a SUMP y asignar el resultado a SUMP Sino Si (NUM < 0) Entonces Incrementar en una unidad la variable CNEG y asignar el

Ingreso 2008

32

Introduccin a la Informtica

13. 14. resultado a CNU 15.

Sino Incrementar en una unidad la variable CNU y asignar el

Incrementar en una unidad la variable C y asignar el resultado a C

16. Mostrar el valor de SUMP, CNEG, CNU 17. Fin

2. Dados los siguientes problemas realizar: Los algoritmos de solucin correspondiente, utilizando diagrama de flujo. Determinar datos de entrada y salida Efectuar la prueba o verificacin a) Leer 60 nmeros, mostrar aquellos que sean mltiplos de 7. b) Leer 100 nmeros mostrar aquellos que sean mltiplos de tres y no de cinco. c) Mostrar los 50 primeros nmeros naturales pares. d) Leer dos nmeros enteros N1 y N2, calcular y mostrar la suma de los nmeros comprendidos entre N1 y N2. e) Leer 100 nmeros e mostrar aquellos que sean mayores a 74. f) Leer 100 nmeros enteros. Mostrar el mayor y el menor de los nmeros ingresados. g) Leer un nmero NUM, si es positivo, imprimir todos los nmeros desde 1 a NUM. Caso contrario, mostrar el mensaje INCORRECTO y el nmero ingresado. h) Leer N nmeros positivos se pide: Suma de nmeros pares Calcular y mostrar cantidad de nmeros impares. Calcular y mostrar la cantidad de nmeros pares de tres dgitos. i) Leer N nmeros enteros. Al finalizar el ingreso de los mismos mostrar INGRESADO si dentro de los N nmeros se encontraba el nmero 25. j) Leer una serie de nmeros enteros cuyo final viene dado por el ingreso del nmero 0. Se pide mostrar la cantidad de nmeros impares ingresados y el porcentaje del total que representan. k) Leer una serie de valores cuyo final viene dado por un nmero negativo. Se pide mostrar aquellos nmeros que hayan sido mltiplos del valor anterior. l) Leer un nmero debiendo mostrar el mensaje PRIMO si lo fuera. m) Leer N pares de nmeros enteros. Mostrar el mayor de cada par. n) Leer N pares correspondientes a los datos de los empleados de distintas sucursales de un banco nacional: cdigo de empleado y cdigo de sucursal, se pide: Mostrar los cdigos de empleados de la sucursal de la ciudad de Salta. Calcular y mostrar la cantidad de empleados de Tucumn. Mostrar el mayor cdigo de empleado Cdigo sucursal 1 2 3 Descripcion Salta Sgo. del Estero Tucumn

Ingreso 2008

33

Introduccin a la Informtica

o) Leer N ternas de datos correspondiente a los artculos de un negocio: Cdigo del artculo, Cantidad de unidades disponibles y Costo por unidad. Se pide: Calcular y mostrar la cantidad de artculos que poseen cantidad de unidades disponibles menores que 100. Calcular y mostrar el Cdigo de artculo y el nuevo costo por unidad si se le incrementa un 5%. Mostrar los cdigo de articulo cuyo costo por unidad no supere los 5 pesos y la cantidad de unidades disponibles sea >= 85. p) Leer N ternas de datos correspondiente a los empleados de una empresa. DNI, SEXO (1- Femenino y 2- Masculino); y DT (das trabajados) y teniendo en cuenta que por cada da trabajado se abona $10, se pide calcular y mostrar: Cantidad de empleados mujeres que hayan trabajado menos de 20 das Promedio del sueldo de los empleados varones. Sueldo de cada empleado (varones y mujeres). DNI del empleado (varones y mujeres) con menor cantidad de das trabajados.

Ingreso 2008

34

Introduccin a la Informtica

Bibliografa Consultada De Giusti A., Algoritmos, datos y programas. Con aplicaciones en Pascal, Delphi y Visual Da Vinci, Prentice Hall, Argentina. 2001. Joyanes Aguilar L., Fundamentos de Programacin. Algoritmos, Estructuras de datos y objetos, Tercera Edicin, Mc Graw Hill, Madrid.2003. Maldonado, M. et al. Cartilla de la Asignatura Fundamentos de la Programacin. Universidad Nacional de Santiago del Estero. 2004.

Ingreso 2008

35

Você também pode gostar