You are on page 1of 22

INTRODUCCIN

La incorporacin de tecnologa en la sociedad actual, ha generado que da a da se


incorporen diversas aplicaciones de software cuyo fin ltimo es facilitar las actividades
humanas. Desde la sociedad se genera una demanda constante de software, siendo
necesario formar profesionales capaces de dar respuestas creativas, rpidas y confiables.

La carrera de Anlisis de Sistemas dentro de su malla incorpora la asignatura de


Fundamentos de Programacin, que se constituye como un eje central al tener como
objetivo formar a los estudiantes con capacidades y habilidades para el entendimiento de
problemas de diversa ndole, representacin de la solucin de los mismos mediante
algoritmos, para posteriormente aplicar un lenguaje de programacin que lleve a construir
una aplicacin que encuentre la solucin automticamente.

Se tratarn temas referentes a los fundamentos de programacin, estilos de programacin,


algoritmos, pruebas de escritorio, estructuras de control y estructuras de datos, que son las
bases para la formacin de un analista de sistemas y contribuye en forma transversal con
otras materias como estructuras de datos, bases de datos y aplicaciones de bases y
programacin web.
CAPTULO
1
INTRODUCCIN Y
CONCEPTOS BSICOS

USUARIO 2
INTRODUCCIN Y CONCEPTOS BSICOS
INTRODUCCIN

En esta unidad realizaremos una revisin general de muchos conceptos que


deberamos conocer para enfrentar con una mayor eficacia el resto de unidades. Es
muy importante saber cmo han evolucionado ciertos criterios, estrategias y mtodos
para saber utilizarlos de la manera ms adecuada.

La informtica por lo tanto es la ciencia que estudia el procesamiento automtico de la


informacin, que a travs de los leguajes de programacin permiten resolver
problemas de la vida diaria, haciendo mucho ms fcil, precisos y rpidos los trabajos
que realizamos los humanos.

Para que esta automatizacin resulte un trabajo eficaz y eficiente debemos analizar
mucho el origen del problema, saber hacia dnde est enfocado y poder seleccionar el
estilo de programacin y el lenguaje ms adecuado.

Dentro de los lenguajes de programacin encontramos muchsimas estructuras que


nos permiten realizar el proceso de escritura de los programas de una manera ms
fcil, tambin utilizaremos los operadores en los casos ms adecuados.

Existen muchas estrategias y formas de organizar el diseo y la construccin de la


solucin a los problemas plateados, en este captulo revisaremos el mtodo Plya para
plantearnos la solucin del problema en el cual debemos seguir adecuadamente el
proceso plantado desde el entendimiento del problema, la configuracin de la
estrategia para solucionarlo, la ejecucin del plan y una visin hacia atrs para analizar
nuevamente si el problema fue resuelto correctamente y es vlido para su aplicacin
en la vida diaria.

CONCEPTOS BSICOS
Informtica:
La informtica es la ciencia que estudia el procesamiento automtico de la
informacin a travs de mtodos, tcnicas, procesos para solucionar un problema o
una necesidad. Definiendo finalmente como una rama de la tecnologa que estudia el
tratamiento automtico de la informacin.

Aunque la necesidad de razonar sobre este tipo de procesos existe desde tiempo atrs,
la consolidacin de la informtica como ciencia slo se produce con el desarrollo de los

USUARIO 3
computadores, a partir de los aos cuarenta. Se trata, por lo tanto, de una ciencia muy
joven, pero que ha evolucionado a gran velocidad.

La piedra maestra sobre la cual se ha podido desarrollar la informtica la representa el


computador, que es una herramienta de gran eficacia para realizar trabajos de todo
tipo, y en particular en aquellos que manejan una gran cantidad de datos o de
operaciones. Esta versatilidad tiene dos aspectos: por un lado, es posible usarlo como
herramienta para aplicaciones concretas ya desarrolladas, y por otro se pueden
disear soluciones a la medida de problemas nuevos, mediante la programacin.

