Está en la página 1de 31

Algoritmos y Estructuras de Datos

Unidad N 1: Seudocdigo PARTE I


Objetivos: 1. Identificar AMBIENTE y PROCESADOR de un problema 2. Aplicar esquemas de SECUENCIA, SLECCION e ITERACION en la resolucin de problemas sencillos. Introduccin: Constantemente el hombre se enfrenta a innumerables problemas que debe resolver. Muchas soluciones las logra en forma inmediata haciendo simplemente uso de lo aprendido con su experiencia y que con el correr del tiempo ha logrado internalizar. Existen otros obstculos que debe vencer para lo cual necesita herramientas aportadas por las diversas ramas de la tecnologa que lo ayudaran a lograr sus metas. Una de las herramientas que ha provocado mayor impacto en la sociedad ha sido la COMPUTADORA. Para poder utilizarla se debi encontrar un canal de comunicacin con el hombre, de manera tal que la maquina interpretara las solicitudes del hombre y que este pudiera comprender los mensajes que de ella no podr hacer nada si el hombre no le dice de qu forma debe resolver un problema y con qu recursos. El tratar de encontrar una forma de comunicacin entre el hombre y la maquina, no es ms que determinar un leguaje entre ambos. Sera difcil que dos personas que provienen de diferentes lenguas, pudieran dialogar sin conocer una forma de expresarse en comn. Se trabajara en un lenguaje natural, llamado SEUDO-CODIGO, cuyas reglas de sintaxis responden a las caractersticas del lenguaje de mquina. Es importante decir que se llama SEUDO-CODIGO porque no es el lenguaje directo a utilizar por la maquina, sino que encierra un conjunto de reglas y formas de expresin en lenguaje coloquial. Lo escrito en este lenguaje con posterioridad podr ser traducido a cualquier lenguaje de programacin utilizable por la computadora. Suponer que se desea explicar a un nio como debe sumar nmeros Qu pasos cree que debera indicarle para que logre este objetivo? Podra nombrarlos? Tuvo problemas para lograrlo? Faltaron algunos datos? Sera lo mismo explicarle a un nio de 2 aos que a uno de 7, como sumar dos nmeros, por ejemplo con la ayuda de una calculadora? Al tratar de resolver este problema se observara que es necesario precisar la edad del nio, la cantidad de nmeros a sumar y la herramienta a utilizar. En general vemos que el primer paso en la resolucin de un problema es contar con un enunciado que se preciso y claro que no contenga ningn tipo de ambigedades. Se podra, entonces, formular este enunciado: Ensear a un nio de siete aos a sumar dos nmeros con una calculadora. Con este planteo queda claro cuales serian las pautas de trabajo, ya que todo el entorno de accin queda bien especificado. De ahora en ms denominaremos al entorno o marco de accin: AMBIENTE.
Lic. Contreras, Pamela pgina N 1

Algoritmos y Estructuras de Datos

En el queda especificados todos los recursos disponibles con se cuenta para resolver el problema. Bajo este estudio existirn o algo que pueda interpretar el enunciado de un problema y resolverlo en un ambiente especifico, que llamaremos PROCESADOR. En el ejemplo visto: Ambiente: calculadora, dos nmeros Procesador: nio de 7 aos Resumamos lo visto hasta el momento. El primer paso en la resolucin de un problema es contar con el Enunciado que ser resuelto por un Procesador utilizando Recursos de un Ambiente. Esquemticamente: PLANTEA UN ENUNCIADO RESUELTO POR PROCESADOR MEDIANTE SOLUCION DEL PROBLEMA O ALGORITMO UTILIZANDO PROBLEMA REAL AMBIENTE DEL RECURSOS

Analicemos el siguiente enunciado y determinemos ambiente y procesador. Enunciado: poner en marcha un automvil siguiendo las instrucciones e un manual de manejo. Ambiente: automvil, manual Procesador: persona Ahora estamos en condiciones de comenzar a resolver los siguientes problemas: Enunciado: ensear a un nio de siete aos a sumar dos nmeros con una calculadora. Ambiente: nio de siete aos, primer nmero, segundo nmero, calculadora. Procesador: persona Algoritmo: P1: encender la calculadora P2: teclear el primer nmero P3: teclear el smbolo + P4: teclear el segundo nmero P5: teclear el smbolo = P6: observar el resultado.

Lic. Contreras, Pamela

pgina N 2

Algoritmos y Estructuras de Datos

Formalizacin de conceptos: ALGORITMO: es una secuencia ordenada de acciones no ambiguas, que pueden ser ejecutadas por un procesador, mediante un nmero finito de pasos para resolver un problema planteado. ACCION: es cada uno de los pasos que el procesador ejecuta o lleva a cabo, para resolver el problema. ACCION SIMPLE: es un paso que es entendido en forma inmediata por el procesador y no puede ser descompuesto en otros pasos. ACCION ESTRUCTURADA: es un paso que puede ser descompuesto en otros, hasta llegar a acciones simples, las que sern interpretadas por el procesador. En el estudio de resolucin de problemas se siguen etapas, a saber: 1. Enunciacin de problema 2. Construccin de algoritmo de resolucin(mediante pseudocdigo) 3. Codificacin del algoritmo en un lenguaje de programacin. 4. Ejecucin 5. Documentacin En el ejercicio resuelto, se ha seguido un orden en las accione y estas fueron ejecutadas una sola vez por el procesador. Esta forma de resolucin del problema se denomina de SECUENCIA. Dicha estructura se esquematiza de la siguiente forma: P1 P2 P3 Pn Ejemplo: Enunciado: localizar un nmero telefnico en una agenda y llamar a dicho numero Ambiente: agenda, telfono Procesador: persona Algoritmo: P1 Localizar numero P2 Descolgar el auricular P3 Esperar tono P4 Marcar numero P5 De ser posible establecer comunicacin P6 Colgar auricular El paso P5 es una accin que podra aclararse ms si se evala el estado del receptor, esto es:

