Sie sind auf Seite 1von 74

ALGORITMOS Y PROGRAMACIN

CUADERNO DE TRABAJO PARA ESTUDIANTES

ALGORITMOS Y PROGRAMACIN CUADERNO DE TRABAJO DIRIGIDO A ESTUDIANTES DE EDUCACIN BSICA Juan Carlos Lpez Garca, Primera Edicin, 2007 De esta edicin: 2007, Fundacin Gabriel Piedrahita Uribe Cali, Colombia. editor@eduteka.org http://www.eduteka.org

Todos Los derechos reservados. Este cuaderno de trabajo puede ser descargado desde Eduteka y utilizado gratuita y libremente por los educadores, siempre y cuando lo hagan sin fines omerciales. Se otorga permiso para fotocopiar o reproducir este material siempre y cuando se utilice en el aula como parte de un curso de programacin. Est expresamente prohibido alojar este documento o parte de l, sin permiso escrito del autor, en un sitio Web diferente a Eduteka. Este documento es complemento de la Gua de Algoritmos y Programacin para docentes: http://www.eduteka.org/AlgoritmosProgramacion.php El autor agradece el envo de cualquier comentario sobre este Cuaderno de Trabajo a los correos: editor@eduteka.org jualop@gmail.com

UNIDAD 1
1. METODOLOGA PARA RESOLVER PROBLEMAS MATEMTICOS

En la mayora de los textos escolares de matemticas se recomiendan los siguientes procedimientos para solucionar problemas matemticos:

1. COMPRENDER EL PROBLEMA. Leer el problema varias veces Qu datos me dan en el enunciado del problema? Cul es la pregunta que me da el problema? Qu debo lograr? Cul es la incgnita del problema? Organizar la informacin Agrupar los datos en categoras Trazar una figura o diagrama.

2. HACER EL PLAN. Escoger y decidir las operaciones a efectuar. Eliminar los datos intiles. Descomponer el problema en otros ms pequeos.

3. EJECUTAR EL PLAN (Resolver). Ejecutar en detalle cada operacin. Simplificar antes de calcular. Realizar un dibujo o diagrama

4. ANALIZAR LA SOLUCIN (Revisar). Dar una respuesta completa Hallar el mismo resultado de otra manera. Verificar por apreciacin que la respuesta es adecuada.

Ejemplo 1-1 En un juego, el ganador obtiene una ficha roja; el segundo, una ficha azul; y el tercero, una amarilla. Al final de varias rondas, el puntaje se calcula de la siguiente manera: Al triple de la cantidad de fichas rojas se adicionan las fichas azules y se descuenta el doble de las fichas amarillas. Si Andrs lleg 3 veces en primer lugar, 4 veces de ltimo y 6 veces de intermedio, Qu puntaje obtuvo? [Adaptado de Melo (2001), pgina 30]. R/. COMPRENDE Leer detenidamente el problema Cuntos colores de fichas se reparten? Cuntas fichas rojas, azules y amarillas obtuvo Andrs? Qu pregunta el problema?

PLANEA Para hallar el puntaje que obtiene Andrs por sus llegadas de primero, calcular el triple de la cantidad de fichas rojas. Para hallar el puntaje por sus llegadas en segundo lugar, contar la cantidad de fichas azules. Para hallar el puntaje que pierde por sus llegadas en ltimo lugar, calcular el doble de la cantidad de fichas amarillas. Para hallar el puntaje total, calcular la suma de los puntajes por las fichas rojas y azules, restarle los puntos de las fichas amarillas.

RESUELVE Por tres fichas rojas: 3 x 3 = 9 puntos Por seis fichas azules: 6 = 6 puntos Por cuatro fichas amarillas: 4 x 2 = 8 puntos Para obtener el puntaje final de Andrs, sumar los puntos obtenidos con las fichas rojas y azules (9 + 6 = 15 puntos) y de este resultado restar los puntos representados por las fichas amarillas (15 8 = 7 puntos).

REVISA El puntaje que obtuvo Andrs es 7 puntos. Verificar las operaciones y comparar los clculos con la solucin estimada.

Actividad 1-1 Debes tener en cuenta (y anotar) las actividades que realizas para resolver estos problemas y clasificarlas en cada una de las cuatro etapas vistas: comprender, planear, resolver y revisar (puedes utilizar una copia de la plantilla que aparece en el anexo 3). 1. En la escuela de ciencias sociales hay dos grupos de asignaturas: Geografa, con 124 alumnos e Historia, con 220. Si hay 25alumnos que estudian Geografa e Historia, cuntos alumnos tiene la academia?. Para resolver este problema, debes tener conocimientos sobre conjuntos (representacin, clasificacin e interseccin). Es buena idea que construyas una tabla para organizar la informacin y un diagrama de Venn para representar los datos. 2. Orlando compr 15 metros de tela para mandar a fabricar una cortina, a $2890 el metro. Para colgarla necesita 28 aros de madera cuyo valor es de $235 cada uno. El riel y dems accesorios cuestan $4550. Si la modista cobra $500 por cada metro de tela confeccionado y la instalacin vale $2000 Cunto es el costo total de la cortina instalada? Debes tener conocimientos sobre sumas y multiplicaciones. 3. El peso neto indicado en la envoltura de un jabn de bao es de 140 gramo s y el peso neto indicado en otro jabn es de 80 gramos. El primero vale $840 y el segundo $640. Cul de los dos es ms costoso? Debes tener conocimientos sobre sistemas de medidas (peso) y divisiones. Nota: las anteriores actividades fueron adaptadas de Cubo Mgico 4 (Casasbuenas & Eslava, 1985) y de Dominios 5 (Melo, 2001).

2. ETAPAS DEL CICLO DE PROGRAMACIN DE COMPUTADORES

Muchos expertos en programacin afirman que para elaborar en un computador procedimientos que realicen determinadas tareas, se deben seguir cuatro fases o etapas.

Estas fases concuerdan con los procedimientos para solucionar problemas, vistos anteriormente:

1. 2. 3. 4.

Analizar el problema (Entender el problema) Disear un algoritmo (Trazar un plan) Traducir el algoritmo a un lenguaje de programacin (Ejecutar el plan) Depurar el programa (Revisar)

Como puedes apreciar, hay una semejanza entre los mtodos utilizados para solucionar problemas matemticos y las cuatro fases para solucionar problemas con ayuda del computador en otras reas del conocimiento como las matemticas.

3. ALGORITMOS
En la naturaleza hay muchos procesos que puedes considerar como Algoritmos ya que tienen procedimientos y reglas. Incluso, muchas veces no somos conscientes de ellos. Por ejemplo, el proceso digestivo es un concepto de algoritmo con el que convivimos a diario sin que haga falta un definicin precisa de este proceso. El hecho de que conozcas cmo funciona el sistema digestivo, no implica que los alimentos que consumas te alimenten ms o menos. La familiaridad de lo que sucede da a da nos impide ver muchos algoritmos que pasan a nuestro alrededor. Procesos, rutinas o biorritmos naturales como la gestacin, las estaciones, la circulacin sangunea, los ciclos csmicos, etc, son algoritmos naturales que generalmente pasan desapercibidos. Ejemplo 1-2 Un procedimiento que realizamos varias veces al da consiste en lavarnos los dientes. Veamos la forma de expresar este procedimiento como un Algoritmo: 1. 2. 3. 4. 5. 6. 7. 8. Tomar la crema dental Destapar la crema dental Tomar el cepillo de dientes Aplicar crema dental al cepillo Tapar la crema dental Abrir la llave del lavamanos Remojar el cepillo con la crema dental Cerrar la llave del lavamanos

9. Frotar los dientes con el cepillo 10. Abrir la llave del lavamanos 11. Enjuagarse la boca 12. Enjuagar el cepillo 13. Cerrar la llave del lavamanos 14. Secarse la cara y las manos con una toalla Ejemplo 1-3 Veamos que algo tan comn como los pasos para cambiar una bombilla (foco) se pueden expresar en forma de Algoritmo: 1. 2. 3. 4. 5. 6. 7. Ubicar una escalera o un banco debajo de la bombilla fundida Tomar una bombilla nueva Subir por la escalera o al banco Girar la bombilla fundida hacia la izquierda hasta soltarla Enroscar la bombilla nueva hacia la derecha en el plafn hasta apretarla Bajar de la escalera o del banco Fin

Los Algoritmos permiten describir claramente una serie de instrucciones que debe realizar el computador para lograr un resultado previsible. Vale la pena recordar que un procedimiento de computador consiste de una serie de instrucciones muy precisas y escritas en un lenguaje de programacin que el computador entienda como lo es Logo. En resumen, un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la solucin de un determinado problema. Los hay tan sencillos y cotidianos como seguir la receta del mdico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solucin de problemas muy complejos.

Ejemplo 1-4 Consideremos algo ms complejo como el algoritmo de Euclides para hallar el Mximo Comn Divisor (MCD) de dos nmeros enteros positivos dados. Obsrvese que no se especifica cules

son los dos nmeros, pero si se establece claramente una restriccin: deben ser enteros y positivos.

ALGORITMO 1. 2. 3. 4. Paso 1: Inicio. Paso 2: Leer los dos nmeros (a y b). Avanzar al paso 3. Paso 3: Comparar a y b para determinar cul es mayor. Avanzar al paso 4. Paso 4: Si a y b son iguales, entonces ambos son el resultado esperado y termina el algoritmo. En caso contrario, avanzar al paso 5. 5. Paso 5: Si a es menor que b, se deben intercambiar sus valores. Avanzar al paso 6; si a no es menor que b, avanzar al paso 6. 6. Paso 6: realizar la operacin a menos b, asignar el valor de b a a y asignar el valor de la resta a b. Ir al paso 3.

Actividad 1-2 Discutir en parejas el ejemplo de la bombilla y proponer algunas mejoras. Luego, un voluntario debe pasar al tablero y escribir un Algoritmo con participacin de toda la clase.

Actividad 1-3 Reflexiona sobre el lenguaje que utilizas diariamente para comunicarte con tus padres, hermanos, profesores y compaeros. Utilizas un lenguaje preciso? utilizas vocablos corrientes?

Actividad 1-4

A diferencia de los seres humanos que realizan actividades sin detenerse a pensar en los pasos que deben seguir, los computadores son muy ordenados y necesitan que quien los programa les especifique cada uno de los pasos que debe realizar y el orden lgico de ejecucin.

Numerar en orden lgico los pasos siguientes (pescar): ___ El pez se traga el anzuelo. ___ Enrollar el sedal. ___ Tirar el sedal al agua. ___ Llevar el pescado a casa. ___ Quitar el Anzuelo de la boca del pescado. ___ Poner carnada al anzuelo. ___ Sacar el pescado del agua.

4. LENGUAJE PSEUDOCDIGO PARA REPRESENTAR ALGORITMOS

Los Algoritmos se puede expresar de muchas maneras, pero en este curso se tratarn solo dos formas: Seudocdigo y Diagrama de Flujo. En Seudocdigo la secuencia de instrucciones se representa por medio de palabras en forma de frases o proposiciones, mientras que en un Diagrama de Flujo se representa por medio de grficos.