El desarrollo de un programa nuevo para resolver un determinado problema requiere,


por una parte, conocer algn procedimiento sistemtico (algoritmo) que lleve a su
solucin, y por otra, la necesidad de expresarlo en un lenguaje de programacin que
el computador pueda comprender y ejecutar.

Lenguajes de programacin.
Las computadoras para solucionar y apoyar en el trabajo de las personas realizan
procesos los cuales son escritos en un lenguaje formal diseado para el efecto, a este
lenguaje se le conoce como lenguaje de programacin.

Los lenguajes de programacin es un lenguaje artificial que estn formado por un


conjunto de smbolos (que constituyen el vocabulario del lenguaje llamadas tambin
palabras reservadas) y un grupo reglas tanto semnticas como sintcticas que definen
su estructura y el significado de sus elementos y expresiones.

A todo el proceso por el cual pasa el planteamiento de una solucin hasta llegar a su
completo funcionamiento dentro del computador se le llama programacin (es decir
es la creacin de un programa de computadora).
Es necesaria la aplicacin de procedimientos lgicos, a travs de los siguientes pasos:
El desarrollo lgico del programa para resolver un problema en particular.
Escritura de la lgica del programa empleando un lenguaje de programacin
especfico (codificacin del programa).
Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de
mquina.
Prueba y depuracin del programa.
Desarrollo de la documentacin.

Los primeros lenguajes en aparecer fueron:


Cdigo de mquina
Ensamblador (dcada del 40)
Fortran (1955)
Lisp (1958)
Cobol (1959),

USUARIO 4
RPG (1959)
APL, Simula, Snobol (1962)
Pascal, C, SQL (dcada del 70)

Desde 1980 en adelante se consolidaron los lenguajes imperativos


C++ (1980)
Ada (1983)
Common Lisp, MATLAB (1984)
Eiffel (1985)
Perl (1987)

En la dcada de 90, en la era del internet, tenemos los ms utilizados:


Python, Visual Basic, HTML (1991)
Java (1995)
Delphi (Object Pascal), JavaScript, PHP (1995). Entre otros

Tipos de lenguajes de programacin.


Lenguajes de mquina

Hablando estrictamente, los


nicos smbolos que
comprenden los
computadores son dos: el
cero y el uno. Combinndolos
apropiadamente, se forman
las instrucciones. La
interpretacin de estas
instrucciones est dirigida a
componentes fsicos de la
mquina, tales como el
registro acumulador o las
direcciones de los operandos.
Por estas razones tan obvias,
estos rudimentarios lenguajes
se llaman lenguajes orientados a la mquina o, ms brevemente, lenguajes de
mquina.

USUARIO 5
Lenguajes ensambladores o de bajo nivel

Es aquel lenguaje que para su


programacin utiliza mnemnicos
(palabra que sustituye a un cdigo de
operacin del lenguaje de mquina) para
representar a una instruccin que
entender la computadora. Tambin se le
llama lenguaje ensamblador. Estos
lenguajes tienen una relacin directa
sobre el hardware de la mquina. No son
tan evolucionados como los de alto nivel
ni trabajan a nivel del lenguaje de
mquina, son un peldao intermedio entre estos dos.

Lenguajes de alto nivel

A diferencia de los lenguajes orientados a la mquina, los lenguajes de alto nivel se


componen de trminos y frases orientados a la solucin del problema. Esta
ventaja es doble: por un lado, permiten al programador concentrar su atencin sobre
el problema, ignorando los detalles propios de la mquina concreta que lo ha de
resolver; por otra parte, como el discurso de los programas de alto nivel es
independiente de la mquina, son altamente compatibles (transportables) entre
mquinas diferentes.