Lic. Contreras, Pamela

pgina N 3

Algoritmos y Estructuras de Datos

P5 SI el receptor contesta el llamado ENTONCES P5.1 entablar comunicacin P5.2 colgar auricular SINO P5.2 colgar auricular FIN SI La accin P6 debe entonces eliminarse del algoritmo inicial. En esta accin se ve algunas partes importantes: el receptor contesta el llamado ser una condicin que se evaluara. Con la evaluacin de la condicin sabremos si es verdadera o falsa. De resultar verdadera el procesador deber ejecutar la accin entablar conversacin que acompaa al entonces, caso contrario se ejecutara la accin colgar el auricular que esta a continuacin del sino. Esta es una estructura que se denomina de SELECCIN. En ella la condicin es un enunciado lgico (que puede ser verdadero o falso) sobre el estado actual del problema. Es importante ver que el procesador ejecutara solo una de las acciones posibles dependiendo del estado de la condicin evaluada. El esquema que caracteriza a esta estructura est representada en la siguiente figura:

El seudocdigo en general para esta estructura ser: SI <condicin> ENTONCES<accin o acciones> SINO < accin o acciones> FINSI Se puede utilizar la estructura SI sin necesidad de ocupar el SINO, siempre que se utilice el SI deber existir la clausula ENTONCES. Si se modifica el ejemplo de la siguiente forma: Llamar a una lista de telfonos que aparecen en una agenda telefnica. Para resolver este problema debemos repetir el conjunto de acciones que utilizamos anteriormente de la siguiente forma:

Lic. Contreras, Pamela

pgina N 4

Algoritmos y Estructuras de Datos

REPETIR P1 P2 P3 P4 P5

Localizar numero Descolgar auricular Esperar tono Discar numero SI el receptor contesta el llamado Entonces P5.1 entablar conversacin P5.2 colgar auricular Sino P5.2 colgar auricular FINSI HASTA QUE finalice la lista de nmeros En el ejemplo se utiliza una estructura de iteracin que se denomina: REPETIR. HASTA QUE El esquema que caracteriza esta estructura est representado en la figura: Ciclo

F Condicin

En este tipo de situaciones se ejecuta el conjunto de acciones de un ciclo (de P1 hasta P6) una o ms veces hasta que se cumpla la condicin que acompaa a HASTA QUE El seudocdigo que la caracteriza es: REPETIR ----------- ciclo -----HASTA QUE <condicin. Qu hubiera ocurrido si se viajara al exterior y se quisiera llamar por telfono a algunos amigos que se encuentran en diferentes pases que se visitan? Es posible que existieran pases en donde no se tuviera ningn nmero a llamar. Esto podra solucionar de la siguiente manera:

Lic. Contreras, Pamela

pgina N 5

Algoritmos y Estructuras de Datos

MIENTRAS haya nmeros telefnicos para buscar HACER P1 Localizar numero P2 Descolgar auricular P3 Esperar tono P4 Marcar numero P5 SI receptor contesta llamado ENTONCES P5.1 Entablar conversacin Colgar auricular SINO P5.2 Colgar auricular FIN SI FIN MIENTRAS Esta es una nueva estructura de iteracin llamada: MIENTRAS ----------- FIN MIENTRAS Representa situaciones en las que se pueden ejecutar acciones cero o ms veces. La condicin que permitir las iteraciones se evala al comienzo del ciclo. El esquema que la caracteriza est representado en la figura siguiente:

Condicin

V
Ciclo

El seudocdigo para esta estructura es: MIENTRAS <condicin> HACER ------------- ciclo ------FIN MIENTRAS Existen situaciones en las cuales se conoce a priori la cantidad de veces que se debe repetir un ciclo. Ejemplo: Dividir 5 pares de nmeros enteros con una calculadora, mostrar sus resultados. PARA VEZ DESDE 1 HASTA 5 HACER P1 Tipear primer numero P2 Tipear smbolo de divisin P3 Tipear segundo numero P4 Mostrar resultado FIN PARA

Lic. Contreras, Pamela

pgina N 6

Algoritmos y Estructuras de Datos

En este caso, VEZ controla que el ciclo se repita cinco veces. VEZ toma el valor inicial 1, ejecuta el ciclo y despus de cada pasada se incrementa en 1, repitiendo nuevamente el proceso hasta llegar al valor final que en este caso ser 5. El esquema que caracteriza a esta estructura de repeticin se presenta en la figura. V:= Valor inicial, Valor final

Cuerpo del ciclo El seudocdigo que la representa es: PARA V DESDE valor inicial HASTA valor final HACER ------------- ciclo ------FIN PARA Ejemplo: Enunciado: Mostrar el total recaudado en una semana por un negocio. Se ingresa diariamente el total recaudado. Ambiente: importe-diario, importe-total Procesador: Persona Algoritmo: PARA da DESDE 1 HASTA 7 HACER Ingresar importe-diario Sumar importe-diario FIN PARA Mostrar importe-total

PARTE II
Objetivos: Relacionar ambiente, variable y tipo de dato Distinguir las modificaciones que sufren las variables durante la ejecucin de un algoritmo Distinguir distintos tipos de expresiones Resolver ejercicios utilizando expresiones aritmticas relacionales y lgicas. Si se observa con detenimiento un algoritmo se puede advertir que cada accin necesita de uno o ms objetos para poder ejecutarse. Ejemplo: Enunciado: Utilizando una calculadora realice la suma de dos nmeros Ambiente: Calculadora, numero, tecla + Procesador: Persona
Lic. Contreras, Pamela pgina N 7