Ejemplo 1-5 Disear un algoritmo (seudocdigo) para hallar el rea de un tringulo rectngulo cuya Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm. R/ ANLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente planteado. Resultados esperados: El rea de un tringulo rectngulo. Datos disponibles: Base, Altura, Hipotenusa, tipo de tringulo. La incgnita es el rea y todos los valores son constantes. El valor de la hipotenusa se puede omitir. Debes preguntarte si tus conocimientos actuales de matemticas te permiten resolver este problema; de no ser as, debes plantear una estrategia para obtener los conocimientos requeridos. Determinar las restricciones: Utilizar las medidas dadas. Procesos necesarios: Guardar en dos variables (BASE y ALTURA) los valores de Base y Altura; Guardar en una constante (DIV) el divisor 2; aplicar la frmula BASE*ALTURA/DIV y guardar el resultado en la variable AREA; comunicar el resultado (AREA).

ALGORITMO EN SEUDOCDIGO Paso 1: Inicio Paso 2: Asignar el nmero 2 a la constante "div" Paso 3: Asignar el nmero 3 a la constante base Paso 4: Asignar el nmero 4 a la constante altura Paso 5: Guardar en la variable "rea" el resultado de base*altura/div Paso 6: Imprimir el valor de la variable "rea" Paso 7: Final

Actividad 1-6 Elabora un algoritmo en seudocdigo para cada uno de los siguientes problemas (puedes utilizar una copia de la plantilla que aparece en el anexo 4): 1. 2. 3. 4. Hallar el permetro de un cuadrado cuyo lado mide 5 cm. Hallar el permetro de un crculo cuyo radio mide 2 cm. Hallar el rea de un cuadrado cuyo lado mide 5 cm. Hallar uno de los lados de un rectngulo cuya rea es de 15 cm2 y uno de sus lados mide 3 cm. 5. Hallar el rea y el permetro de un crculo cuyo radio mide 2 cm. 6. Hallar el rea de un pentgono regular de 6 cm de lado y con 4 cm de apotema.

5. VARIABLES, CONSTANTES E IDENTIFICADORES

En programacin, las Variables son espacios de trabajo reservados para guardar datos (valores). El valor de una Variable puede cambiar en algn paso del Algoritmo o permanecer invariable; por lo tanto, el valor que contiene una variable es el del ltimo dato asignado a esta. Ejemplo 1-6 En el siguiente diagrama de flujo, "AREA" es un ejemplo de Variable; en el paso 5 se guard en ella el resultado de multiplicar "BASE" por "ALTURA" y en el paso 6 se utiliz nuevamente para guardar el valor de dividir su propio contenido ("AREA") entre la Constante "DIV".

En MicroMundos se utiliza el comando da para asignar un valor a una variable o constante. La sintaxis es: da nombreVariable valor da pais Colombia da valorMatricula 150000 Para utilizar el valor almacenado en una variable o constante se debe anteponer dos puntos (:) al nombre. La sintaxis es: :nombreVariable :pais :valorMatricula Los dos puntos significan no quiero la palabra nombreVariable; quiero el valor almacenado en nombreVariable.

Ejemplo 1-7 Escribe en el rea de procedimientos las siguientes lneas de cdigo: para equiltero :tamao limpia cp repite 3 [adelante :tamao derecha 120] fin

Ahora escribe en el centro de mando de MicroMundos la palabra equiltero seguida por un nmero que representa el tamao de cada lado del tringulo (ejemplo: equiltero 70). La variable local: tamao creada en la lnea de ttulo del procedimiento equiltero, contiene el valor 70 mientras el procedimiento se est ejecutando. Los dos puntos : que ubicados antes del nombre de la variable tamao le indican a Logo que no se quiere la palabra tamao si no el valor que contiene la variable tamao. Las variables Globales se crean con los mandos da o nombra. Estas variables solo pierden su valor cuando se cierra MicroMundos o cuando se borran con el mando bnombres.

Ejemplo 1-8 Escribe en el rea de procedimientos las siguientes lneas de cdigo: para tipoVariable :valorParmetro limpia da "variableGlobal 150 local "variableLocal da "variableLocal 20 fin

Ahora escribe en el centro de mando de MicroMundos la secuencia de instrucciones en cursiva y debes obtener las respuestas subrayadas:

tipoVariable 70 muestra :valorParmetro valorParmetro no tiene valor muestra :variableLocal variableLocal no tiene valor muestra :variableGlobal 150

Observa que las variables :valorParmetro y :variableLocal no conservan su valor por fuera del procedimiento tipoVariable, mientras que la variable :variableGlobal es de tipo global y conserva su valor (150) por fuera del procedimiento donde fue creada. Por su parte, las Constantes se crean en Logo de la misma forma que las variables y consisten en datos que, luego de ser asignados, no cambian en ninguna instruccin del Algoritmo. Pueden contener constantes matemticas (pi) o generadas para guardar valores fijos (3.8, "Jorge", etc). En el Algoritmo de la Ilustracin 5-1, "DIV" es un ejemplo de Constante. Ejemplo 1-9 Las variables y constantes adems de tener un Nombre (identificador) para poder referirnos a ellas en los procedimientos, guardan un Valor en su interior.

Actividad 1-7 Analiza el siguiente ejemplo y escribe en forma de ecuacin las situaciones planteadas.

El doble de la edad de Carlos Andrs es 32 aos: edadCarlos = constante edad de Carlos Andrs; 2 x edadCarlos = 32

Situaciones: 1. 2. 3. 4. 5. 6. La mitad de un valor (valor1) es 60 Cuatro veces un nmero (nmero1) equivale a 20 Un nmero (nmero2) disminuido en 5 es 18 El doble (elDoble) del precio de una manzana La midad (laMitad) del precio de una gaseosa el triple (elTriple) de mi edad

Cuantas situaciones similares puedes plantear tu. A continuacin encontrars una serie de reglas para asignar nombres (identificadores) a variables, constantes y procedimientos: Los nombres pueden estar formados por una combinacin de letras y nmeros (saldoMes, salario, fecha2, baseTringulo, etc). El primer carcter de un nombre debe ser una letra. La mayora de los lenguajes de programacin diferencian las letras maysculas de las minsculas. Con solo leer los nombres se puede entender lo que contienen. Deben ser muy descriptivos; no utilizar abreviaturas, a menos que se justifique plenamente. Es conveniente utilizar una sola palabra para nombrar pginas, controles, variables, etc. No utilizar caracteres reservados (%, +, /, >, etc). MicroMundos admite letras acentuadas (, , , , ). Se debe tener en cuenta que algunos lenguajes de programacin no admiten las tildes. No utilizar palabras reservadas por los lenguajes de programacin. Los nombres de procedimientos, variables y constantes deben empezar con minscula. Ejemplo, fecha, suma, etc. Si es un nombre compuesto por varias palabras, cada una de las palabras (con excepcin de la primera) deben empezar con mayscula. Ejemplo: fechaInicial, baseTringulo, etc.

