Programación en lenguajes Estructurados - Lógica Computacional

42

Click here to load reader

description

Introducción a la programación. Una recopilación de conceptos importantes para la programación.

Transcript of Programación en lenguajes Estructurados - Lógica Computacional

Page 1: Programación en lenguajes Estructurados - Lógica Computacional
Page 2: Programación en lenguajes Estructurados - Lógica Computacional

GUIA DIDÁCTICA PARA PROGRAMACIÓN EN LENGUAJES ESTRUCTURADOS

PRIMERA EDICIÓN, SEPTIEMBRE 2013.

Ing. Wilson Cedillo P. Msc.

El autor otorga permiso para utilizar este documento bajo la licencia Creative Commons “Reconocimiento-NoComercial-SinObraDerivada 3.0 Genérica” (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.es)

Usted es libre de

: copiar, distribuir y comunicar públicamente ésta guía para SGBD

Bajo las condiciones siguientes:

Reconocimiento: Debe reconocer los créditos del documento al autor

No comercial: No puede utilizar éste documento para fines comerciales

Sin obras derivadas: NO SE PUEDE ALTERAR, TRANSFORMAR O GENERAR UNA OBRA DERIVADA A PARTIR DE ÉSTE DOCUMENTO

• Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.

• Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor

• Nada en esta licencia menoscaba o restringe los derechos morales del autor.

Se otorga permiso para enlazar este documento desde cualquier sitio Web, con la siguiente dirección: http://www.uets.edu.ec/ple1

El autor agradece el envío de cualquier comentario o sugerencia sobre esta Guía a los correos: [email protected]; [email protected]

Page 3: Programación en lenguajes Estructurados - Lógica Computacional

INDICE DE CONTENIDOS

i

Índice de Contenidos ....................................................................................................................................... i

............................................................................................................................ i

Unidad de Trabajo 1 ....................................................................................................................... 2

......................................................................................................... 2

1. Introducción ...................................................................................................................... 2

2. Conceptos de Problema ..................................................................................................... 3

3. Resolución de problemas ................................................................................................... 5

4. Métodos de resolución de problemas ............................................................................. 13

4.1 Encontrar un patrón de comportamiento ................................................................ 13

4.2 Método de prueba y error ........................................................................................ 15

4.3 Aplicación de una fórmula. ...................................................................................... 17

4.4 Comenzar de atrás hacia adelante ........................................................................... 19

4.5 Elaboración de una tabla. ......................................................................................... 21

4.6 Planteamiento gráfico de la solución. ...................................................................... 22

5. La lógica ........................................................................................................................... 26

6. La Lógica como fundamento de las Ciencias Computacionales ........................................ 27

7. La lógica de programación ............................................................................................... 28

8. La lógica aplicada para resolver problemas. .................................................................... 28

9. Valores de verdad ............................................................................................................ 31

10. Algoritmos ................................................................................................................... 33

10.1 Algoritmos Informales .............................................................................................. 34

10.2 Algoritmos Computacionales ................................................................................... 36

Unidad de Trabajo 2 ..................................................................................................................... 37

.................................................................................. 37

1. Introducción .................................................................................................................... 37

1.1 Programa ................................................................................................................. 37

1.2 Programación ........................................................................................................... 37

1.3 Lógica de Programación ........................................................................................... 38

2. Fases en la Resolución de Problemas con un computador ............................................... 38

2.1 Análisis del problema. .............................................................................................. 39

Page 4: Programación en lenguajes Estructurados - Lógica Computacional

2.2 Diseñar un algoritmo Computacional ....................................................................... 39

2.3 Utilizar una técnica para representar el Algoritmo computacional .......................... 41

2.4 Traducir el algoritmo computacional a un lenguaje de programación ..................... 41

2.5 Verificar y depurar el programa ............................................................................... 42

2.6 Documentación y mantenimiento ............................................................................ 42

3. Practicando algoritmos computacionales con Scratch ..................................................... 43

3.1 Interfaz de SCRATCH ................................................................................................ 44

3.2 Paleta de bloques y las acciones más comunes para los personajes. ....................... 50

4. Las variables y sus características. ................................................................................... 52

4.1 Las variables en los algoritmos computacionales ..................................................... 54

4.2 Nombres de variables. ............................................................................................ 55

4.3 Tipos de datos de las variables ................................................................................. 56

5. Operadores y expresiones aritméticas ............................................................................. 57

6. Operadores de comparación y expresiones lógicas ......................................................... 61

7. Las decisiones .................................................................................................................. 62

8. Pseudocódigos ................................................................................................................. 64

8.1 Palabras claves de carácter general ......................................................................... 65

8.2 Estructuras de decisión simples en los pseudocódigos ............................................. 66

8.3 Concatenar resultados en la instrucción Escribir ...................................................... 69

8.4 Operadores lógicos binarios ..................................................................................... 71

8.5 Variantes de las estructuras de decisión .................................................................. 76

9. Los ciclos .......................................................................................................................... 81

9.1 Contadores ............................................................................................................... 84

9.2 Acumuladores .......................................................................................................... 87

10. Diagramas de Flujo ...................................................................................................... 89

Page 5: Programación en lenguajes Estructurados - Lógica Computacional

PROLOGO

i

Hace poco navegando en internet encontré una frase escrita por Maurice Tardif que

me llamó mucho la atención y me hizo reflexionar sobre las problemáticas que aquejan

nuestro sistema educativo, dicha frase rezaba así: "Saber algo ya no es suficiente; es

preciso también saber enseñar". Parece ser, que quienes nos dedicamos a la docencia,

sobre todo en las áreas llamadas técnicas, nos sentimos con un cierto compromiso

escribir lo que “tanto nos ha costado aprender”, sin embargo, yo considero que entre

nuestras obligaciones, la más importante es la de enseñar y aprender, dos palabras

que están íntimamente unidas, pues para enseñar, hay que aprender. El desarrollar un

documento como ésta a guía didáctica resulta ser una magnífica herramienta para el

aprendizaje de quien lo escribe, pues para escribirlo es necesario, aclarar y actualizar

nuestros conocimientos, reflexionar sobre ellos, organizarlos, y por supuesto cuidar su

presentación. Y de ésta forma uno se aprende mucho.

Esta guía didáctica lo desarrollé después de leer cuatro o cinco libros sobre el tema y

consultar algunas páginas de Internet. Los conceptos que se presentan en este

documento pueden encontrarse en cualquier libro de programación, con definiciones

probablemente mucho más rigurosas que las que yo aquí presento, es por eso que el