Una de las grandes ventajas de estos lenguajes radica en que la traduccin del
programa escrito en lenguaje de alto nivel (programa fuente) al lenguaje de mquina
(programa objeto) que, como recordamos, es el nico que puede ser ejecutado por el
computador, es automtica y se realiza por un programa traductor.

USUARIO 6
Para ello, junto con las especificaciones del lenguaje, reglas de sintaxis y semntica, se
desarrollan los necesarios programas de traduccin. Durante el proceso de traduccin
se suelen detectar errores, debidos al incumplimiento de las reglas sintcticas del
lenguaje que deben corregirse antes de poder ejecutar el programa. Si durante la
ejecucin de un programa se realizan operaciones no permitidas (tales como divisiones
por cero, accesos fuera de lmites, etc.) se producen los llamados errores de ejecucin.
Aunque un programa se haya traducido eliminando todos los errores sintcticos y de
ejecucin, an puede no realizar
correctamente la tarea para la que
fue creado, por contener errores
lgicos. Por lo tanto es necesario
comprobar el funcionamiento del
programa utilizando datos de
prueba que permitan realizar los
clculos a mano y comprobar as las
partes ms conflictivas del
programa. Este proceso se conoce
como depuracin de los programas.

En la actualidad la mayora de los


programas se escriben en lenguajes
de alto nivel, reservndose los
lenguajes de bajo nivel para aquellas
aplicaciones donde se necesite una elevada velocidad o un acceso directo al hardware
del computador.

Programacin:
Como decamos al principio, consideramos al computador como una herramienta que
nos ayuda en la resolucin de problemas; para ello es preciso conocer previamente un
algoritmo (pasos) que lleve a su solucin. Partiendo de esos conceptos conocidos se
dice que:

Programacin es la manera de expresar el algoritmo en un lenguaje de


programacin, que pueda ser comprendido y ejecutado por el computador,
desarrollndose un programa.

Estilos de programacin.
Los estilos de programacin hacen referencia a las reglas con las que se da forma al
cdigo que se escribe para crear los programas. A travs de la historia se han

USUARIO 7
desarrollado varios estilos basados en los lenguajes y en el enfoque que se da a los
programas. Revisaremos algunos de ellos:

Programacin estructurada

La programacin estructurada se refiere al control de ejecucin. En control de su


ejecucin la regla general es que las instrucciones se ejecuten sucesivamente una tras
otra, pero diversas partes del programa se ejecutan o no dependiendo de que se
cumpla alguna condicin.

Edsger Dijkstra, desarrollo el teorema en el que se basa este estilo de programacin,


que demuestra que todo programa puede escribirse utilizando nicamente las tres
estructuras bsicas de control siguientes:

Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas


sucesivamente, una detrs de otra.
Seleccin: la instruccin condicional con doble alternativa, de la forma "if
condicin then instruccin-1 else instruccin-2".
Iteracin: el bucle condicional "while condicin do instruccin", que ejecuta la
instruccin repetidamente mientras la condicin se cumpla.

Los programas que utilizan slo estas tres instrucciones de control bsicas o sus
variantes (como los bucles for, repeat o la instruccin condicional switch-case), pero
no la instruccin goto (instruccin de lenguajes de programacin antiguos como el
FORTRAN, que rompa la estructura del programa hacindole muy difcil su
entendimiento), se llaman estructurados

Una caracterstica importante en un programa estructurado es que puede ser ledo en


secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que
cumple el programa, lo contrario de lo que ocurre con otros estilos de programacin.
Este hecho es importante debido a que es mucho ms fcil comprender
completamente el trabajo que realiza una funcin determinada si todas las
instrucciones que influyen en su accin estn fsicamente contiguas y encerradas por
un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar
solamente tres estructuras de control, y de eliminar la instruccin de transferencia de
control goto.

A medida que los programas se hacen ms grandes y complejos, el paradigma


estructurado comienza a dar seales de debilidad y resultando muy difcil terminar los
programas de un modo eficiente.

La programacin estructurada controla la ejecucin del programa y mejora la