El tipo de nombre identificadores- que se asigne a variables, constantes y procedimientos es muy importante. Cuando dejas de trabajar en un proyecto por varios das, es ms fcil para ti retomar la actividad si los identificadores describen muy bien el contenido de variables, constantes y procedimientos. Actividad 1-8 Cules de los siguientes nombres de Variables NO son validos y por qu? 1. nmeroX 2. Numero X 3. 7 4. A(45+ 5. VII 6. 7mesas 7. sieteMesas

6. SMBOLOS DE LOS DIAGRAMAS DE FLUJO PARA REPRESENTAR

ALGORITMOS

Reglas bsicas para elaborar Diagramas de Flujo: Poner un encabezado que incluya un ttulo que identifique la funcin del algoritmo; el nombre del autor; y la fecha de elaboracin. Slo se pueden utilizar los smbolos anteriores. Los diagramas se deben dibujar de arriba haca abajo y de izquierda a derecha. La ejecucin del programa siempre empieza en la parte superior del diagrama; el sitio donde cruza a la otra; Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetra. Cada rombo de decisin debe tener al menos dos lneas de salida (una para SI y otra para NO).

Las acciones y decisiones se deben describir utilizando el menor numero de palabras posible; sin que resulten confusas; Todo el Diagrama debe ser claro, ordenado y fcil de recorrer. Los smbolos de Inicio y Final deben aparecer solo una vez. La direccin del flujo se debe representar por medio de flechas (lneas de flujo). Todas las lneas de flujo deben llegar a un smbolo o a otra lnea. Una lnea de flujo recta nunca debe cruzar a otra. Cuando dos lneas de flujo se crucen, una de ellas debe incluir una lnea arqueada en. El Diagrama se debe probar recorrindolo con datos iniciales simples.

Actividad 1-9 Basndote en la actividad 1-6, convierte los algoritmos elaborados en seudocdigo en diagramas de flujo (puedes utilizar una copia de la plantilla que aparece en el anexo 4): a. b. c. d. Hallar el permetro de un cuadrado cuyo lado mide 5 cm. Hallar el permetro de un crculo cuyo radio mide 2 cm. Hallar el rea de un cuadrado cuyo lado mide 5 cm. Hallar uno de los lados de un rectngulo cuya rea es de 15 cm2 y uno de sus lados mide 3 e. cm. f. Hallar el rea y el permetro de un crculo cuyo radio mide 2 cm. g. Hallar el rea de un pentgono regular de 6 cm de lado y con 4 cm de apotema.

7. ENTORNO DE TRABAJO QUE PRESENTA MicroMundos PRO

8. PALABRAS RESERVADAS DE MicroMundos PRO

Todos los lenguajes de programacin definen unas palabras para nombrar sus comandos, instrucciones y funciones. Ten en cuenta que no puedes utilizar ninguna de las siguiente palabras para nombrar una variable o un procedimiento.

9. TRADUCIR ALGORITMOS A MicroMundos PRO

Los procedimientos se utilizan muy a menudo en la vida diaria. Participar en un juego o dar instrucciones a alguien que se encuentra perdido son actividades que requieren pensamiento procedimental o algortmico. Tu dispones de un conocimiento procedimental que utilizas en muchos aspectos de tu vida, tanto para planear una estrategia en un juego, como para dar instrucciones a alguien perdido en el vecindario. Lo curioso es que en raras ocasiones utilizas este conocimiento procedimental en las clases de matemticas.

Los procedimientos son mdulos con instrucciones que inician con el comando para y que el computador ejecuta automticamente, una tras otra, hasta encontrar el comando fin. Todo procedimiento debe tener un nombre que lo identifique y que sirve para ejecutarlo cuando se ejecuta dicho nombre. Pero antes de ejecutar un procedimiento, debes utilizar tu pensamiento algortmico, razonamiento temporal y razonamiento condicional, para determinar y escribir todas las instrucciones que lo deben componer y el orden lgico de ejecucin.

Para escribir procedimientos debes tener en cuenta las siguientes recomendaciones: El ttulo est compuesto por: el Mando para, el nombre del procedimiento y los parmetros (opcional). El nombre del procedimiento debe ser una palabra. Cuando se deben utilizar varias palabras para nombrar un procedimiento, se escriben sin dejar espacio entre ellas y con mayscula la primera letra de la segunda palabra y de las subsiguientes (ejemplo: valorMasAlto). Cada instruccin completa debe ocupar una lnea de cdigo Puede contener lneas en blanco En la ltima lnea solo puede aparecer el Mando fin Desde un procedimiento se pueden invocar otros procedimientos.

Ejemplo 1-10 Escribe un procedimiento para dibujar en la pantalla un cuadrado de tamao variable. R/.

ANLISIS DEL PROBLEMA Formular el problema: Ya est claramente planteado. Resultados esperados: El dibujo de un cuadrado en la pantalla. Datos disponibles: El tamao de los lados del cuadrado debe ingresarlo el usuario; se sabe que todos los ngulos internos de un cuadrado son de 90 grados. Debes preguntarte si tus conocimientos actuales de matemticas te permiten resolver este problema; de no ser as, debes plantear una estrategia para obtener los conocimientos requeridos. Restricciones: El tamao del cuadrado lo suministra el usuario. Procesos necesarios: Leer el tamao del cuadrado como unparmetro llamado lado; bajar la pluma de dibujar; avanzar adelante una distancia igual a lado; girar 90 grados a la derecha; avanzar adelante una distancia igual a lado; girar 90 grados a la derecha; avanzar adelante una distancia igual a lado; girar 90 grados a la derecha; avanzar adelante una distancia igual a lado.

DISEO DEL ALGORITMO

Aqu tenemos dos formas equivalentes e igualmente correctas de algoritmo para dibujar un cuadrado. El algoritmo de la izquierda utiliza un rectngulo de proceso para cada instruccin; el de la derecha agrupa en un solo rectngulo las instrucciones de proceso adyacentes.

TRADUCCIN DEL ALGORITMO El siguiente procedimiento es la traduccin al lenguaje Logo del algoritmo representado por el diagrama de flujo. Escrbelo en el rea de procedimientos.

para cuadrado :lado limpia cp adelante :lado derecha 90 adelante :lado derecha 90 adelante :lado derecha 90 adelante :lado fin

Cuando escribas en el Centro de Mando el nombre del procedimiento (cuadrado), seguido del parmetro correspondiente al tamao del lado (Ejemplo: cuadrado 100 ), debe dibujarse en la pantalla un cuadrado.

Con el fin de poder ejemplificar ms adelante las dos formas de ejecutar un procedimiento, debes escribir este otro procedimiento: para dibujaCuadrado cuadrado 120 fin El procedimiento cuadrado ilustra el modelo general para escribir procedimientos con parmetros. Este tipo de procedimiento es muy til cuando varias instrucciones sedeben ejecutar en un programa varias veces de manera idntica, cuya nica diferencia sea el valor inicial que tomen algunas variables. En estos casos, las instrucciones se empaquetan en un procedimiento y los distintos valores iniciales de las variables se asignan por medio de parmetros. Ejemplo 1-11 Escribe en el Centro de Mando las instrucciones para dibujar un rectngulo con las siguientes medidas: Lado1= 80; Lado2=120. adelante 80 derecha 90 adelante 120 derecha 90 adelante 80 derecha 90 adelante 120 Debes notar que a medida que introduces cada una de estas instrucciones se dibuja cada uno de los lados que conforman el rectngulo. Ejemplo 1-12 Escribe un procedimiento para dibujar un rectngulo con unas medidas determinadas (Lado1= 80; Lado2=120). Esto implica que debes pensar en algo muy parecido a lo siguiente (y escribirlo): para rectngulo cp adelante 80 derecha 90 adelante 120 derecha 90 adelante 80 derecha 90 adelante 120 fin Cuando invocas este procedimiento escribiendo rectngulo en el Centro de Mando, el computador ejecuta automticamente y en orden consecutiva, las instrucciones que se

encuentran entre para rectngulo y fin. Antes de escribir el anterior procedimiento, debiste analizar la figura geomtrica que desebas construir, describirla y reflexionar acerca de cmo se unen sus partes (dos pares de lados paralelos de igual longitud y cuatro ngulos iguales de 90 grados). Actividad 1-10 Basndote en la Actividad 1-9, traduce los diagramas de flujo elaborados en procedimientos de MicroMundos (puedes utilizar una copia de la plantilla que aparece en el anexo 4): 1. 1. 2. 3. Hallar el permetro de un cuadrado cuyo lado mide 5 cm. Hallar el permetro de un crculo cuyo radio mide 2 cm. Hallar el rea de un cuadrado cuyo lado mide 5 cm. Hallar uno de los lados de un rectngulo cuya rea es de 15 cm2 y uno de sus lados mide 3 cm. 4. Hallar el rea y el permetro de un crculo cuyo radio mide 2 cm. 5. Hallar el rea de un pentgono regular de 6 cm de lado y con 4 cm de apotema.

10. AGREGAR COMENTARIOS A LOS PROCEDIMIENTOS

Los comentarios no tienen ningn efecto en la ejecucin del algoritmo. Se utilizan para aclarar instrucciones que puedan prestarse a confusin o como ayuda a otras personas que deben leerlo y entenderlo. Los comentarios en un procedimiento de MicroMundos Pro se hacen con el punto y coma (;). MicroMundos ignora el texto entre el punto y coma (;) y el final de la lnea. Ejemplo 1-13 Escribir un procedimiento que se llame triangulo para hallar el rea de un tringulo rectngulo cuya Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm. Introducir en el cdigo comentarios que aclaren lo que est sucediendo en cada uno de los pasos importantes. R/ ANLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente planteado. Resultados esperados: El rea de un tringulo rectngulo. Datos disponibles: Base, Altura, Hipotenusa, tipo de tringulo. La incgnita es el rea y todos los valores son constantes. El valor de la hipotenusa se puede omitir. Debes preguntarte si tus conocimientos actuales de matemticas te permiten resolver este problema; de no ser as, debes plantear una estrategia para obtener los conocimientos requeridos. Restricciones: Utilizar las medidas dadas.

Procesos necesarios: Guardar en dos variables (BASE y ALTURA) los valores de Base y Altura; Guardar en una constante (DIV) el divisor 2; aplicar la frmula BASE*ALTURA/DIV y guardar el resultado en la variable AREA; comunicar el resultado (AREA).

TRADUCCIN DEL ALGORITMO

para tringulo local "div ;declara las constantes como locales. local "base local "altura local "rea ;declara esta variable como local. da "div 2 ;almacena 2 en la constante div (div=2) da "base 3 ;equivalente a base=3 da "altura 4 da "rea :base * :altura / :div ;aplica la frmula. muestra :rea ;reporta el contenido de la variable rea fin Tal como se puede comprobar al ejecutar el procedimiento anterior, el texto entre un punto y coma y el final de una lnea de cdigo no produce ningn resultado, ni causa errores de sintaxis. Actividad 1-11 Basndote en la Actividad 1-10, agrega a los procedimientos creados los comentarios que creas convenientes para ayudar a otras personas a leer y entender los procedimientos.

11. INTERACTIVIDAD CON EL USUARIO


La interactividad entre el usuario y el programa es un recurso muy valioso en programacin y se logra permitiendo la comunicacin con el programa mediante la utilizacin del teclado y/o el ratn (mouse).

En MicroMundos, la forma ms comn de interactuar con un programa es por medio de controles y botones, los cuales se manipulan con el ratn. Ambos se pueden programar para que realicen acciones (ejecutar un procedimiento, ir a otra pgina, cambiar el valor a una variable, etc).

Otra forma de interactuar con un programa consiste en que el usuario utilice el teclado para responder a las preguntas que le plantea el programa. Las respuestas que el usuario aporta se pueden almacenar en las variables correspondientes con el comando respuesta. Para mostrar lo que el usuario contesta se pueden utilizar varios comandos de MicroMundos (mostrar, escribe, anuncia, anuncia frase).

Ejemplo 1-14 para lectura local "valorUno ; declarar variables y constantes local "ValorDos pregunta [Ingrese el primer valor ] ; ingresar valorUno da "valorUno respuesta pregunta [Ingrese el segundo valor ] ; ingresar valorDos da "valorDos respuesta muestra frase [El primer valor es ] :valorUno muestra frase [El segundo valor es ] :valorDos fin La interactividad facilita generalizar la solucin de un problema. Por ejemplo, si se elabora un procedimiento que calcule el rea de un tringulo rectngulo, cada vez que se cambien los valores iniciales de base y altura, estos deben actualizarse en el cuerpo del procedimiento. La interactividad, por el contrario, permite que cada vez que se ejecute el procedimiento, este le pregunte al usuario por los valores de base y altura, y los tome para calcular el rea sin la necesidad de modificar nada en el procedimiento.

Actividad 1-12 Escribe un procedimiento que solicite al usuario su nombre y lo escriba en pantalla (Hola Fulano)

12. FALLAS DE SINTAXIS Y FALLAS DE LGICA

Es muy difcil elaborar procedimientos perfectos en un primer intento y la dificultad aumenta a medida que los problemas se vuelven ms complejos. Despus de traducir el algoritmo en un

lenguaje de programacin como Logo, el procedimiento resultante debe ser probado y los resultados validados (revisin). A este proceso se le conoce como depuracin y contribuye a mejorar tu capacidad para resolver problemas. Un procedimiento puede presentar fallas de Sintaxis y de Lgica. Las fallas sintcticas o de sintaxis son las ms sencillas de identificar ya que el entorno de programacin indica dnde se ha producido el error y de que tipo es. Por ejemplo, MicroMundos reportar el error valorDos no tiene valor en prueba cuando, en el procedimiento prueba, se intenta mostrar el contenido de la variable valorDos sin haberla definido antes. En caso de presentarse una falla de sintaxis, tu debes: Comprender el mensaje de error que reporta el ambiente de programacin (apoyarse en las opciones de ayuda que ofrece MicroMundos o en el docente). Examinar el cdigo del programa para identificar en cul instruccin se encuentra la falla Corregir la falla Probar el programa de nuevo

Ejemplo 1-15 Estudiemos el ejemplo de un estudiante que aprueba un examen cuando obtiene una calificacin mayor o igual a seis. Se requiere elaborar un procedimiento que pida al usuario una calificacin, aplique el criterio de aprobacin e imprima Aprobado o Reprobado, segn sea el caso. R/. ANLISIS DEL PROBLEMA Formular el problema: Es un problema sencillo de seleccin doble. Resultados esperados: Un aviso que reporte si el estudiante Aprob o Reprob el examen. Datos disponibles: La calificacin ingresada por el usuario. Para aprobar, la nota debe ser mayor o igual a 6.0. Restricciones: Aplicar el criterio de aprobacin. Procesos necesarios: Solicitar al usuario que ingrese la calificacin. Evaluar si la calificacin es igual o superior a 6.0; en caso de ser verdadero, reportar Aprobado; en caso contrario, reportar Reprobado.

TRADUCCIN DEL ALGORITMO para aprueba1 local "calificacin preguntas [Ingrese la Calificacin] da "calificacin respuesta siotro (o :calificacin > 6.0 :calificacin = 6.0) [ anuncia [Aprobado] ] [ anuncia [Reprobado] ] fin Obsrvese que el programa MMP arroja un mensaje de error cuando se ejecuta el procedimiento: No s cmo hacer preguntas en aprueba1. Este error se produce po rque el comando pregunta est mal escrito, en su lugar se escribi preguntas. El problema se soluciona al escribir correctamente el comando indicado.

Para identificar fallas de tipo lgico en un procedimiento que no se interrumpe en ningn momento y que arroja unos resultados, estos se deben revisar cuidadosamente. Uno de los procedimientos ms utilizados es el que se conoce como prueba de escritorio. Esta consiste

seguir paso a paso cada una de las instrucciones del programa, asignando valores iniciales a variables y constantes y, realizando las operaciones indicadas en cada instruccin hasta llegar al final del programa. Luego, comparar los resultados que produce la prueba de escritorio con los resultados que arroja el programa; ambos conjuntos de resultados deben ser iguales. Esta metodologa es viable cuando los procedimientos son sencillos, con pocas instrucciones. En caso de presentarse una falla de lgica, tu debes: Examinar el diagrama de flujo para detectar instrucciones que faltan, sobran o que se encuentran en la posicin incorrecta Asegurarse que las instrucciones codificadas en MicroMundos representan rigurosamente el diagrama de flujo Introducir puntos de control (banderas) en el cdigo y verificar el valor en ese punto de todas las variables y constantes; comparar esos valores con los de la prueba de escritorio en ese mismo punto.

Ejemplo 1-16 Continuamos con el mismo ejemplo: Elaborar un procedimiento que pida al usuario una calificacin, aplique el criterio de aprobacin e impr ima Aprobado o Reprobado, segn sea el caso. Con el fin de ejemplificar una falla de lgica, se debe digitar en el rea de procedimientos de MMP el siguiente cdigo.

TRADUCCIN DEL ALGORITMO para aprueba2 local "calificacin pregunta [Ingrese la Calificacin] da "calificacin respuesta siotro (o :calificacin < 6.0 :calificacin = 6.0) [ anuncia [Aprobado] ] [ anuncia [Reprobado] ] fin Obsrvese que el procedimiento aprueba2 se ejecuta correctamente; no aparece ningn error de sintaxis. Pero no funciona bien desde el punto de vista lgico. Si lo probamos con el valor 5, el procedimiento nos reporta que el estudiante aprob la materia, cuando esto no es correcto. Si lo probamos con 7, nos reporta que el estudiante reprob, cuando tampoco es exacto. En cambio, cuando lo probamos con 6 nos dice que el estudiante aprob y este dato si es correcto. El problema radica en que en el comando siotro se digit errneamente < en lugar de >, tal como aparece en el diagrama de flujo. Adicionalmente, en este ejemplo se puede observar la sintaxis de los operadores lgicos (y, o, no), mediante los cuales se unen proposiciones sencillas para construir proposiciones compuestas.

Estos deben ir en seguida del parntesis que abre la proposicin: siotro (o :calificacin > 6.0 :calificacin = 6.0) La proposicin se lee as: calificacin mayor que 6.0 o calificacin igual a 6.0.

En la deteccin y eliminacin de fallas en un procedimiento, cuenta mucho la cantidad de fallas similares que haz tenido oportunidad de resolver. La experiencia es un factor importante; incluso, las fallas que se recuerdan con mayor precisin son aquellas cuya solucin present mayor dificultad.

UNIDAD 2
1. ANLISIS DE PROBLEMAS

La mayora de las metodologas propuestas para la solucin de problemas matemticos se aproxima al ciclo de programacin de computadores. En la siguiente actividad debes analizar los problemas utilizando la metodologa de Formulacin del problema, Resultados esperados, Datos disponibles, Determinar las restricciones y Procesos necesarios

Actividad 2-1 David tiene en su biblioteca 48 obras de autores colombianos, de las cuales 16 son de Garca Mrquez.Tambin tiene 17 de autores extranjeros. Cuntas obras tiene David en su biblioteca? Analiza el problema: Cuntas obras de autores colombianos hay en la biblioteca de David? Cuntas son de autores extranjeros?

Necesitas algn otro dato para resolver el problema? Sobra algn dato? Cul?

Actividad 2-2 En una encuesta de 25 preguntas, la encuestadora recibe $10.000 por cada formulario diligenciado. En total hace 400 encuestas, de las cuales 183 fueron contestadas por hombres. Cuntas mujeres fueron encuestadas? Analiza el problema: Cules datos debes tener en cuenta para responder la pregunta? Cules datos no son necesarios para la solucin? Qu preguntas podras formular para utilizar los datos que no tuviste en cuenta anteriormente?

Actividad 2-3 En los siguientes problemas, debes tener en cuenta (y anotar) las actividades que realizas para resolverlos y clasificarlas en cada una de las cuatro etapas vistas: comprender, planear, resolver y revisar (puedes utilizar las plantillas de los anexos 3 y 4). 1. Juan Felipe va a construir una cometa hexagonal, cuyos lados midan cada uno 30 cm. Estima que la apotema es de aproximadamente 20 cm. Cunto hilo necesita para bordear la cometa y aproximadamente cunto papel requiere para revestirla? Para resolver este problema, debes tener conocimientos sobre polgonos regulares (permetro y rea). Es buena idea que dibujes la cometa con las medidas correspondientes. 2. Mnica y Carlos Andrs van a construir una casa, a partir de un modelo de juguete. El cuerpo de la casa es un prisma rectangular de 60 cm de largo, 40 cm de ancho y 30 cm de altura. Como techo, incluye un prisma triangular de 60 cm de largo, 40 cm de lado y 34 cm de apotema. Cunto cartn se emplea en la construccin total? Para resolver este problema debes tener conocimientos sobre prismas rectangulares y triangulares (rea). Es importante que hagas un esquema de los prismas con los que vas a armar la casa.

2. PROCESOS

Se llama procesos a todas las instrucciones contenidas en un algoritmo para:

declarar variables y constantes; asignar valores iniciales a variables y constantes; leer datos que suministra el usuario por medio del teclado o del ratn (mouse); realizar operaciones matemticas (aplicar frmulas); reportar o mostrar contenidos de variables y constantes; mostrar en pantalla resultados de procedimientos activados por el programa.

Vale la pena recordar que la declaracin de variables y constantes se realiza en MicroMundos de la siguiente forma: local nombreVariable (Ej. local altura).

La sintaxis para asignacin de un valor a una variable o constante es: da nombreVariable Valor (Ej. da altura 4).

Luego de asociar valores a variables o constantes, estas se pueden utilizar anteponiendo dos puntos (:) al nombre de la variable o constante: da nuevaAltura 2 + :altura

El Mando da asigna a la variable nuevaAltura el valor 2 ms el contenido de la variable altura.

3. ESTRUCTURA SECUENCIAL

Un Algoritmo est compuesto por instrucciones de diferentes tipos, organizadas secuencialmente, en forma de estructuras de control. De estas estructuras de control, las ms comunes son las siguientes: Secuencial. Iterativa (repeticin). Condicional (decisin, seleccin).

Una estructura de control se define como un esquema que permite representar ideas de manera simplificada y que bajo condiciones normales, es constante.

La estructura de control secuencial es la ms sencilla. Tambin se la conoce como estructura lineal. Se compone de instrucciones que deben jecutarse en forma consecutiva, una tras otra, siguiendo una lnea de flujo. Solamente los problemas muy sencillos pueden resolverse haciendo uso nicamente de esta estructura.

Una estructura de control secuencial puede contener cualquiera de las siguientes instrucciones: declaracin variables asignacin de valores entrada de datos procesamiento de datos (operaciones) reporte de resultados

Ejemplo 2-1 Escribir un procedimiento en Logo para dibujar en la pantalla una figura simtrica, igual a la siguiente:

R/. ANLISIS DEL PROBLEMA Formular el problema: Ya est claramente planteado. Resultados esperados: El dibujo dado. Datos disponibles: La figura geomtrica suministrada. El anlisis de la figura permite establecer que est construida con varios cuadrados de igual tamao. Restricciones: La figura resultante debe ser igual en su forma a la muestra. Las dimensiones pueden variar.

Procesos necesarios: la figura se puede realizar mediante tres procedimientos. El primero, que puede llamarse simetraCuadrado, dibuja un cuadrado con los comandos adelante y derecha. El segundo procedimiento (simetraCuadricula), dibuja cuatro cuadrados utilizando el procedimiento simetraCuadrado y el comando izquierda. El tercero (simetraEstrella), dibuja dos veces la figura que se forma con el procedimiento simetraCuadrado; se debe girar la tortuga 45 grados a la derecha luego de ejecutar simetraCuadrado por primera vez.

TRADUCIN DEL ALGORITMO La solucin de este problema tiene tres procedimientos: (1) simetraCuadrado, (2) simetraCuadricula y (3) simetraEstrella. para simetraCuadrado adelante 100 derecha 90 adelante 100 derecha 90 adelante 100 derecha 90 adelante 100 derecha 90 fin

El procedimiento simetraCuadrado (1) est compuesto solamente por una estructura secuencial que realiza el dibujo de un cuadrado cuyos lados miden 100. para simetraCuadricula simetraCuadrado izquierda 90 simetraCuadrado izquierda 90 simetraCuadrado izquierda 90 simetraCuadrado izquierda 90 fin

El procedimiento simetraCuadricula (2) est compuesto por una estructura secuencial que dibuja cuatro cuadrados con lados adyacentes entre s. Esta es una figura simtrica ya que si se dobla por la mitad, ambas mitades coinciden. Para construir esta cuadricula no fue necesario escribir un procedimiento con el cdigo para dibujar cuatro cuadrados; en realidad, el procedimiento simetraCuadricula no realiza ningn dibujo, lo que hace es llamar cuatro veces el procedimiento simetraCuadrado que es el que realmente dibuja un cuadrado cada vez que se invoca. Para que los cuadrados sean adyacentes, se necesita girar la tortuga 90 grados a la izquierda despus de cada llamada al procedimiento simetraCuadrado. para simetraEstrella limpia cp simetraCuadricula derecha 45 simetraCuadricula fin

El procedimiento simetraEstrella (3) tambin est compuesto nicamente por una estructura secuencial que permite dibujar una estrella perfectamente simtrica. Este procedimiento llama

dos veces al procedimiento simetraCuadricula que a su vez, cada que es invocado, llama cuatro veces al procedimiento simetraCuadrado. Para lograr el efecto de estrella, luego de llamar la primera vez al procedimiento simetraCuadricula, se gira la tortuga 45 grados, antes de llamar el mismo procedimiento por segunda vez. Ejemplo 2-2 Escribir un procedimiento en MicroMundos para calcular el rea de cualquier tringulo rectngulo. En l se debe pedir al usuario que ingrese los valores de la Altura y la Base del tringulo. R/. ANLISIS DEL PROBLEMA Formular el problema: Ya est claramente planteado. Resultados esperados: Un procedimiento que permita calcular el rea de cualquier tringulo rectngulo. Datos disponibles: Base y Altura del tringulo (se deben solicitar al usuario). El estudiante debe preguntarse si sus conocimientos actuales de matemticas le permiten resolver este problema; de no ser as, debe plantear una estrategia para obtener los conocimientos requeridos. Restricciones: Los valores de base y altura son variables y se deben solicitar al usuario. Procesos necesarios: definir variables; asignar el valor 2 a la constante div; solicitar al usuario el valor de la altura del tringulo; solicitar al usuario el valor de la base; aplicar la frmula de rea; mostrar el resultado.

TRADUCCIN DEL ALGORITMO para tringuloRectngulo local "div ; declarar variables y constantes local "base local "altura local "rea da "div 2 pregunta [Ingrese la Altura del Tringulo] ; ingresar altura y base da "altura respuesta pregunta [Ingrese la Base del Tringulo] da "base respuesta da "rea :base * :altura / :div ; realizar clculos anuncia frase [El rea del tringulo es:] :rea ; reportar el resultado fin

Ejemplo 2-3 Escribir un procedimiento que muestre 3 veces en pantal Esto es un camello. R/. ANLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente formulado. Resultados esperados: Que aparezca tres veces en pantalla frase Esto es un camello. Datos disponibles: La frase dada. Restricciones: Ninguna. Procesos necesarios: Ninguno.

DISEO DEL ALGORITMO

TRADUCCIN DEL ALGORITMO para camello1 muestra [Esto es un camello] muestra [Esto es un camello] muestra [Esto es un camello] fin Actividad 2-4 1. Disea un algoritmo que pida al usuario dos nmeros y calcule la suma, la resta, la multiplicacin y la divisin del primero por el segundo. Traduce el algoritmo al lenguaje Logo y probarlo. 1. Disea un algoritmo para calcular cuntos litros caben en un tanque. Los datos de entrada (profundidad, largo y ancho) deben estar dados en metros. Debes tener presente que 1 litro equivale a 1 dm3. Traduce el algoritmo al lenguaje Logo y pruebalo. Actividad 2-5 Encuentra una solucin a los siguientes problemas empleando la metodologa expuesta en la Unidad 1: Analizar el problema (formulacin del problema, resultados esperados, datos disponibles, restricciones y procesos necesarios), disea el algoritmo, tradcelo al lenguaje Logo y prueba el programa resultante. 2. Calcula el tiempo promedio en minutos por kilmetro que emple un corredor de maratn si realiz el recorrido completo en 2 horas y 25 minutos. Ten en cuenta que una carrera de maratn tiene una distancia de 42.195 metros.

3. Intercambia los valores de dos variables que contienen valores solicitados al usuario. 4. Convierte cualquier temperatura dada en grados Celsius a grados Fahrenheit. Averiguar la frmula de conversin. 5. Convierte cualquier valor, dado en metros, a pies y pulgadas. Ten en cuenta que un metro equivale a 39.37 pulgadas y 1 pie equivale a 12 pulgadas. 6. Se sabe que la tasa de cambio del Peso colombiano en mayo de 2007 era la siguiente: 2.121,00 pesos por un Dlar; 2.837,51 por un Euro; 0,98 pesos por un Bolvar; 190,96 pesos colombianos por un Peso mexicano. Elabora un procedimiento que convierta cualquier valor dado en pesos colombianos a dlares, euros, bolvares y pesos mexicanos.

Actividad 2-6 Plantea un problema a partir del siguiente diagrama de flujo y elabora el cdigo del procedimiento.

Actividad 2-7 Dado el siguiente esquema, completa el anlisis del problema, rellena el Diagrama de Flujo y elabora el cdigo

ANALISIS DEL PROBLEMA

Formular el problema Escribir un procedimiento llamado quiz que pida un numero y muestre el resultado de multiplicarlo por 2 y sumarle el mismo nmero pedido.

Resultados esperados

Datos disponibles

Restricciones

Procesos necesarios

DIAGRAMA DE FLUJO

CODIGO EN MICROMUNDOS

UNIDAD 3
1. ESTRUCTURA ITERATIVA (REPETICIN)

La estructura iterativa o de repeticin permite ejecutar una o varias instrucciones, un nmero determinado de veces o, indefinidamente, mientras se cumpla una condicin. Esta estructura ayuda a simplificar los algoritmos, ahorrando tiempo valioso a quien resuelve problemas con ayuda del computador.

En MicroMundos Pro (MMP), la estructura repetitiva se implementa con los Mandos repite y cumpleveces.

La sintaxis de repite en MMP es: repite nmero [lista-de-instrucciones] ejemplo: repite 60 [muestra hola] donde nmero (60) indica las veces que se ejecutar la lista-de-instrucciones ([muestra hola]). La sintaxis de cumpleveces en MMP es: cumpleveces [serie] [lista-de-instrucciones] ejemplo: cumpleveces [i 8][muestra :i] donde serie ([i 8]) indica el nombre del parmetro (i) y el nmero de veces (8) que se ejecutar la lista-de-instrucciones ([muestra :i]).

Ejemplo 3-1 Escribe un procedimiento que muestre 85 veces en pantalla la frase Esto es un camello. R/. ANLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente formulado. Resultados esperados: Que aparezca 85 veces en pantalla la frase Esto es un camello. Datos disponibles: La frase dada. Restricciones: Ninguna. Procesos necesarios: Mostrar la frase mencionada 85 veces.

TRADUCCIN DEL ALGORITMO

Con el uso del comando repite: para camello2a repite 85 [ muestra [Esto es un camello] ] fin

Ahora con el uso del comando cumpleveces: para camello2b cumpleveces [i 85] [ muestra [Esto es un camello] ] fin Un problema similar fue resuelto en el Ejemplo 2-3 de la estructura secuencial. En ese ejemplo se escribi el procedimiento camello1 que mostraba tres veces en pantalla la frase Esto es un camello. Resolver este nuevo enunciado agregando instrucciones al procedimiento camello1 no es prctico. Por eso, en este ejemplo se dise un algoritmo muy sencillo mediante la utilizacin de una estructura iterativa que repite la frase 85 veces. El nmero de veces que se repite la frase no tiene incidencia en la estructura del algoritmo, sea este 85 1385. En el Ejemplo 2-1 se dibuj un cuadrado cuyos lados fueran fijos. Fjate que es posible utilizar otro tipo de estructura de control para elaborar el mismo dibujo: para cuadrado :lado limpia cp repite 4 [ adelante :lado derecha 90 ] fin Ejemplo 3-2 Calcular el valor de la sumatoria: 1 + 2 + 3 + 4 +5 + + 100. R/. ANLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente formulado. Resultados esperados: El resultado de la suma de los nmeros entre 1 y 100. Datos disponibles: El rango de nmeros dado. Restricciones: Ninguna. Procesos necesarios: guardar el nmero 0 en una variable e incrementarla en 1 cada vez que se ejecute el ciclo repetitivo. Guardar 0 en otra variable e ir acumulando en ella su propio valor ms el valor de la primera variable.

Este algoritmo utiliza una operacin muy til en programacin: sumatoria = sumatoria + contador

Consiste en almacenar en una variable sumatoria el valor de ella misma (sumatoria) ms otro valor variable (contador). Es muy utilizada para acumular valores.

TRADUCCIN DEL ALGORITMO

Con el Mando repite: para suma100a bnombres da "contador 0 da "sumatoria 0 repite 100 [ da "contador :contador + 1 da "sumatoria :sumatoria + :contador muestra nombres ] muestra frase [El valor de la suma 1 + 2 + 3 + . . . + 100 es ] :sumatoria fin Con el Mando cumpleveces: para suma100b bnombres da "sumatoria 0 cumpleveces [contador 100 ] [ da "sumatoria :sumatoria + :contador + 1 muestra nombres ] muestra frase [El valor de la suma 1 + 2 + 3 + . . . + 100 es ] :sumatoria fin Los procedimientos suma100a y suma100b son equivalentes, realizan la misma tarea. La primitiva cumpleveces utilizada en el procedimiento suma100b tiene una ventaja adicional con respecto a repite : incorpora una variable que aumenta en uno su valor cada vez que se ejecuta un ciclo de la estructura iterativa. La variable, que en este caso se llama contador inicia en 0 y termina en 99, para un total de 100 ciclos. Por este motivo se necesita sumarle uno a contador para que tome valores entre 1 y 100. Ejemplo 3-3 La profesora ngela Cristina necesita calcular la nota definitiva para cada uno de los 22 alumnos que asisten a su curso de geometra. Ella realiz a todos sus estudiantes, en el primer periodo del ao lectivo, dos exmenes y asign un trabajo de investigacin. Cmo puedes ayudarle? R/. ANLISIS DEL PROBLEMA Formular el problema: Se requiere calcular un promedio de tres notas para cada uno de los 22 alumnos.