documento lo he subido de forma libre en la red con la esperanza de que pueda ser

útil, y sin ningún ánimo de atribuirme méritos que no me corresponden.

Estimado estudiante, espero que este documento sirva como un instrumento de mejora

continua en la tarea difícil de un maestro: enseñar y aprender.

EL AUTOR

Page 6: Programación en lenguajes Estructurados - Lógica Computacional

INTRODUCCIÓN

i

xiste actualmente un consenso general dentro de la

comunidad educativa mundial sobre la necesidad de superar

el tipo de enseñanza basada en la transmisión de contenidos

para apuntarle en su lugar al desarrollo de capacidades. Investigaciones

y estudios recientes proponen diversos conjuntos de habilidades que la

educación debe fomentar para que los estudiantes puedan tener éxito

en el mundo digital y globalizado en el que van a vivir. Este

planteamiento exige, sin

dilaciones, implementar estrategias que contribuyan efectivamente en

el desarrollo de esas habilidades planteadas como fundamentales para

la educación en el Siglo XXI (21st Century Skills, 2004).

En la mayoría de conjuntos de habilidades propuestos figuran las

habilidades de pensamiento de orden superior entre las que se incluye

la destreza para solucionar problemas; por esta razón, se requiere

seleccionar estrategias efectivas para ayudar a que los estudiantes las

desarrollen. Para atender esta necesidad, la programación de

computadores constituye una buena alternativa, siempre y cuando se la

enfoque al logro de esta destreza y no a la formación de

programadores.

¿Es importante que todos los niños aprendan a escribir? Después de

todo, muy pocos de ellos en su vida adulta serán periodistas, novelistas

o escritores profesionales. Cabe entonces la pregunta ¿por qué todo el

mundo debe aprender a escribir?

La programación podría considerarse como extensión de la escritura.

La habilidad para programar permite a las personas “escribir” nuevos

tipos de cosas, tales como: historias interactivas, juegos, animaciones y

E

Page 7: Programación en lenguajes Estructurados - Lógica Computacional

INTRODUCCIÓN

simulaciones. Además, como sucede con la escritura tradicional, hay

razones poderosas para que todos aprendan a programar.

El reciente surgimiento del interés por aprender a programar, reflejado

en sitios Web como “codecademy.com” y “code.org”, se enfoca en

oportunidades de carrera o de trabajo. Es fácil comprender el porqué:

el número de oportunidades de trabajo para programadores y

científicos de la computación aumenta rápidamente y en esos campos,

la demanda supera ampliamente la oferta.

Sin embargo hay razones más profundas y generales para aprender a

programar. En el proceso de aprender a programar, las personas

aprenden muchas otras cosas. No están simplemente aprendiendo a

programar, están programando para aprender; pues además, de

comprender ideas matemáticas y computacionales, tales como

variables y condicionales, simultáneamente están aprendiendo

estrategias para solucionar problemas, diseñar proyectos y comunicar

ideas. Esas habilidades son útiles no solo para los científicos de la

computación sino para todas las personas sin distingos de edad,

proveniencia, intereses u ocupación.

Page 8: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

2

Unidad de Trabajo 1

1. Introducción a lógica computacional o lógica formal siempre

ha sido una herramienta fundamental para el

progreso de las ciencias computacionales, y sus

desarrollos son la base para elaborar soluciones

informáticas, tanto en software como en hardware. Es

bien conocido que los profesionales que aplican

adecuadamente el razonamiento lógico tienen mayores

posibilidades de éxito, tanto en lo profesional como en lo

personal, ya que analizar, saber buscar posibilidades, demostrar o

refutar afirmaciones diversas, le permite a quien tiene ese

conocimiento y manejo ser un mejor ser humano y por consiguiente un

profesional con mayores y mejores aptitudes y actitudes para vivir en

una sociedad como la actual.

Diseñar, desarrollar y mantener software son procesos netamente

creativos que se sustentan fundamentalmente en la capacidad de

razonamiento, en el pensamiento computacional y algorítmico y en la

habilidad para abstraer cualquier problema, razón por la cual ésta

Unidad de Trabajo está estructurada para ofrecer una base sólida de la

lógica en la línea computacional.

L

.

Page 9: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

3

Muchas veces nos hemos enfrentado a problemas, pero, ¿qué es un

problema y cómo se resuelve? La resolución de problemas tiene que

ver con modificar una situación actual por otra que deseamos.

Cuando las computadoras transforman los datos iniciales en

información útil para el usuario, se dice que resuelven un problema.

Las computadoras hacen esto gracias a que codifican los datos de

manera lógica y ordenan con base en una secuencia.

En ésta Unidad de Trabajo se aprenderá a plantear y a resolver

problemas con una estrategia como la que utilizan las computadoras,

es decir, expresaremos de forma matemática, las partes que forman un

determinado problema a partir de pasos ordenados, llamados

algoritmos. También se resolverá cuestiones de manera formal al usar

la lógica matemática como lo hace la computadora, que es aplicable en

situaciones cotidianas y nos da una estrategia eficiente para encontrar

soluciones.

2. Conceptos de Problema a palabra problema tiene muchas

definiciones, presentaremos dos:

Problema es una necesidad inicial que

tiene un objetivo o solución a alcanzar,

mediante una serie de operaciones, actividades o

métodos bien definidos1.

Problema es la diferencia existente entre una situación deseada y una

situación actual2.

1 Definición del diccionario de la real academia de la lengua española.

2 Definición de Wikipedia.org.

L

Page 10: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

4

En informática la definición es equivalente a las anteriores: un problema

es una situación inicial en la que existe un diferencia entre lo que

tenemos y lo que deseamos tener (situación final); para conseguir lo

que queremos habrá que realizar las acciones necesarias con el fin de

modificar la situación.

Por ejemplo, un problema es obtener el promedio de las calificaciones

de los estudiantes a partir de las actividades formativas individuales,

actividades formativas grupales, tareas y evaluaciones sumativas. La

situación final, obtener el promedio, es diferente de la inicial

(calificaciones) e implica realizar varias operaciones.

Actividad en clases

Describa tres ejemplos de problema de acuerdo a la definición de este concepto en informática.

Hoy por hoy existe una confusión muy generalizada entre los

significados de problema y ejercicio, confusión que se debe al manejo

coloquial del término ''problema'' en el contexto de la didáctica de

todas las ciencias, por esta razón la distinción entre ejercicio y

problema es crucial en informática porque involucran actividades

diferentes.

Page 11: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

5

Un ejercicio es una tarea de aplicación simple y directa de un

