E.P.E.T. 20 TÉCNICO PROGRAMADOR DOCENTES Graciela Duck María Elisa Ramirez Enrique Gustavo Ortega Unidad 1 – Resolución de Problemas Una computadora es un autómata, que ejecuta un proceso de acuerdo a reglas rígidas. Dicho proceso es especificado por un programa. Un programa es una secuencia de instrucciones y dado que, una computadora posee un repertorio muy limitado de instrucciones elementales, que es capaz de entender y obedecer, es que un programa debe estar formado por dichas instrucciones elementales. La actividad de generar estas secuencias de instrucciones elementales se denomina programación. La programación es una disciplina con muchas aplicaciones y la verdadera dificultad radica en la resolución del problema y no en la construcción del programa en si. Primero estudiaremos la resolución de problemas, para adquirir entrenamiento para diseñar modelos de resolución de problemas en forma metodológica y luego iremos agregando herramientas para acercarnos a un buen estilo de programación y luego se irá plasmando todo lo estudiado en programas utilizando un lenguaje de programación. PROBLEMA Un problema es una discrepancia entre un estado inicial y un estado final. Por ejemplo: como hacer para llegar a la casa de un amigo. El primer paso en la búsqueda de la solución, es encontrar una representación adecuada para el problema que descarte la información que no sirve y rescate la que es importante A este proceso se le llama abstracción Una abstracción se realiza en varias etapas: 1. Transformar el enunciado original en algo tan simple como sea posible 2. Identificar los elementos relevantes y las relaciones entre ellos 3. Nombrar los elementos con alguna notación adecuada 4. Definir las operaciones que deben realizarse TIPOS DE NOTACIÓN PARA REPRESENTAR PROBLEMAS DESCRIPCIÓN VERBAL Hay problemas que solo se pueden resolver en una forma verbal, redactando una nueva versión del problema original, eliminando redundancias, datos irrelevantes y puntualizando el resto en frases cortas y claras. Por ejemplo el siguiente problema: “Juan miente siempre los días Martes, Jueves y Sábados y es completamente veraz los demás días. Un día se mantiene el siguiente diálogo: Pedro: ¿ Qué día es hoy? Juan: Sábado, responde Pedro: ¿Qué día será mañana? Juan: Miércoles, responde La incógnita es: ¿Qué día de la semana es? El razonamiento es verbal podemos ir pensando en cada día de la semana para analizar cual puede ser: Lunes: No puede ser porque los lunes dice la verdad, entonces cuando le preguntan que día será mañana tendría que responder martes y no miércoles Martes: No, porque cuando le preguntan qué día será mañana y dice miércoles y sería verdad y los martes miente Miércoles: No puede ser porque mañana sería jueves y los miércoles dice la verdad Viernes: no, porque los viernes dice la verdad y las dos respuestas son mentiras Sábado: No, porque miente y la primer respuesta es una verdad Domingo: No, porque dice la verdad y las dos respuestas son mentiras POR LO TANTO ES JUEVES, YA QUE MIENTE Y LAS DOS RESPUESTAS SON MENTIRAS DIAGRAMA Existen muchos problemas en los que para resolverlos se puede utilizar algún tipo de gráfico o esquema. Por ejemplo: Blanca, Rosa y Violeta son tres amigas que se encuentran para estudiar, y descubren que casualmente están vestidas con los colores de sus nombres, aunque ninguna lleva el color que corresponde a su nombre, ni colores repetidos. Si el vestido de Violeta no es blanco, ¿Cuál es el color del vestido de cada una ?. Para visualizar lo que dice este problema es conveniente utilizar un cuadro de doble entrada de la siguiente manera: ROPA BLANCA ROPA ROSA ROPA VIOLETA BLANCA X O X ROSA X X O VIOLETA O X X Las cruces indican las intersecciones falsas y los círculos las que resultan verdaderas MATEMÁTICA Se trata de representar el problema utilizando una representación matemática que puede ser: ecuaciones, geometría, teoremas, etc. Una característica interesante como forma de representar problemas, es su rigidez y formalidad. Esto asegura que, si se obtiene una representación adecuada y se respetan las reglas, es posible llegar a una solución acertada. Una gran variedad de problemas que surgen en la práctica se pueden resolver usando ecuaciones. No hay una regla básica para resolverlos frente a la gran variedad de problemas que se pueden plantear. Sin embargo se recomiendan algunas sugerencias: Pasos recomendados para resolver problemas de ecuaciones 1.- Lea el problema detenidamente si hace falta varias veces, hasta que sea capaz de decir que se quiere conseguir y de que información o datos dispone. 2.- Represente una de las cantidades desconocidas en términos de una variable, x suele ser la más usada. Si hay otra cantidad desconocida intente escribirla en términos de su variable (probablemente necesite algún dato del problema). 3.- Un dibujo o esquema siempre ayuda a aclarar situaciones. 4.- Plantear una ecuación. Para ello busque las expresiones verbales que deben ser iguales. Escriba estas expresiones en término de su variable. Esto es, pase la expresión verbal a la algebraica. 5.- Resuelva la ecuación. Puntualice o remarque la respuesta. 6.- Responda en palabras cada pregunta del problema. El paso probablemente que presente más dificultad es el cuarto. Puede descomponer este paso en los siguientes: 4.1 Busque las dos expresiones verbales que deben ser iguales. 4.2 Describa cada una de las partes de sus expresiones verbales en términos de su variable. 4.3 Escriba ahora la ecuación como una igualdad de dos expresiones algebraicas en su variable Veamos algunos ejemplos: 1.- Si dos números son tales que uno es el cuádruplo del otro y su suma es 125. ¿Cuáles son esos números? VARIABLES DEL PROBLEMA: X : primer número Y: segundo número EXPRESIONES QUE DEBEN SER IGUALES Y = 4X Ahora debemos expresar que la suma de los dos números es igual a 125 X + Y = 125 ESCRIBIR LAS EXPRESIONES EN TÉRMINOS DE LA VARIABLE Entonces las ecuaciones planteadas serian: Y=4x X+Y=125 RESOLVER LA ECUACION Para resolver las ecuaciones se debe reemplazar y despejar En la segunda ecuación se reemplaza el valor de la variable Y por su equivalente en función de la variable X, es decir, Y se reemplaza por 4X y quedaría como: X+4X = 125 De esta ecuación se deduce que: 5X =125 Despejando: X= Por lo tanto X=5 Y=4.X y reemplazando el valor de X Y = 4x5= 20 RESPUESTA: X=25 Y=20 2.-Si al doble de un número le restas 13, obtienes 91. ¿ Cuál es el número? VARIABLE DEL PROBLEMA: X: número del problema EXPRESIONES QUE DEBEN SER IGUALES El doble de un número menos trece=91 ESCRIBIR LAS EXPRESIONES EN TÉRMINOS DE LA VARIABLE Representa el doble del número que indica el enunciado 2X-13=91 RESOLVER LA ECUACION Para resolver las ecuaciones se debe reemplazar y despejar 2X-13=91 2X=91 + 13 2X = 104 X= 104 2 RESULTADO X=52 3.- La base de un rectángulo es doble que la altura, y el perímetro mide 78cm. Calcular las dimensiones del rectángulo. VARIABLES DEL PROBLEMA: B: base del rectángulo H: altura del rectángulo EXPRESIONES QUE DEBEN SER IGUALES La base de un rectángulo = doble de la altura El perímetro=78 ESCRIBIR LAS EXPRESIONES EN TÉRMINOS DE LA VARIABLE B= 2.H Representa el doble de la altura 2B + 2H= 78 RESOLVER LA ECUACION Para resolver las ecuaciones se debe reemplazar y despejar. En la primera ecuación se reemplaza B si igualdad 2.H, de esta manera la ecuación queda toda expresada en función de H y se puede despejar Entonces en: 2B + 2H = 78 2(2H) + 2H= 78 4H + 2H = 78 6H = 78 H = 78/6 H=13 Reemplazando en la primera ecuación B=2H = 2*13=26 RESULTADO La altura es 13 y la base es 26 4.-Por un videojuego, una revista y un helado, Andrés ha pagado $14,30. El videojuego es cinco veces más caro que la revista, y ésta cuesta el doble que el helado. ¿Cuál era el precio de cada artículo? VARIABLES DEL PROBLEMA: V: video Juego R: revista H: helado EXPRESIONES QUE DEBEN SER IGUALES Un videojuego , una revista y un helado = 14,30 videojuego = es cinco veces más caro que la revista, la revista = doble que el helado ESCRIBIR LAS EXPRESIONES EN TÉRMINOS DE LA VARIABLE V+R+H= 14,30 V=5.R R=2H RESOLVER LA ECUACION Para resolver las ecuaciones se debe reemplazar y despejar En la primera ecuación se deben reemplazar las variables en función de alguna de alguna de las otras, por ejemplo como: V=5R H=R/ 2 Entonces en la primera ecuación se reemplaza de la siguiente manera: 5R + R + R =14,30 2 6R + R =14,30 2 13 R = 14,30 2 13 R = (14,30)* 2 R= 28,60 13 R = 2,20 Con este valor de R reemplazamos en las demás ecuaciones para obtener los valores de las otras variables: V= 5.R , entonces V= 5* 2,20 = 11 H = R/2 , entonces H = 2,20 / 2 = 1,1 RESULTADO: el videojuego cuesta $11, la revista cuesta $2,20 y el helado cuesta $1,1 5.- José suma las notas obtenidas en la última prueba de matemática, historia y geografía obteniendo 25. La nota de historia es 2 unidades menor quela de matemática y 1 unidad mayor que la de geografía. ¿Cuál es la nota de cada evaluación? VARIABLES DEL PROBLEMA: M: nota de matemática H: nota de historia G: nota de geografía EXPRESIONES QUE DEBEN SER IGUALES La suma obtenida en las evaluaciones de matematica, historia y geografía = 25 La nota de historia=2 unidades menos que la de nota matemática, La nota de historia = 1 unidad mayor que la nota de geografía ESCRIBIR LAS EXPRESIONES EN TÉRMINOS DE LA VARIABLE M+H+G= 25 H=M - 2 H=G+1 RESOLVER LA ECUACION Para resolver las ecuaciones se debe reemplazar y despejar. En la primera ecuación se deben reemplazar las variables en función de alguna de alguna de las otras, por ejemplo en este caso conviene expresar la primera ecuación en función de G y luego despejar, entonces: Como H = G + 1 De la segunda ecuación: H= M-2 Despejando: M =H+2 Reemplazando por el valor de H obtenido en primer lugar: M= (G+1) +2 Entonces M= G+3 Reemplazando en la primera ecuación: (G + 3) + (G +1) + G= 25 3 G + 4 =25 3G = 25 – 4 3G = 21 G = 21 3 G=7 Reemplazando: M= G + 3 = 7 + 3 = 10 H=G+1=8 Resultado: 10 en matemática, 8 en historia y 7 en geografía 6.- Roberto tiene el triple de edad que su hija Nuria. Calcula la edad de cada uno sabiendo que dentro de 12 años la edad del padre será solamente el doble que la de la hija. VARIABLES DEL PROBLEMA: ER= edad de Roberto EN = edad de Nuria EXPRESIONES QUE DEBEN SER IGUALES La edad de Roberto = triple de edad de su hija Sumando doce años a la edad de Roberto= doble de la edad de Nuria ESCRIBIR LAS EXPRESIONES EN TÉRMINOS DE LA VARIABLE ER=3.EN ER + 12= 2(EN+ 12) RESOLVER LA ECUACION Para resolver las ecuaciones se debe reemplazar y despejar En la segunda ecuación se deben reemplazar la equivalencia de ER con respecto a EN entonces: 3EN + 12 = 2EN + 24 3EN + 12 -2EN= 24 EN= 24 – 12 EN = 12 Reemplazando ER= 3* 12 = 36 Resultado : la edad de Nuria es 12 y la del padre es 36 Práctico1: Resolución de Problemas 1 2 3 4 5 6 7 8 9 10 11.- La suma de las edades de A y B es de 284 años, y B tiene el doble de años menos que A. Hallar ambas edades. 12.- La suma de tres números enteros consecutivos es 388. Hallar los números. x= un numero entero, x+1 = numero mas uno x+2 = numero mas dos 13.- La edad de Pedro es el triplo de la de Juan y ambas edades suman 40 años. Hallar ambas edades. 14.- En un hotel de dos pisos hay 48 habitaciones. Si las habitaciones del segundo piso son la mitad de las del primero, ¿Cuántas habitaciones hay en cada piso? 15.- Repartir 500 lápices entre A, B y C de modo que la parte de B sea el doble menos 5 que la de A y la de C el triplo de la de A. 16.- Se ha comprado un traje, un bastón y un sombrero por $259. El traje costo 8 veces más que el sombrero y el bastón $30 menos que el traje. Hallar los precios respectivos. 17.- La edad de Enrique es la mitad de la de Pedro; la de Juan el triplo de la de Enrique; y la de Eugenio el doble de la de Juan. Si las cuatro edades suman 132 años, ¿Qué edad tiene cada uno 18.- Las edades de un padre y su hijo suman 60 años. Si la edad del Padre se disminuyera en 15 años se tendría el doble de la edad del hijo. Hallar ambas edades. 19.- Un perro y su collar han costado $54, y el perro costo ocho veces lo que el collar. ¿Cuánto costó el perro y cuanto costo el collar? 20.- En una clase hay 60 alumnos entre varones y señoritas. El número de señoritas excede en 15 al duplo de los varones. ¿Cuántos varones hay en la clase y cuantas señoritas? 21.- ¿Cuál es el área de un rectángulo sabiendo que su perímetro mide 16 cm y que su base es el triple de su altura ?. Rta: Base 6cm, Altura 2cm 22.- Busca un número cuyo doble más tres unidades sea igual a su triple menos cinco unidades. Rta: El número es 8. 23.- Narciso ha comprado en las rebajas dos pantalones y tres camisetas por 161 $. ¿Cuál era el precio de cada artículo, sabiendo que un pantalón costaba el doble que una camiseta ?. Rta: Una camiseta cuesta 23 $ y un pantalón 46 $ 24.- Rosa tiene 25 años menos que su padre, Juan, y 26 años más que su hijo Alberto. Entre los tres suman 98 años. ¿Cuál es la edad de cada uno? Rta: Rosa tiene 33 años, Juan 58 años y Alberto 7 años. 25.-Juan y Pedro son mellizos. Julián tiene 3 años más que ellos y las edades de los tres sumadas es 42. ¿Qué edad tiene Julián ?. Rta: 16 años. 26.- Tenemos que repartir $280 entre tres hermanos. El mayor se lleva el triple que el segundo, y el segundo se lleva el doble que el tercero. ¿ Cuánto se lleva cada hermano?. Rta: el primero se lleva $186,66, el segundo $62,22 , el tercero $ 31,11 27.-Angélica compra tres pantalones, dos blusas y un sombrero por 135. Beatriz adquiere un pantalón, tres blusas y un sombrero por 100. Por su parte, Carolina compra dos pantalones, tres blusas y dos sombreros por 155. Si se supone que los artículos de un mismo tipo cuestan lo mismo, determinar el precio de cada una de las prendas. Rta: pantalón $25, blusa $15 y sombrero $30 28.- El CONICET recibió una donación de $1.360.000 para realizar investigaciones sobre métodos de prevención de posibles ataques bacteriológicos. El dinero se dividió entre 100 científicos de 3 grupos de investigación: A, B, C. Cada científico del grupo A recibió $20.000; cada científico del B $8.000 y cada uno del C recibió $10.000. El grupo de investigación B recibió 1/5 de los fondos del grupo A. ¿Cuántos científicos pertenecen a cada Grupo ?. Rta: Al grupo A pertenecen 40 científicos, 20 pertenecen al B y 40 al C. 29.-Cierta persona compró un impermeable, un sombrero y unas pantuflas y pagó por todo 200 pesos. El impermeable le costó 90 pesos más que el sombrero; el sombrero y el impermeable juntos costaron 160 pesos más que las pantuflas. ¿Cuál era el precio de cada prenda ?. Rta: Sombrero $135, pantalón $20, impermeable $45 30.-En una reunión hay doble número de mujeres que de hombres y triple número de niños que de hombres y mujeres juntos. ¿Cuántos hombres, mujeres y niños hay si la reunión la componen 96 personas? Rta: Cantidad de hombres 8 , cantidad de mujeres 16 y la cantidad de niños es 72 Unidad 1’ – Lógica Proposicional Un propósito a lograr en el área de matemática, es que los alumnos aprendan a razonar matemáticamente. Tal propósito no se lograría, si es que no pasa del mundo de las opiniones empíricas al mundo del pensamiento formal. Pero, un pensamiento sistemático, auténtico y coherente no puede surgir sin la base de un método crítico correcto. En este sentido, el conocimiento de la lógica (ciencia que se ocupa del estudio de los métodos y principios para distinguir el buen razonamiento del malo), se hace indispensable. El término “lógica” tiene varios significados. Nosotros nos referiremos a la lógica como disciplina filosófica que se ocupa de los razonamientos: Con el lenguaje podemos hacer muchas cosas: rogarle a alguien que nos preste dinero, preguntar dónde está una calle o describir nuestra casa a un amigo. En cada uno de estos casos el lenguaje cumple una función distinta, y aún tiene más. De todas ellas, la función representativa es una de las principales, y nos permite enunciar y afirmar cosas sobre el mundo y, así, describirlo. Pero con el lenguaje no sólo hacemos afirmaciones sobre lo que vemos (“hoy hace un día magnífico”, “el césped está mojado”…), sino que también a veces relacionamos esas afirmaciones para poder así extraer nuevos conocimientos (“hoy hace un día magnífico y el césped está mojado; por lo tanto, tal vez alguien lo haya regado”). Este proceso que nos permite obtener conocimientos nuevos a partir de otros se llama RAZONAR. Razonamos cuando, por ejemplo, ordenamos nuestros pensamientos, los conectamos entre sí y extraemos conclusiones que tal vez sirvan para tomar decisiones. Todos razonamos cuando conectamos ideas y llegamos a conclusiones. Pero no todos ni siempre razonamos bien. LA LÓGICA ES LA CIENCIA QUE ESTUDIA LOS MÉTODOS Y PRINCIPIOS QUE PERMITEN DISTINGUIR LOS RAZONAMIENTOS CORRECTOS DE LOS INCORRECTOS, ES DECIR, QUÉ RAZONAMIENTOS SON VÁLIDOS Y CUÁLES NO. Pero no se interesa por el proceso que se da en nuestras mentes cuando razonamos (eso es objeto de la Psicología), sino que se ocupa de los razonamientos ya formados y expresados de forma escrita u oral. No se trata de que los lógicos razonen bien y el resto no, pero estudiar lógica ayuda a detectar las formas erróneas de razonar y evita caer en trampas y falacias. RAZONAMIENTO, INFERENCIA o ARGUMENTACIÓN Es un conjunto de afirmaciones en el que se produce el paso de uno o más enunciados que tomamos como punto de partida (LASPREMISAS), a una afirmación que se sigue o se concluye de aquellas (LACONCLUSIÓN). Hay que tener muy en cuenta que no todo conjunto de afirmaciones es un razonamiento. Para que lo haya es necesario que una de ellas, llamada conclusión, se derive de las otras, llamadas premisas, que a su vez son las que aportan pruebas o razones para llegar a esa conclusión. EJEMPLO: Ivan Lend, el jugador de tenis, es checoslovaco. Todos los checoslovacos son europeos. Así que Ivan Lend es europeo. Ninguna afirmación es, en sí misma, premisa ni conclusión, que no son más que términos relativos. No existen premisas sin conclusión ni viceversa. Y a la vez, las premisas pueden ser conclusiones en otro contexto, igual que las conclusiones pueden ser premisas. EJEMPLO: Ivan Lend es europeo (conclusión del anterior, ahora premisa) Ningún europeo es americano. Ivan Lend no es americano. En un razonamiento reconocemos cuál es la conclusión porque ésta suele venir precedida por NEXOS o EXPRESIONES DERIVATIVAS tales como: por lo tanto, luego, por ende, en consecuencia, así que, se sigue que, de ahí que, por eso, se deduce que, podemos concluir que…. Son nexos indicadores de las premisas: porque, pues, dado que, puesto que, ya que, …. También hay que tener presente que en un razonamiento tal vez no haya ningún nexo; en estos casos atenderemos especialmente al contexto. Todos los razonamientos pueden esquematizarse, se presenten como se nos presenten, de la siguiente forma: EJEMPLO: Juan Carlos ha aumentado su cotización en el mercado futbolístico puesto que ha sido el goleador del último torneo y todos los goleadores ven aumentada su cotización en el mercado futbolístico. FORMA ESQUEMÁTICA P1: Juan Carlos ha sido el goleador del último torneo. P2: Todos los goleadores ven aumentada su cotización en el mercado futbolístico. C: Juan Carlos ha aumentado su cotización en el mercado futbolístico. Cuando la conclusión se deduce correctamente del conjunto de premisas se dice que la inferencia es válida, en caso contrario la inferencia no es válida. Sabemos que la conclusión se deriva correctamente de sus premisas porque hay un conjunto de leyes lógicas que garantizan dicha corrección. Justamente la lógica estudia el modo de usar estas leyes, con las cuales podemos saber si una inferencia es válida o no. De ahí que, la lógica es una ciencia que estudia los métodos y las leyes que determinan la validez de la inferencia. LA LÓGICA FORMAL Es la que se ocupa de la validez de los razonamientos centrándose en su aspecto formal, determinando cuándo una inferencia está bien construida, es decir, cuándo la estructura del razonamiento nos permite inferir la necesidad de la conclusión. Los lógicos clásicos enseñaban que además de ciencia, es un arte: coincide con otras ciencias como la psicología y la matemática en que investiga las leyes del pensamiento; y con otras artes, como la gramática, en que aplica estratégicamente reglas. Éstas serían útiles para el ejercicio de la discusión y el razonamiento en campos tan diversos como la ciencia, el derecho, la política, la propaganda o la vida cotidiana. Pero además y sobre todo, se puede decir de la lógica formal que ES UN LENGUAJE. El lenguaje es un fenómeno social basado en la capacidad que poseen algunas especies animales de comunicarse mediante símbolos u otros signos interpretados (los símbolos son un tipo de signos que mantienen con su significado una relación puramente arbitraria). Dicha capacidad está especialmente desarrollada en el hombre, que lo utiliza incluso para referirse a él mismo(metalenguaje). Ahora bien, existen varios tipos de lenguaje: LENGUAJE NATURAL Se entiende por Lenguaje Natural al lenguaje (=conjunto de símbolos) utilizado por una sociedad para comunicarse. Hay que precisar que el lenguaje que usamos para comunicarnos y referirnos a la realidad no es ‘natural’ en sentido estricto, sino que lo aprendemos en sociedad, a diferencia de lo que ocurre con los demás animales cuyo lenguaje es natural o innato, es decir, lo desarrollan naturalmente aunque no estén en contacto con individuos de su misma especie. Al lenguaje que aprendemos en sociedad y que usamos para comunicarnos y referirnos a las cosas que nos rodean, lo llamamos Lenguaje Cotidiano o Lenguaje Ordinario o Lenguaje Natural ELEMENTOS DEL LENGUAJE NATURAL: SÍMBOLOS Y REGLAS El Lenguaje Natural humano consta de un conjunto finito de símbolos (palabras y signos lingüísticos, que forman el Vocabulario) y un número finito también de reglas (constituyen la Sintaxis), las cuales determinan cómo combinar correctamente los símbolos del vocabulario, es decir, establecen cómo formar correctamente oraciones en ese lenguaje. ¿QUÉ ES UNA ORACIÓN? Es una expresión lingüística sintácticamente correcta (=está bien construida de acuerdo con las reglas) y que posee sentido completo. Llamamos «expresión lingüística» a cualquier combinación de símbolos de un lenguaje. Ejemplos: “El cuarzo es un mineral”, “¿Qué hora es?”, “Cierra la puerta”,… Por el contrario, expresiones como “Vivir con cuando”, “Lloviendo noche estaba aquella”, etc. no son oraciones porque o bien no tienen sentido completo o son sintácticamente defectuosas. ¿QUÉ ES UNA ORACIÓN ENUNCIATIVA O ENUNCIADO? Es una expresión lingüística que tiene sentido completo y que puede ser verdadera o falsa. De los anteriores ejemplos de oraciones, sólo el primero (“El cuarzo es un mineral”) es un enunciado, pues dice algo que puede ser verdadero o falso, mientras que los otros dos ejemplos (“¿Qué hora es?”, “¡Cierra la puerta!”) no lo son porque no cabe preguntarse si es verdadero o falso lo que ‘dicen o expresan’. INSUFICIENCIAS DEL LENGUAJE NATURAL Dada la multivocidad (=riqueza significativa) que lo caracteriza, el Lenguaje Natural resulta insuficiente para las exigencias de exactitud de la ciencia o para la formulación precisa de razonamientos complejos (aunque esa riqueza expresiva lo convierta en el Salustiano mejor aliado del poeta, el novelista o el orador). Las insuficiencias del Lenguaje Natural con respecto a la precisión de sus expresiones son consecuencia de: a) Ambigüedades semánticas: en el Lenguaje Natural hay muchas palabras y expresiones cuyo significado no es preciso, sino ambiguo; rebosa de términos polisémicos (es decir, palabras que tienen más de un significado). Ejemplo: “Pedro alquiló una casa” (no sabemos si la casa que Pedro alquila es de su propiedad y se la alquila a otra persona, o si Pedro la alquiló para habitarla él),“Llevaba el gato en el coche”, “Te sigo”,… b) Deficiencias sintácticas: las reglas sintácticas que determinan cómo combinar correctamente las palabras del lenguaje natural carecen de criterios rigurosos que permitan evitar oraciones sin sentido. Ejemplos: “Los martillos cerrados paladean locamente”, “Allí donde los libros bordean las ásperas playas se alza el fondo de planicie más elevado”, LENGUAJE ARTIFICIAL Tratando de superar las citadas limitaciones del Lenguaje Natural, para proporcionarle a las ciencias un lenguaje exacto y riguroso, se han ido construyendo los Lenguajes Artificiales, esto es, lenguajes bien definidos que poseen una estructura operativa más eficaz. En líneas generales puede decirse que todas las ciencias, en especial las ciencias de la naturaleza, emplean Lenguajes Artificiales y que ésta ha sido una de las condiciones para su progreso. Por ejemplo, los símbolos de la Química, la Física, la Biología, pero también los de la Economía, la Lingüística, etc., constituyen tipos de lenguaje artificial. ELEMENTOS QUE INTEGRAN UN LENGUAJE ARTIFICIAL Básicamente consta de los mismos elementos que cualquier lenguaje natural (un conjunto se signos y una serie de reglas sintácticas), pero se le exige además: a) Que los signos estén bien definidos, para que no quepan ambigüedades; b) Que el conjunto de las reglas para la formación de expresiones, impida la construcción de expresiones carentes de sentido y permita saber, en cualquier momento, si una determinada combinación de signos es una expresión bien formada del Lenguaje; c) Y que posea, además, un conjunto de reglas operativas o de transformación de expresiones, que permita deducir a partir de unas expresiones correctas del Lenguaje otras que también lo sean, para de ese modo construir rigurosas y complejas cadenas deductivas. La Lógica y las Matemáticas son ejemplos de Lenguajes Artificiales. LENGUAJE FORMAL Se denomina Lenguaje Formal a un Lenguaje Artificial cuyos signos son formales (es decir, carecen de significado) y cuyas reglas sintácticas permiten operar con dichos signos como en un cálculo. La Lógica y las Matemáticas son Lenguajes Artificiales y, además, Formales. ¿Qué significa que los signos de un Lenguaje Formal carecen de significado? Pues que tales signos no se refieren en absoluto a la realidad. Así, por ejemplo, el signo matemático ‘2’ no se refiere a dos cosas concretas, como dos manzanas o dos peras; y lo mismo le ocurre a los signos lógicos ‘p’, ‘q’, ‘r’, que no se refieren a ninguna proposición determinada. ¿Qué significa que las reglas de un Lenguaje Formal poseen la eficacia de un cálculo? - Que mediante tales reglas siempre podremos saber si una expresión (es decir, un conjunto de signos) está bien formada en ese lenguaje. - Y que mediante la aplicación de dichas reglas podremos transformar expresiones bien formadas en dicho lenguaje en otras expresiones que también lo estén, y que por algún motivo nos interesen. LA LÓGICA PROPOSICIONAL O LÓGICA DE ENUNCIADOS Como ya se mencionó, hay oraciones que tienen una función informativa, que se caracterizan por afirmar o negar algo. Ej: “Hubo dos guerras mundiales.” “Cinco es un número impar” A este tipo de expresiones lingüísticas se las denomina proposiciones o enunciados, y se caracterizan porque ellas tienen el sentido de decir que son verdad o falsas. La lógica proposicional trata sobre la verdad o la falsedad de las proposiciones y de cómo la verdad se transmite de unas proposiciones(premisas) a otras (conclusión).Una proposición es la unidad mínima de significado susceptible de ser verdadera o falsa. Una palabra aislada, por sí misma, no nos dice nada. La palabra ‘perro’ tiene una referencia, pero no nos da ninguna información si no es en el contexto de una proposición como ‘El perro está ladrando’. Por ello Una palabra, A menos que constituya una proposición, no es verdadera o falsa. Sólo tienen valor de verdad las proposiciones. LOS SIGNOS DE LA LÓGICA PROPOSICIONAL a) Variables proposicionales: para simbolizar las proposiciones simples se utilizan las letras :p, q, r, s, t, u, a, b, c…. Estas letras se denominan variables proposicionales porque se utilizan para representar a cualquier proposición del Lenguaje Natural. Por ejemplo: la proposición simple “Los gatos son mamíferos” la simbolizamos con una “p”. Y la proposición compleja “Los gatos son mamíferos y les gusta cazar ratones” la simbolizamos como ‘p y q’. Admitimos que cualquier proposición simple es o bien verdadera o bien falsa, pero no ambas cosas a la vez. Éste es el Principio de Bivalencia: las proposiciones simples sólo pueden tener dos valores de verdad: o son verdaderas o son falsas. b) Símbolos auxiliares: en lógica se utilizan paréntesis, corchetes y llaves para agrupar ordenadamente las proposiciones. { } , [ ] , ( ) c) Conectivas lógicas: se denominan conectivas a aquellos signos lógicos que sirven para unir a las proposiciones simples entre sí. Las conectivas que manejaremos son las siguientes: El conjuntivo: es la conjunción "y". Su símbolo es "^". El disyuntivo: es la conjunción "o". El símbolo del inclusivo es "v"’. El condicional: es la conjunción compuesta "si... entonces". Su símbolo es "→". El bicondicional: es la conjunción compuesta "si y sólo si". Su símbolo es "↔". Negación conjunta: son las partículas "no…". Su símbolo es "∼". CLASES DE PROPOSICIONES O ENUNCIADOS Si se analiza gramaticalmente una frase o expresión del lenguaje cotidiano, veremos que estas pueden clasificarse como simples o compuesta Una proposición es simple si no puede descomponerse en partes que a su vez sean proposiciones. También se la denomina proposición atómica. Ejemplos: “Los gatos son mamíferos”, “Pedro viene con Luis”. Una proposición es compuesta si está compuesta por proposiciones simples unidas por CONECTIVOS LOGICOS. También puede ser llamada molecular. Ejemplos: “Los gatos son mamíferos, pero a mí me gustan más los pájaros exóticos”, “Si Pedro viene con Luis y trae comida, nos iremos todos al campo” La operación consistente en sustituir las expresiones del lenguaje natural Por símbolos lógicos se llama formalización. A la proposición debidamente Formalizada la llamaremos fórmula. Según lo dicho, la formalización de la Proposición atómica “Los gatos son mamíferos “será, simplemente, la fórmula p Los conectivos lógicos nos dicen cómo afecta el valor de verdad de las proposiciones atómicas al valor de verdad de las proposiciones compuestas. Ya hemos visto que en el lenguaje natural, la conjunción y funciona como un conectivo lógico. Por ejemplo, cuando decimos: El helecho es una planta y los gatos son herbívoros se formalizará como: El helecho es una planta: p Los gatos son herbívoros: q La fórmula queda expresada como: p Λ q Estamos conectando la proposición atómica las EL HELECHO ES UNA PLANTA con la proposición atómica ‘LOS GATOS SON MAMÍFEROS’ mediante la conectiva lógica ‘y’. La ‘y’ nos está diciendo que la proposición molecular El helecho es una planta y los gatos son mamíferos sólo es verdadera si las dos proposiciones atómicas que la componen son ambas verdaderas, y será falsa en caso de que, al menos una de ellas, sea falsa. Como sabemos que los gatos no son herbívoros, podemos concluir que la proposición El helecho es una planta y los gatos son mamíferos es falsa. Por su parte, a cada conectiva lógica le corresponde un símbolo y una tabla de verdad que le corresponde CONECTIVOS LÓGICOS NEGACIÓN (∼) ∼ …se lee “no” ∼ p …se lee “ no p” ∼ q …se lee “no q” Las expresiones siguientes: “Podemos ir de excursión a la barda”: p “No podremos ir de excursión a la barda”: ∼p “Tengo un auto gris”: q “No tengo un auto gris”, ∼q. El negador es aquel conectivo que al aplicarse a una proposición cualquiera, sea simple o compleja, la convierte en falsa si es verdadera y en verdadera si es falsa. Las condiciones de verdad de la negación se pueden representar en una tabla del siguiente modo: p ~p V F F V CONJUNCION (∧) ∧ …se lee “y” p ∧ q …se lee “p y q” La conjunción es aquella conectiva que sólo es verdadera si las dos proposiciones que une son ambas verdaderas, y que es falsa en los demás casos. Las expresiones siguientes son ejemplos de conjunción de proposiciones: "Comí y bebí". La formalizaremos como: Comí: p pΛq Bebí: q “Hoy estamos alegres y nos iremos a bailar” Hoy estamos alegres: r rΛs Hoy nos iremos a bailar: s “El sol se nubló, pero seguimos caminando”, El sol se nubló: p pΛt Nosotros seguimos caminando: t “A pesar de que va mal vestido, me da gusto verlo “ Él va mal vestido: p pΛq A mí me da gusto verlo: q Tabla de verdad de la conjunción: p q p∧q V V V V F F F F V F F F DISYUNCIÓN ( ∨ ) ∨ …se lee “o” p ∨ q …se lee “p o q” El disyuntor es aquella conectiva que sólo es falsa si las dos proposiciones que une son ambas falsas, y verdadera en los demás casos. Las expresiones siguientes son ejemplos de DISYUNCIÓN de proposiciones: "Como o bebo" p v q La formalizaremos como: Yo como : p pvq Yo bebo : q O bien voy al cine, o bien voy al teatro Voy al cine :r rvs Voy al teatro : s La tabla de verdad de la diyunción es: p q pvq V V V V F V F V V F F F CONDICIONAL ( → ): → …se lee “Si…, entonces…” p → q…se lee “Si p, entonces q” (‘p’ es el antecedente, y ‘q’ es el consecuente) Las expresiones siguientes son ejemplos de proposiciones condicionales Si asiste a clase entonces se aprueba Se asiste a clase : p p→q Se aprueba: q “Si vienes mañana, iremos a casa de Luis” Vienes mañana: r r→s Iremos a casa de luis: s El condicional es aquella conectiva que sólo es falsa cuando, siendo el antecedente verdadero, el consecuente sea falso, y verdadera en los demás casos. La tabla de verdad es: P q p→q V V V V F F F V V F F V Llamamos ‘antecedente’ del condicional a la proposición que se halla a su izquierda, y ‘consecuente’ a la que está a su derecha. La tabla de verdad del condicional siempre causa cierta inquietud y, de hecho, ha sido objeto de crítica por parte de muchos lógicos. Lo primero que observamos en la tabla del condicional es que sólo es falso en un caso: cuando el antecedente es verdadero y el consecuencia falso. En efecto, supongamos que a principio de curso un profesor dice a sus alumnos: Si venís a clase entonces aprobaras Ahora supongamos que, al final del curso, un determinado alumno, tras asistir religiosamente a todas las clases, desaprueba .Diremos, en ese caso, que el profesor mintió al principio del curso pues la proposición ‘si venís a clase entonces aprobaras’ es manifiestamente falsa, pues un alumno ha ido a clase y no ha aprobado. Lo que sorprende de la tabla de verdad del condicional no es esto, sino los casos que lo hacen verdadero. • En el primer caso (v→v) no parece haber problema, pues si el antecedente es verdadero y también lo es el consecuente, no hay razón para negar el condicional: se ha cumplido la condición y también se ha cumplido lo condicionado. • El segundo caso merece algo más de atención (F→V). En efecto, como vemos en la tabla, si el antecedente es falso pero el consecuente es verdadero, el condicional es verdadero. La razón de esto es que el consecuente de un Condicional puede ser verdadero independientemente del antecedente. Si es Verdad que si Pepito asiste a clases entonces aprueba, eso no excluye que apruebe sin asistir a clases, pues aun en ese caso seguiría siendo verdad que si hubiera asistido a clases, aprobaría. • El tercer caso en el que el condicional es verdadero no carece tampoco de interés (F→F). Si tanto el antecedente como el consecuente son falsos, el condicional es verdadero. Hay que recordar que un condicional no está describiendo un hecho actualmente existente del mundo, sino que establece una condición y dice que, en el caso de que se cumpliera, ocurriría tal o cual cosa. Que el antecedente y el Consecuente sean falsos no excluye que si el antecedente hubiera "sido" verdadero también lo hubiera sido el consecuente. Si yo no asisto a clase y no apruebo, no por eso es falso que si asisto a clase, entonces apruebo. BICONDICIONAL ( ↔ ): ↔ …se lee “Sólo si…” p ↔ q …se lee “p sólo si q” o “Sólo si p, entonces q” Las expresiones siguientes son ejemplos de proposiciones bicondicionales Solo si llueve, me quedare en casa llueve: p p↔q me quedare en casa: q La democracia sólo existe si y sólo si hay elecciones La democracia existe: r r↔t Hay eleciones : t El bicondicional es aquella conectiva que sólo es verdadera si las dos proposiciones unidas por ella tienen ambas el mismo valor de verdad, es decir, son ambas verdaderas o falsas a la vez. La tabla de verdad del bicondicional es: p q p↔ q V V V V F F F V F F F V Reglas de prioridad El uso del paréntesis puede facilitar la comprensión de las expresiones lógicas. Más aun, si no se usan paréntesis las expresiones lógicas pueden llegar a ser ambiguas. Por ejemplo, ¬p v q puede ser interpretada como “(~p) v q” o como ~ (p v q). Para interpretar correctamente la expresión, se usan las reglas de prioridad o precedencia. Los conectivos tienen diferentes prioridades, a continuación se enumeran de la mas alta prioridad a la mas baja: ~,Λ, v,→, ↔ TABLAS DE VERDAD DE LAS OPERACIONES LOGICAS Para averiguar los posibles valores de verdad de una proposición compuesta debemos armar una tabla de verdad .Una tabla de verdad de una proposición compuesta , es una tabla que se arma con los posibles valores de verdad de las proposiciones simples que componen una proposición compuesta, con la finalidad de obtener el valor de verdad de la proposición dada Las combinaciones posibles de los valores de verdad de 2 proposiciones (p, q), cada una de las cuales puede ser verdadera o falsa, son cuatro: que las dos sean verdaderas, que una sea verdadera y la otra falsa, que una sea falsa y la otra verdadera, y que las dos sean falsas. Para un número ‘n’ de proposiciones las combinaciones de sus valores de verdad serán 2n Ejemplo: Si analizamos la proposición t: p ~ p realizando su tabla de verdad: p ~p p~p V F F V V V Como se utiliza una sola proposición hay solo dos valores de verdad posibles Ejemplo: Construir la tabla de verdad de la proposición: [ ( p q ) p ] q 2n = 22 = 4 combinaciones posibles p q pq [(pq)p] V V F F V F V F V F V V V F F F [(pq)p]q V V V V Ejemplo : construir la tabla de verdad de la siguiente proposición Ejemplo : Construir la tabla de verdad de la proposicion [∼pΛ(q∨r)] ↔[(p ∨ r) Λ q] 2n = 23 = 8 combinaciones posibles p q r ∼p q∨r ∼pΛ(q∨r) pvr (p ∨ r) Λ q [∼pΛ(q∨r)] ↔[(p ∨ r) Λ q] V V V F V F V V F V V F F V F V V F V F V F V F V F V V F F F F F V F V F V V V V V V V V F V F V V V F F F F F V V V V V V V F F F V F F F F F Ejemplo: Construir la tabla de verdad de la proposición [ ∼p (q p) ] ∼ q 2n = 22 = 4 combinaciones posibles p q ∼p ∼q V V F F V F V F F F V V F V F V q p [ ∼p (q p) ] V F F F V V F F [ ∼p (q p) ] ∼ q F V V V TAUTOLOGÍA, CONTRADICCIÓN y CONTINGENCIA Al hacer la tabla de verdad de cualquier fórmula nos podemos encontrar con tres casos: que la tabla de verdad de la fórmula sólo tenga VERDADEROS, que sólo tenga FALSOS, y que tenga VERDADEROS y FALSOS. TAUTOLOGÍA: Es una fórmula siempre válida, sean cuales sean los valores de verdad de las proposiciones que la integran. Es decir, es una fórmula cuya tabla de verdad final sólo tiene VERDADEROS. CONTRADICCIÓN: Es una fórmula no válida nunca, sean cuales sean los valores de verdad de las proposiciones que la integran. Es decir, es una fórmula cuya tabla de verdad final sólo tiene FALSOS CONTINGENCIA: Es una fórmula que puede ser válida o no, en función de los valores de verdad de las proposiciones que la integran. Es decir, es una fórmula cuya tabla de verdad final tiene VERDADEROS y FALSOS no importa en qué proporción. DIAGRAMA DE VALORES DE CERTEZA (o de verdad) Independientemente de la longitud y de lo complicada que sea una proposición molecular, se pueden hallar sus valores de certeza si se conocen los valores de certeza de sus partes.Sea por ejemplo la fórmula ( p ∨ q ) ∧ r donde p y r son V y q es F , el diagrama tendrá la forma: ( p ∨ q) ∧ r V F V V ∧ V V Se comienza con las variables atómicas, luego el conectivo de menor alcance y se continúa hasta el término de enlace final.Ejemplo 2: construir un diagrama para ( p ∧ q ⇒ p) ∨ ( r ∧ s) donde p y q son V y r y s son F ( p ∧ q ⇒ p) ∨ ( r ∧ s) V V V V V V F F F F V V ¿CÓMO FORMALIZAR EN LA LÓGICA PROPOSICIONAL CUALQUIER EXPRESIÓN DEL LENGUAJE NATURAL? Formalizar una expresión del lenguaje natural consiste en destacar la «forma» en que se relacionan las proposiciones de esa expresión, prescindiendo del contenido o significado de éstas. Dicho de otro modo: consiste en “traducir” al lenguaje artificial de la lógica las expresiones del lenguaje natural. Cada uno de los conectivos lógicos está asociado con una serie de frases del lenguaje natural que son las siguientes Ejemplos: La comida no tenia rico gusto : La proposición p sería: La comida tenía rico gusto, entonces la proposición anterior se representa como: ∼ p Mañana es sábado y nos iremos a la playa: p ∧ q Mañana es sábado: p Nos iremos a la playa: q No es cierto que Fernando esté en Buenos Aires y Juan no esté en Neuquén: ∼ ( p ∧ ∼ q ) Fernando está en Bs As: p Juan está en Neuquén : q O lo juntas todo o no vas de excursión y no te regalo el vestido: p ∨ ( ∼q ∧ ∼ r ) Juntas todo: p Vas de excursión : q Te regalo el vestido : r Si Pedro sabe hablar inglés, entonces no habla francés, aunque si no supiese hablar inglés, tampoco hablaría francés: ( p → ∼ q ) ∧ ( ∼ p → ∼ q ) Pedro sabe hablar inglés :p Pedro no habla francés: q Si llegas después de las 10, te encontrarás con la puerta cerrada y no podrás cenar: p → ( q ∧ ∼ r) Llegas después de las diez : p Encontrarás la puerta cerrada : q Podrás cenar : r No es verdad que si Antonio estudia, entonces María no trabaje: ∼ ( p → ∼ q ) Antonio Estudia : p María Trabaja : q Sólo si tú no lo has matado, te dejaremos libre: ∼p↔q Tú lo has matado : p Te dejaremos libre: q Si no crees que lo que te digo ni lo que te dice Juan, nunca sabrás lo que pasó: (∼ p ∧ ∼ q ) → ∼ r Crees lo que te digo : p Crees lo que dice Juan: q Sabrás lo que paso: r Es tarde pero no me di cuenta: p Λ ∼q Es tarde :p Me di cuenta: q Unidad 1’ - PRÁCTICO 2: LOGICA PROPOSICIONAL 1.-De los siguientes enunciados, determina cuales son proposiciones: b) Mi familia y yo viajaremos a la cordillera a fin de año a) Es primavera. c) ¿Juan es amigo de Pedro? d) Dos es mayor que tres. e) Algunos estudiantes estudian y aprueban. f) Hola, ¿Cómo están? g) Si llueve y hace sol sale el arco iris. h) La edad de Gonzalo es 16 i) ¡Cierra la puerta! j) ¿Qué hora es? k) El cielo es azul y los campos son verdes. l) 7415 es un número par m) 45 + 18 n) Eduardo es un número racional 2.-Escribe con las conectivas y símbolos de la lógica proposicional las siguientes proposiciones. a) A pesar de que el coche no aceleró, hubo un accidente. b) Tiene coche y, sin embargo, no sabe conducir. c) Si no vienes ya, nos vamos a desayunar. d) No iremos al teatro a menos que venga Juan e) Juan canta sólo si está contento. f) Si las exportaciones disminuyen entonces bajarán las utilidades g) Los precios son altos si y sólo sí los costos aumentan h) Si la producción aumenta entonces bajarán los precios i) La lógica y la matemática son ciencias formales j) Un número es par si y solo si es divisible por dos k) Es buen estudiante siempre que obtenga 10 de promedio l) Laura tomo tarde el autobús, pero llegó a tiempo m) No hace calor 3.- Si p y r son proposiciones verdaderas y q es falsa, determine el valor de verdad de : a) [ ( p ∧ ∼ q ) v ∼ r ] ⇒ q b) [ (∼ r v q ) ∧ ( r v ∼ p) ] ⇔ ∼ r c) [ (∼ p ⇒ q ) ⇒ ∼ r ] v [ ∼ q ⇒r ] d) (pΛq) Λ r e) [p Λ (q → ∼r)] → (∼p ∨ ∼r) 4.- ¿ Qué condiciones debe satisfacer p y q para que la siguiente proposición sea : a) [ ( q ⇔ p ) ∧ ∼ q ] ⇒ ( p ∧ ∼ q ) Falsa b) [ (∼ p ⇒ q ) ⇒∼ r ] v [ ∼ q ⇒ r ] Falsa c) { ~p ∧ ( p v q ) } ∧ [ p ⇔ q ] Verdadera 5.- Si la proposición p es verdadera ( V ) y la proposición q es verdadera ( V ) . De las expresiones siguientes cuál (es) es(son) correcta(s) : a) p ⇒q = V b) p ∧ q = F c) p v q = F d) ∼ p ∧ q = V 6.- Construir las tablas de verdad e indique cuales son tautologías, contradicciones o contingencias a) [(p ∧ ∼q) ⇒ q ]⇔ (p ⇒ q) b) (p ⇒ q) ⇔ [(∼p ⇒∼ q)] c) [p ∧ (p ⇒ q) ] ⇒q d) [(p ⇒ q) ∧ ~p] ⇒~q e) ∼{[∼p ∧ (∼q v p)] ⇒ q} f) [(a v b) ∧ (a v c)] ⇔ [a v (b ∧ c)] g) [(p→q) Λ p] → q h) [ (∼p v q ) → r ] ↔ [ (p ∧ ∼q) v r ] i) [(p ⇒ q) ∧ (q ⇒ r)] ⇒ (p⇒r) Unidad 2 – Algoritmos El proceso de programación. Elaborar un programa de computadora implica llevar a cabo, una serie de pasos secuenciales y cronológicos que comienza con la detección y definición del problema y conducen a la implementación del programa que lo soluciona. A continuación se describen los pasos a seguir. 1.- Definición del problema Este proceso inicia cuando surge la necesidad de resolver algún problema mediante la computadora. Para empezar, se debe de identificar el problema y comprender la utilidad de la solución que se alcance. Es menester tener una visión general del problema estableciendo las condiciones iniciales y, además, los límites del problema; es decir, donde empieza y donde termina. Por ejemplo, si tenemos que calcular el sueldo de un empleado, la solución que se logre permitirá obtener la cantidad que debe pagársele.El problema anterior consiste en un pago de sueldos, y parte de que cada empleado tiene algunos atributos como su nombre, la antigüedad y el sueldo que percibe por cada hora trabajada. 2.- Análisis del problema A continuación es necesario entender en detalle el problema en cuestión, para obtener una radiografía del mismo en términos de los DATOS disponibles como materia prima, y definir el PROCESO necesario para convertir los datos en la INFORMACIÓN requerida. La primera etapa consiste en definir los resultados esperados; es decir, la información que deberá producirse como salida. Respecto al problema de pago de salarios tenemos que se requiere la siguiente salida: Nombre del empleado:xxxxxxxxxxxxxx Sueldo:99999999 La segunda etapa consiste en identificar los DATOS que se tienen como materia prima y que constituirán la entrada del programa. En este ejemplo tenemos: El nombre del empleado El número de horas trabajadas La cuota por hora La tercera etapa tiene como finalidad determinar el PROCESO necesario para convertir los datos de entrada en la información que se tendrá como salida. Volviendo al ejemplo, puesto que se requieren dos datos de salida, determinemos el proceso de la siguiente manera: a.- ¿Cómo se calcula el nombre del empleado? No implica ningún cálculo, pues es un dato que se obtiene como entrada y que no se modifica b.-¿Cómo se calcula el sueldo? El sueldo es un dato que no existe como entrada, pero se obtiene o genera multiplicando las horas trabajadas por la cuota horaria En este momento ya se tiene una comprensión clara del problema, y podemos avanzar hacia el siguiente paso 3.- Diseño del programa Durante este paso se procede a diseñar la lógica para la solución del problema, haciendo dos cosas: a.-Elaborar el algoritmo Se diseña el algoritmo de la solución al problema; es decir, se estructura la secuencia lógica y cronológica de los pasos que la computadora deberá seguir, utilizando alguna técnica convencional como el pseudocódigo, los diagramas de flujo, los diagramas de llaves, etc. Equiparando esta actividad con la construcción de una casa, equivale a diseñar el plano arquitectónico de la misma b. pruebas de escritorio o traza: Se simula el funcionamiento del algoritmo con datos propios respecto del problema, y se comprueban a mano los resultados a fin de validar la correcta operación del algoritmo. Si quedamos satisfechos con los resultados de la prueba habremos agotado este punto, pero en caso contrario se deberá modificar el algoritmo y posteriormente volverlo a probar hasta que éste correcto. Es posible que se deba retroceder a cualquier paso precedente. En este momento se tiene ya diseñada la solución al problema, y estamos listos para pasar al siguiente punto. 4.- Codificación del problema En este paso se procede a codificar el programa en el lenguaje de programación que vayamos a utilizar. Este proceso es sumamente sencillo ya que tenemos diseñado el programa, solo nos centramos en convertir las acciones del algoritmo en instrucciones de computadora. El programa codificado debe editarse, compilarse, probarse y depurarse, es decir, se ejecuta para verificar su buen funcionamiento y se hacen las correcciones o los ajustes pertinentes hasta que esté correcto. Para que un programa pueda ser entendido y ejecutado por la computadora, debe estar en lenguaje máquina para ello se debe producir el proceso de compilación, este proceso consiste en lo siguiente: una vez que tenemos codificado el programa en papel, debe ser introducido mediante el procese de edición, para lo cual se utiliza un editor que nos permite crear un archivo en el cual introducimos el programa, creándose el programa fuente con las instrucciones que nosotros elaboramos en el lenguaje que estemos utilizando en este momento. El programa fuente es sometido al proceso de compilación, que mediante un compilador se traduce instrucción por instrucción a código objeto, creándose un archivo con el programa objeto el cual es entendible directamente por la máquina. Si en el proceso se encuentra algún error, se suspende el proceso; el programador debe corregir el error en el programa fuente y luego someterlo de nuevo al proceso de compilación. Una vez que el proceso de compilación ha terminado con éxito, se tiene el programa objeto, el cual puede ser ejecutado por la computadora que seguirá las instrucciones paso a paso llevando a cabo las acciones que se indican emitiendo los resultados correspondientes, si estos no son satisfactorios o existen errores, el proceso de programación debe ser repetido desde alguno de los pasos precedentes 5.- Implementación del programa Una vez que el programa está correcto, se instala y se pone a funcionar. Debe ser supervisado continuamente para detectar posibles cambios o ajustes que sean necesarios realizar 6.- Mantenimiento del programa Un programa que está en operación, por un lado podría presentar errores, los cuales deben corregirse; por otro lado podría requerir cambios o ajustes en sus datos, proceso o información; esto implica que eventualmente necesitará mantenimiento para adecuarlo a los cambios de la empresa. Esto nos sitúa en una dinámica infinita, ya que si surge la necesidad de darle mantenimiento tendremos que regresar a algún paso precedente; al 4, al 3, al 2 o al punto 1 para definir de nuevo el problema. ALGORITMO En el proceso de programación hay un paso que es crucial a la hora de desarrollar un programa; es el diseño del programa, en otras palabras, diseñar o elaborar el algoritmo de la solución. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe Alkhôwarîzmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. El algoritmo es una secuencia ordenada y cronológica de pasos que llevan a la solución de un problema o a la ejecución de una tarea Los pasos del algoritmo deben tener las siguientes características: • Ser simples, claros, precisos, exactos • Tener un orden lógico • Tener un principio y un fin Un algoritmo debe producir un resultado en un tiempo finito. Los métodos que utilizan algoritmos se denominan métodos algorítmicos, en oposición a los métodos que implican algún juicio o interpretación que se denominan métodos heurísticos. Los métodos algorítmicos se pueden implementar en computadoras; sin embargo, los procesos heurísticos no han sido convertidos fácilmente en las computadoras. En los últimos años las técnicas de inteligencia artificial han hecho posible la implementación del proceso heurística en computadoras. Ejemplos de algoritmos son: instrucciones para andar en una bicicleta, hacer una receta de cocina, las instrucciones para armar o utilizar un juguete, obtener el mayor de 5 números dado. Los algoritmos se pueden expresar en Pseudocódigo, diagramas de flujo o diagramas de llaves. Por ejemplo: Elaborar un algoritmo para que guie a una persona a cambiar una lamparita quemada Los pasos de un algoritmo para cambiar una lamparita podrían ser: 1.-Quitar el foco fundido 2.-Colocar el foco nuevo 3.-Fin Es probable que no todos pensemos exactamente los mismos pasos para cambiar la lamparita, pero si conducen de manera efectiva a realizar la tarea entonces estará en lo correcto. Si bien es cierto que son pocos pasos, si se entienden y se logra cambiar el foco, entonces estará correcto. Ahora bien, supongamos que estamos tratando de entrenar a un robot para que haga la tarea; en tal caso no funcionará el algoritmo, tendremos que ser más específicos y claros tomando en cuenta las capacidades elementales del robot. El algoritmo más detallado sería: 1. Colocar la escalera 2. Subir a la escalera 3. Quitar la lamparita quemada 4. Bajarse de la escalera 5. Obtener la lamparita de repuesto 6. Subir a la escalera 7. Colocar la lamparita de repuesto 8. Bajar de la escalera 9. Guardar la escalera 10. Fin Diseñar un algoritmo para volver desde el cine, en función del dinero que tengo: 1. Tengo bastante dinero? Si paso 2 No paso 5 2. Buscar un taxi 3. Lo encontré? Si paso 4 No paso 2 4. Tomar taxi e ir al paso 6 5. tengo dinero para el autobús? Si paso 6 No paso 7 6. tomar el autobús e ir al paso 8 7. Volver caminando 8. Fin Ejemplo : Buscar el rey de copas en un mazo de naipes. Sólo puede mirar una carta por vez. Algoritmo CARTAS comienzo 1.tomar mazo de cartas 2. repetir cambiar carta hasta que encontrar rey de copas fin Ejemplo: Algoritmo para cambiar el neumático de un AUTOMOVIL comienzo 1.situar gato en el lugar adecuado 2.repetir accionar gato hasta que (auto alcanza altura adecuada) 3.repetir colocar herramienta sobre tuerca 3.2 repetir girar herramienta en sentido anti horario hasta que (tuerca floja) hasta que (todas las tuercas sueltas 4.sacar rueda 5.colocar rueda nueva 6.repetir colocar herramienta sobre tuerca 6.1 repetir girar herramienta sentido horario hasta que (tuerca ajustada) hasta que (todas las tuercas ajustadas) 7.repetir accionar gato Hasta que (auto llegue al piso Todas las actividades que llevamos a cabo los seres humanos son algoritmos que hemos aprendido a seguir. Caminar y lavarse los dientes, por ejemplo, son secuencias lógicas de pasos. La civilización está basada en el orden de las cosas y de acciones; estas se organizan conforme a secuencias lógicas, y a esto se le llama programación. Durante el desarrollo de algoritmos de computadora, es necesario idear los pasos que la máquina deberá seguir para realizar alguna tarea,actividad o resolver algún problema de nuestra vida cotidiana. Cuando se presenta el problema de realizar cierta tarea, debemos efectuar ciertas actividades subyacentes tales como hacer preguntas, buscar objetos conocidos o dividir el problema en partes. A menudo hacemos todo eso inconscientemente, pero al elaborar algoritmos para solucionar problemas con la computadora debemos detallar esas actividades de manera explícita. Si se nos solicita una tarea verbalmente, por lo general hacemos preguntas hasta que quede claro lo que debemos hacer. Algunas preguntas comunes en el contexto de la programación son: ¿Qué datos tenemos para trabajar ?,y ¿Cuál es su apariencia? ¿Cuántos datos hay? ¿Cómo sabemos que ya están procesados todos los datos? ¿Cuál debe ser el formato de la salida? ¿Cuántas veces debe repetirse el proceso? ¿Qué condiciones especiales de error pueden presentarse? Ya sabemos lo que es un algoritmo y conocemos la manera de diseñar soluciones para problemas de la vida cotidiana. Ahora aplicaremos estos conceptos a la elaboración de algoritmos para programar computadoras, utilizando Diagramas de llaves o Pseudocódigo. Estas dos son técnicas para diseñar algoritmos de programas que permiten definir las estructuras de datos , las operaciones que se aplicaran a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema DIAGRAMAS DE LLAVES Los diagramas de Warnier/Orr o Diagramas de llaves (también conocidos como construcción lógica de programas/construcción lógica de sistemas) fueron desarrollados inicialmente en Francia por Jean Dominique Warnier y en los Estados Unidos por Kenneth Orr. Este método ayuda al diseño de estructuras de programas identificando la salida y resultado del procedimiento, y entonces trabaja hacia atrás para determinar los pasos y combinaciones de entrada necesarios para producirlos. Los sencillos métodos gráficos usados en los diagramas de Warnier/Orr hacen evidentes los niveles en un sistema y más claros los movimientos de los datos en dichos niveles. Elementos básicos Los diagramas de Warnier/Orr muestran los procesos y la secuencia en que se realizan. Cada proceso se define de una manera jerárquica; es decir, consta de conjuntos de subprocesos que lo definen, en cada nivel, el proceso se muestra en una llave que agrupa a sus componentes. Puesto que un proceso puede tener muchos subprocesos distintos, un diagrama de Warnier/Orr usa un conjunto de llaves para mostrar cada nivel del sistema. Elementos de un diagrama de llaves Principio del algoritmo: Comprende todas las instrucciones que deben realizarse por única vez y al comienzo del algoritmo . Como inicializar variables. Cuerpo del algoritmo: Está formado por las combinaciones de composiciones que sean necesarias para resolver el nudo del problema, respetando el orden e interrelación establecidas. Fin del algoritmo: Comprende todas las instrucciones que deben realizarse por única vez y al final del algoritmo. Como mostrar resultados. La simbología que vamos a utilizar es: Llaves: Para composiciones o estructuras que respeten en esquema principio, cuerpo y final. Corchetes: Para composiciones secuenciales. Estructura a seguir en su realización: Principio Algoritmo [ Proceso Principio Nombre Cuerpo Del Fin Algoritmo [ Proceso Final Algoritmo ELEMENTOS BÁSICOS DE UN ALGORITMO El ser humano realiza los razonamientos a partir de información adquirida que está almacenada en su cerebro. También el ordenador tiene que almacenar en su interior toda la información necesaria para realizar el proceso automático que le pedimos que ejecute. La parte del ordenador que realiza esta función es la Memoria principal, interna o central. Es la denominada memoria R.A.M. (memoria de acceso directo). La memoria está constituida por multitud de posiciones de memoria (celdas de memoria) numeradas de forma consecutiva, capaces de retener elementos de información que vamos a denominar datos o valores. También se almacenarán las acciones (instrucciones) que se estudiarán más adelante. Los algoritmos ya sea realizados en pseudocódigo o con Diagramas de Llaves deben contener los siguientes elementos básicos: las variables, las operaciones primitivas elementales y las estructuras de control. A continuación explicaremos cada una de ellas. VARIABLES En el programa hay datos que van cambiando durante el desarrollo del mismo,para representar y manejar estos datos se utilizan lo que se denomina VARIABLE. Las variables se encuentran en direcciones de memoria y contienen valores, se identifican por un nombre y el tipo de dato que indica los valores que puede contener Todo dato que vaya a ser introducido a la computadora, y todo dato que vaya a ser generado o calculado a partir de otros datos para obtener algún resultado, debe identificarse y manejarse en forma de variable. En resumen una variable tiene las siguientes características: Nombre: es el identificador de la variable y que servirá para referenciarla Como buena práctica de programación se aconseja que los nombre de las variables tengan una relación con la información que van a almacenar, de modo que resultaría lógico usar la variable llamada TotalFactura para representar el valor total de una factura de venta. También es aconsejable que los nombres de variables formados por varias palabras, usen mayúsculas en la primera letra de cada palabra para distinguirlas, tal como se ha hecho con la variable TotalFactura. Con esto haremos que la escritura de nuestros programas resulten más fáciles de entender al momento de realizarle futuras modificaciones. El nombre de una variable o una constante puede tener una longitud máxima de 127 caracteres y el primer carácter debe ser una letra, los caracteres siguientes pueden ser letras, dígitos o el carácter de subrayado (_). No admiten espacios en blanco, ni caracteres especiales o acentuados (%, $, &, @, !, á, ñ, Ñ, …). Tampoco se permiten usar nombres repetidos, ni usar palabras reservadas del lenguaje (Begin, If, For, While, End, Until, …). Turbo Pascal no distingue entre mayúsculas y minúsculas, así por ejemplo, las variables TotalFactura y totalfactura serian consideraras como la misma variable. Tipo de dato: Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como `b', un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable. OPERACIONES PRIMITIVAS ELEMENTALES: ASIGNACIÓN, LECTURA Y ESCRITURA ASIGNACION: Ya hemos visto que una variable está relacionada con posiciones de memoria que van a contener valores que cambiarán durante la ejecución del programa, por tanto es necesario tener a nuestra disposición una acción que nos permita dar los valores adecuados a cada variable para obtener al final del proceso los resultados correctos. La instrucción que permite asociar un valor a una variable se denomina ASIGNACIÓN Debemos tener en cuenta el tipo de variable para no cometer errores a la hora de la asignación, es decir, nunca se permitirá asignar por ejemplo, a una variable numérica el valor “a” que ya sabemos es de tipo carácter, o a una variable de tipo cadena el valor 124.56 que es de tipo numérico. Recordaremos también que la asignación de un valor a una variable supone una escritura en memoria y por tanto una operación destructiva del valor que tuviera la variable anteriormente. El símbolo utilizado para indicar esta acción de asignación será “<------”, de forma que la operación se señalará de la siguiente manera: variable <------ valor o expresión. A←VALOR Utilizando diagrama de llaves X E Donde X es una variable de tipo T. E: puede ser : un valor de tipo T. Una expresión, que arroja un resultado de tipo T. Otra variable de tipo T, con un valor asignado con anterioridad. Por ejemplo: Si X es un entero, las siguientes son asignaciones válidas. X 5 X ( 8+6*3) X Y siendo Y otra variable entera con valor asignado anteriormente. ENTRADA DE DATOS – INSTRUCCIÓN LEER Las instrucciones de entrada permiten asociar un valor a una variable, pero el valor es tomado del exterior por medio de un dispositivo de entrada: por ejemplo el teclado Leer NV Donde NV es el nombre de la variable. Tras la operación de lectura, la variable NV contiene el valor dado por el usuario a través de un dispositivo de entrada que generalmente es el teclado El tipo de dato suministrado desde el exterior debe ser compatible con el tipo de la variable NV ENTRADA DE DATOS –INSTRUCCIÓN ESCRIBIR Las instrucciones de salida permiten mostrar los resultados obtenidos al exterior, sin ésta instrucción las soluciones no podrían darse a conocer. Mediante la operación de salida se transfiere el valor de una expresión a un dispositivo de salida generalmente el monitor Sintaxis ESCRIBIR(‘El resultado es ’,NV) Se suele utilizar también para mostrar mensajes informativos al usuario que estarán delimitados por comillas ESCRIBIR(‘Hola) Ejemplos: Leer un número y mostrarlo: Leer Numero Escribir Numero Lee nombre, apellido y DNI y saludar con Hola y el nombre de la persona. Leer Nombre, Apellido, DNI Escribir ‘Hola’, Nombre. ESTRUCTURAS DE CONTROL Las estructuras de control controlan el flujo de ejecución de un programa o función Las instrucciones o sentencias se organizan en tres tipos de estructuras de control que sirven para controlar el flujo de ejecución 1. Secuenciales: las instrucciones se ejecutan sucesivamente una debajo de la otra 2. Selectivas: permiten elegir entre dos alternativas dependiendo de la condición 3. Repetitivas: una serie de instrucciones que se repiten una y otra vez hasta que se cumple cierta condición Estructuras DE CONTROL secuenciales Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Ejemplos de algoritmos con Estructuras de Control Secuenciales: Ejemplos 1.-Algoritmo que suma dos valores cualesquiera. ESTAS VARIABLES SON LOS DATOS QUE SE NECESITAN Inicio PARA QUE EL ALGORITMO Escribir ‘Ingresar el primer valor’ PUEDA CALCULAR LA SUMA Leer numero1 DE DOS NÚMEROS Escribir ‘Ingresar el segundo valor’ CUALQUIERA Y LOS INGRESA Leer numero2 EL USUARIO POR TECLADO Suma ← numero1+ numero2 Escribir Suma Fin PSEUDOCÓDIGO El pseudocódigo es otro lenguaje artificial e informal útil para el desarrollo de algoritmos. No es un lenguaje de programación verdadero y, por lo tanto, no puede ser compilado y ejecutado. En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programación formal. Características y partes del pseudocódigo Las principales características de este lenguaje son: 1. Es una forma de representación sencilla de utilizar y de manipular. 2. Facilita el paso del programa al lenguaje de programación. 3. Es independiente del lenguaje de programación que se vaya a utilizar. 4. Es un método que facilita la programación y solución al algoritmo del programa. Todo documento en pseudocódigo debe permitir la descripción de: 1. Instrucciones primitivas. 2. Instrucciones de proceso.... 3. Instrucciones de control. 4. Instrucciones compuestas. 5. Instrucciones de descripción. Estructura a seguir en su realización: 1. Cabecera. 1. Nombre del Programa. 2. Variables. 2. Cuerpo. 1. Inicio. 2. Instrucciones. 3. Fin. Las operaciones primitivas Leer y Escribir son iguales , la operación de asignación se representa con el signo = Ejemplo: En pseudocódigo: 1-Inicio 2. Declaraciones A,B,suma: entero 3.-Programa Principal 4.-Escribir ‘Ingresar el primer valor’ 5.-Leer A 6.-Escribir ‘Ingresar el segundo valor’ 7.-Leer B 8.-suma=A+B 9.-Escribir suma 10.- Final 2.-Escribir un algoritmo que calcule la superficie de un triángulo en función de la base y la altura SUPERFICIE=(BASE x ALTURA)/ 2 ESTAS VARIABLES SON Inicio LOS DATOS QUE SE Escribir ‘Ingresa el valor de la baser’ NECESITAN PARA QUE Leer BASE ELALGORITMO PUEDA Escribir ‘Ingresar el valor de la altura’ CALCULAR LA FORMULA Leer ALTURA DE LA SUPERFICIE DE UN SUPERFICIE←(BASE * ALTURA)/2 RECTANGULO Y LAS Escribir SUPERFICIE INGRESA EL USUARIO POR Fin TECLADO EN SEUDOCODIGO 1-Inicio 2. Declaraciones Superficie,base, altura:entero 3. Principal 4.-Leer base 5.-Leer altura 5.-Superficie = (base * altura)/2 6.-Escribir Superficie 7.- Final 3.- Diseñar un diagrama de llaves que permita leer un numero entero y calcule y muestre el cuadrado del mismo Inicio Escribir ‘Ingresa el valor de la baser’ Leer numero cuadrado←numero * numero Escribir cuadrado Fin 4.-Diseñar un diagrama de llaves que permita calcular el perímetro de un triángulo escaleno y lo muestre Inicio Escribir ‘Ingresa el valor del primer lado del triangulo’ Leer lado1 Escribir ‘Ingresar el valor del segundo lado del triangulo’ Leer lado2 Escribir ‘Ingresar el valor del tercer lado del triangulo’ Leer lado3 perimetro←lado1 + lado2 +lado3 Escribir ‘El valor del perímetro es ‘, perimetro Fin 5.- diseñar un diagrama de llaves que permita ingresar la edad de una persona en años y meses y lo convierta a meses Inicio Escribir ‘Ingresa la edad en años de una persona’ Leer anios Escribir ‘Ingresar los meses’ Leer meses Anio_en_meses←anios*12 Total_meses←anios_en_meses + meses Escribir ‘La edad e n meses es ‘, Total_meses Fin Unidad 2 - Práctico3: Algoritmos Secuenciales 1.- Diseñar algoritmos que permitan realizar las siguientes enunciados a) Preparar pan con manteca con dulce de leche b) Comer un caramelo masticable c) Preparar una taza de té d) Mandar un mensaje desde un celular 2.-a) Observa la siguiente secuencia de instrucciones y realiza la traza del mismo 1. A=5 2. B=7 3. C=2 4. A=A+B+C 5. B=C/2 6. A = A / B + A *C 7. Escribir A 8. Escribir B 9. Escribir C Ahora a) b) c) d) responde a las siguientes cuestiones: ¿Qué valor contiene A después de la cuarta instrucción? ¿Qué valor contiene B después de la quinta instrucción? ¿Qué valor contiene A después de la sexta instrucción? ¿Qué valor imprime la última instrucción? b.-Realizar la traza del siguiente código Inicio a 6 b 3 c a-b c (c*20)/100 b b –a resultado a+b*c Fin c.-Realizar la traza del siguiente código: Inicio S 0 A 1 B 2 C 3 D 4 S A+B S S+C S S+D Final ¿Podría eliminarse algún paso sin alterar el funcionamiento del algoritmo? d) realizar la traza del siguiente algoritmo y determinar que realiza: Inicio A 3 B 20 C A+B B B+A A B-C Fin e) realizar la traza del siguiente algoritmo y determinar que realiza: Inicio X 3 Y 7 X X-Y Y X+Y X Y-X Fin f) Si el valor de A es 4, el valor de B es 5 y el valor de C es 1 , indicar que valor darían las siguientes expresiones: A) B * A – B ^2 / 4 * C B) (A * B)/ 3 ^2 C) ((( B + C)/ 2 * A + 10) *3 *B) – 6 g) I. II. III. IV. V. VI. VII. Obtener el valor de cada una de las siguientes expresiones aritméticas 7 div 2 7 mod 2 12 div 3 12 mod 3 15 mod 5 7 * 10 -50 MOD 3 * 4 + 9 ( 7 * (10 – 5) MOD 3) * 4 + 9 Unidad 2 – Práctico 4: Algoritmos Secuenciales DISEÑAR UN ALGORITMO SECUENCIAL Y LAS TRAZAS DE LOS SIGUIENTES EJERCICIOS: 1.- Diseñar un algoritmo que permita leer cuatro números, calcule el promedio de los cuatro y muestre el resultado 2.- Realice un algoritmo donde pida al usuario dos números y muestre la suma, resta, multiplicación y división de los dos. 3.- Escribir un algoritmo que calcule la longitud y el área de una circunferencia: longitud de la circunferencia = 2 * PI * radio área de la circunferencia = PI * radio2 4.- Elabore un algoritmo que calcule el área de un rectángulo. 5.- Elabore un algoritmo que calcule el área de un círculo 6.- Confeccione un algoritmo para calcular el volumen de un cilindro circular recto. VC = πR2h 7.- Escribir un algoritmo que calcule el precio finalde un artículo tras aplicarle un 21% de IVA. 8.- Elabore un algoritmo que pide al usuario un número y de este muestre: - El cuadrado. - La raíz cuadrada. - El sucesor. - El antecesor. 9.- Escribir un algoritmo que calcule la velocidad de un proyectil que recorre E kilómetros en T minutos. Expresar el resultado en metros /segundo. Velocidad = espacio / tiempo 10.- Escribir un algoritmo que teniendo los datos necesarios calcule y muestre el valor de las siguientes expresiones a) (a+7 *c) / (b+2-a)+2 *b b) (a + 5) * 3 / b – 1 11.- Diseñar un algoritmo que Lea un entero, duplicarlo y visualizar el resultado 12.- Diseñar un algoritmo para calcular el sueldo de un empleado ingresando las horas trabajadas y el valor de la hora, con estos datos se calculará el sueldo básico, una vez calculado el sueldo básico se debe calcular el descuento que se le realizará, el cual también se ingresará por teclado. Finalmente, con estos datos, se calculará el sueldo neto. Se debe mostrar el sueldo neto calculado para este empleado. 13.- Escribir un algoritmo que reciba dos variables enteras e intercambie sus valores. Se deben mostrar los valores que tienen finalmente las variables 14.- Escribir un algoritmo que pida un número entero y saque por pantalla el cociente y el resto de la división entera entre amos. 15.- Diseñar el algoritmo correspondiente a un programa que calcule y muestre , el porcentaje descontado en una compra, introduciendo por teclado el precio de la tarifa y el precio pagado. 16.- Diseñar el algoritmo correspondiente a un programa que tras introducir una medida expresada en centímetros la convierta en pulgadas (1 pulgada = 2,54 centímetros) 17.- En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la sig. tabla: Área Porcentaje del presupuesto Ginecología 40% Traumatología 30% Pediatría 30% Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal. 18.- El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%. 19.- Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera. 20.- Un alumno desea saber cual será su promedio general en las tres materias mas difíciles que cursa y cual será el promedio que obtendrá en cada una de ellas. Estas materias se evalúan como se muestra a continuación: La calificación de Matemáticas se obtiene de la siguiente manera: Examen 90% Promedio de tareas 10% En esta materia se pidió un total de tres tareas. La calificación de Física se obtiene de la siguiente manera: Examen 80% Promedio de tareas 20% En esta materia se pidió un total de dos tareas. La calificación de Química se obtiene de la siguiente manera: Examen 85% Promedio de tareas 15% En esta materia se pidió un promedio de tres tareas. 21.- Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones. 22.-Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 23- Realice un algoritmo para calcular el perímetro y área de un Rectángulo un Cuadrado 24- Realice un algoritmo para calcular el promedio de 5 Notas 25- Realice un algoritmo para calcular el descuento en $, de una compra de productos. Descuento del 20% sobre el valor de la compra. 26- Realice un algoritmo para convertir una determinada suma de dinero de Euros, en $ Argentinos 27- Realice un algoritmo para obtener el valor del IVA de dos productos, y luego obtener el monto en $ de ambos productos. 28- Realizar un algoritmo para determinar el monto total a pagar en $ de 3 productos. Se deberá obtener de cada producto el nombre, precio y cantidad de c/u de ellos. Por la compra se obtiene un descuento del 5% 29- Realice un algoritmo para calcular el peso de una persona en Gramos, Libras y Toneladas Gramos= kilos*1000 Libras = kilos*2,205 Tonelada = kilos/1000 30- Realice un algoritmo para calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior, y teniendo en cuenta la cantidad de horas extras trabajadas. Valor de la hora extra $55 31- Realice un algoritmo para calcular la edad de una persona. 32 - Realice un algoritmo para calcular lo que debe pagar un cliente en un estacionamiento, sabiendo que se paga $85 la hora. Se debe conocer el tiempo de estacionamiento en horas y minutos. 33- Elaborar un algoritmo que dados los grados Celsius los convierta a Fahrenheit, con la fórmula de transformación: F=(C*1.8)+32, donde C son los grados Celsius y F los Fahrenheit. 34 – Elaborar un algoritmo que solicite el número de respuestas correctas, incorrectas, y en blanco, correspondientes a los postulantes de un concurso, y muestre su puntaje final considerando, que por cada respuesta correcta tendrá 4 puntos, respuestas incorrectas tendrá -1 y respuestas en blanco tendrá 0. 35- Elaborar un algoritmo que permita calcular el número de CDs necesarios para hacer una copia de seguridad, de la información almacenada en un disco cuya capacidad se conoce. Considerar que el disco duro está lleno de información, además expresado en gigabyte. Un CD tiene 700 Megabytes de capacidad un Gigabyte es igual a 1,024 Megabyte. 36- Elaborar un algoritmo que solicite un número de 2 cifras y que muestre el número de unidades y decenas que lo componen. 37- Elaborar un algoritmo que permita ingresar el número de partidos ganados, perdidos y empatados, por algún equipo en el torneo apertura, se debe mostrar su puntaje total, teniendo en cuenta que por cada partido ganado obtendrá 3 puntos, empatado 1 punto, y perdido 0 puntos. 38- Tres personas deciden invertir su dinero para formar una empresa. Cada una de ellas invierte una cantidad distinta. Hacer un algoritmo que imprima el porcentaje que cada quien invierte con respecto al total de la inversión 39- Determinar la hipotenusa de un triángulo rectángulo conocidas las longitudes de los catetos. 40- Una pizzería vende pizzas de 3 tamaños (grande, mediana y chica) y dispone de hasta 10 ingredientes extras para cada colocar en cada una, desea que se elabore un programa para calcular el costo de cada pizza en base al tamaño y a la cantidad de ingredientes. La fórmula del costo para aplicar es la siguiente: costo = costo fijo($) + ( costo base($) * tamaño) + ( cant. Ingred. * costo cada ingred. * tamaño ) El precio de venta es = 1.5 * costo. 41- Confeccionar un programa que solicite el ingreso del valor del radio de un círculo y con dicho valor calcule la superficie del círculo, la longitud de la circunferencia y el volumen de la esfera. Volumen = 4/3 pi * radio al cubo 42- Confeccionar un programa que ingrese una medida en ‘pies’ y la exhiba convertida a yardas, pulgadas, cms y mts. NOTA: 1 pie = 12 pulgadas; 1 yarda = 3 pies; 1 pulgada = 2,54 cms 43 - Realice un algoritmo que permita ingresar el precio de un producto y su precio por kilo, y calcule su valor en pesos 44 – Realice un algoritmo para pasar grados Celsius a Fahrenheit. C= 5/9 * (F-32) 45 - Algoritmo para determinar el área y el volumen de un cilindro, así como la superficie de una de sus tapas, sabiendo que todas las dimensiones. Área del cilindro: 2 * PI * radio * altura Volumen del cilindro: Pi * radio * altura 46- Realice un algoritmo para determinar el sueldo de un empleado que ha realizado 2 ventas. Por cada venta realizada tiene un plus en $ del 2% del monto de la venta, que luego se sumara al sueldo básico 47- Realice un algoritmo para calcular el porcentaje de hombres y mujeres de un grupo de personas. ESTRUCTURAS DE CONTROL DE SELECCIÓN O CONDICIONALES La estructura condicional permite bifurcar el “flujo” del programa , es decir que se desarrollen un conjunto de instrucciones dentro de un algoritmo , acorde al resultado de la evaluación de una proposición que llamaremos la condición; disponemos de tres estructuras alternativas diferentes: alternativa simple, alternativa doble y alternativa múltiple. ESTRUCTURA DE CONTROL SELECTIVA SIMPLE Están compuestas únicamente de una condición únicamente de una condición. La estructura SI – ENTONCES evalúa la condición y en tal caso si la condición es verdadera, entonces ejecuta la acción SI (o acciones si son varias). Si la condición es falsa, entonces no hace nada. Utilizando Diagrama de Llaves se representaría de la siguiente manera: [ Inicio Si(condición) [ Sentencias 1 ⊕ Si(condición) [ S/A [ Fin Donde: Inicio, representa todas las acciones que se realizan una vez y al principio de la alternativa; Sentencias 1 representa al bloque de instrucciones que deberá ejecutarse si resulta verdadera la condición , Sentencia2 En el caso del condicional simple la SENTENCIA 2 seria siempre SIN ACCION (S/A) ya que esto indicaría que no hay sentencias para ejecutar CONDICIÓN La condición puede ser cualquier expresión lógica que de cómo resultado verdadero o falso Operadores relacionales: Para armar las condiciones se utilizan los operadores relacionales que son: >, <, =, >=, <=, <> Operadores Lógicos Para armar condiciones compuestas se utilizarán los operadores o conectivos AND o CONJUNCIÓN y OR o DISYUNCIÒN, para determinar el valor de verdad de las expresiones se utilizarán las respectivas tablas de verdad Utilizando pseudocódigo: SI <condición > ENTONCES instrucción - 11 instrucción - 21 ...... instrucción – N1 FIN SI Utilizando Diagrama de Flujo Ejemplo Diseñar un algoritmo que permita calcular la raíz cuadrada de un número , si el número ingresado es negativo se debe convertir en positivo antes de calcular la raíz cuadrada Diagrama de Llaves Escribir ‘Ingresar un numero’ Leer numero Si(numero < 0) [ numero←numero * (-1) ⊕ Si(numero<0) [ S/A Resultado_raiz←raiz(numero) Escribir ‘El valor de la raíz es’, Resultado_raiz PSEUDOCODIGO Inicio Escribir 'Ingresar el valor de un numero' Leer num Si num < 0 Entonces num<-num * (-1) Fin Si resultado_raiz<-raiz(num) Escribir 'El valor de la raiz es', resultado_raiz Fin ESTRUCTURA DE CONTROL SELECTIVA DOBLE La estructura selectiva doble es semejante a la simple, la diferencia radica en que la doble permite especificar un conjunto de instrucciones a desarrollar en caso que el valor de la condición sea verdadera y otro conjunto distinto de instrucciones en caso que el valor de la condición sea falso Utilizando Diagrama de Llaves se representaría de la siguiente manera: [ Inicio Si(condición) [ Sentencias 1 ⊕ Si(condición) [ Sentencia2 [ Fin Donde Sentencias 1 representa al bloque de instrucciones que deberá ejecutarse si resulta verdadera la condición , Sentencias 2 representa al bloque de instrucciones que será habilitado para la ejecución si la condición resulta falsa, PSEUDOCÓDIGO SI <condición > ENTONCES instrucción - 1 instrucción - 2 ...... instrucción – N SINO instrucción - 3 FIN_SI Diagrama de Flujo Ejemplo Diseñar un algoritmo que permite ingresar el monto dinero que debería pagar un cliente de una tienda y calcular el descuento que se le hará sobre este monto considerando que por encima de $1000 se realizará un descuento es del 30% y si el monto de compra es de $1000 o más el descuento que se le hará será del 20%. Se debe calcular y mostrar cuanto debe pagar el cliente DIAGRAMA DE LLAVES Inicio Escribir ‘Ingresar el monto comprado’ Leer monto Si (monto >1000) descuento← (monto * 30)/100 ⊕ Si (monto >1000) descuento← (monto * 20)/100 Monto_a _pagar← monto – descuento Escribir ‘El total a pagar es’, monto_a_pagar PSEUDOCODIGO Inicio Escribir 'Ingresar el monto comprado' Leer monto Si monto >1000 Entonces descuento <-(monto* 30)/100 sino descuento <-(monto* 20)/100 Fin Si Monto_a _pagar← monto – descuento Escribir ‘El total a pagar es’, monto_a_pagar Fin 5.- Diseñar un algoritmo que permita leer dos números enteros e indique cual es el mayor de ambos Inicio Escribir ’Ingresar un número’ Leer numeroA Escribir ’Ingresar otro número’ Leer numeroB Si (numeroA >numeroB) Escribir “el mayor es “,A ⊕ Si (numeroA >numeroB) Fin Escribir “el mayor es “,B PSEUDOCODIGO Inicio Escribir ’Ingresar un número’ Leer numeroA Escribir ’Ingresar otro número’ Leer numeroB Si (numeroA >numeroB) entonces Escribir “el mayor es “,A sino Escribir “el mayor es “,B Fin Si Fin ESTRUCTURAS CONDICIONALES MULTIPLES Hasta ahora las estructuras vistas (simples y doble) solo nos permiten tomar una o dos decisiones, aunque la estructura múltiple ayuda a elegir varias, opciones no siempre es la adecuada para todas las aplicaciones. La Estructura de decisión múltiples evaluara una expresión que podrá tomar n caminos y solo se realizara una de las n acciones o lo que es igual, el flujo del algoritmo seguirá solo un determinado camino ente los n posibles. Diagrama de LLaves SI cond1 ⊕ SI SENTENCIA1 Si (cond 2) (cond1 SENTENCIA 2 ⊕ Si (cond 2) Si (cond 3) SENTENCIA 3 ⊕ Si (cond 3) PSEUDOCODIGO SI( condicion1 ) accion1 SINO SI( condicion2 ) accion2 SINO SI( condicion3 ) accion3 . . .SINO acciondefecto SENTENCIA 4 Ejemplo: Diseñar un algoritmo que permita solucionar el siguiente problema: En un club los socios pagan diferentes cuotas dependiendo de la categoría a la que pertenecen. Si son de categoría 1 pagan una cuota de $100 ; si son de categoría 2 pagaran una cuota de $150 , si son de categoría 3 pagaran una cuota de $200 y si son de categoría 4 pagaran $250. Se debe mostrar la cuota que debe pagar el socio DIAGRAMA DE LLAVES Escribir ‘Ingresar la categoria Leer categoria SI categoría =1 Escribir ‘ la cuota es de $100’ ⊕ Si categoría =2 SI categoría =1 ⊕ Si categoría =2 Escribir ‘ la cuota es de $150’ Si (categoría =3) Escribir ‘ la cuota es de $200’ ⊕ Si (categoría =3) Escribir ‘ la cuota es de $250’ PSEUDOCODIGO Inicio Escribir 'Ingresar la categoria' Leer categoria Si categoria=1 Entonces Escribir ' la cuota es de $100' Sino Si categoria =2 Entonces Escribir ' la cuota es de $150' Sino si categoria=3 Entonces Escribir ' la cuota es de $200' sino Escribir ' la cuota es de $250' FinSi FinSi Fin Si Fin Unidad 3 – Práctico4: Estructuras de control condicionales 1. Realizar la traza del siguiente código Inicio a←4 Si (a < 10) a a – 5; ⊕ Si (a < 10) S/A Si( a < 5) ⊕ Si( a < 5) a a - 1; S/A 2. Diseñar un algoritmo que muestre si un número A, ingresado por teclado, es igual a un número B, también ingresado por teclado, o no, caso contrario debe mostrar un cartel adecuado. 3. Diseñar un algoritmo que permita leer un número y si el mismo es par el número se lo multiplicara *5, caso se lo multiplicará por 3. Se debe mostrar nuevo valor que tomó el número. 4. Diseñar un algoritmo para calcular el salario a pagar a un trabajador. Se debe ingresar su nombre, cuántas horas ha trabajado, el valor que gana por hora y, en caso de que su sueldo supere los quinientos mil pesos, se le debe hacer un descuento del 15%. Se debe mostrar el salario que cobrará el trabajador. 5. Diseñar un algoritmo que muestre un mensaje que indique si un número A es múltiplo de otro número B, ambos ingresados por teclado. 6. Diseñar un algoritmo para calcular imprimir el precio de un terreno del cual se tienen los siguientes datos: largo, ancho y precio por metro cuadrado. Si el terreno tiene más de 400 metros cuadrados se hace un descuento del 10%. 7. Dados tres números a, b, y c, si la diferencia (resta) entre a y b es mayor que c, calcular el producto de a y b; de lo contrario, calcular el cociente entre a y b. 8. Diseñar un algoritmo que permita ingresar un número y calcule el cuadrado del mismo si este número es : positivo, mayor que 10 y no es divisible por 2, y en caso contrario que calcule el cubo del número ingresado. 9. Diseñar un algoritmo que permita leer dos valores cualesquiera por teclado y que evalúe si el primer valor es menor que el segundo, si es así que los intercambie y los muestre, caso contrario solamente mostrará los valores ingresados. 10. Diseñar un algoritmo que resuelva el siguiente problema: Una compañía de prestamos estableció un programa para captar clientes, que consiste en lo siguiente: Si el monto por el que se efectúa la fianza es menor que $50 000 la cuota a pagar será por el 3% del monto, y si el monto es mayor que $50 000 la cuota a pagar será el 2% del monto. La empresa desea determinar cuál será la cuota que debe pagar un cliente. 11. Diseñar un algoritmo que controle si un número A, leído por teclado, es múltiplo de 3 y es impar, si se cumple esta condición se debe calcular el valor de la expresión 4.A +9 de lo contrario se debe calcular el valor de la expresión A2 +9. Se debe mostrar el valor de la expresión calculada. 12. Diseñar un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o mas se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas un descuento del 10% 13. Realizar un algoritmo que lea un número que represente el día de la semana y diga que día es. 14. Diseñar un diagrama de llaves que lea el código de un artículo y su precio ; los artículos tienen un descuento que es del 10% si el artículo tiene código A y del 20% si el código es B (solo hay dos códigos) 15. Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones que deben ser leídas es mayor o igual a 70; reprueba en caso contrario. 16. Diseñar un algoritmo para calcular el valor de un libro. El precio se calcula multiplicando el número de páginas por 100. Si la edición no es nacional o el libro fue editado este año se le aplica un recargo del 10%. 17. Si (a < 10) ⊕ Si( a < 10) a a – 5; Si( a < 5) ⊕ Si( a < 5) a a - 1; S/A 18. Diseñar un diagrama de llaves que permita leer la nota de un alumno como una letra ‘A’, ‘B’, ‘C’ o ‘D’. Indicar si el alumno aprueba, recupera o perdió la materia. Se conoce que un alumno aprueba si tiene ‘A’ o ‘B’; recupera si tiene una ‘C’ y pierde la materia si tiene una ‘D’. 19. En una empresa, los salarios de los empleados se van a aumentar según su contrato actual, de acuerdo a la siguiente tabla: salario aumento % 0 a $9000 20 $9001 a $15000 5 $15001 a $2000 10 más de $20000 0 Escribir el programa para que solicite el salario del empleado, calcule y visualice el nuevo salario. 20. Realizar un programa que pregunte al usuario el momento del día, que se indicará con una letra de la siguiente manera: m: mañana t: tarde n: noche El sexo de la persona que opera el programa se indicará también con letras de la siguiente manera: M: masculino - F: femenino El programa dirá: buenos días, tardes o noches (según el momento) señor o señora según el sexo 21. La comisión sobre las ventas totales de un empleado es como sigue : - Si ventas <$50, entonces la comisión será del 5% de las ventas - Si $50 <= ventas <= $500, entonces la comisión será el 10% de las ventas. - Si las ventas > $500, entonces la comisión será el 8% de las ventas. Escriba un diagrama de llaves que lea las ventas y calcule y muestre su comisión. 22. Diseñar un algoritmo que permita leer 3 nombres de productos, sus precios y la cantidad que se quiere comprar de ellos. Se deberá escribir, los importes de cada producto por separado, es decir lo que se gastó por cada producto, y el importe total de los tres productos juntos. 23. Diseñar un algoritmo que permita leer 6 números, y obtenga la cantidad de números positivos, negativos y ceros. 24. Diseñar un algoritmo que permita leer 6 vocales, y cuente la cantidad que hay de a, e, i, o, u. 25. Dado el sueldo básico de un empleado, calcular el monto final que debe abonársele sabiendo que si el sueldo básico es de p pesos por mes debe agregarse un incremento calculado como un porcentaje p según la siguiente tabla: Sueldo Incremento 0 < p < 500 10 % 500 ≤ p <1000 5% Mas de 1000 3% 26. La compañía de teléfonos de esta ciudad ha pedido que le haga un programa para saber el valor de una llamada, conocido el tiempo que duró, la hora en que se hizo y la región a la cual se llamó. Las tarifas por minuto están dadas por la siguiente tabla: Región destino Valor día Valor noche Región norte $ 0,80 $0, 65 Región sur $ 0,70 $ 0,60 Región oriente $1 $ 0,80 Región occidente $ 0,60 $ 0,55 Región centro $ 0,75 $0,68 27. ¿Cuál será el valor impreso o mostrado en pantalla para las variables N, B, A ? Inicio A = 20 N= A -2 B= (N+5) – (A*3) Si A > 30 entonces N=N+1 B= N * 2 Fin_si Escribir N, B, A Fin 28. ¿Cuál será el valor impreso o mostrado en pantalla para las variables N, Z, B ? Inicio N = 12 Z= N-10 N= N*5 B= (N+5) – (Z*4) Z= B + N Si N > 10 entonces Si B < 20 entonces B= N+1 Escribir B, Z Sino N=Z+B Escribir N, Z Fin_si Fin_si Fin 29. Diseñar un algoritmo que permita leer el importe de una compra, y si la compra es mayor igual a $500, entonces se tendrá un descuento del 20%, sino el descuento será del 15%. Escribir el importe del descuento, y el importe total a pagar. 30. Diseñar un algoritmo que permita leer 5 números, e informar cantidad de números pares e impares. 31. Diseñar un algoritmo que permita leer 3 notas de una materia y el nombre de la materia, y obtenga la suma de las notas, y el promedio. Si el promedio es mayor igual a 7, entonces escribir “Aprobó la materia con el nombre de la materia”, sino deberá escribir “No Aprobó la materia y el nombre de la materia”. 32. ¿Cuál será el valor impreso o mostrado en pantalla para las variables? Inicio T=1 R= T * (-2) M= (T-6) + (R*8) Si (T<=1) y (M > 15) entonces M=T+1 R= R * 2 Sino T=M+T Escribir M Fin_si Escribir, T, R Fin 33. ¿Cuál será el valor impreso o mostrado en pantalla para las variables? Inicio N=3 Z= N+9 N= N*5 B= (Z+N) – (Z*4) Z= N-B Si N > 10 entonces Si N < 20 entonces N=N+Z Escribir N Sino Z=Z*B Escribir Z Fin_si Fin_si Fin Inicio T = 20 R= T * (-2) M= (T-6) + (R*8) Si (T>=10) y (M >= 15) entonces M = T -R R= R * T Sino M=M*2 Escribir M,T,R Fin_si T= 6*M R=T+M Escribir, T, R Fin 34. Un Shopping ha programado una serie de ofertas con la finalidad de brindar facilidades a sus clientes y al a vez de incrementar sus ventas. Estas ofertas se basan específicamente en un porcentaje de descuento sobre el total de compra el cual varia de acuerdo al monto * Por un monto mayor o igual a $500 se hará un descuento del 30% * Por un monto menor de $500 pero mayor o igual a 200 se hará un descuento del 20 * Por un monto menor de $200 pero mayor o igual a 100 se hará un descuento del 10% Escribir el descuento realizado y el valor de la compra. Determinar el nuevo sueldo de un empleado si se conoce de entrada el sueldo inicial y la categoría. El nuevo sueldo se obtiene mediante una tabla de categorías que determina el aumento. Mostrar la categoría, el sueldo final y el nuevo incremento. Categoria 1 2 3 4 Incremento 15% 10% 8 7% ESTRUCTURAS DE CONTROL DE REPETITIVAS Cuando escribimos un algoritmo las instrucciones se irán ejecutando por orden pero en determinadas ocasiones es necesario que esto no suceda así, necesitaremos que dependiendo de la situación, una misma instrucción se ejecute varias veces, para esto se necesita una estructura de control repetitiva. A estas sentencias se les da el nombre de Bucles, en todos los lenguajes de programación se utiliza este tipo de estructuras de control, en el lenguaje Pascal se utilizan las siguientes: REPETIR MIENTRAS REPETIR …..HASTA PARA CONTADORES Y ACUMULADORES Asociadas a los bucles se encuentran a menudo algunas variables auxiliares. Como siempre se utilizan de la misma manera, las llamamos con un nombre propio (contador, acumulador, etc.), pero hay que dejar claro que no son más que variables comunes, aunque se usan de un modo especial. Acumuladores Las variables acumuladoras tienen la misión de almacenar resultados sucesivos, es decir, de acumular resultados, de ahí su nombre. Las variables acumuladores también debe ser inicializadas. Si llamamos “acum” a un acumulador, escribiremos antes de iniciar el bucle algo como esto: acum = 0 Por supuesto, el valor inicial puede cambiar, dependiendo de la naturaleza del problema. Más tarde, en el cuerpo del bucle, la forma en la que nos la solemos encontrar es: acum = acum + N …siendo N otra variable. Si esta instrucción va seguida de otras: acum = acum + M acum = acum + P … estaremos acumulando en la variable “acum” los valores de las variables M, N, P, etc, lo cual resulta a veces muy útil para resolver ciertos problemas repetitivos. En este algoritmo, cont es una variable contador típica de bucle. Se ha usado un bucle “para”, que es lo más sencillo cuando conocemos previamente el número de repeticiones (10 en este caso). La variable Nsuma es el acumulador, donde se van sumando los diferentes valores que toma N en cada repetición. se usa para cada uno de los números introducidos por el teclado, y la variable Observe como, al principio del algoritmo, se le asigna al acumulador el valor 0. Esta es una precaución importante que se debe tomar siempre porque el valor que tenga una variable que no haya sido usada antes es desconocido (no tiene por qué ser 0) Variables Contadoras Un contador es una variable (casi siempre de tipo entero) cuyo valor se incrementa o decrementa en cada repetición de un bucle en una cantidad fija. Es habitual llamar a esta variable “cont” (de contador) o “i” (de índice). El contador suele usarse de este modo: Primero se inicializa antes de que comience el bucle. Es decir, se le da un valor inicial. Por ejemplo: cont← 1 Segundo, se modifica dentro del cuerpo del bucle. Lo más habitual es que se incremente su valor en una unidad. Por ejemplo: cont ← cont + 1 Esto quiere decir que el valor de la variable “cont” se incrementa en una unidad y es asignado de nuevo a la variable contador. Es decir, si cont valía 1 antes de esta instrucción, cont valdrá 2 después. Otra forma típica del contador es: cont = cont – 1 En este caso, la variable se decrementa en una unidad; si cont valía 1 antes de la instrucción, tendremos que cont valdrá 0 después de su ejecución. El incremento o decremento no tiene por qué ser de una unidad. La cantidad que haya que incrementar o decrementar vendrá dada por la naturaleza del problema. Tercero, se utiliza en la condición de salida del bucle. Normalmente, se compara con el valor máximo (o mínimo) ,que debe alcanzar el contador para dejar de repetir las instrucciones del bucle. El uso de contadores es casi obligado en bucles que deben ejecutarse un determinado número de veces. Recuerde que siempre hay que asignar al contador un valor inicial para la primera ejecución del bucle (cont ← 1 por ejemplo) e ir incrementándolo (o decrementándolo, según el algoritmo) en cada repetición con una instrucción del tipo cont ← cont + 1 en el cuerpo del bucle. De lo contrario habremos escrito un bucle infinito. Por último, hay que prestar atención a la condición de salida, que debe estar asociada al valor del contador en la última repetición del bucle. Mucho cuidado con el operador relacional (<, >, <=, >=, etc) que usemos, porque el bucle se puede ejecutar más o menos veces de lo previsto REPETIR MIENTRAS Esta estructura de control indica que se ejecuten una o más sentencias mientras se cumpla una determinada condición. La condición se forma utilizando los operadores relacionales cuya evaluación tendrán como resultado un valor de verdad, es decir, VERDADERO o FALSO. Esta sentencia comprueba la condición al comienzo del bucle La condición tiene que ser verdadera para que se ejecuten las sentencias que están dentro del bucle y finalizará cuando la condición sea falsa. Dentro del bucle debe existir, por lo menos, una sentencia que modifique el valor de la variable o expresión que forma parte de la condición, de lo contrario se puede producir una situación denominada BUCLE INFINITO, ya que este nunca finalizaría. Si la condición es falsa al comenzar el bucle, este no ejecutará nunca las sentencias que están dentro del mismo. Repetir mientras (condición = verdadera) SENTENCIAS Mientras (condición) Hacer SENTENCIAS FinMientras EJEMPLOS Ejemplo 1 Diagrama de LLaves Diseñar el Diagrama de llaves de un programa que imprima números del 1 al 10 cont← 1 Repetir mientras (cont <=10) Escribir cont cont← cont + 1 En pseudocódigo Inicio cont=1 Mientras cont<=10 Hacer Escribir cont cont=cont+1 Fin Mientras Fin CONDICION QUE TIENE QUE SER VERDADERA PARA QUE EL BUCLE SE EJECUTE VARIABLE CONTADORA Ejemplo 2 Diseñar el Diagrama de llaves de un programa que imprima números pares del 10 al 30 Diagrama de LLaves cont← 10 Repetir mientras (cont <=30) Escribir cont cont← cont + 2 Pseudocódigo Inicio cont=10 Mientras cont<=30 Hacer Escribir cont cont=cont+2 Fin Mientras Fin Ejemplo 3 Diseñar el Diagrama de llaves de un programa que permita sumar los 10 primeros números naturales y mostrar el resultado Diagrama de LLaves cont← 1 suma ← 0 Repetir mientras (cont <=10) suma ← suma + cont cont← cont + 1 Escribir suma Pseudocódigo Inicio cont=1 Mientras cont<=10 Hacer suma<-suma+ cont cont=cont+1 Fin Mientras Escribir suma Fin Ejemplo 4 Diseñar el Diagrama de llaves de un programa que permita leer 50 números enteros y los vaya mostrando por pantalla Diagrama de LLaves cont← 1 Repetir mientras (cont <=10) Escribir 'Ingresar un numero' Leer numero Escribir numero cont← cont + 1 Pseudocódigo Inicio cont=1 Mientras cont<=10 Hacer Escribir 'Ingresar un numero' Leer numero Escribir numero cont=cont+1 Fin Mientras Fin Ejemplo 5 Diseñar el Diagrama de llaves de un programa que permita leer 50 números enteros, los sume y muestre su resultado en pantalla Diagrama de LLaves cont← 1 suma ← 0 Repetir mientras (cont <=10) Escribir 'Ingresar un numero' Leer numero suma ← suma + numero cont← cont + 1 Escribir suma Pseudocódigo INICIO cont<- 1 suma<-0 mientras cont<=10 hacer Escribir 'ingresar un numero' Leer numero suma<-suma+numero cont←cont+1 fin REPETIR HASTA La diferencia principal respecto al bucle “REPETIR MIENTRAS” es que el bucle ““REPETIR MIENTRAS”” lo primero que hace es la comparación de la condición, por tanto puede que el bucle “REPETIR MIENTRAS” no se ejecute ninguna vez si la condición inicial es falsa, mientras que el bucle “REPETIR HASTA” lo primero que hace es ejecutar la sentencia o sentencias, por tanto, el bucle “REPETIR HASTA”, siempre se ejecuta una vez al menos. El cuerpo del bucle se repite hasta que la condición sea verdadera repetir sentencias... hasta ( condicion_de_fin ) EJEMPLOS Ejemplo 1 Diseñar un diagrama de llaves que permita mostrar los 10 primeros números enteros positivos. Diagrama de LLaves Inicio Numero← 1 repetir Escribir Numero Numero ← Numero+ 1 hasta (Numero=10) fin Pseudocódigo Inicio numero<-1 Repetir Escribir numero numero<-numero +1 Hasta Que numero=10 Fin Ejemplo 2 Diseñar un diagrama de llaves que permita calcular la suma de los n primeros números enteros positivos. Diagrama de LLaves Inicio Escribir “Ingrese un Nro : " leer(N) Suma ← 0 K ←0 repetir K←K+1 Suma ←Suma + K hasta (K=N) Escribir ‘Suma : ", Suma) Fin Pseudocódigo Inicio Escribir 'Íngrese un numero' leer numero suma <-0 k<-0 Repetir k<-k + 1 suma<-suma +k Hasta Que k=numero Escribir 'La suma es ',suma Fin Ejemplo 3 Diseñar un diagrama de llaves que permita mostrar la tabla de multiplicar de un número N. Diagrama de LLaves inicio Escribir"Ingrese un numeros : " leer(numero) k←1 repetir multiplicación←k*numero Escribir Numero," * ",k," = ", multiplicacion k←k+1 hasta (k=10) fin Pseudocódigo Inicio Escribir 'Íngrese la tabla de que número calculará' leer numero k<-1 Repetir multiplicacion<-k*numero Escribir numero,'* ',k,'= ', multiplicacion k<-k + 1 Hasta Que k>10 Fin Ejemplo 4 Diseñar un diagrama de llaves que permita escribir en pantalla los números pares del 26 al 10 Diagrama de LLaves inicio k ← 26 repetir Escribir "k = ", k k←k-2 hasta (k<10) fin Pseudocódigo Inicio k<-26 Repetir Escribir numero,'k= ', k k<-k - 2 Hasta Que k<10 Fin REPETIR PARA El bucle “PARA” es una sentencia repetitiva cuya principal característica es que el número de veces que se repite es constante Para ello, la declaración de dicha estructura es de la siguiente forma: PARA <variable de control> := <valor inicial> HASTA <valor final> HACER <sentencias>; La variable de control es la variable que se va a incrementar automáticamente durante la ejecución del bucle para saber la condición en la que debe terminar el bucle. El valor inicial es el valor con el que se inicia la variable de control y el valor final es con el que se compara para saber la condición de terminación. Las sentencias son las ejecutadas en cada pasada del bucle. Por tanto, un bucle “PARA” O “FOR“ es una estructura de Pascal que hace que se repita una sentencia o número de sentencias un número determinado de veces. Aunque a primera vista pueda resultar más atractivo FOR, existen limitaciones en su aplicación ya que en el bucle FOR siempre se incrementa o decrementa (de uno en uno) los valores de la variable de control de bucle y no de dos en dos o de tres en tres, o con valores fraccionarios. El número de iteraciones de un bucle FOR siempre es fijo y se conoce de antemano: Valor final - Valor inicial +1. EJEMPLOS Ejemplo 1 Diseñar un Diagrama de Llaves que imprima los mil primeros números en orden creciente. Diagrama de LLaves inicio Para i=1 hasta 1000 hacer Escribir “i = “, i fin Pseudocódigo Inicio Para i<-1 Hasta 100 Con Paso 1 Hacer Escribir 'i=',i Fin Para FinProceso Ejemplo 2 Diseñar un Diagrama de Llaves que imprima los cuadrados de los primeros 100 números naturales. Diagrama de LLaves inicio Para i=1 hasta 1000 hacer cuadrado ← i*i Escribir “cuadrado = “, cuadrado Fin Pseudocódigo Inicio Para i<-1 Hasta 100 Con Paso 1 Hacer cuadrado<-i*i Escribir 'cuadrado=',cuadrado Fin Para Fin Ejemplo 3 Diagrama de llaves que permita pedir 50 números naturales y determine e imprima cuantos son pares y cuántos son impares Diagrama de LLaves cont_pares← 0 Cont_impares← 0 Para i=1 hasta 50 hacer Leer numero Si (numero MOD 2 =0) ⊕ cont_pares ← cont_pares +1 Si (numero MOD 2 =0) cont_impares ← cont_impares +1 Escribir cont_pares, cont_impares Pseudocódigo Para i<-1 Hasta 50 Con Paso 1 Hacer Escribir 'Ingresar un numero' Leer numero si numero mod 2 =0 Entonces cont_pares<-cont_pares +1 Sino cont_impares<-cont_impares +1 FinSi FinPara Escribir cont_pares, cont_impares Fin CUÁNDO UTILIZAR REPETIR …MIENTRAS/REPETIR…HASTA/PARA • Utilizar la sentencia o estructura PARA cuando se conozca el número de iteraciones, y siempre que la variable de control de bucle sea de tipo ordinal. • Utilizar la estructura REPETIR …HASTA cuando el bucle se realice por lo menos una vez. • En todos los demás casos utilizar la sentencia REPETIR…MIENTRAS. Unidad 3 – Práctico 5: Estructuras de control repetitivas Diseñar algoritmos para resolver los siguientes ejercicios y realizar la traza de los mismos 1. Muestre los números naturales del 1 al 20. 2. Muestre los números naturales del 20 al 1, en ese orden. 3. Muestre los números naturales entre los valores a y b inclusive que serán ingresados por el usuario 4. Sume la serie 3,6,9,12,...,99, mostrar el resultado obtenido 5. Calcule la suma de los enteros entre 1 y un número n ingresado por el usuario 6. Cuente los números pares naturales entre a y b inclusive. 7. Sume los números impares naturales entre a y b inclusive. 8. Sume los números pares naturales menores que n. 9. Muestre los múltiplos de cuatro existentes entre dos números ingresados por el usuario. 10. Muestre los números múltiplos de 5 de 0 a 100 utilizando , de ser posibles, los tres bucles: (diseñar un ejercicio con cada bucle) a) REPETIR. ..MIENTRAS b) PARA c) REPETIR… HASTA DE NO SER POSIBLE REALIZARLO CON ALGUNO DE ELLOS JUSTIFICAR 11. Muestra los números del 320 al 160, contando de 20 en 20 utilizando, de ser posible, los bucles, (diseñar un ejercicio con cada bucle) a) REPETIR. ..MIENTRAS b) PARA c) REPETIR… HASTA DE NO SER POSIBLE REALIZARLO CON ALGUNO DE ELLOS JUSTIFICAR 12. Leea 10 números y calcular y mostrar el cuadrado de cada número leído 13. Muestre los números pares menores o iguales a 20. 14. Muestre los números impares menores estrictamente que 19. 15. Muestre los números naturales múltiplos de 3 menores o iguales que un n ingresado. 16. Sume los números pares naturales menores que n y contabilice los impares 17. Promediar los valores ingresados por teclado, finalizar el ingreso con un 0., es decir, cuando ingresa un valor 0 termina y muestra el promedio. 18. Escribir un programa que reciba una a una las notas del usuario,preguntando a cada paso si desea ingresar más notas,e imprimiendo el promedio correspondiente 19. Suponiendo el siguiente bloque de código a b c 3 2 a Repetir mientras (b>0) c c+1 b b -1 • • • Realizar la traza del algoritmo anterior Realizar una versión equivalente modificando el programa anterior para que utilice una estructura REPETIR …HASTA en lugar de REPETIR MIENTRAS Se podría utilizar un bucle PARA? JUSTIFICAR LA RESPUESTA 20. Dados los siguientes bloques de instrucciones, realizar una traza para determinar qué valor se imprimirá por pantalla al finalizar la ejecución de los mismos. 1.-Suponiendo el siguiente bloque de código a) a 10 Para i=1 hasta 5 hacer a Escribir a+1 a b) a 10 Para i=1 hasta -1 hacer a Escribir a+1 a 21. En un programa, ¿puedo reemplazar un REPETIR MIENTRAS por un PARA? ¿En algún caso? ¿En ningún caso? ¿En todos los casos? Muestre un ejemplo asociado a su explicación. 22. Muestre los números múltiplos de 5 de 0 a 100 utilizando , de ser posibles, los tres bucles: (diseñar un ejercicio con cada bucle) a) REPETIR. ..MIENTRAS b) PARA c) REPETIR… HASTA DE NO SER POSIBLE REALIZARLO CON ALGUNO DE ELLOS JUSTIFICAR 22. Muestra los números del 320 al 160, contando de 20 en 20 utilizando, de ser posible, los bucles, (diseñar un ejercicio con cada bucle) a. REPETIR. ..MIENTRAS b. PARA c. REPETIR… HASTA DE NO SER POSIBLE REALIZARLO CON ALGUNO DE ELLOS JUSTIFICAR 23. Realizar el algoritmo para obtener la suma de los números pares hasta 1000 inclusive S = 2+4+6....+100 24. Diseñar un diagrama de llaves para calcular la suma siguiente: 100 + 98 + 96 + 94 + . . . + 0 en este orden 25. Hacer un diagrama de llaves para imprimirlos múltiplos de 4 a partir de 8 y calcular su suma mientras el múltiplo de 4 sea menor que 350. 26. Ingresar la cantidad necesaria de valores hasta que su suma supere 245 , e imprima el resultado. 27. Escribir un diagrama de llaves para calcular el promedio de una lista de números positivos que termina en un número negativo. 28. Calcular la productoria de los números naturales que existen entre m y n, siendo m y n datos de entrada. Por ejemplo m=3, n=5 productoria=3*4*5=60 29. Hacer un diagrama de llaves que calcule la cantidad de divisores que tiene un numero n 30. Se ha realizado un torneo de football donde participaron niños de 7, 10 y 13 años. Se inscribieron un total de 200 niños. Se pide crear un programa para saber de los 200 niños inscriptos cuántos tienen 7 años, cuántos 10 años y cuántos 13 años 31. Diseñar un diagrama de llaves que permita leer 50 calificaciones de un grupo de alumnos, calcule y escriba el porcentaje de reprobados. Se debe tomar en cuenta que la calificación mínima aprobatoria es de 7. 32. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Diseñar un diagrama de llaves que permita mostrar cuanto pagara cada cliente y cuanto percibirá la tienda por todas las compras. 33. Diseñar un diagrama de llaves que permita resolver el siguiente problema: Una empresa debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y ancianos que existen en una zona habitacional. Se determinan las categorías con base en la sig, tabla: CATEGORIA EDAD Niños 0 − 12 Jóvenes 13 − 29 Adultos 30 − 59 ancianos 60 en adelante 34. Diseñar un diagrama de llaves que permita encontrar el menor valor de un conjunto de n números dados. 35. Diseñar un diagrama de llaves que permita encontrar el mayor valor de un conjunto de n números dados. 36. En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar. Al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja. Diseñar un diagrama de clases adecuado. 37. Una persona que va de compras a la tienda Enano, S.A., decide llevar un control sobre lo que va comprando, para saber la cantidad de dinero que tendrá que pagar al llegar a la caja. La tienda tiene una promoción del 20% de descuento sobre aquellos artículos cuya etiqueta sea roja. Determinar la cantidad de dinero que esta persona deberá pagar por los productos que lleva. 38. Un fiscal desea determinar cuántas personas de cada una de las secciones que componen su zona asisten el día de las votaciones. Las secciones son: norte, sur y centro. También desea determinar cuál es la sección con mayor número de votantes. 39. Leer los 250,000 votos otorgados a los 3 candidatos a gobernador e imprimir el la cantidad de votos de cada candidato, número del candidato ganador y su cantidad de votos recibidos. 40. Suponga que tiene usted una tienda y desea registrar las ventas en su computadora. Diseñe un algoritmo que lea por cada cliente el monto total de su compra y al final del día que escriba la cantidad total de ventas y el número de clientes atendidos. 41. Se tiene un conjunto de M tarjetas cada una contiene la información del censo para una persona: 1.− Número de censo, 2.− Sexo 3.− Edad 4.− Estado civil (a.− soltero, b. Casado, c. Viudo, d. Divorciado ) Diseñe el pseudocódigo que lea todos estos datos, e imprima el número de censo de todas las jóvenes solteras que estén entre 16 y 21 años. 42. La Cía. Automovilística Mexicana, S.A. de C.V premia anualmente a sus mejores vendedores de acuerdo a la siguiente tabla: Si vendió Le corresponde de Comisión sobre ventas totales 1,000,000 <= v < 3,000,000 3% 3,000,000 <= v < 5,000,000 4% 5,000,000 <= v < 7,000,000 5% 7,000,000 <= v 6% Diseñar el pseudocódigo que lea las ventas de N vendedores y que escriba la comisión anual que le corresponda a cada vendedor. Suponer que nadie vende más de 10,000,000 al año. 43. Teniendo las notas de ingles, matemática y programación de n alumnos se requiere calcular: • Promedio de notas por materia • Promedio de notas por alumno • Promedio General (de todas las materias para todos los alumnos). 44. Leer por cada alumno de INTRODUCCION A LA PROGRAMACION su número de control y su calificación en cada una de las 5 unidades de la materia. Al final que escriba el numero de control del alumno que obtuvo mayor promedio. Suponga que los alumnos tienen diferentes promedios. 45. Una compañía de seguros tiene contratados a n vendedores. Cada uno hace una cantidad X ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuanto dinero obtendrá cada vendedor por concepto de comisiones por las ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones. 46. Diseñar el pseudocódigo que permita resolver el siguiente problema: En un supermercado un cajero va ingresando los precios de los N artículos que los clientes compran e indica a cada cliente cual es el monto que deben pagar. Al final del día le indica a su supervisor cuanto fue lo que cobro en total a TODOS los clientes que pasaron por su caja. 47. Realizar la suma de la siguiente serie: 48. Mostrar los términos de la serie: 1 1 1 1 1 + + + + ....... + 2 4 6 8 2*n 1 1 1 1 ; ; ;........... 3 6 9 m 49. Diseñar algoritmos que muestren las siguientes salidas: 11111 10 11 12 13 14 1111 11 12 13 14 111 12 13 14 11 13 14 1 14 12345 1234 123 12 1 0 1 2 3 4 0000 111 2 2 3 ##### ##### ##### ##### ##### 50. Calcular el Factorial de un número. El factorial para todo entero positivo n, el factorial de n o n factorial se define como el producto de todos los números enteros positivos desde 1 (es decir, los números naturales) hasta n. Por ejemplo, 5! = 1 * 2 * 3 * 4 * 5 = 120. 51. Diseñar un algoritmo que resuelva la siguiente serie: 52. Diseñe un algoritmo que permita ingresar un valor numérico entero y calcular la suma de los digitos que conforman el número. Ademas se debe visualizar el numero introducido y la suma de sus digitos. Por ejemplo: Numero = 642 y Suma = 12. 53. Promedio Estudiante: Un estudiante necesita saber cuál será su promedio general en las cuatro materias más fáciles que cursa y cuál será el promedio que obtendrá en cada una de ellas. Estas materias se evalúan como se muestra a continuación. a. Cálculo: Examen 90% - Promedio de trabajos 10%. Se pidieron tres (3) trabajos. b. Programación: Examen 80%, promedio de trabajos 20%. Se pidieron dos (2) trabajos. c. Introducción a la Ingeniería: Examen 85% - Promedio de trabajos 15%. Se pidieron 3 TP. d. Fisica: Primer parcial 15% - Trabajo 5% - Segundo parcial 15% - Trabajo 5% - Tercer parcial 20% - Trabajo 10% - Examen final 20% - Trabajos 10%. 54. El siguiente programa solicita un número N para realizar a este la Multiplicación mientras sea menor a 10. 55. El siguiente programa solicita un número N para realizar a este la Multiplicación mientras sea menor que un número de FIN, y además se deberá leer un número de INICIO. 56. Adivina el número: Hacer un algoritmo que pida al usuario que adivine un número con 10 intentos como máximo. Debe generar un número al azar entre el 1 y el 1000. Tras cada intento se le dirá si ha acertado (y en ese caso terminará la ejecución), si es mayor o si es menor el número a adivinar. 57. Una empresa quiere hacer una compra de varias piezas de la misma clase a una fábrica de refacciones. La empresa, dependiendo del monto total de la compra, decidirá que hacer para pagar al fabricante. a. Si el monto total de la compra excede de $50.000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante. b. Si el monto total de la compra no excede de $50.000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante. c. El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito. 58. Realizar un algoritmo que permita multiplicar todos los números pares, y sumar los números impares de una cantidad N que será escrita por el usuario. Prácticos Adicionales: Resolución de Problemas RDP-01 – Secuencias gráficas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 RDP-02 – Distribuciones numéricas 1 2 3 4 5 6 7 8 9 10 11 12 RDP-03 – Sucesiones numéricas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 RDP-04 – Razonamiento Lógico 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 RDP-05 – Razones y proporciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
© Copyright 2024