Resultados esperados: La nota definitiva de cada uno de los 22 alumnos. Datos disponibles: El nmero de alumnos: 22. Las notas de cada alumno las debe digitar la profesora. Restricciones: Cada una de las tres notas tienen el mismo porcentaje en la nota definitiva. Tres notas por alumno y 22 alumnos. Procesos necesarios: Para cada uno de los 22 alumnos: Leer las tres notas, sumarlas, calcular el promedio y mostrar el promedio.

TRADUCCIN DEL ALGORITMO

para notas cumpleveces [estudiante 22] [ pregunta [Ingrese la nota del primer examen ] da "examenUno respuesta

pregunta [Ingrese la nota del segundo examen ] da "examenDos respuesta pregunta [Ingrese la nota del trabajo de investigacin ] da "trabajo respuesta da "sumatoria :examenUno + :examenDos + :trabajo da "promedio :sumatoria / 3 muestra (frase [El promedio del estudiante ] :estudiante + 1 [ es ] :promedio) ] Fin

El procedimiento notas realiza la misma tarea 22 veces: leer tres notas, sumarlas, promediarlas y mostrar el promedio. La manera ms eficiente de resolver este problema es mediante una estructura iterativa. Ntese que los valores de las notas que ingresa el usuario no se validan, esto puede ocasionar que alguien digite una nota de, por ejemplo, 960; lo que dar como resultado un promedio fuera del rango permitido. Este aspecto se atiende con la siguiente estructura, la condicional.