conocimiento, procedimiento o técnica ya disponible o sobre la que el

alumno / resolutor se encuentra ya iniciado.

Por otra parte el problema es una tarea o situación que no se resuelve

aplicando directamente una regla aprendida; hay que entender el

enunciado, organizar la información, seleccionar los conocimientos

útiles, probar, aplicarlos adecuadamente y evaluar el proceso.

3. Resolución de problemas n la vida el hombre se enfrenta con innumerables problemas.

Cada persona necesita saber cómo resolver cada uno de estos

problemas inteligentemente, para lo cual necesitamos

comprender cada problema. La solución de todo problema está en el

problema mismo. Ha llegado la hora de aprender a resolver problemas.

Existen muchos problemas: económicos, sociales,

morales, políticos, religiosos, familiares, informáticos

etc., y nosotros debemos aprender a resolverlos

inteligentemente. La manera como se resuelven los

problemas pueden variar según cada persona o

grupo de trabajo, por lo que los pasos son diferentes

en cada situación, sin embargo lo que debemos tener

claro es que para resolver un problema debemos tener una estrategia,

que es un conjunto de pasos que nos llevan a una solución.

El matemático húngaro George Pólya3, para involucrar a sus

estudiantes en la solución de problemas, generalizó una estrategia en

los siguientes cuatro pasos:

3 George Pólya (13 de diciembre de 1887 – 7 de septiembre de 1985, Pólya György en húngaro) fue un

matemático que nació en Budapest, Hungría y murió en Palo Alto, EUA. Trabajó en una gran variedad de

E

Page 12: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

6

1.) Entender el problema. Es importante determinar cuál es la

solución a la que se desea llegar. Identificar los elementos con que se

cuenta para buscar posibles soluciones y si estos datos son suficientes

para lograrlo. Es conveniente ignorar la información que no es

relevante.

2.) Configurar un plan. Deben hacerse explícitos los pasos que se

seguirán para resolver el problema y recordar que en ocasiones hay

más de una posibilidad para solucionarlo, por lo que es necesario

pensar y plantear diferentes alternativas que permitan resolver el

problema. Al final debes elegir una alternativa valorando ventajas y

desventajas.

3.) Ejecutar el plan. Poner en práctica lo que se ha ideado para

encontrar la solución.

4.) Mirar hacia atrás (Verificar la solución). Observar la situación

después de haber realizado el plan paso a paso y evaluar si se logró lo

que se deseaba.

Todo este proceso es recursivo.

temas matemáticos, incluidas las series, la teoría de números, geometría, álgebra, análisis matemático, la

combinatoria y la probabilidad.

Entender el

problema

Configurar

un plan

Ejecutar el

plan

Verificar la

solución

Page 13: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

7

Ejemplo: Ejemplo: Ejemplo: Ejemplo:

Afuera está lloviendo y como su techo está en mal estado se

introduce agua en la habitación.

RESOLUCIÓN

1. Entender el problema

¿Cuál es su problema?

☺ El problema es que la televisión no se ve bien. ☺ El problema es que el sillón no es muy cómodo. ☺ El problema es que las gotas hacen ruido. ☺ El problema es que se está metiendo agua en la casa.

Un análisis profundo de la situación (y un poco de sentido común)

podemos determinar que en realidad el problema es que se está

metiendo agua en la casa: nuestro personaje tiene una gotera pero

no quiere esa gotera.

2. Configurar un plan

Tenemos cuatro alternativas de soluciones:

☺ Esperar con resignación a que pase la lluvia (mientras se moja el piso).

☺ Colocar un paraguas en el techo.

Page 14: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

8

☺ Colocar una cubeta bajo la gotera. ☺ Reparar el techo.

Cualquiera de estas soluciones es posible llevarlas a la práctica;

sin embargo, resulta casi obvio que las dos primeras en realidad

no ayudan mucho.

La cuarta solución es la mejor, pero considerando que está

lloviendo, la solución inmediata es colocar la cubeta (y cuando no

llueva reparar el techo).

3. Ejecutar el plan

La ejecución del plan dependerá de la solución que hayas

elegido. En el caso de la opción 3 es buscar una cubeta y

ponerla debajo de la gotera.

4. Verificar el plan

Para verificar si la estrategia dio resultado habrá que observar si

el piso ha dejado de mojarse.

EjemploEjemploEjemploEjemplo

Para comprender mejor el método analizaremos un segundo

ejemplo, imagina que organizas una fiesta a la que asistirán

algunos amigos y familiares, pero no todos saben cómo

llegar a tu casa. Piensas notificarles por medio de

una invitación impresa, ¿qué información debes

incluir para que lleguen a la casa?

RESOLUCIÓN

1. Entender el problema: Asegurarte que todos tengan

la dirección de tu domicilio.

2. Configurar un plan: Puede haber muchas soluciones posibles. Por

ejemplo, escribir un texto que indique que les esperarás en un lugar

Page 15: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

9

conocido por todos a una hora determinada y de ahí trasladarse a tu

casa o diseñar un croquis donde incluyas la dirección y el teléfono.

3. Ejecutar el plan: Si elegiste la opción del croquis, tendrás que

dibujarlo utilizando las herramientas adecuadas (puede ser con

Google Maps).

4. Verificar el plan: Para verificar si tu estrategia dio solución al

problema tendrás que esperar el día de la fiesta y averiguar si los

invitados no tuvieron alguna dificultad para llegar. La verificación es

un paso con el cual se puede mejorar la solución elegida para una

segunda aplicación.

Actividad en clases

Desarrolla los cuatro ejercicios planteados

1. Une cada fase del método de George Pólya con el paso que le corresponde.

Entender el problema Se efectúan las operaciones.

Configurar el plan Calcular el volumen de la Tierra.

Ejecutar el plan Se obtiene el volumen de nuestro

planeta.

Verificar la solución

Se sabe que la Tierra es una esfera,

entonces es necesario saber la fórmula

para calcular el volumen de una esfera y

el dato del radio terrestre. Con esa

información se sustituyen los datos en

la fórmula.

Page 16: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

10

Escribe los pasos mencionados en este sección para la resolución de cada problema

2. Eliminar el dolor de cabeza Entender el problema.

Configurar el plan.

Ejecutar el plan.

Verificar la solución.

3. Una persona tiene un terreno cuadrado que mide 20 m de lado. Desea cercarlo con una malla que se vende en rollos de 7m. ¿Cuántos rollos de malla necesita y cuánto sobra? Entender el problema.

Configurar el plan.