claridad, fiabilidad y facilidad de mantenimiento de los programas; sin embargo,
para programas grandes o a gran escala, presentan retos de difcil solucin.

USUARIO 8
Ventajas de la programacin estructurada

Realizar programas con la programacin estructurada, demanda esfuerzo, creatividad,


habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes
ventajas:

1. Los programas son ms fciles de entender. Un programa estructurado


puede ser ledo en secuencia, de arriba hacia abajo, sin necesidad de
estar saltando de un sitio a otro en la lgica, lo cual es tpico de otros
estilos de programacin.

2. Se logra una reduccin del esfuerzo en las pruebas. El seguimiento de


las fallas o depuracin (debugging) se facilita debido a la lgica ms
visible, de tal forma que los errores se pueden detectar y corregir ms
fcilmente.

3. Se crean programas ms sencillos y ms rpidos.

Programacin modular

La programacin modular es uno de los mtodos de diseo ms flexible y potente para


mejorar la productividad de un programa. En programacin modular el programa se
divide en mdulos (partes independientes), cada uno de los cuales ejecuta una nica
actividad o tarea y se codifican independientemente de otros mdulos.

Cada uno de estos mdulos se analiza, codifica y pone a punto por separado. Cada
programa contiene un mdulo denominado programa principal (main) que controla
todo lo que sucede; se transfiere el control a submdulos (posteriormente se
denominarn subprogramas), de modo que ellos puedan ejecutar sus funciones; sin
embargo, cada submdulo devuelve el control al mdulo principal cuando se haya
completado su tarea. Si la tarea asignada a cada submdulo es demasiado compleja,
ste deber romperse en otros mdulos ms pequeos.

El proceso sucesivo de subdivisin de mdulos contina hasta que cada mdulo tenga
solamente una tarea especfica que ejecutar. Esta tarea puede ser entrada, salida,
manipulacin de datos, control de otros mdulos o alguna combinacin de estos. Un
mdulo puede transferir temporalmente (bifurcar) el control a otro mdulo; sin
embargo, cada mdulo debe eventualmente devolver el control al mdulo del cual se
recibe originalmente el control.

Los mdulos son independientes en el sentido en que ningn mdulo puede tener
acceso directo a cualquier otro mdulo excepto el mdulo al que llama y sus propios
submdulos. Sin embargo, los resultados producidos por un mdulo pueden ser
utilizados por cualquier otro mdulo cuando se transfiera a ellos el control.

USUARIO 9
RAIZ

Mdulo 1 Mdulo 2 Mdulo 3 Mdulo 4

Mdulo Mdulo Mdulo Mdulo Mdulo


11 12 31 41 42

Mdulo Mdulo
21 22

Mdulo Mdulo
221 222

Dado que los mdulos son independientes, diferentes programadores pueden trabajar
simultneamente en diferentes partes del mismo programa. Esto reducir el tiempo
del diseo del algoritmo y posterior codificacin del programa. Adems un mdulo se
puede modificar radicalmente sin afectar a otros mdulos, incluso sin alterar su
funcin principal.

La descomposicin de un programa en mdulos independientes ms simples se


conoce tambin como el mtodo de divide y vencers (divide and conquer). Cada
mdulo se disea con independencia de los dems, y siguiente un mtodo ascendente
o descendente se llegar hasta la descomposicin final del problema en mdulos en
forma jerrquica.

Programacin orientada a objetos (POO)

La programacin orientada a objetos, tal vez el paradigma de programacin ms


utilizado en el mundo del desarrollo de software y de la ingeniera de software del
siglo XXI, trae un nuevo enfoque a los retos que se plantean en la programacin
estructurada cuando los problemas a resolver son complejos.

En esta metodologa de diseo de software y un paradigma de programacin que


define los programas en trminos de clases de objetos, objetos que son entidades
que combinan estado (es decir, datos) y comportamiento (esto es, procedimientos o
mtodos).