Ejemplo 3-4 Elaborar un procedimiento en Logo para calcular tablas de multiplicar. El usuario debe ingresar qu tabla de multiplicar desea. R/. ANLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente formulado. Resultados esperados: La tabla de multiplicar que el usuario indique. Datos disponibles: El nmero de la tabla (indicada por el usuario). Restricciones: Ninguna. Procesos necesarios: pedir al usuario que ingrese la tabla de multiplicar que desea. Guardar ese valor en una variable (tabla). Multiplicar cada uno de los valores entre 0 y 9 por la variable tabla. Mostrar el resultado de cada multiplicacin.

TRADUCCIN DEL ALGORITMO para tablaMultiplicar pregunta [Qu tabla de multiplicar desea? ] da "tabla respuesta cumpleveces [multiplicando 10] [ da "resultado :multiplicando * :tabla muestra (frase :tabla [ x ] :multiplicando [ = ] :resultado) ] fin

Historia Curiosa Un da, en la India, un joven bracmn llamado Lahur Sessa pidi una audiencia con el Rey para obsequiarle el juego que haba inventado. La curiosidad del rey lo llev a conceder la cita que peda el joven Sessa. El rey qued maravillado y aprendi rpidamente las reglas de aquel juego que consista de un tablero cuadrado dividido en sesenta y cuatro cuadritos iguales (32 blancos y 32 negros); sobre este tablero se ubicaban dos colecciones de piezas, que se