Algoritmos y Estructuras de Datos

Algoritmo: Accin Tomar Encender Tipear un Tipear la Tipear un Objeto Calculadora Calculadora Numero Tecla + Numero

Estos objetos tienen caractersticas: Objeto: Calculadora Nombre de objeto: calculadora Tipo de Objeto: Herramientas de trabajo Valor de Objeto: Siempre ser el mismo. (Siempre ser una calculadora) Objeto: Numero Nombre de objeto: Numero Tipo de Objeto: Real Valor de Objeto: Sera un numero que pertenece al conjunto de los reales Objeto: Tecla ms Nombre de objeto: Tecla mas Tipo de Objeto: Clase de tecla Valor de Objeto: Siempre ser el mismo. (Siempre ser una tecla +) FORMALIZACIN NOMBRE

OBJETO

Tiene

TIPO

VALOR Ejemplo: Enunciado: Calcular el promedio de los sueldos de los 30 empleados de una empresa Ambiente: Sueldo, Promedio, Resultado: variable real Procesador: Persona Algoritmo: PARA I DESDE 1 HASTA 30 HACER Conocer sueldo Sumar sueldo FIN PARA Calcular promedio Mostrar resultado

Lic. Contreras, Pamela

pgina N 8

Algoritmos y Estructuras de Datos

De ahora en ms se considerara que el procesador es una computadora por lo cual se tendr en cuenta que para comunicarse con ella se debe utilizar un leguaje con el cual se le ensear s realizar tareas. Esto se lograra mediante la construccin de algoritmos escritos en seudocdigo (un lenguaje natural con el cual se puede expresar la solucin de problema). Nota: Se utilizara el seudocdigo para la construccin de algoritmos aunque la computadora no interpreta el seudocdigo, por eso una vez escrito el algoritmo en seudocdigo debera ser traducido a un lenguaje de programacin el que es interpretado por la computadora. Se convendr en que la computadora reconoce las siguientes reglas: 1. Ejecuta acciones primitivas 2. Reconoce esquemas secuenciales, iterativos y selectivos 3. Evala condiciones 4. Realiza operaciones FORMALIZACIN: Es Dato Utiliza Constante Variable

Computadora ejecuta Accin DATO: Es la forma general en que se refiere a un objeto cuando se opera con la computadora. Cada dato ocupa un lugar en la memoria de la computadora (como una especie de caja) Tiene las mismas caractersticas que un objeto: Nombre, Valor y Tipo. Un dato puede ser de un valor variable o constate y ante esto nos referimos a l como dato variable o dato constante. Es importante notar que de ahora en ms a los datos variables se los llamara simplemente variables y a los datos constantes solamente constantes. Tipo de datos: Cada tipo de dato define un conjunto de valores que puede asumir una variable y esto se utiliza con dos fines: Para que la computadora elija la forma de representacin interna de los datos (como diferenciar un tipo de dato de otro, cuanto espacio en la memoria ocupara un determinado tipo) Para que el programador use las operaciones apropiadas para cada tipo de dato (p.e. sume nmeros enteros y/o reales y no un numero y un nombre) Los lenguajes de programacin proveen un conjunto fijo de tipos de datos llamados tipo de datos primitivos.
Lic. Contreras, Pamela pgina N 9

Algoritmos y Estructuras de Datos

Tipos de Datos Primitivos: Los tipos de datos primitivos que manipulan la mayora de los procesadores son: Numricos Lgicos Carcter Cadena

Tipos de Datos

TIPO DE DATO NUMRICO: Al tipo de dato numrico lo podemos definir de dos formas: Tipo Entero (p.e. 5, 33, -7, 2, -18, +26) Tipo Real (p.e. 5.00, -6.01, +8.47) Expresiones Las expresiones son construcciones de operandos y operadores que devuelven un resultado Expresiones aritmticas Los operandos son variables o constantes de tipo numrico (nmeros enteros y reales). Los operadores son: - + suma - resta - * multiplicacin - / cociente El resultado ser un valor de tipo numrico. Por ejemplo, sean A y B variables del tipo entero, y la siguiente expresin: (A+5)*B-10. El resultado de esta expresin es un nico numero entero que depender de los valores previamente asignados a A y B. Si A=4 y B=2 entonces el resultado de esta expresin ser 8. Nota: Si todos los operandos son del mismo tipo el resultado ser del mismo tipo. Si al menos uno de los operandos de una expresin aritmtica es real el resultado ser real. Reglas de evaluacin de una expresin aritmtica: Las mismas reglas que se utilizan en matemtica. TIPO DE DATO LOGICO: Tambin llamado Bool, Boolean o Boolean. Una variable de tipo Boolean puede tomar uno de los valores: verdadero (V) o falso (F). Expresiones relacionales: Los operandos que aparecen en una expresin relacional deben ser datos del mismo tipo: ambos numricos, carcter, cadena o del tipo lgico. Los operadores son: > Mayor < Menor = Igual
Lic. Contreras, Pamela pgina N 10

Algoritmos y Estructuras de Datos