Ejecutar el plan.

Verificar la solución.

Page 17: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

11

4. Un matemático se encontró un día con un amigo y éste le preguntó: - ¿Cuántas hijas tienes? - Tres -contestó el matemático. - ¿Qué edades tienen? - preguntó el amigo. - El producto de sus edades es 36 y la suma de las mismas es el número que tiene el portal de ahí enfrente. El amigo del matemático se volvió y, después de ver el número del portal de enfrente, dijo: - Para saber las edades de tus hijas, me falta otro dato. - ¡Perdona, es cierto! -dijo el matemático-. La mayor toca el piano. ¿Qué edades tenían las hijas del matemático?

Entender el problema.

Configurar el plan.

Ejecutar el plan.

Verificar la solución.

Page 18: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

12

Por otra parte es conveniente tener cuidado con las posibles trampas o

contaminaciones que pueda encerrar el enunciado, tales como:

Algunos meses tienen 31 días, ¿cuántos meses tienen 28 días?

Actividad Formativa No. 1 (Resolución de problemas )

Desarrolle en un procesador de textos los 4 problemas propuestos, especificando cada paso para resolución de problemas según el método de George Pólya. Se calificará: Carátula, pasos para resolución de cada problema, soluciones acordes a lo que se pide y calidad del documento final.

1. 2. 3. 4.

Si hay 3 manzanas y tomas 2, ¿cuantas tienes? Un tren sale de Ibarra hacia Salinas a las 17H30 horas con una velocidad media de 80 km/h. Una hora más tarde sale otro tren de Salinas hacia Ibarra con una velocidad media de 95 km/h. Cuando ambos trenes se cruzan, ¿cuál está más cerca de Salinas? Suponiendo que se dispone de una cantidad ilimitada de agua, de un recipiente plástico de 5 litros y de otro de 4 litros de capacidad, indicar cómo se puede colocar exactamente 2 litros de agua en el recipiente de 5 litros. Se dice que, un turista visitando algunos pueblos alejados de la sierra de Ecuador encuentra dos pueblos llamados La Pampa y Pallasca (esto es sólo como ejemplo), y en las afueras se encontró con 3 campesinos, al primero de ellos le preguntó ¿de qué pueblo eres?, y el campesino le respondió. en un idioma que el turista no entendió, para salir de las dudas se dirigió al segundo campesino y le preguntó: - ¿De qué pueblo me dijo que es? - Ha dicho que es Pallasquino (de Pallasca), -respondió el segundo campesino-, en ese instante el tercer campesino que hasta el momento había permanecido en silencio, interpeló al segundo diciéndole: . ¡Tú mientes! Ante ésta incertidumbre, el turista realizó algunas investigaciones y sacó la información que los Pallasquinos siempre mienten y los Pampinos siempre dicen la verdad, esta información fue suficiente para averiguar de qué pueblo eran los dos últimos campesinos ó en el mejor de los casos los 3 campesinos. Por tanto que queda plateado la pregunta: ¿Cuál fue el razonamiento del turista?, ¿a qué conclusión llegó?

Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha establecida por el docente

Page 19: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

13

4. Métodos de resolución de problemas na vez que se ha determinado la situación a la que se desea

llegar para resolver un problema se procede a configurar el

plan. Existen algunos posibles procedimientos:

4.1 Encontrar un patrón de comportamiento

Con este método se describe algo que ocurre en repetidas ocasiones o

que varía siempre de una misma manera.

EjemploEjemploEjemploEjemplo

Si tengo tres pares de zapatos: unos celestes, otros verdes y

otros grises y cada día me pongo un par de distinto color hasta haber

agotado las tres posibilidades y luego vuelvo a empezar, si sabes qué

ayer usé los zapatos verdes y hoy traigo los zapatos grises, ¿cuáles me

pondré mañana?.

ResoluciónResoluciónResoluciónResolución

1. Entender el problema. Qué color de zapatos tengo que ponerme

mañana si sé que ayer me puse los verdes y hoy tengo puesto los

grises. La condición es que cada día tengo que ponerme un par de

distinto color

2. Configurar el plan. Se aplicará la estrategia de Encontrar un patrón

de comportamiento. Cada día me pongo un par de distinto color

hasta haber agotado las tres posibilidades y luego vuelvo a empezar.

Celestes

Verdes

Grises

Celestes

Verdes

Grises

?

3. Ejecutar el plan. Al aplicar el plan puedo darme que por

comportamiento de repetición me tocaría ponerme los zapatos

celestes.

U

Page 20: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

14

Celestes

Verdes

Grises

Celestes

Verdes

Grises

Celestes

4. Verificar el plan. Se puede comprobar que se ha cumplido con la

condición de que cada día es un color diferente de zapatos.

Algunas veces, los patrones de comportamiento se relacionan con los

datos numéricos. En estos casos los patrones representan

comportamientos en los que se suma, multiplica, divide o resta una

misma cantidad.

Actividad en clases

¿Podrías determinar en ambos casos qué elemento sigue?

1, 3, 5, …

……………

Page 21: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

15

4.2 Método de prueba y error

Esta estrategia, aunque válida, no siempre es la más efectiva; se recurre

a ella antes de pensar en otra más compleja o cuando no se

ha encontrado otra opción. Este método consiste en probar

con algunos valores y después evaluar si se ha resuelto el

problema. Si no se ha llegado al resultado deseado

se prueba con otros valores y así sucesivamente

hasta encontrar la solución.

EjemploEjemploEjemploEjemplo

Si te piden escribir signos de suma y resta entre los dígitos 1 2

3 4 5 6 7 para obtener como resultado 77, las condiciones son

que no puedes alterar el orden de los números y puedes agrupar varios

números o antes o después de un signo, ¿cómo resolverías?

ResoluciónResoluciónResoluciónResolución

1. Entender el problema. Combinar los dígitos 1 2 3 4 5 6 7 para

obtener como resultado 77. La condición es que no se puede alterar

el orden de los números.

2. Configurar el plan. Se aplicará la estrategia de Prueba y error

combinando los dígitos y las operaciones hasta conseguir el

resultado deseado.

3. Ejecutar el plan.

1 + 2 + 3 + 4 + 5 - 67 = -52

12 + 34 + 56 - 7 = 95

… … … … … … … … …

123 - 45 + 6 - 7

Después de probar varias opciones, se ha encontrado que la solución

es 123 – 45 + 6 – 7. Para encontrar la solución se usa el ensayo y la

lógica. Si hubiésemos agrupado los primeros cuatro dígitos, quedaba