distinguan unas de otras por el color, blancas y negras, repitiendo simtricamente los motivos y subordinadas a reglas que permitan de varios modos su movimiento. Algn tiempo despus, el rey mand llamar a su presencia al joven bracmn y dirigindose a l le dijo: - Quiero recompensarte, amigo mo, por este maravilloso obsequio, que de tanto me sirvi para aliviar viejas angustias. Pide, pues, lo que desees, para que yo pueda demostrar, una vez ms, como soy de agradecido con aquellos que son dignos de una recompensa. Ante tal ofrecimiento, el joven respondi: - Voy, pues, a aceptar por el juego que invent, una recompensa que corresponda a vuestra generosidad; no deseo, sin embargo, ni oro, ni tierras, ni palacios. Deseo mi recompensa en granos de trigo. -Granos de trigo? exclam el rey, sin ocultar la sorpresa que le causara semejante propuesta-. Cmo podr pagarte con tan insignificante moneda? -Nada ms simple -aclar Sessa-. Dadme un grano de trigo por la primera casilla del tablero, dos por la segunda, cuatro por la tercera, ocho por la cuarta, y as sucesivamente hasta la sexagsima cuarta y ltima casilla del tablero. No slo el rey, sino tambin los visires y venerables bracmanes, se rieron estrepitosamente al or la extraa solicitud del joven. Insensato -exclam el rey-. Dnde aprendiste tan grande indiferencia por la fortuna? La recompensa que me pides es ridcula. Mando llamar el rey a los algebristas ms hbiles de la Corte y les orden calculasen la porcin de trigo que Sessa pretenda. Los sabios matemticos, al cabo de algunas horas de realizar clculos dispendiosos, volvieron al saln para hacer conocer al rey el resultado completo de sus clculos. Preguntles el rey, interrumpiendo el juego: Con cuantos granos de trigo podr cumplir, finalmente, con la promesa hecha al joven Sessa? Rey magnnimo -declar el ms sabio de los gemetras-: calculamos el nmero de granos de trigo que constituir la recompensa elegida por Sessa, y obtuvimos un nmero cuya magnitud es inconcebible para la imaginacin humana (el nmero en cuestin contiene 20 guarismos y es el siguiente: 18.446.744.073.709. 551. 615. Se obtiene restando 1 a la potencia 64 de 2). La cantidad de trigo que debe entregarse a Lahur Sessa -contino el gemetra- equivale a una montaa que teniendo por base la ciudad de Taligana, fuese 100 veces ms alta que el Himalaya. La India entera, sembrados todos sus campos, y destruidas todas sus ciudades, no producira en un siglo la cantidad de trigo que, por vuestra promesa, debe entregarse al joven Sessa. Cmo describir aqu la sorpresa y el asombro que esas palabras causaron al Rey Ladava y a sus dignos visires? El soberano hind se vea, por primera vez, en la imposibilidad de cumplir una promesa.

Lahur Sessa -refiere la leyenda de la poca-, como buen sbdito, no quiso dejar afligido a su soberano. Despus de declarar pblicamente que se desdeca del pedido que formulara, se dirigi respetuosamente al monarca y le dijo: los hombres ms precavidos, eluden no slo la apariencia engaosa de los nmeros, sino tambin la falsa modestia de los ambiciosos. El rey, olvidando la montaa de trigo que prometiera al joven bracmn, lo nombr su primer ministro. (Tomado del libro El hombre que calculaba escrito por Malba Tahan)

Ejemplo 3-5 Elabora un procedimiento en Logo para ayudar a los hbiles algebristas de la corte del Rey Ladava con el clculo del nmero de granos de trigo que deben entregar a Lahur Sessa como pago por haber inventado el juego de ajedrez. R/. ANLISIS DEL PROBLEMA Formular el problema: Es un problema de multiplicaciones de factores iguales que pueden expresarse en forma de potencias; adems, para llegar al resultado final se deben acumular los resultados parciales. Resultados esperados: El nmero de granos que el Rey Ladava debe entregar a Lahur Sessa. Datos disponibles: El nmero de cuadros del tablero de ajedrez (64) y la regla dada por Sessa: un grano de trigo por la primera casilla del tablero, dos por la segunda, cuatro por la tercera, ocho por la cuarta, y as sucesivamente hasta la sexagsima cuarta y ltima casilla del tablero. Restricciones: Aplicar la regla planteada por Sessa. Procesos necesarios: Un ciclo que se repita 64 veces. En cada iteracin se debe acumular en una variable (granos), su propio valor ms el resultado de 2 elevado a un exponente que aumenta su valor en uno con cada iteracin.

TRADUCCIN DEL ALGORITMO Utilizando el comando repite: para ajedrez bnombres da "exponente 0 da "granos 0 repite 64 [ da "granos :granos + potencia 2 :exponente da "exponente :exponente + 1 muestra nombres ] muestra frase [El nmero de granos que gan Sessa es ] :granos fin

Utilizando el comando cumpleveces:

para ajedrezB bnombres da "granos 0 cumpleveces [exponente 64] [ da "granos :granos + potencia 2 :exponente muestra nombres ] muestra frase [El nmero de granos que gan Sessa es ] :granos fin Obtuviste el mismo resultado (1,84467440737e+019)? El computador tambin tard varias horas para calcular el resultado final? Cul es la diferencia entre los procedimientos ajedrez y ajedrezB? Qu funcin cumplen los comandos bnombres y nombres? Cul es la diferencia entre crecimiento aritmtico y crecimiento geomtrico? Actividad 3-1 Debes encontrar la solucin a los siguientes problemas empleando la metodologa expuesta: Analizar el problema (formulacin del problema, resultados esperados, datos disponibles, restricciones y procesos necesarios), disear el algoritmo, traducirlo al lenguaje Logo y probar el programa resultante. Puedes utilizar las plantillas de los Anexos 3 y 4: 1. Elabora un procedimiento que calcule y muestre las reas de 100 crculos con radio de 1 a 100 cm. 2. Construye un procedimiento que calcule y muestreada uno de los cuadrados de los nmeros 1 a 90. 3. Elabora un procedimiento que le reporte al electricista de un edificio recin construido cuantos bombillos debe comprar. Se sabe que el edificio tiene8 pisos, 8 apartamento en cada piso y cada apartamento tiene 8 bombillos. En la solucin debes emplear una estructura repetitiva. 4. Crea un procedimiento que calcule el rea de cualquier cubo. 5. Elabora un procedimiento que dibuje polgonos regulares de 5, 6, 7, 8 y 9 lados. El usuario del procedimiento debe indicar el nmero de lados del polgono.

2. DEPURACIN

Las fallas sintcticas son las ms sencillas de identificar ya que el entorno de programacin indica dnde se ha producido el error y de que tipo es. En caso de presentarse una falla de sintaxis, el estudiante debe:

Comprender el mensaje de error que reporta el ambiente de programacin (apoyarse en las opciones de ayuda que ofrece MicroMundos o en el docente). Examinar el cdigo del programa para identificar en cul instruccin se encuentra la falla Corregir la falla Probar el programa de nuevo

Actividad 3-2 Analiza el siguiente procedimiento e identifica cul es el problema de sintaxis que presenta. Corrige el error y prubalo para CalculaPerimetro da "Perimetro Lado1 + Lado2 + Lado1 + Lado2 Perimetro, fcolordetexto ColorT escriba :Perimetro fin

UNIDAD 4
1. PROPOSICIONES
Para que una proposicin (frase declarativa) sea valida, debe poder afirmarse que es verdadera o falsa. En programacin, se utilizan operadores relacionales (<, =, >) para establecer la relacin que existe entre dos elementos de la proposicin.

Ejemplo 4-1 La calificacin de Esteban en Historia es mayor que 6.0, es una proposicin valida. De una parte tenemos La calificacin de Esteban en Historia (A) y, de la otra, el valor 6.0 (B); de A con respecto a B, se afirma que A es mayor que B, por lo tanto, la relacin existente entre A y B es ser mayor que. Para que el computador entienda esta proposicin, debe expresarse as: :calificacin > 6.0, donde :calificacin es la variable que contiene el valor de la calificacin de Esteban en Historia. Adicionalmente, las proposiciones pueden ser sencillas o compuestas. Las proposiciones compuestas se forman con dos o ms proposiciones sencillas unidas por operadores lgicos (y, o, no). Cuando se unen dos proposiciones por medio del operador lgico y, significa que ambas proposiciones deben ser verdaderas (conjuncin). Cuando se unen dos proposiciones por medio del operador lgico o, significa que por lo menos una de las dos proposiciones debe ser verdadera (disyuncin).

Ejemplo 4-2 para aprueba local "calificacin pregunta [Ingrese la Calificacin] da "calificacin respuesta siotro (o :calificacin > 6.0 :calificacin = 6.0) [ anuncia [Aprobado] ] [ anuncia [Reprobado] ] Fin

En este ejemplo, se puede observar la sintaxis del operador lgico (o), mediante el cual se unen proposiciones sencillas para construir proposiciones compuestas. En MicroMundos (MMP) estos deben ir en seguida del parntesis que abre la proposicin:

siotro (o :calificacin > 6.0 :calificacin = 6.0) La proposicin se lee as: calificacin mayor que 6.0 o calificacin igual a 6.0.

Actividad 4-1 Traduce a MicroMundos Pro (MMP) las siguientes proposiciones: a. b. c. d. e. salario menor que 500000 numeroCanicas entre 20 y 30 cantidadLapices mayor o igual a 5 edad igual a 20 aos estatura menor o igual a 1.50

Las siguientes frases afirman algo, por tanto son consideradas proposiciones: 1. 2. 3. 4. 5. Cali es la capital del Valle del Cauca. El cuatro es un nmero impar. Seis es menor que doce. El INSA es un colegio regentado por la comunidad de Padres Basilianos. lvaro Uribe es el presidente de Colombia.

De las proposiciones primera, tercera, cuarta y quinta podemos decir que son verdaderas; de la segunda podemos afirmar que es falsa. Sin embargo, para poder afirmar que la cuarta proposicin es verdadera, hay que disponer del conocimiento suficiente sobre este colegio ubicado en el barrio Andrs Sann en la ciudad de Cali. Esto nos conduce a hacer otra consideracin: establecer explcitamente si una proposicin es verdadera o falsa puede resultar en algunos casos muy difcil o imposible. Por otra parte, la quinta proposicin inicialmente fue verdadera durante un lapso de tiempo (2002-2006); posteriormente se aprob la reeleccin y lvaro Uribe se present como candidato y gan las elecciones, entonces la proposicin ser verdadera para el lapso de tiempo 2002-2010. Con respecto a las relaciones de orden podemos decir que consisten en un par de elementos presentes en una proposicin relacionados por medio de un atributo gradado. Por ejemplo, el elemento A es mayor o igual que el elemento B o seis es menor que doce.