La programacin orientada a objetos expresa un programa como un conjunto de estos


objetos, que se comunican entre ellos para realizar tareas.

Elementos de la Programacin Orientada a Objetos

Objeto: es una unidad que contiene datos y las funciones que operan sobre
esos datos.

USUARIO 10
Atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase
de objetos).
Herencia: La herencia es la propiedad que permite a los objetos construirse a
partir de otros objetos.
Clase: Es una coleccin de objetos similares y un objeto es una instancia de una
definicin de una clase.

En el paradigma orientado a objetos, el programa se organiza como un


conjunto finito de objetos que contiene datos y operaciones que llaman a
esos datos y que se comunican entre s mediante mensajes.

Operadores:
Toda expresin est compuesta por operadores y operando.
Un operador es un smbolo o palabra que indica que accin se ha debe realizar entre
uno o dos valores llamados operandos.

De manera genrica las expresiones tienen la siguiente forma:

Operando 1 OPERADOR Operando 2

Operando 1 OPERADOR

OPERADOR Operando 1

Tipos de operadores
En las expresiones podemos encontrar cuatro tipos de operadores que se para crear
expresiones aritmticas o lgicas o relacionales. Estos operadores son:

Asociativos

USUARIO 11
Aritmticos
Relacionales
Lgicos

Operadores Asociativos:

El nico operador asociativo es el parntesis (), el cual permite indicar en qu orden


deben realizarse las operaciones.

Cuando una expresin se encuentra entre parntesis, indica que las operaciones que
estn dentro de ellos deben realizarse primero. Si en una expresin se utilizan ms de
un parntesis se deber proceder primero con los que se encuentren ms hacia el
centro de la expresin.

Operadores Aritmticos:

Son operadores que permiten realizar operaciones aritmticas entre operandos. El


resultado que se obtiene al evaluar una expresin aritmtica es un nmero.

Al evaluar expresiones que contienen operadores aritmticos, se respeta una jerarqua


en el orden en el que se aplican. Es decir, si se tiene una expresin aritmtica con al
menos dos operadores de distinta jerarqua, se deber realizar primero una operacin,
y luego la otra. La siguiente tabla muestra los operadores aritmticos ordenados de
mayor a menor jerarqua:

OPERADOR OPERACIN
^ Potenciacin
*,/ Multiplicacin, Divisin
+, - Suma, Resta

Para resolver una expresin aritmtica se deben seguir las siguientes reglas:

1. Primero se resuelve las expresiones que se encuentran entre parntesis


siguiendo estas mismas reglas.
2. Se procede aplicando la jerarqua de los operadores. En caso de que haya dos
operadores con la misma jerarqua se procede de izquierda a derecha.

Por ejemplo, si tiene la expresin. ( 4 + 1) * 3 5 / 2 + 1

Primero se resuelve el parntesis (4 +1), por lo tanto el


resultado parcial es: 5*35/2+1

USUARIO 12
Despus de haber terminado todos los parntesis, se
procede con lo dems, respetando la jerarqua de
operadores, por lo cual, en este caso, se sigue con la
multiplicacin y divisin, pues la potenciacin no se 15 - 5 / 2 + 1
encuentra en esta expresin. Pero como la multiplicacin y
la divisin tienen la misma jerarqua, se realizar primero 15 - 2.5 + 1
la multiplicacin 5 * 3, que es la que est ms a la izquierda
y luego se realiza la divisin 5 / 2. Resultado as:
A continuacin se procede con la resta y la suma que tienen 12.5 + 1
la misma jerarqua, se realiza de izquierda a derecha.
Dando como resultado final: 13.5

Es muy importante sealar que si las expresiones aritmticas no se resuelven


aplicando las reglas anteriores, se obtendrn resultados diferentes, como si cada
persona decidiera hacerlo a su gusto; por eso para asegurarse de expresar lo mismo, es
importante respetar las reglas mencionadas.