Page 22: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

16

un número muy grande que al restarle los siguientes jamás

podríamos acercarnos al 77.

4. Verificar el plan. Se puede comprobar que se ha cumplido con la

condición de que el resultado sea 77 sin cambiar el orden.

Actividad en clases

Resuelva que operaciones se necesitarían para obtener los siguientes resultados:

2 2 2 = 6 3 3 3 = 6 4 4 4 = 6 5 5 5 = 6

Page 23: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

17

4.3 Aplicación de una fórmula.

Existen problemas en los cuales se proporcionan datos y relaciones

entre ellos; en este caso, para encontrar la solución se

debe hallar un valor en particular.

Los datos de los problemas en los que se aplica una

fórmula suelen ser numéricos y podemos encontrar

expresiones matemáticas en las que se incluya como una

incógnita, el valor que se debe hallar.

EjemploEjemploEjemploEjemplo

Imagina que en el verano irás de viaje al Puyo en el oriente

ecuatoriano, pero no conoces el clima, por tanto no sabes qué

tipo de vestimenta empacar.

ResoluciónResoluciónResoluciónResolución

1. Entender el problema. No sé la temperatura que hay en el oriente

ecuatoriano en el verano.

2. Configurar el plan. Buscando información se pudo saber que

durante el verano, en el Puyo la temperatura mínima es 59º F y la

máxima 104º F. Como estamos acostumbrados a usar unidades en

grados Celsius esta información no responde a la interrogante. Para

resolver el problema se debes buscar la fórmula para encontrar la

equivalencia de grados Fahrenheit a Celsius y aplicar la estrategia de

Aplicación de una fórmula a los datos que se tiene (la fórmula es C =

(F-32) x 5/9).

3. Aplicar el plan.

Mínima C = (F-32) x 5/9 C = (59-32) x 5/9 C = 27 x 5/9

Máxima C = (F-32) x 5/9 C = (104-32) x 5/9 C = 72 x 5/9

Page 24: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

18

C = 15º C C = 40º C

Se obtiene 15º C y 40º C, lo que te permitirá saber que ropa es la

que se debe empacar para el viaje.

4. Verificar el plan. Una vez que se realice el viaje se podrá comprobar

si la ropa que se eligió de acuerdo a la temperatura obtenida fue o

no la correcta.

Actividad en clases

Un recipiente lleno de pegamento tiene una masa de 35Kg y de 19 Kg cuando sólo está la mitad. Determina la masa del recipiente.

Page 25: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

19

4.4 Comenzar de atrás hacia adelante

Conocido también como encadenamiento hacia atrás o

estrategia del cangrejo, se usa cuando se conoce la

manera en que la situación acaba y se requiere encontrar

un dato intermedio o inicial. Es como dar una voltereta de atrás

hacia adelante.

EjemploEjemploEjemploEjemplo

Cristina y sus amigas se reúnen por las tardes para memorizar

las capitales de los países de América; tienen una semana para realizar

la tarea. El quinto día retuvieron tres capitales más que el cuarto. El

cuarto día aprendieron una menos que el tercero. El tercero

memorizaron cuatro más que el segundo. El segundo memorizaron el

doble que el primero, en el cuál aprendieron solo dos porque se

pusieron a platicar. Si comenzaron el lunes, ¿cuántas capitales deberán

memorizar el fin de semana para estar listas para el examen del lunes

siguiente?

ResoluciónResoluciónResoluciónResolución

1. Entender el problema. Memorizar las capitales de América el fin de

semana considerando las que ya se aprendieron entre semana.

2. Configurar el plan. Para responder a la pregunta debemos saber el

total de capitales que ya fueron memorizadas y cuantos países hay

en el continente americano.

Se utilizará la estrategia de encadenamiento hacia atrás, primero

hagamos un conteo de las que ya estudiaron partiendo del primer

día, es decir, el último dato.

3. Aplicar el plan. En el primero se aprendieron dos, en el segundo el

doble, es decir, cuatro, en el tercero ocho, en el cuarto siete y en el

Page 26: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

20

quinto diez. Cuando realizamos la suma se obtiene un total de 34.

Como en América hay 38 naciones, sólo deben memorizar cuatro

más.

4. Verificar el plan. Si se memorizan 4 más las 34 que ya sabían, se

completa las 38 de América.

Actividad en clases

En la aprobación de un proyecto de ley presentado ante una comisión de la Asamblea Nacional del Ecuador, hubo 7 votos a favor de representantes del Partido Nuevo Progresista más que del Partido

Popular y el número de votos a favor del Partido Popular fue el doble de los votos a favor de los representantes del Partido Independentista. Hubo 2 representantes del partido Independentista que votaron a favor de la aprobación del proyecto. ¿Con cuántos votos a favor se aprobó el proyecto?

Page 27: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

21

4.5 Elaboración de una tabla.

Este método resulta útil cuando debes organizar muchos datos o hacer

cálculos recurrentes. En una tabla pueden ordenarse datos de varios

tipos, no sólo numéricos.

EjemploEjemploEjemploEjemplo

Se desea hallar un número entre 2570 y 2580 en el que al

menos dos dígitos sean impares, todos los elementos sean diferentes y

sea divisible entre nueve.

RESOLUCIÓNRESOLUCIÓNRESOLUCIÓNRESOLUCIÓN

1. Entender el problema. Encontrar un número que cumpla con las

condiciones indicadas.

2. Configurar el plan. Para encontrar la solución utilizaremos la

estrategia elaboración de tabla que tenga todos los dígitos posibles

y con las condiciones solicitadas como cabecera de las columnas y

analizar si la cumplen.

3. Aplicar el plan.

Número Dos dígitos

pares Dígitos

distintos

Divisible entre nueve

2571 SI SI NO

2572 SI NO NO

2573 SI SI NO

2574 SI SI SI

2575 SI NO NO

2576 SI SI NO

2577 SI NO NO

2578 SI SI NO

2579 SI SI NO

Después de observar la tabla, tenemos que el número que cumple

con las tres condiciones solicitadas es el 2579.

Page 28: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

22

4. Verificar el plan. El número 2574 tienes dos pares, el 2 y el 4, todos

son distintos y es divisible entre nueve (2574/9=286).

Actividad en clases

Con el propósito de obtener fondos para la actividad de la Alerta Mundial contra el SIDA, doña Cora espera vender 27 cajas de estampas conmemorativas de la actividad. Tiene cajas que