<> Distinto >= Mayor o Igual <= Menor o Igual El resultado de la evaluacin de estas expresiones es un valor lgico (Verdadero o Falso). Por ejemplo: X + 1 >= y 2 con x, y enteros. Si x = 2 e y = 3 el resultado de la evolucin es V. Si x = 1 e y = 10 el resultado de la evolucin es F. Expresiones lgicas: Los operandos son expresiones relacionales, variables o constantes de tipo lgico. Los operadores permitidos son: NO negacin Y conjuncin O disyuncin El orden de precedencia de los operadores lgicos es NO, Y, O. El resultado de la evaluacin de una expresin lgica es un valor de tipo lgico (verdadero, falso). Este valor se deduce de analizar la siguiente tabla de verdad: Sean A y B dos variables de tipo lgico: A B AyB AoB no A V V V V F V F F V F F V F V V F F F F V Por ejemplo: ( x >5 ) Y ( 1 + z = 4)

Exp. Relacional

Exp. Relacional

Expresin Lgica Tipo de Dato Caracter: Cada computadora reconoce un conjunto finito y ordenado de caracteres. Este conjunto no es comn (no es estndar) a todas las computadoras; pero en general todas manipulan los siguientes caracteres: 1. Conjunto de letras minsculas: a..z (excepto ch, n, ll) 2. Conjunto de letras maysculas: A..Z (excepto CH,N,LL) 3. El conjunto decimales: 0..9 4. Carcter de espacio en blanco.
Lic. Contreras, Pamela pgina N 11

Algoritmos y Estructuras de Datos

5. Caracteres especiales: +, -, %,etc. 6. Signos de puntuacin: . , ; : Una variable de carcter puede tomar como valor uno de los del conjunto mencionado. Una constante de tipo carcter es un elemento del conjunto mencionado y se escribe entre apostrofes para evitar confundirla con el nombre de un dato, operadores, nmeros, etc. Por ejemplo: A A 2 2

nombre de un dato variable. constante tipo carcter. numero. constante tipo carcter.

Tipo de Dato Caracter: Al hablar de cadena se hace referencia a una cadena de caracteres, por lo tanto se considera: Cadenas de caracteres: es una secuencia finita de caracteres encerrada entre apostrofes ( ). Por ejemplo: Juan Prez Maip 123 (o) 224466 Cada cadena tiene una longitud (tamao) que resulta del total de caracteres encerrados entre apostrofes, incluidos los blancos. Un dato tipo cadena es el que puede tomar como valor una cadena de caracteres. Ejemplo Enunciado: Leer nombre, apellido y edad de los pacientes de un medico, hasta que se ingrese un apellido igual a FIN. Cada vez que se lea el apellido LOPEZ y si la edad del paciente es inferior a 60 anos, mostrar su nombre. Ambiente: LOPEZ, FIN: constantes tipo cadena 60: constante tipo numrico NOMBRE, APELLIDO: variable tipo cadena EDAD: variable tipo numrico Procesador: Persona Algoritmo: REPETIR LEER NOMBRE, APELLIDO, EDAD SI (APELLIDO=LOPEZ) Y (EDAD < 60) ENTONCES MOSTRAR NOMBRE HASTA QUE NOMBRE= FIN
Lic. Contreras, Pamela pgina N 12

Algoritmos y Estructuras de Datos

Acciones ACCION

PRIMITIVA O SIMPLE

Acciones Primitivas o Simples:

ESTRUCTURADA

Lectura Asignacin Escritura Como se menciono, todo dato tiene un nombre, un tipo y un valor. Mediante las acciones primitivas de lectura y de asignacin se logra ligar a una variable con un valor determinado y con la accin primitiva de escritura se puede mostrar dicho valor. Lectura: La accin primitiva de lectura permite ligar a una variable con un valor determinado desde un dispositivo externo. El formato de esta accin es: Leer <nombre de variable> Por ejemplo: Leer edad Leer nombre, direccin, edad Asignacin: La accin primitiva de asignacin permite ligar a un objeto con un valor que proviene del mismo ambiente. El formato de esta accin es: <Nombre de variable> := <valor> <Nombre de variable> es el nombre de la variable a la que el procesador le asignara <valor>. := representara el smbolo de asignacin. <valor> podr ser una constante, una variable o el resultado de una expresin. Por ejemplo: A:=2 A:=B A:=B+C Escritura: La accin primitiva de escritura permite comunicar al exterior valores del ambiente a travs de un dispositivo tal como pantalla o impresora.
Lic. Contreras, Pamela pgina N 13

Algoritmos y Estructuras de Datos

El formato de esta accin es: Escribir <Constante, Nombre de variable,> <Constante> ser el valor de un objeto constante <Nombre de variable> representa una o mas nombres de variables que contienen los valores que se quieran mostrar. Por ejemplo: Escribir Programacin I se escribir el valor constante Programacin I Escribir A se escribir el valor de la variable A Escribir A, B, C se escribir el valor de la variable A, B y C Ejemplo Dado el permetro de un cuadrado calcular la longitud del lado. Ambiente: Ambiente: Constantes: Constantes: 4 Cant_lados=4 Variables: Variables: Perimetro,Lado:real. Perimetro,Lado:real. Algoritmo: Algoritmo:
LEER PERIMETRO LADO := PERIMETRO/4 ESCRIBIR LADO LEER PERIMETRO LADO := PERIMETRO/CANT_LADOS ESCRIBIR LADO

Vea en este ejemplo que a una constante se le puede dar un nombre, cuando se hace esto se le debe asignar en el ambiente el valor que tendr e indicar que es constante. Formalizacin de conceptos: Acciones Estructuradas: En la construccin de un algoritmo solo pueden aparecer tres esquemas o estructuras: Secuencia: dos o ms acciones las cuales se ejecutan una sola vez y en un determinado orden. Estas acciones pueden ser simples o estructuradas. Iteracin: una accin la cual se ejecuta 0 (cero) o ms veces. Esta accin puede ser simple o estructurada. REPETIR.HASTA QUE MIENTRAS.FINMIENTRAS PARA.FINPARA Seleccin: dos acciones (simples o estructuradas) de las cuales solo una se ejecutara en un determinado momento de ejecucin del algoritmo. SI ENTONCES SINO FINSI