Proposiciones en las cuales mayor o igual que y menor que son las relaciones de orden que se establecen entre los elementos A y B, y entre seis y doce, respectivamente.

Hay que tener cuidado con el uso del lenguaje cotidiano que en ocasiones hace que dos relaciones sean equivalentes como igual o superior a y mayor o igual que. En cambio, entre 0 y 10, inclusive y entre 0 y 10 no son equivalentes; en la primera relacin los valores 0 y 10 hacen que la proposicin sea verdadera, en la segunda relacin, no.

En MicroMundos es muy importante que las proposiciones se puedan expresar directamente, en forma de notacin matemtica o mediante texto. Para ello, es fundamental que identifiques los componentes de las proposiciones (enunciados y relacin entre ellos) y verifiquen que sean validos. Por ejemplo, de las cinco proposiciones planteadas con anterioridad, solo la nmero tres se puede expresar en notacin matemtica; la otras proposiciones hay que expresarlas como texto, con excepcin de la nmero 2 que no se puede expresar directamente: 1. (:capitalValle = "Cali) 2. El cuatro es un nmero impar no se puede expresar directamente. Hay que elaborar un procedimiento para determinar si un nmero es par o impar. 3. (6 < 12) 4. (:rectorINSA = "Basiliano) 5. (:ciudad = "|Cartagena de Indias|) Un ltimo aspecto a tener en cuenta son los cuantificadores que se utilizan en algunas proposiciones: todos, algunos, ningn, ninguno, slo, hay, etc. Incluso, proposiciones que no contienen cuantificadores se pueden transformar en proposiciones cuantificadas: Cada planeta gira sobre su eje se puede reescribir como todos los planetas giran sobre su eje.

TIP Hay que tener cuidado cuando se copia de un procesador de texto una porcin de texto que contenga comillas () y se pega en el rea de procedimientos de MicroMundos. Las comillas () que generan estos programas no son equivalentes a las comillas de MicroMundos ("). Tambin hay que tener cuidado cuando se quiere comparar un texto conformado por dos o ms palabras, este debe encerrarse entre barras (|palabra1 palabra2|).

Actividad 4-2

1. Identificar cul(es) de las siguientes proposiciones son validas (calificables), explicar por qu son validas o por qu no lo son: a. b. c. d. e. f. g. El ao 1200 aC. es ms reciente que el ao 970 de la era Cristiana El jugo de lulo tiene muy buen sabor La nota mxima en un examen es 10 Esteban es alto Ojal que no llueva maana Podra decirme, por favor, qu hora es? Cuatro es mayor que 2

2. Identificar para cul(es) de las siguientes proposiciones es muy difcil o imposible establecer con toda certeza si son ciertas o falsas. a. b. c. d. e. Sergio Fajardo es el alcalde de Medelln. Edith Piaf es la alcaldesa de Paris. Juan Roa Sierra fue el asesino de Jorge Elicer Gaitn el 9 de abril de 1948. Marco Fidel Surez fue presidente de Colombia. Bogot es la capital de Bolivia.

3. Identificar las partes que componen las siguientes proposiciones (parte A, parte B y la relacin entre ambas). a. b. c. d. e. f. g. El Gobernador del Valle es Angelino Garzn. 7.0 es menor o igual que 20.5 El nguloUno es mayor que 90 La calificacin de Juan Felipe en Historia es menor que 5.0 Cali y Medelln son ciudades colombianas 4 y 8 son nmeros menores que 10 La capital de Colombia es Bogot

4. Expresar las siguientes proposiciones en un formato que pueda entender MicroMundos (MMP). a. El Gobernador del Valle es Angelino Garzn. b. 7.0 es menor o igual que 20.5 c. El nguloUno es mayor que 90 d. El jugo de lulo tiene muy buen sabor e. La calificacin de Juan Felipe en Historia es menor que 5.0 f. Esteban es alto g. El valor de una calificacin no puede ser mayor que 10 h. El valor de una calificacin no puede exceder a 10 i. La capital de Colombia es Bogot

2. INDENTACIN

Adems, en todos los ejemplos de esta unidad se puede observar un recurso grfico muy importante para dar claridad a las lneas de cdigo de los procedimientos: (1) dejar lneas en blanco para dividir bloques de cdigo; (2) utilizar sangras para indicar porciones de cdigo subordinadas a un comando; (3) abrir y cerrar los corchetes que indican bloques de cdigo en una lnea a parte, de tal forma que se aprecie muy claramente dnde inicia y dnde termina una lista-de-instrucciones.

3. ESTRUCTURA CONDICIONAL

La estructura condicional se utiliza para indicarle al computador que debe evaluar una condicin y, a partir del resultado, ejecutar el bloque de instrucciones correspondiente. La forma ms comn est compuesta por una proposicin que se evala y dos bloques de instrucciones que se ejecutan, uno cuando la condicin es verdadera (seleccin simple y doble) y otro cuando sta es falsa (nicamente en la seleccin doble). Por su parte, un bloque de instrucciones puede contener una o varias instrucciones que se ejecutan una detrs de otra. La estructura condicional tiene dos variantes: seleccin simple. seleccin doble.

Las estructuras condicionales simple y doble evalan una proposicin (condicin) que devuelve como resultado nicamente dos valores posibles y excluyentes: verdadero o falso.

Seleccin simple

La estructura condicional de seleccin simple ejecuta un bloque de instrucciones cuando la proposicin (condicin) es verdadera; si esta es falsa, no hace nada.

Para la estructura condicional de seleccin simple, MicroMundos ofrece el comando si. La sintaxis es: si cierto-o-falso [ lista-de-instrucciones ] el comando si ejecuta la lista-de-instrucciones nicamente si al evaluarse la proposicin, esta devuelve cierto (verdadero).

Ejemplo 4-3 para seleccinSimple pregunta [Ingrese el ngulo] da "nguloUno respuesta si (:nguloUno = 90) [ da "reportar [ es un ngulo recto] muestra frase :nguloUno :reportar ] Fin En este ejemplo, cierto-o-falso (:nguloUno = 90) indica la condicin que se debe evaluar la cual puede devolver nicamente uno de dos valores posibles: verdadero o falso. En caso de ser verdadera la proposicin, se ejecuta la [lista-de-instrucciones] indicada entre corchetes; esta puede contener una o varias instrucciones. Cuando es falsa la proposicin evaluada, no se ejecutan instrucciones.

Seleccin doble La estructura condicional de seleccin doble ejecuta un bloque de instrucciones (A) cuando la proposicin (condicin) es verdadera y un bloque diferente (B) cuando esta es falsa.

Para la estructura condicional de seleccin doble, MicroMundos ofrece el comando siotro. La sintaxis es: siotro cierto-o-falso [ lista-de-instrucciones-A ] [ lista-de-instrucciones-B ] El comando siotro ejecuta la lista-de-instrucciones-A si al evaluarse la proposicin, esta es verdadera. Si la proposicin es falsa, se ejecuta la lista-de-instrucciones-B. Ambas listas de instrucciones se deben indicar entre corchetes [ ] y pueden estar compuestas por una o ms instrucciones. Ejemplo 4-4 para seleccinDoble pregunta [Ingrese el ngulo] da "nguloUno respuesta siotro (:nguloUno = 90) [ da "reportar [ es un ngulo recto] ] [ da "reportar [ NO es un ngulo recto] ] muestra frase :nguloUno :reportar fin En este ejemplo, cierto-o-falso (:nguloUno = 90) indica la proposicin que se debe evaluar, la cual solo puede devolver uno de dos valores posibles: verdadero o falso. En caso de que la proposicin sea verdadera, se ejecuta la [lista-de-instrucciones-A] indicada entre corchetes: ([da reportar [ es un ngulo recto]]). Cuando la proposicin evaluada es falsa, se ejecuta la [lista-de-instrucciones-B] ([da reportar [ NO es un ngulo recto]]).

Ntese que la instruccin muestra frase :nguloUno :reportar se encuentra fuera de los corchetes; por tanto, se ejecutar sin importar si la proposicin es verdadera o alsa. Adems, ejemplifica muy bien el concepto de variable ya que el valor del ngulo se guarda en la variable denominada nguloUno y el aviso que se debe mostrar acerca de si el ngulo es o no recto, tambin se guarda en una variable (reportar). Tanto en la estructura de seleccin simple como en la doble debes tener en cuenta lo siguiente:

Requieren en el encabezado las palabras reservadas si y siotro respectivamente. La proposicin debe ser una frase declarativa, la cual se pueda afirmar o negar. Cuando la proposicin es sencilla (sin operadores lgicos) no es necesario que vaya entre parntesis; si es compuesta (dos o ms proposiciones unidas con operadores lgicos como: o, y, no) tiene que encerrarse con parntesis. Como en el primer caso no sobran los parntesis (no genera error), es recomendable utilizarlos siempre. Por ejemplo: (nguloUno = 90) es una proposicin sencilla equivalente a nguloUno = 90, pero es mejor utilizar la primera forma. Las listas de instrucciones deben estar agrupadas con corchetes, estos indican dnde empieza y dnde termina la lista que conforma el bloque que se debe ejecutar.

Ejemplo 4-5 Un estudiante aprueba un examen cuando obtiene una calificacin mayor o igual a seis. Elabora un procedimiento que pida al usuario una calificacin, aplique el criterio de aprobacin e imprima Aprobado o Reprobado, segn sea el caso. R/. ANLISIS DEL PROBLEMA Formular el problema: Es un problema sencillo de seleccin doble. Resultados esperados: Un aviso que reporte si el estudiante Aprob o Reprob el examen. Datos disponibles: La calificacin ingresada por el usuario. Para aprobar, la nota debe ser mayor o igual a 6.0. Restricciones: Aplicar el criterio de aprobacin. Procesos necesarios: Solicitar al usuario que ingrese la calificacin. Evaluar si la calificacin es igual o superior a 6.0; en caso de ser verdadero, reportar Aprobado; en caso contrario, reportar Reprobado.

TRADUCCIN DEL ALGORITMO para aprueba local "calificacin pregunta [Ingrese la Calificacin] da "calificacin respuesta siotro (o :calificacin > 6.0 :calificacin = 6.0) [ anuncia [Aprobado] ] [ anuncia [Reprobado] ] fin

En este ejemplo, se puede observar la sintaxis de los operadores lgicos (y, o, no), mediante los cuales se unen proposiciones sencillas para construir proposiciones compuestas. Estos deben ir en seguida del parntesis que abre la proposicin: siotro (o :calificacin > 6.0 :calificacin = 6.0) La proposicin se lee as: calificacin mayor que 6.0 o calificacin igual a 6.0.

Ejemplo 4-6 Supongamos que Mnica quiere ir a comer helado y su padre le propone: Como hoy entregan tus calificaciones del segundo perodo, si haz obtenido en matemticas ms de 8.0, vamos a comer helado el prximo sbado, de lo contrario no vamos. La situacin comer helado est sujeta a la condicin obtener ms de 8.0 en matemticas para el segundo perodo. R/. ANLISIS DEL PROBLEMA Formular el problema: Es un problema sencillo de seleccin doble. Resultados esperados: Un aviso que indique si el estudiante puede ir a comer helado el prximo sbado o no. Datos disponibles: La calificacin de matemticas ingresada por el usuario. La regla dice: para ir a comer helado, la nota debe ser mayor que 8.0. Restricciones: Aplicar la regla dada. Procesos necesarios: Solicitar al usuario que ingrese la calificacin de matemticas. Evaluar si la calificacin es igual o inferior a 8.0; en caso de ser verdadero, reportar NO come helado; en caso contrario, reportar SI come helado.

TRADUCCIN DEL ALGORITMO para helado local "matemticas pregunta [Ingrese la calificacin de Matemticas] da "matemticas respuesta siotro (o :matemticas < 8.0 :matemticas = 8.0) [ anuncia [NO come helado] ] [ anuncia [SI come helado] ] fin

Ejemplo 4-7 La profesora ngela Cristina necesita calcular la nota definitiva para cada uno de los 22 alumnos que asisten a su curso de geometra, con el fin de saber quines aprobaron y quines reprobaron (para aprobar hay que obtener una nota igual o superior a 6.5). Ella realiz a todos sus estudiantes, en el primer periodo del ao lectivo, dos exmenes y asign un trabajo de investigacin. Cmo puedes ayudarle? R/. ANLISIS DEL PROBLEMA Formular el problema: Se requiere calcular un promedio de tres notas para cada uno de los 22 alumnos. Resultados esperados: La nota definitiva de cada uno de los 22 alumnos y un aviso que indique si aprob o no. Datos disponibles: El nmero de alumnos: 22. Las notas de cada alumno las debe digitar la profesora. Restricciones: Cada una de las tres notas tienen el mismo porcentaje en la nota definitiva. Tres notas por alumno y 22 alumnos. Todas las notas deben ser mayores o iguales a 1 y menores o iguales a 10. Para aprobar hay que tener un promedio igual o superior a 6.5. Procesos necesarios: Para cada uno de los 22 alumnos: Leer las tres notas, verificar que estn en el rango permitido (entre 1 y 10), sumarlas, calcular el promedio, verificar si aprob o no. Mostrar el promedio y un aviso que informe si aprob o no.

TRADUCCIN DEL ALGORITMO para notasDos cumpleveces [estudiante 2] [ pregunta [Ingrese la nota del primer examen ] da "examenUno respuesta pregunta [Ingrese la nota del segundo examen ] da "examenDos respuesta pregunta [Ingrese la nota del trabajo de investigacin ] da "trabajo respuesta siotro (o :examenUno < 1 :examenUno > 10 :examenDos < 1 :examenDos > 10 :trabajo < 1 :trabajo > 10) [ anuncia [Datos no validos ] ]

[ da "sumatoria :examenUno + :examenDos + :trabajo da "promedio :sumatoria / 3 siotro (:promedio < 6.5) [ da "aprobar [ -> NO aprob el primer periodo de Geometra ] ] [ da "aprobar [ -> SI aprob el primer periodo de Geometra ] ] muestra (frase [El promedio del estudiante ] :estudiante + 1 [ es ] :promedio :aprobar) ] ] fin Ntese que en este ejemplo se evala si la proposicin compuesta es verdadera entonces los datos no son validos. Como se utiliza el operador lgico o, basta con que una de las proposiciones sea verdadera para que toda la proposicin compuesta tambin lo sea.

Ejemplo 4-8 Escribe un procedimiento en MicroMundos para leer los valores de dos de los tres ngulos internos de un tringulo y mostrar en pantalla Es un Tringulo Rectngulo si efectivamente es un tringulo de este tipo o, en caso contrario, mostrar No es un Tringulo Rectngulo.

TRADUCCIN DEL ALGORITMO para triangulo local "ANGULO1 local "ANGULO2 local "ANGULO3 local "EsRectangulo pregunta [Ingrese el 1er ngulo del Tringulo] da "ANGULO1 respuesta pregunta [Ingrese el 2do ngulo del Tringulo] da "ANGULO2 respuesta

da "ANGULO3 180 - :ANGULO1 - :ANGULO2 da "EsRectangulo "NO ;inicializa la variable TIPO en NO ;si uno de los ngulos es igual a 90 cambia el valor de TIPO a SI si :ANGULO1 = 90 [da "EsRectangulo "SI] si :ANGULO2 = 90 [da "EsRectangulo "SI] si :ANGULO3 = 90 [da "EsRectangulo "SI] ;dependiendo del valor de EsRectangulo, muestra que tipo de tringulo es siotro :EsRectangulo = "SI [ anuncia [SI es un Tringulo Rectngulo] ] [ anuncia [NO es un Tringulo Rectngulo] ] fin En este ejemplo se evala una a una las proposiciones para determinar s uno de los ngulos es igual a 90. Ntese que la variable esRectngulo se inicializa con el valor NO, en caso de que cualquiera de los ngulos sea igual a 90, entonces la variable esRectangulo se cambia a SI. Finalmente se evala el valor resultante de esta variable para mostrar el mensaje si o no es un tringulo rectngulo.

Ejemplo 4-9 Escribe un procedimiento en MicroMundos para leer los valores de dos de los tres ngulos internos de un tringulo y mostrar en pantalla Es un Tringulo Rectngulo si efectivamente es un tringulo de este tipo o, en caso contrario, mostrar No es un Tringulo Rectngulo. Utilizar operadores lgicos en la solucin.

TRADUCCIN DEL ALGORITMO

para triangulo local "ANGULO1 local "ANGULO2 local "ANGULO3 pregunta [Ingrese el 1er ngulo del Tringulo] da "ANGULO1 respuesta pregunta [Ingrese el 2do ngulo del Tringulo] da "ANGULO2 respuesta da "ANGULO3 180 - :ANGULO1 - :ANGULO2 siotro (o :ANGULO1 = 90 :ANGULO2 = 90 :ANGULO3 = 90) [ anuncia [SI es un Tringulo Rectngulo] ] [ anuncia [NO es un Tringulo Rectngulo] ] fin

Esta es una solucin ms simple y corta que la planteada en el ejemplo 4-8. La utilizacin del operador lgico o permite evaluar en una sola instruccin si alguno de los ngulos vale 90.

Actividad 4-3 Tomando como base el ejemplo 4-9, realizar las modificaciones necesarias para que adicionalmente, el programa muestre en pantalla No es un Tringulo en caso de que cualquiera de los ngulos sea menor o igual a cero. Actividad 4-4 Elabora un procedimiento que pregunte al usuario por la capital de al menos cinco departamentos de tu pas. Si el usuario contesta correctamente a cada pregunta, debes felicitarlo; de lo contrario, debes informarle que fall.

Actividad 4-5 Escribe un procedimiento que pida al usuario un nmero mayor a 10 y muestre el resultado de multiplicarlo por 2 y sumarle el mismo nmero pedido.

Actividad 4-6 Plantea un problema a partir del siguiente cdigo y elabora el Diagrama de Flujo correspondiente para seleccinDoble pregunta [Ingrese el la edad] da "edad respuesta siotro (:edad > 17) [ da "reportar [ aos es mayor de edad] ] [ da "reportar [ aos es menor de edad] ] muestra frase :edad :reportar fin

RESUMEN DE COMANDOS DE MICROMUNDOS PRO

A continuacin encontrars un resumen de las primitivas de MicroMundos Pro utilizadas en este Cuaderno de Trabajo. ADELANTE Mueve la tortuga hacia adelante. Los valores mnimos y mximos para adelante son -9999 y 9999, respectivamente. ALTO Detiene el procedimiento que est activo. Alto solo puede usarse dentro de un procedimiento. Adelante (ad) nmero Ver at, de, iz. adelante control1 repite 4 [ad 50 de 90]

Alto Ver detntodo, detnme y reporta. para contar :nmero si :nmero > 100 [alto] muestra :nmero contar :nmero + 5 fin ANUNCIA anuncia palabra-o-lista Muestra el mensaje en una caja de alerta. anuncia "bienvenido Haciendo clic anuncia [Hola] en Aceptar se cierra la caja. Si mueve la caja anuncia texto1 de alerta a Ver pregunta y respuesta. una nueva posicin mientras est en la pantalla, esta ser la posicin en que la prxima caja de alerta aparecer en el proyecto. ATRS atrs (at) nmero Mueve la tortuga hacia atrs. Los valores Ver ad, de, iz mnimos y atrs 45 mximos para atrs son -9999 y 9999, at control1 respectivamente. repite 4 [at 50 iz 90] AZAR Devuelve un nmero entero positivo (incluyendo el 0) menor que nmero. El nmero mximo es 9999. BNOMBRES Borra de la memoria todas las variables globales. MicroMundos no borra las variables cuando se abre o se crea un nuevo proyecto. Por lo tanto se recomienda usar bnombres cada vez que se inicie un nuevo proyecto. CON PLUMA Pone la pluma a la tortuga en uso. La tortuga azar nmero azar control1 azar 2 Repite 26 [ad azar 30 de azar 60] bnombres Ver nombres. bnombres

Cp Ver sp.

dejar una marca cuando se mueva, pero no cuando sea arrastrada. CUMPLEVECES Activa la lista de instruccin para cada uno de los valores especificados en la serie. La primera entrada es una lista con un nombre de variable temporal y un nmero mximo. La segunda entrada es una lista de instrucciones que usa la variable incluida en la primera lista. DA (ASIGNA) Crea una variable y le asigna el valor palabrao-lista. Estas variables mantienen su valor siempre y cuando no se las borre o se cierre MicroMundos. DERECHA Gira la tortuga hacia la derecha. El mximo valor para derecha es 9999. ESCRIBE Escribe la palabra o la lista en la caja de texto en uso. El texto va seguido de un retorno de lnea y de una secuencia de avance de lnea. ESPERA Origina una pausa en la ejecucin de un programa o de una instruccin. El tiempo se mide en dcimas de segundo.

repite 6 [sp ad 10 cp ad 10]

cumpleveces serie lista-de-instruccin Ver cumplelista. cumpleveces [i 8][muestra :i] cumpleveces [i 360] [fcolor :i / 10 ad 40 at 40 de 2]

da vpalabra palabra-o-lista Ver nombra, cosa, bnombre, nombres y creavarproyecto. da "equipo [t1 t2 t3] da "texto texto1 de nmero; derecha nmero Ver ad, at,iz. derecha 45 repite 5 [de -90 ad 15 de 90 ad 15] escribe (es) palabra-o-lista Ver inserta. escribe "holaescribe [Bienvenidos de nuevo] escribe texto1 espera nmero espera 2 espera control1

Das könnte Ihnen auch gefallen