contienen estampas doradas y cajas con estampas plateadas. Cada caja de estampas doradas contiene ocho estampas. Las cajas con estampas plateadas contienen nueve estampas. Si se adquirieron cajas con un total de 230 estampas, ¿cuántas cajas de cada tipo se tienen?

4.6 Planteamiento gráfico de la solución.

En ocasiones, es posible que tanto el problema como su solución se

representen mediante un dibujo, un esquema o un gráfico.

Page 29: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

23

Veamos la situación siguiente. Consiste en cruzar a todas las personas

de una parte del río a la otra parte, y así llegar a la casa (este es un

juego que podrás encontrarlo en internet).

Las reglas son las siguientes:

1) En la barca sólo pueden ir una o dos personas como máximo

(tanto en la ida como en la vuelta).

2) La barca sólo puede ser manejada por el padre, la madre o el

policía. La barca no puede navegar sola.

3) La madre no puede quedarse sola con sus dos hijos sin la

presencia del padre.

4) El padre no puede quedarse sólo con sus dos hijas sin la

presencia de la madre.

5) La delincuente no puede quedarse sola con ningún miembro de

la familia sin que el policía esté presente.

Si tuvieses que resolver en papel, una alternativa sería ir dibujando

los personajes que van en cada viaje. En nuestro caso usaremos la

aplicación y dibujaremos la solución cuando la encontremos.

Page 30: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

24

Actividad en clases

1. Encuentra la solución en tu computador al juego planteado, al final dibuja paso a paso la solución que te permitió cruzar el rio a todas las personas

2. El Buscaminas es un juego aparentemente sencillo de memoria y lógica, además de ser uno de los

juegos de Windows más populares. Tienes que encontrar los recuadros vacíos y evitar las minas

del nivel Principientes. Al final comenta que estrategias de las estudiadas te permitieron ganar el

juego.

Page 31: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

25

Actividad Formativa No. 2 (Estrategias de resolución de problemas )

Desarrolle en un procesador de textos los problemas propuestos, especificando cada paso para resolución de problemas según el método de George Pólya. Se calificará: Carátula, pasos para resolución de cada problema, soluciones acordes a lo que se pide y calidad del documento final.

1.

¿Cuál es la figura que le sigue a estas secuencias?

2. 2.

¿Cuál es el número que le sigue? 1 2 4 7 11 16 ?? 40 35 30 24 18 13 ?? 21 24 32 36 44 49 57 ?? 40 42 47 44 46 51 48 ?? Resuelva que operaciones se necesitarían para obtener los siguientes resultados: 6 6 6 = 6 7 7 7 = 6 8 8 8 = 6

3. 4.

Un barril de vino tiene una masa de 120Kg y una caja de peras 36Kg. ¿Cuál es la masa de una bandeja de higos y un saco de zanahorias si el saco de zanahorias y la caja de peras pesan juntas lo mismo que el barril de vino y la bandeja de higos? La edad de A es el triple de la de B y dentro de 20 años será el doble, Hallar la edad actual de A.

5. Juan García fue a recolectar naranjas a 3 huertas. Los dueños de estas le dieron permiso, siempre y cuando al terminar de cortarlas en las 3 huertas, les diera a cada dueño la mitad de las naranjas recolectadas, más la mitad de una naranja en cada una de las huertas. Al final, a Juan García le quedo únicamente 1 naranja. Determina el total de naranjas que recolecto Juan García en las 3 huertas para que al final le quedara 1.

6. Elena, María y Susana estudian 3 idiomas (francés, italiano y alemán), y entre las tres tienen 16 libros de consulta. De los cuatro libros de Elena, la mitad son de francés y uno es de italiano. María tiene la misma cantidad de libros de Elena, pero solo tiene la mitad de los libros de francés y la misma cantidad de libros de italiano que Elena. Susana tiene tres libros de alemán, pero en cambio tiene tantos libros de italiano como libros de alemán tiene María. ¿Cuántos libros de francés tiene Susana y cuántos libros de cada idioma tienen entre todas?

7. Consiste en que tres misioneros y tres caníbales deben cruzar el río solo con una canoa que puede llevar a dos personas. No puede haber nunca más caníbales de misioneros.

Page 32: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

26

5. La lógica Aristóteles (384-322 a.C.) ha pasado a la

historia, entre otras cosas, como el primer

sistematizador de la lógica. De hecho, sus

propuestas en este campo, junto a las

aportaciones de los estoicos4, han

constituido prácticamente toda la lógica

hasta el siglo XIX. Según Aristóteles "La

lógica es la ciencia de la demostración,

porque se preocupa de dar reglas para

alcanzar la verdad de la evidencia

inmediata, que conocemos por medio de la

demostración".

La palabra lógica deriva del griego antiguo

λογική (logike), que significa «dotado de razón, intelectual, dialéctico,

argumentativo», que a su vez viene de λόγος (logos), «palabra,

pensamiento, idea, argumento, razón o principio».

En términos generales, se puede definir a la lógica como la ciencia

formal que estudia los principios de la demostración e inferencia válida.

Así como el objeto de estudio tradicional de la química es la materia, y

el de la biología la vida, el de la lógica es la inferencia. La inferencia es

el proceso por el cual se derivan conclusiones a partir de premisas5.

4 Estoicos: Del griego stoá, pórtico. Se conoce con este nombre a los representantes del estoicismo, escuela

filosófica fundada hacia el 300 a. C. por Zenón de Citio, que impartió sus doctrinas en un pórtico ateniense

pintado por Polignoto (stoá poikíle), por lo que también se le ha llamado «escuela del Pórtico» o «la Stoa». 5 Premisa: Se denomina premisa a cada una de las proposiciones de un razonamiento que dan lugar a la

consecuencia o conclusión de dicho razonamiento. Las premisas son expresiones lingüísticas que afirman o

niegan algo y pueden ser verdaderas o falsas.

Page 33: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

27

6. La Lógica como fundamento de las Ciencias Computacionales

n las décadas de 1950 y 1960 debido a la

aparición de los computadores, la lógica comienza

una nueva época. Surge en ese entonces la

necesidad de determinar si es posible especificar formalmente

programas y definir sistemas de demostración automática de teoremas.

Estos problemas son los principales objetos de estudio de la lógica

computacional. En los setenta se desarrolla la programación lógica

como herramienta de resolución de problemas. En 1972 aparece el

primer lenguaje de programación lógica: PROLOG, obra de

Colmerauer6. La lógica computacional se puede aplicar en áreas como:

☺ Especificación y verificación de programas. ☺ Demostración automática de teoremas. ☺ Programación lógica. ☺ Inteligencia artificial y sistemas basados en el conocimiento, etc.