Lic. Contreras, Pamela

pgina N 14

Algoritmos y Estructuras de Datos

Ejemplo. Leer 10 nmeros y mostrar solo los positivos. Ambiente: I: entero NRO: real 1, 10: ctes enteras Algoritmo: Para I desde 1 hasta 10 hacer Leer NRO Si NRO > 0 Entonces Escribir NRO Finsi Finpara

PARTE III Contadores y Acumuladores


Objetivos: Distinguir loa conceptos de contador y acumulador Utilizar correctamente contadores y acumuladores para resolver problemas Construir un algoritmo para obtener el valor mximo y el valor mnimo. CONTADORES: Actividad N 1: Supngase la siguiente tabla de resultados de un campeonato de futbol. Equipo Goles realizados Boca 21 River 19 Independiente 14 San Lorenzo 12 Estudiantes 1 Racing 8 Cuntos equipos participaron? Cul es el total de goles realizados en el campeonato? En esta actividad se ha contado la cantidad de equipos y acumulado los goles.
Lic. Contreras, Pamela pgina N 15

Algoritmos y Estructuras de Datos

Actividad N 2: Supngase la siguiente lista con las notas obtenidas por alumnos de una materia determinada: Alumno Juan Ana Luis Pedro Maria Carlos Nota 8 7 9 6 7 5

Cantidad de alumnos con nota superior a 6: Promedio de notas de los alumnos con nota superior a 6: En esta actividad se contado los alumnos con nota superior a 6 y acumulado las notas de dichos alumnos para obtener el promedio. Actividad N 3: Supngase la siguiente tabla con datos de los empleados que se jubilarn en una empresa: N de legajo Sexo Sueldo 123 F $ 1200 219 M $ 800 270 M $ 1300 329 F $ 400 128 F $ 500 217 M $ 700 231 M $ 400 Complete: Cantidad de empleados que se jubilarn: __________________________________________ Cantidad de mujeres que se jubilarn: _____________________________________________ Porcentaje de varones que se jubilarn (respecto al total de empleados a jubilarse)_______ Promedio de sueldos de las mujeres que se jubilarn: ________________________________ En esta actividad Qu datos se han contado y qu datos se ha acumulado? _______________________________________________________________________________ Actividad N 4: Sea cont una variable de tipo entero: Indique su valor cuando se ejecutan las siguientes acciones: 1. Cont:= 0 CONT
pgina N 16

Lic. Contreras, Pamela

Algoritmos y Estructuras de Datos

2. 3.

Cont:= Cont + 1 Cont:= Cont + 1

CONT CONT

Actividad N 5: Dado el siguiente algoritmo, realizar el seguimiento para los distintos valores de NUM e indique que valor toma CONT durante la ejecucin. Algoritmo: CONT:= 0 Leer NUM Mientras NUM > 0 CONT:= CONT + 1 Leer NUM Fin mientras Escribir Cantidad de nmeros ledos, CONT Seguimiento: NUM 17 12 23 -10 CONT

Actividad N 6: Dado el siguiente algoritmo, complete donde corresponda y realice el seguimiento para los distintos valores de la variable NUM. Algoritmo: CONT:=0 Leer NUM Mientras NUM>0 hacer Si NUM>15 Entonces CONT:=CONT +1 Finsi Leer NUM Fin mientras Escribir ____________________________. CONT {complete con un texto adecuado} Seguimiento: NUM 17 12 23
Lic. Contreras, Pamela

CONT

pgina N 17

Algoritmos y Estructuras de Datos

-10 Responder las siguientes preguntas: 1. Qu funcin cumple la variable CONT e los dos ltimos algoritmos? 2. Qu tipo de dato debe ser una variable contador? 3. Cul es la asignacin que nos indica que una variable es contador? ACUMULADORES: Sea suma una variable de tipo entero: Suma Indicar su valor cuando se ejecutan las siguientes acciones: 1. 2. 3. suma:= 30 suma:= suma + 10 suma:=suma +45 suma suma suma

Actividad N 7 Dado el siguiente algoritmo, realice el seguimiento para los distintos valores de NUM Algoritmo: SUMA:= 0 Leer NUM Mientras NUM >0 SUMA:= SUMA + NUM Leer NUM Fin mientras Escribir suma de nmero positivos, SUMA Seguimiento: NUM 17 12 5 -10 CONT

Actividad N 8: Dado el siguiente algoritmo, complete donde corresponda y realice el seguimiento para los distintos valores de la variable NUM Algoritmo:
Lic. Contreras, Pamela pgina N 18

Algoritmos y Estructuras de Datos

TOT1:=0 TOT2:=0 Leer NUM Mientras NUM <> 0 hacer Si NUM>0 Entonces TOT1:=TOT1 + NUM Sino TOT2:=TOT2 + NUM Fin si Fin mientras Escribir ______________________________________,TOT1 Escribir ______________________________________,TOT2 Seguimiento: NUM 23 31 -9 45 -7 -9 0 TOT1 TOT2

Responda a las siguientes situaciones: 1. Qu funcin cumple la variable SUMA, TOT1, TOT2 en los ejemplos 7 y 8? 2. Qu tipo de dato debe ser una variable acumulador? 3. El valor en el cual se incrementa un acumulador es: ___________________ 4. Si el valor de incremento es 1, el acumulador se convierte en un _____________