Operadores Relacionales:

Son smbolos que se usan para comparar dos valores, sean numricos o alfanumricos.
El resultado obtenido es un valor de verdad, que puede ser V (verdadero) o F (falso)
segn sea correcta o incorrecta la comparacin. La comparacin entre un dato
numrico y uno alfanumrico no puede llevarse a cabo.

Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el
valor true del tipo bsico boolean, en cambio, 8<4 (ocho menor que cuatro) es
falsa, false.

Operador nombre ejemplo significado


< menor que a<b a es menor que b
> mayor que a>b a es mayor que b
= igual a a=b a es igual a b
<>;>< no igual a a<>b a no es igual a b
diferente a es diferente que
que b
<= menor que a<=5 a es menor que o
o igual a igual a b
>= mayor que a>=b a es menor que o
o igual a igual a b

Operadores Lgicos:

USUARIO 13
Son operadores que permiten realizar las operaciones lgicas de conjuncin,
disyuncin, y negacin. El resultado obtenido es un valor de verdad que puede ser V
(verdadero) o F (falso). Los operadores lgicos se muestran a continuacin, indicando
la jerarqua de mayor a menor:

Recordemos que la negacin cambia el valor verdadero por el falso, y viceversa.

A NOT (~ A)
V F
F V

En la conjuncin (AND) se necesitan dos (todos) los valores verdaderos para producir
otro valor verdadero; en cualquier otro caso se produce un valor de falso.

A B A ^ B (A AND B)
V V V
V F F
F V F
F F F

En la disyuncin (OR), basta que un operando sea verdadero para obtener un resultado
de verdadero; en caso contrario el valor ser falso.

A B A V B (A OR B)
V V V
V F V
F V V
F F F

Las reglas para resolver las expresiones lgicas son las siguientes:

1. Se resuelven primero los parntesis


2. Se encuentran los valores de verdad de las expresiones relacionales.
3. Se aplica la jerarqua de operadores lgicos. En caso de haber dos operadores iguales
se procede la operacin de izquierda a derecha.

Por ejemplo:

USUARIO 14
Se tiene la Expresin: (2 >= 3) (5 > 3 3 < 2)
(Se presentan dos formas de escribir la misma
expresin)
~ (2 >= 3) ^ (5 > 3 3 < 2)
Primero se resuelven los (2 >= 3) Se obtiene un resultado de F.
parntesis
(5 > 3 3 < 2) se resuelve por separado cada
expresin relacionada que est dentro del
parntesis:
(5>3) Da como resultado V.
(3<2) Resulta F.
Uniendo se obtiene (V OR F). Resolviendo este
parntesis tenemos V.

La expresin resultante sera:


NOT (F) AND (V)
~^

Se resuelven las expresiones Se resuelve el NOT que tiene precedencia sobre la


relacionadas (tomando en cuenta operacin AND
la jerarqua de los operadores NOT (F) produce la negacin de F que es V.
lgicos) Resulta:
V AND V
V^V

Por ltimo se resuelve la V AND V que resulta V.


expresin resultante:
Lo que significa que el valor de verdad de la expresin es VERDADERO (V)

A continuacin se presentan problemas resueltos y propuestos para los distintos tipos


de operadores.

Tablas de Verdad

Una tabla de verdad es un dispositivo para demostrar ciertas propiedades lgicas y


semnticas de enunciados del lenguaje natural o de frmulas del lenguaje del clculo
proposicional.

Para construir una tabla de verdad se hace una interpretacin de los signos lgicos
como los vimos anteriormente (negacin, conjuncin y disyuncin) La interpretacin
corresponde al sentido que estas operaciones tienen dentro del razonamiento.

Puede establecerse una correspondencia entre los resultados de estas tablas y la


deduccin lgico matemtica. En consecuencia, las tablas de verdad constituyen un
mtodo de decisin para chequear si una proposicin es o no un teorema.