Desde este punto de vista, las ciencias computacionales buscan que los programas no sean una secuencia de instrucciones que le señalen al computador, paso a paso, la solución de un problema, sino que sean una especificación de lo que se desea resolver dejando para que el computador determine las acciones necesarias para ello. En este sentido la lógica puede verse como un lenguaje de especificación mediante el cual podemos plantear los problemas de forma rigurosa.

6 Alain Colmerauer es un científico informático francés que en 1984 creó la empresa PrologIA para explotar

el desarrollo de Prolog III. También es uno de los principales fundadores del campo de la de restricciones en

programación lógica.

E

Page 34: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

28

7. La lógica de programación uchas personas confunden la Programación

con la Lógica de Programación, es

importante aclarar que la primera involucra

el conocimiento de técnicas e instrucciones de un

determinado Lenguaje a través de los cuales se hace

sencillo lograr que la Computadora obtenga unos resultados mucho

más rápidos que una persona. La segunda involucra, de una manera

técnica y organizada, los conceptos que permiten diseñar en términos

generales, la solución a problemas que pueden llegar a ser

implementados a través de una computadora.

Toda persona que pretenda dar solución a problemas a través de una

computadora se enfrenta a dos grandes interrogantes:

� ¿El QUÉ?: Acciones a realizar para poder resolver el problema.

Esta tarea forma parte del trabajo de mesa previo a toda

actividad de programación.

� ¿El CÓMO?: Instrucciones de las que se va a valer para escribir el

código que realice las acciones determinadas en el QUÉ, las

cuales están determinadas por el lenguaje de programación

seleccionado.

La lógica de programación nos ayudará a resolver la primera

interrogante.

8. La lógica aplicada para resolver problemas. n la solución de problemas, el lenguaje es un factor muy

importante, ya que con él se plantea o describe con claridad la

situación que consideramos un problema y el resultado al que

M

E

Page 35: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

29

queremos llegar. La principal aportación de la lógica es establecer un

conjunto de reglas que permiten determinar cuándo un argumento7 es

correcto.

Un enunciado declarativo que puede ser evaluado como

falso o verdadero recibe el nombre de preposición. Las

preposiciones pueden ser simples o compuestas, las

compuestas están formadas de dos o más proposiciones

simples. Por ejemplo analicemos la siguiente preposición

compuesta:

s: Si este año ahorro lo suficiente y me dan vacaciones, entonces en

diciembre iré de viaje o cambiaré de auto.

La proposición s cumple con las condiciones necesarias para ser

proposición: es una oración declarativa y puede evaluarse como

verdadera o falsa.

Ahora podemos dividir la preposición s en cuatro proposiciones

simples:

p: Este año ahorraré lo suficiente.

q: Me darán vacaciones.

r: En diciembre iré de viaje.

t: En diciembre cambiaré de auto.

Observe que puede cambiar la conjugación de los verbos al formar una

proposición compuesta y que hay palabras como si, y, entonces y o que

unen las proposiciones simples. En Lógica, las palabras que se usan 7 Argumento: Es una serie de razonamientos que se avocan a probar algo y está formado por un conjunto de

enunciados declarativos relacionados entre sí.

Page 36: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

30

para relacionar preposiciones simples y formar compuestas, se las

conoce como conectivos lógicos.

De manera simbólica, se puede escribir la preposición s de la siguiente

forma:

s: Si p y q, entonces r o t

Otro conectivo lógico es la negación, que rechaza la proposición

(simple o compuesta) a la que está aplicada. Por ejemplo, si tenemos la

proposición p: El oxígeno es transportado por la sangre a todo el cuerpo,

la negación de p se escribe ~p, se lee no p y significa “El oxígeno no es

transportado por la sangre a todo el cuerpo”.

Actividad en clases

1. Anota si las proposiciones son falsas (F) o verdaderas (V).

Los perros maúllan o ladran Dos docenas son 36.

5 = 2 + 3 La nieve es fría y húmeda.

El cuadrado de 4 es un número par El agua puede contaminarse.

Dos veces diez es menor que doce 3 x 2 = 6 y 3 + 2 = 7

Anota la negación de las proposiciones verdaderas.2.

Proposición Negación

p: El átomo es la estructura básica de la materia.

q: El átomo está formado por otras partículas.

r: Los átomos tienen núcleo.

r: En el núcleo hay protones.

\

Page 37: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

31

Redacta cuatro proposiciones compuestas a partir de las proposiciones simples.3.

Proposiciones simples

q: Este año conoceré Galápagos. t: Jambelí es una isla de Machala.

r: Galápagos tiene un cielo hermoso. u: Machala está en El Oro.

s: Tengo dos semanas de vacaciones. v: Voy a ir a El Oro

Proposiciones compuestas

9. Valores de verdad ara representar los nexos entre las proposiciones, existen

unos símbolos que se utilizan en lugar de palabras. En el

cuadro siguiente se muestran los nombres y las

representaciones simbólicas de los conectivos lógicos.

Conectivo Lógico

Nombre Símbolo

NO Negación ~

Y Conjunción ^

O Disyunción v

SI … ENTONCES Implicación ����

Las proposiciones simples o compuestas, se caracterizan por ser falsas

o verdaderas. Cuando se ha tomado una decisión sobre la veracidad o

falsedad de una proposición, se dice que se ha encontrado su valor de

verdad.

P

Page 38: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

32

Existen reglas para evaluar si una proposición compuesta es falsa o

verdadera. Estas reglas dependen del valor de verdad de las

proposiciones simples. Supongamos que tenemos dos proposiciones

simples p y q, las posibles combinaciones entre las dos proposiciones

serían:

p q

V V

F F

F V

V F

A lo anterior se le conoce como tabla de verdad. Pueden agregarse

columnas en las que se evaluará el valor de verdad de las

proposiciones construidas a partir de p y q mediante conectivos

lógicos.

p q ~p ~q p^q p˅q p����q

V V F F V V V

F F V V F F V

F V V F F V F

V F F V F V V

Se han utilizado letras p y q, en lugar de ejemplos concretos para

resaltar que las reglas establecidas por la Lógica no dependen de un

enunciado, sino solo de su valor de verdad.

Page 39: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

33

Actividad en clases

1. Completa la siguiente tabla de verdad.

q r r ~r ~s q^r ˅˅˅˅q (~s) s^(~q) (s^~r)^q (q^r)����s

V V V

V V F

V F F

F F F

F V V

F F V

V F V