Bsqueda de mximo y mnimo de un conjunto de valores


Ejemplo a): En un banco se procesa informacin de las extracciones realizadas por distintos ahorristas de un banco. Por cada ahorrista se ingresa: nombre y monto extrado. Se pide: Listar el nombre de la persona que realiz la mxima extraccin Suponer que el ingreso de informacin termina con un nombre de ahorrista FIN Supongamos el siguiente lote de pruebas:

Lic. Contreras, Pamela

pgina N 19

Algoritmos y Estructuras de Datos

Nombre Carlos Pez Ana Moreno Luis Prez Alicia Gmez Julio Martin Carmen Snchez FIN

Monto extrado $ 500 $ 800 $ 400 $ 1000 $ 600 $ 700

Ambiente: el ambiente debe incluir en primer instancia dos variables NOMBRE y MONTO para representar la informacin de cada ahorrista. Adems es necesario utilizar una variable MAXIMO donde se almacenar el valor de la mxima extraccin y NOMX donde se almacenar el nombre asociado a esa mxima extraccin. Luego, el ambiente es el siguiente: NOMBRE: cadena MONTO: real MAXIMO: real NOMX: cadena Nota: suponemos que hay un solo ahorrista con mxima extraccin. Actividad N 9: Interprete el seguimiento para el lote de pruebas dado anteriormente, sabiendo que MAXIMO, posee un valor inicial 0. Nombre Carlos Pez Ana Moreno Luis Prez Alicia Gmez Julio Martin Carmen Snchez Monto $ 500 $ 800 $ 400 $ 1000 $ 600 $ 700 NOMX Carlos Pez Ana Moreno Ana Moreno Alicia Gmez Alicia Gmez Alicia Gmez MAXIMO $ 500 $ 800 $ 800 $ 1000 $ 1000 $ 1000

Actividad N 10: A partir de la actividad anterior infiera el algoritmo Actividad N11: Considerando la narrativa dada en el ejemplo a): a) Listar el nombre de la persona que realizo la extraccin de menor monto Ambiente: NOMBRE: cadena MONTO, MININO: real NOMX: cadena
Lic. Contreras, Pamela pgina N 20

Algoritmos y Estructuras de Datos

Suponer MINIMO inicializado con un valor superior a cualquier posible extraccin. MINIMO:=10000 b) Completar la siguiente tabla: NOMBRE Carlos Pez Ana Moreno Luis Prez Alicia Gmez Julio Martin Carmen Snchez c) MONTO $ 500 $ 800 $ 400 $ 1000 $ 600 $ 700 NOMX MINIMO

Escribir el algoritmo correspondiente.

Anidamiento de Estructuras:
1. Anidamiento de Si Fin Si Se ha visto que las acciones que siguen, ya sea a la alternativa Verdadera o Falsa, en una estructura de decisin, puede ser simples o estructuradas. En particular puede ser otro Si Fin Si, en este caso estamos en presencia de estructuras anidadas. Vase un ejemplo generalizado: Sean a, b, c, d acciones, p, q, r, s, condiciones Si p Entonces a, b Si q Entonces Si r Entonces c Sino si s Entonces d Sino e Fin si Fin Si Sino f Fin si Sino g Fin si

Lic. Contreras, Pamela

pgina N 21

Algoritmos y Estructuras de Datos

Ejecucin: Predicados: p q V V V F V F F V V V V V Acciones a ejecutar r s V V V V a,b,f F F a,b,f V F g F F a,b,e F V a,b,d

Ejemplo b): Se lee un importe de sueldo y un cdigo de un empleado. Si el cdigo es 4 sumarle al importe $ 500, si es 6 sumarle al importe $ 700, si es 7 sumarle al importe $ 1000, caso contrario sumarle $ 200. Escribir el sueldo del empleado. Leer SUELDO, COD Si COD = 4 Entonces SUELDO:= SUELDO + 500 Sino si COD = 6 Entonces SUELDO:= SUELDO + 700 Sino Si COD = 7 Entonces SUELDO := SUELDO + 1000 Sino SUELDO:= SUELDO + 200 Fin si Fin si Fin si Escribir SUELDO 2. Anidamiento de iteraciones Del mismo modo que es posible incluir dentro de una estructura de decisin otra estructura de decisin, tambin dentro de una estructura de repeticin puede incluirse otra de repeticin. La regla de anidamiento es la siguiente: la estructura interna debe estar incluida totalmente dentro de la estructura externa, es decir evitar solapamientos de estructuras. El siguiente algoritmo es vlido: Mientras I<= 30 hacer Leer V Para T desde 1 hasta 5 -------------Fin Para I:=I+1 Fin Mientras Repetir Mientras
Lic. Contreras, Pamela pgina N 22

Algoritmos y Estructuras de Datos

------------Fin Mientras Hasta Que No es vlido el siguiente anidamiento Mientras CONT<100 Leer NUM Para I desde 1 hasta NUM hacer ------------CONT:=CONT + 1 Fin mientras Fin Para Ejemplo: Para cada uno de los mese de un ao se ingresan distintas tomas pluviales registradas en el mes, el ingreso de tomas pluviales por mes germina cuando el valor es 0. Escribir para cada mes el total de lluvia cada. Para I desde 1 hasta 12 hacer SUMA:= 0 Leer CANT Mientras CANT<> 0 hacer SUMA:=SUMA + CANT Leer CANT Fin Mientras Escribir mes, I, cantidad lluvia, SUMA Fin Para Ejemplo: Teniendo en cuenta el enunciado del ejercicio anterior, escribir el nmero de mes en que hubo mayor cantidad de lluvia (suponer solo un mes con mxima cantidad) MAX:=0 Para I desde 1 hasta 12 hacer SUMA:=0 Leer CANT Mientras CANT <> 0 SUMA:=SUMA + CANT Leer CANT Fin mientras Si SUMA>MAX Entonces MAX:=SUMA MES:=I Fin si Fin Para Escribir el mes con mayor cantidad de lluvia es, MES
Lic. Contreras, Pamela pgina N 23