USUARIO 15
Con los conectores lgicos revisados anteriormente podemos construir enunciados
compuestos ms elaborados que los llamamos proposiciones. El valor de verdad de
una proposicin depende de los valores de verdad de sus variables.

Ejemplo: Construir la tabla de verdad de la proposicin ~ ( p ^ ~q )

p q ~q p ^ ~q ~ ( p ^ ~q )
V V F F V
V F V V F
F V F F V
F F V F V

Las dos primeras columnas de la tabla de verdad son para las variables p y q (o ms
variables de ser el caso).

Se colocar las suficientes lneas para permitir todas las posibles combinaciones de V y
F para las variables. El nmero de lneas se calcula en base a la potencia de dos 2n,
donde n es el nmero de variables presentes. En el caso del ejemplo tenemos 2 2 = 4
lneas porque solo tenemos 2 variables (p, q). Para el caso de 3 variables tendremos 23
= 8 lneas

Tendremos una columna para cada etapa elemental de la construccin del enunciado,
y se va trabajando paso a paso de acuerdo a los conectores presentados.

Finalmente se obtendr la tabla de verdad correspondiente a la proposicin que ser


la ltima columna.

Por lo tanto la tabla de verdad de la proposicin anterior consiste precisamente en las


columnas bajo las variables y la columna bajo la proposicin (se ven sombreadas en la
tabla anterior). Las otras columnas son solamente auxiliares para poder llegar a la
final.

RESOLUCIN DE PROBLEMAS

El proceso de resolucin de problemas con una computadora conduce a la escritura de


un programa y a su ejecucin en la misma. Aun que el proceso de disear un
programa es, esencialmente creativo, se puede considerar una serie de fases o pasos
comunes, que generalmente deben seguir todos los programadores. Estos pasos
pueden variar de un mtodo a otro.

Mtodo de Plya
Para nuestro estudio de resolucin de problemas emplearemos el mtodo Plya
desarrollado por el hngaro George Plya quien generaliz su mtodo en cuatro pasos
principales:

USUARIO 16
1. Entender el problema.
2. Configurar un plan
3. Ejecutar el plan
4. Mirar hacia atrs

Paso 1: Entender el Problema.


Entiendes todo lo que dice?
Puedes replantear el problema en tus propias palabras?
Distingues cules son los datos?
Sabes a qu quieres llegar?
Hay suficiente informacin?
Hay informacin extraa?
Es este problema similar a algn otro que hayas resuelto antes?

Paso 2: Configurar un Plan.


Puedes usar alguna de las siguientes estrategias? (Una estrategia se define como un
artificio ingenioso que conduce a un final).
1. Ensayo y Error (Conjeturar y probar la conjetura).
2. Usar una variable.
3. Buscar un Patrn
4. Hacer una lista.
5. Resolver un problema similar ms simple.
6. Hacer una figura.
7. Hacer un diagrama
8. Usar razonamiento directo.
9. Usar razonamiento indirecto.
10. Usar las propiedades de los nmeros.
11. Resolver un problema equivalente.
12. Trabajar hacia atrs.
13. Usar casos
14. Resolver una ecuacin
15. Buscar una frmula.
16. Hacer una simulacin
17. Usar un modelo.
18. Usar anlisis dimensional.
19. Identificar sub-metas.
20. Usar coordenadas.
21. Usar simetra.

Paso 3: Ejecutar el Plan


Implementar la o las estrategias que escogiste hasta solucionar completamente
el problema o hasta que la misma accin te sugiera tomar un nuevo curso.

USUARIO 17
Concdete un tiempo razonable para resolver el problema. Si no tienes xito
solicita una sugerencia o haz el problema a un lado por un momento (puede
que "se te prenda el foco" cuando menos lo esperes!).
No tengas miedo de volver a empezar. Suele suceder que un comienzo fresco o
una nueva estrategia conducen al xito.