F V F

10. Algoritmos na de las herramientas que se utilizan en la configuración de

un plan (segundo paso del método de George Pólya) para

resolver problemas son los Algoritmos.

El algoritmo es un conjunto de pasos secuenciales y

ordenados que permiten lograr un objetivo. Que sean

secuenciales significa que deben ser ejecutados uno

después de otro y que sean ordenados quiere decir que

deben llevar un orden casi obligatorio. El algoritmo es el

que permite lograr el objetivo propuesto.

En la naturaleza hay muchos procesos que puedes considerar como

Algoritmos ya que tienen procedimientos y reglas. Incluso, muchas

veces no somos conscientes de ellos. Por ejemplo, el proceso digestivo

es un concepto de algoritmo con el que convivimos a diario sin que

U

Page 40: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

34

nos haga falta una definición precisa de este proceso. Existen dos tipos

de algoritmos: Algoritmos informales y Algoritmos computacionales.

10.1 Algoritmos Informales

Definidos como todos aquellos algoritmos que no son realizables a

través de una Computadora o al menos no fácilmente. Son aquellos

Algoritmos donde el ejecutor real es el ser humano, como el algoritmo

para dar un beso, el algoritmo para freír unos huevos o el algoritmo

para conseguir un libro. Al utilizar el método de George Pólya lo que

debemos tomar en cuenta antes de estructurar una solución es que se

puede entender el problema, identificando:

☺ El objetivo o fin que se persigue, es decir, especificar claramente

los resultados que se desean obtener.

☺ El o los elementos básicos, es decir, identificar la información

disponible (estado inicial)

☺ El o los condicionantes

EjemploEjemploEjemploEjemplo

Desarrollar un algoritmo que nos permita adquirir un libro

HARRY POTTER Y LA PIEDRA FILOSOFAL de J.K.

Rowling.

ResoluciónResoluciónResoluciónResolución

1. Entender el problema

OBJETIVO: Adquirir el libro HARRY POTTER Y LA PIEDRA

FILOSOFAL.

ELEMENTOS BÁSICOS (DATOS): Nombre del libro HARRY POTTER Y LA

PIEDRA FILOSOFAL, autor J.K. Rowling.

CONDICIONANTES: Adquirir un solo libro.

2. Configuración de un plan: Se utilizará un algoritmo para indicar los pasos

necesarios

Page 41: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

35

ALGORITMO Adquisicion_Libro Inicio

1. Saber cuál es el libro que se quiere adquirir 2. Desplazarnos hacia una librería 3. Preguntar si tienen el libro que necesitamos 4. Si lo tienen adquirirlo y parar allí (dentro de este algoritmo) Si no lo tienen ir al paso 2

Fin 3. Ejecutar el plan. Seguir los pasos indicados en el algoritmo.

4. Verificar el plan. Si se lograría comprar el libro la solución propuesta

cumple con lo que se pedía.

La tecnología ha avanzado tanto que, muchos algoritmos que en el

pasado no eran implementables a través de una computadora, en la

actualidad lo son y de manera mucho más sencilla como es el caso del

algoritmo para conseguir un libro que anteriormente se pensaba en

librerías y ahora se piensa en un concepto más globalizado, Internet,

con más posibilidad de conseguirlo y con menos trabajo.

Actividad en clases

Resolver los dos problemas indicando solamente los dos primeros pasos del método de George Pólya (En el primer paso detalle el Objetivo(s) o fin(es), los elemento(s) básico(s) y el Condicionante(s); en el segundo paso

utilice un Algoritmo. 1. Cruzar la avenida Don Bosco una sola vez. 2. Desarrollar un algoritmo que permita hacerse amig@ de alguien en una red social, sin

acercarse personalmente antes de hacerse amig@. 3. Suponiendo que se dispone de una cantidad ilimitada de agua, de un recipiente

plástico de 5 litros y de otro de 4 litros de capacidad (los recipientes no tienen medida), indicar cómo se puede colocar exactamente 2 litros de agua en el recipiente de 5 litros.

4. En el juego Ligth-Bot ¿cuáles son los pasos para que el marciano llegue hasta los cuadros azules y prenda la luz? (Avance por lo menos hasta el nivel 10). Por ejemplo en el primer nivel los pasos para llegar son:

Page 42: Programación en lenguajes Estructurados - Lógica Computacional

Unidad Educativa Técnico Salesiano Primero de Bachillerato – Aplicaciones Informáticas Wilson Cedillo P.

Unidad de Trabajo 1: Lógica Computacional

36

Actividad Formativa No. 3 (Algoritmos Informales )

Resolver los 5 problemas indicando los 2 primeros pasos del método de Pólya. En el primer paso detalle el Objetivo(s) o fin(es), los elemento(s) básico(s) y el Condicionante(s); en el segundo paso utilice un Algoritmo.

1. Hacer un avión con una hoja de papel. 2. Amarrarse los cordones de los dos zapatos 3. Se dispone de una balanza de brazos y de seis objetos de madera (Rojo: R, Verde: V,

Amarillo: A, Negro: N, Fucsia: F, y Café: C); cinco de ellos tienen el mismo peso, mientras que el otro es más pesado. Indicar con un algoritmo cómo se puede encontrarse este último efectuando 2 pesadas como máximo.

4. Suponiendo que se dispone de una cantidad ilimitada de agua, de un recipiente plástico de 4 litros y de otro de 3 litros de capacidad (los recipientes no tienen medida), indicar cómo se puede colocar exactamente 2 litros de agua en el recipiente de 4 litros.

5. Un lechero tiene un cántaro de 8 litros lleno de leche, y dos más de 5 y de 3 litros. Un cliente le pide exactamente 4 litros. ¿Cómo puede calcular los cuatro litros y dárselos en el cántaro de 5 litros? Suba el archivo al aula virtual de PLE en el portal web de la U.E.T.S. en la fecha

establecida por el docente

10.2 Algoritmos Computacionales

Se consideran como tales todos aquellos

Algoritmos que deben ser preferiblemente

implementados en una computadora para

aprovechar su velocidad de procesamiento.

Un ejemplo de estos puede ser el algoritmo

que genere los primeros 100 números primos,

recordando que un número primo es aquel que

solo puede ser dividido exactamente entre la unidad y entre sí mismo,

que si bien podrían ser calculados utilizando un papel y un lápiz, la

utilización de una computadora en unión con el algoritmo adecuado

ofrece un resultado mucho más rápido y absolutamente confiable (de

hecho depende de que el algoritmo igualmente sea muy confiable).