Algoritmos y Estructuras de Datos

Alternativa Mltiple: El ejercicio A fue resuelto anteriormente utilizando anidamiento de estructuras Si Fin Si. Como cdigo es un variable numerable se puede utilizar una nueva estructura: segn Fin Segn y resolverlo con el siguiente algoritmo: Leer SUELDO, COD Segn COD hacer 4: SUELDO:= SUELDO + 500 6: SUELDO:= SUELDO + 700 7: SUELDO:= SUELDO + 1000 De otro modo SUELDO:= SUELDO + 200 Fin segn Escribir SUELDO Nota: el ordenamiento de los valores(rtulos) es arbitrario, pero no puede aparecer dos veces el mismo rotulo. Si para diferentes valores de la variable se requiere la misma accin, tales valores pueden escribirse en una lista separada por coma. Por ejemplo: Segn M hacer 1,3,7: escribir M/2 4,6 : escribir M+3 Fin Segn Segn MES hacer 1,3,5,7,8,10,12: DIA:=31 2 : DIA:=28 4,6,9,11 : DIA:=30 Fin Segn Forma genrica: SEGN E HACER e1: accin 1 e2: accin 2 : : en: accin n FIN SEGN

Lic. Contreras, Pamela

pgina N 24

Algoritmos y Estructuras de Datos

Grficamente: E

e1

e2

en

De otro modo

Accin 1

Accin 2

Accin n

Accin b

Donde E es una variable o expresin numerable, ei son distintos valores que puede tomar E. segn el valor de E se ejecutar UNA Y SOLO UNA de las acciones, ver figura.

Practico N 1:
Ejercicio 1: Multiplicar dos nmeros con una calculadora, y decir si el resultado es mayor que 50. Ambiente: Procesador: Algoritmo: Ejercicio 2: Multiplicar pares de nmeros y muestre sus resultados hasta que dicho producto sea mayor que 2000 Ambiente: Procesador: Algoritmo: Realice el seguimiento del algoritmo para los siguientes pares de valores: (300,5) (20,20) (150,100) Se muestra el producto del ltimo par de nmeros? Por qu? Ejercicio 3: Invente un enunciado de un problema donde surja la necesidad de resolverlo mediante estructura Si - Fin Si, determine ambiente y procesador. Ejercicio 4: Una secretaria debe entregar solicitudes de inscripcin a aspirantes que se inscriben para ingresar a la facultad. Finalizara este proceso cuando no hayan ms aspirantes. Ambiente: Procesador:
Lic. Contreras, Pamela pgina N 25

Algoritmos y Estructuras de Datos

Algoritmo: Mientras hayan aspirantes hacer Entregar solicitud Cobrar solicitud Recibir dinero Si dinero> valor de solicitud Entonces entregar vuelto Fin si Fin mientras Decir cuntas veces se ejecutar el ciclo Indique cual es la condicin que permite que itere el ciclo Qu estructuras utiliza en este algoritmo?

Ejercicio 5: Realice las modificaciones necesarias al ejercicio anterior para realizar la estructura repetir. Ejercicio 6: Calcule el rea de un terreno, muestre el resultado y diga si se trata de una superficie rectangular o cuadrada. Determine ambiente, procesador y escriba el algoritmo. Ejercicio 7: Sume importes de ventas de un negocio hasta que dicha suma supere los 3000 pesos. Ejercicio 8: Pague el sueldo a diez empleados de una empresa, sabiendo que el importe a abonar a los empleados difiere segn su categora. Esto es si es 1 el sueldo es $ 400 y si el 2 el sueldo es $ 600. Determine ambiente, procesador y escriba el algoritmo. Ejercicio 9: Dado el siguiente lote de pruebas determine cul ser el resultado del algoritmo que se le propone: Lote de prueba: los pesos a ingresar son: 50, 63, 48,59,28,0. Algoritmo: Ingresar PESO Mientras PESO <> 0 hacer Si PESO > 55 Entonces contar Fin si Ingresar PESO Fin mientras Mostrar resultado de contar.

Lic. Contreras, Pamela

pgina N 26

Algoritmos y Estructuras de Datos

Ejercicio 10: Calcular el promedio de las edades de 25 afiliados de un partido poltico. Escriba el algoritmo Ejercicio 11: Dado el siguiente enunciado y su algoritmo defina el ambiente(especifique constantes y variables) Enunciado: calcular el precio de N libros, teniendo en cuenta que por 20 libros se pag $ 800. P1 conocer N P2 - multiplicar N x 800 P3 dividir el resultado anterior en 20 P4 mostrar el precio Ejercicio 12: Dado el permetro de un polgono regular y la cantidad de lados, indicar cunto vale cada lado. Ejercicio 13: Realice el siguiente algoritmo con el lote de valores dados: Leer poblacin Leer superficie Densidad:=poblacin/superficie Escribir Densidad Lote de pruebas: poblacin 550.000 superficie 68089,58 km2 Ejercicio 14: Realizar el seguimiento: A:=* B:=- LEER C D:=C*2 A:=10 B:=A ESCRIBIR A,B,C Lote de pruebas C=5 Ejercicio 15: Dado un conjunto de 10 nmeros entero, al finalizar la lectura indicar si se leyeron nmeros positivos. Ejercicio 16: D un lote de pruebas y realice el seguimiento del siguiente algoritmo, complete el mensaje de la sentencia escribir.
Lic. Contreras, Pamela pgina N 27