Paso 4: Mirar hacia atrs.


Es tu solucin correcta? Tu respuesta satisface lo establecido en el
problema?
Adviertes una solucin ms sencilla?
Puedes ver cmo extender tu solucin a un caso general?

USUARIO 18
ACTIVIDADES UNIDAD I

ACTIVIDAD 1:
1. Investigar sobre los tipos de software y realizar un mapa conceptual incluyendo
ejemplos de cada uno.

2. Resuelva el siguiente crucigrama

Horizontal: Vertical:
2 Operador lgico Tecnologa que estudia el tratamiento
1
Operadores que se usan para comparar automtico de la informacin
4 dos valores, sean numricos o 3 Elemento de la POO
alfanumricos 5 Tipo de operadores
Tipo de lenguaje de programacin que Accin de expresar el algoritmo en un
7
se utiliza actualmente lenguaje de programacin, que pueda
6
En letras la respuesta de la expresin: ser comprendido y ejecutado por el
9
(2 * 3 - 2 ) ^ 2 4 * 8 / ( 2 ^ 3 / 4 ) = computador
Resultado de la expresin lgica: Estilo de programacin en que las
10
( (3 < 2 ) OR ( 5 > 3 ) ) 8 instrucciones se ejecuten
sucesivamente una tras otra

USUARIO 19
ACTIVIDAD 2:
PROBLEMAS PROPUESTOS DE OPERADORES ARITMETICOS

Aplicando la jerarqua de operadores, encontrar el valor de cada una de las siguientes


expresiones:

1. 4+1*5^2-1
2. 9/3+4^2-5*1+9/-2+3
3. 5/2+3-4*5/2
4. (4+1)*5^2-1
5. 17/2+3^2^2-2*2/2

ACTIVIDAD 3:
PROBLEMAS PROPUESTOS DE OPERADORES RELACIONALES Y LOGICOS

Aplicando la jerarqua de operadores, encontrar el valor de verdad de cada una de las


siguientes expresiones:

Para el problema 1 los valores para las variables son:


M=8, N=9, R=5, S=5, T=4, V=10

1. NOT((M>N AND R>S) OR (NOT(T<V AND S>M)))


2. (3*2^2-4/2*1) > (3*2^-4/2*1) AND (5>9/3)
3. (3>=3 OR 5< >5) AND NOT (15 /5 +2 < >5)
4. NOT(NOT((3-(-3))*2>(3-(-3)*2) OR 1^3*2>6))
5. (3>=4 AND 5>3 AND 3>3) OR NOT (4 <+ 4 OR 5>4 OR 6>=7)

ACTIVIDAD 4:
1.- Resolver los siguientes ejercicios aritmticos.
(2*3-2)2 4*8/2(23/4)
3+5*(10-(2+4))
2.1*(1.5+3.0*4.1)

2.- Resolver los siguientes ejercicios lgicos, tomar en cuenta estos valores: a= 10, b=
20, c= 30.
(a < b) AND(b < c)
((a > b)OR(a < c))AND((a = c)OR(a >= b))
NOT (a = c) AND (c > b)
3.- Llenar el cuadro con los valores faltantes.

USUARIO 20
ACTIVIDAD 5:
Operadores y Mtodo Plya

1. Construir la tabla de verdad de las siguientes proposiciones


a. ( p ^ q ) ^ ~ q

p q
V V
V F
F V
F F

b. ( p q ) ~ ( p v q )
c. ~[ p v ( ~ p v ~q )]
d. [(p v ~q) q]
e. [~p(q v r)]
f. [(p v r) q]

2. Resuelva la siguiente sopa de letras. Debe encontrar pasos del mtodo Plya
y los tipos de operadores.

USUARIO 21
Cul es el paso del Mtodo Plya que est faltando en la sopa de letras?

________________________________________________________________

USUARIO 22

You might also like