Algoritmos y Estructuras de Datos

Cul sera el enunciado del mismo? LEER AO MIENTRAS AO <> 0 HACER SI AO<2010 ENTONCES E:=2010 AO ESCRIBIR ______________________________, E FIN SI FIN MIENTRAS Ejercicio 17: Lea nombres y apellidos hasta que lea la cadena FIN y cada vez que lea el apellido PEREZ muestre el nombre ledo. Ejercicio 18: Escriba un enunciado donde utilice la estructura Para fin para Ejercicio 19: Escriba un enunciado donde utilice la estructura Si finsi en la cual la condicin sea una expresin lgica y se ejecuten acciones por el entonces y por el sino. Ejercicio 20: Leer nmero enteros hasta que el nmero sea el nmero 150. Indicar cuantos nmeros fueron ledos, sin incluir el 150. Qu modificacin debe realizar al algoritmo para contar el nmero 150? Ejercicio 21: Leer 100 temperaturas. Decir cuntas temperaturas superiores a los 40 se ingresaron. Ejercicio 22: Leer nmeros enteros hasta que ingrese el -99. Listar el total de nmeros pares e impares ledos. Ejercicio 23: Dado el siguiente algoritmo, realice el seguimiento para los distintos valores de NUM Algoritmo: SUMA:=0 CONT:=0 Leer NUM Mientras NUM >0 CONT:=CONT +1 SUMA:=SUMA +NUM Leer NUM Fin mientras Escribir cantidad de nmeros positivos, CONT Escribir total de nmeros positivos, SUMA
Lic. Contreras, Pamela pgina N 28

Algoritmos y Estructuras de Datos

Seguimiento: NUM 17 12 5 -10 CONT SUMA

Ejercicio 24: Leer temperaturas registradas en distintas zonas del pas. El ingreso termina con temperatura igual a 100. Se pide: Listar el total de temperaturas menores que 0 que fueron ledas Listar el promedio de temperaturas registradas. Ejercicio 25: Para el siguiente enunciado construir el algoritmo. Se ingresa informacin de los 20000 aspirantes a ingresar en la carrera militar. Por cada aspirante se ingresa: edad, sexo y arma. Las armas estn codificadas de la siguiente manera: E: Ejrcito, M: Marina, A: Aviacin y el sexo es F si es femenino y M si es masculino. Se pide: Listar la cantidad de mujeres que desean ingresar a la carrera militar. Listar el promedio de edades de los varones que desean ingresar al Ejrcito Listar la edad mxima de los aspirantes. Ejercicio 26: Realizar el seguimiento del siguiente algoritmo: Lote de pruebas: 1) a=3, y b=4 2) a=2, y b=3 c:=0 d:=0 e:=0 Leer a,b Mientras e<>a hacer Mientras d<>b hacer c:=c+1 d:=d+1 Fin mientras e:=e+1 d:=0 Fin mientras Escribir c
Lic. Contreras, Pamela pgina N 29

Algoritmos y Estructuras de Datos

Ejercicio 27: Realizar el seguimiento del siguiente algoritmo: Lote de pruebas: 1) a=2, y b=4 2) a=0, y b=5 c:=0 d:=1 e:=0 Leer a,b Mientras e<>a hacer Repetir c:=c+1 d:=d*2 Escribir d Hasta que d>b e:=e+1 d:=1 Fin mientras Escribir c Ejercicio 28: Una fbrica elabora distintos productos vendindolos a N clientes. Al trmino del mes, cuando el cliente abona su deuda, el dueo desea hacer una promocin, de acuerdo al monto adeudado: Mayor que $ 300 y menor que $ 500, un descuento del 20% Mayor que $ 500 inclusive, un descuento del 30% Por cada cliente se ingresa el monto adeudado, se pide: a) Escribir el total a pagar por cada cliente. b) Escribir el total de clientes que quedaron fuera de la promocin Ejercicio 29: La polica de La Rioja desea procesar la informacin de 30 puestos camioneros. Por cada puesto se ingresa datos como: Patente del vehculo Cdigo del vehculo Edad del conductor El ingreso por cada puesto caminero finaliza con nmero de patente igual a cero. Los cdigos de vehculos son: A - auto C - Camin M - moto O - otros

Lic. Contreras, Pamela

pgina N 30

Algoritmos y Estructuras de Datos

Se solicita: a) Patente del conductor de mayor edad por cada puesto b) Porcentaje de camiones por puesto c) Cantidad de autos que pasaron en total d) Utilizar una bandera (variable lgica) para indicar por cada puesto si se registr el paso de alguna moto. Ejercicio 30: En un hipdromo, luego de una carrera se ingresa el nmero de caballo ganador. En total hay 5 ventanillas en las cuales ya se han recibido las apuestas, que se procesarn de la siguiente forma: por cada ventanilla se deben leer los nmeros de los caballos apostados. El ingreso por ventanilla finaliza con nmero de caballo igual a cero. Se pide confeccionar un algoritmo que permita escribir: a) La ventanilla que debe pagar ms boletas ganadoras b) Si hay alguna ventanilla que no tenga que pagar apuestas al caballo ganador(usar bandera lgica) c) El porcentaje que representa el total de boletas ganadoras con respecto del total de boletas recibidas.

Lic. Contreras, Pamela

pgina N 31

También podría gustarte