lunes, 9 de junio de 2008

EJEMPLOS - EJERCICIOS

-Escriba un programa que permita calcular el área y el volumen de un cilindro.

Paso 1.
Análisis del problema:
Calcular área y volumen de un cilindro
Que piden? Calcular área y volumen de un cilindro
Que me dan? Se debe conocer el radio y la altura del cilindro para poder realizar el calculo
Como lo hago? Para calcular el volumen (V) se multiplica la altura (H) por radio (r)al cuadrado y por PI (P) y para calcular el área (A) se multiplica la altura (H) por PI (PI) y por dos (2).

Descripción matemática:
V=PI*r*r*H
A=2*PI*r*H

Paso 2.
Algoritmo AreaVolumen
Inicio
1.Conocer el radio
2.Conocer la altura
3.Calcular la multiplicación de PI por el radio al cuadrado y por la altura
4.Calcular la multiplicación de dos por PI por radio y por la altura
5.Mostrar los resultados
Terminar

Paso 3.
Definición y declaración de variables:

Entrada : r, H, PI : Reales
Proceso : A, V : Reales

Paso 4. (Programa en seudo lenguaje)

Algoritmo AreaVolumen
VAR
r, H, PI, A, V : Reales

Inicio
//Se asina el valor a PI
P=3.14
Escriba “el valor del radion es:”, Lea r
Escriba “el valor de la altura es:”, Lea H
//Aquí se calcula el valor del volumen
V=P*r*r*h
//Aquí se calcula el valor del area
A=2*P*r*H
Escriba “el volumen es:”, V
Escriba “el area es:”, A

Fin

Paso 5.

Prueba de Escritorio

H

r

P

V

A

5

4

3.14

251.2

125.6

1

1

3.14

3.14

6.28

-Elabore un programa en el que se lea una temperatura en Grados centígrados y se indique el equivalente en grados kelvin y Fahrenheit.

Paso 1.
Análisis del problema:
Leer una temperatura en grados Celsius y convertir al equivalente en grados kelvi y fahrenheit
Que piden? Leer una temperatura en grados Celsius y convertir al equivalente en grados kelvi y fahrenheit
Que me dan? Temperatura en grados celcius
Como lo hago? Para Convertir los grados centigrados a grados Fahrenheit, debemos inicialmente dividir nueve (9) en cinco(5), a este resultado lo multiplicamos por los grados centigrados y posteriormente le sumamos 32; para convertir grados centigrados a grados kelvin, debemos sumar 273 a los grados centigrados conocidos.

Descripción Matematica:

FH=((9/5)C)+32
KV=C+273

Paso 2.
Algoritmo ConversiónGrados
Inicio
1.Conocer el valor de la temperatura en grados centigrados
2.Calcular el resultado de la conversión del valor de temperatura en centigrados a Fahrenheit, dividiendo nuev en cinco y a ese resultado multiplicarle por el valor en grados centigrados y posteriormente sumarle treinta y dos.
3. Calcular el valor de la conversión del valor de temperatura en grados centigrados a kelvin, tomando el valor en grados centigrados y sumarle 273.
4.Mostrar resultados

Terminar

Paso 3.
Definición y declaración de variables:
Entrada : C : Real
Proceso : FH, KV : Real

Paso 4. (Programa en seudo lenguaje)

Algoritmo ConversiónGrados
VAR
C, F, K : Real

Inicio
Escriba “Valor de grados centigrados:”, Lea C
//Aquí se realiza la operación de conversión de grados centigrados a //grados Fahrenheit
FH=((9/5)*C)+32
// Aquí se realiza la operación de conversión de grados centigrados a //grados Kelvin
KV=C+273
//Aquí se muestran los resultados
Escriba “Grados Fahrenheit:”, FH
Escriba “Grados Kelvin:”, KV
Fin

Paso 5.

Prueba de Escritorio

C

FH

KV

35

95

308


domingo, 8 de junio de 2008

LOGICA DE PROGRAMACIÓN

La lógica de programación se centra en los conceptos y técnicas de diseño para la solución de problemas a través de algoritmos computacionales. En esta se aplica la simbolización de las proposiciones en la elaboración de algoritmos y se presentan las técnicas para el análisis de problemas y el diseño de su solución con algoritmos que utilizan estructuras secuénciales y seudo lenguajes para describir su funcionamiento.



CONCEPTOS BASICOS

-PROGRAMA: Es el conjunto de instrucciones ordenadas de forma lógica y secuencial, escritas en un lenguaje de programación de computadores con el fin de resolver un problema o una necesidad especifica.

-LENGUAJE DE PROGRAMACIÓN: Un lenguaje de programación tiene definida una sintaxis y grupo de comandos especiales que lo diferencia de otro.

-SEUDO LENGUAJE: El seudo lenguaje es la representación de la solución algorítmica utilizando una estructura y lenguaje similar de un lenguaje de programación.
Escribir un algoritmo en seudo lenguaje, facilita se trascripción o codificación a un lenguaje especifico de programación.

-DIAGRAMA DE FLUJO DE DATOS: Es una representación gráfica con símbolos propios, que sirven para representar la solución a un problema.

-INSTRUCCIÓN DE ENTRADA DE DATOS: Cuando se requiera la captura o ingreso de datos por parte del usuario, se debe utilizar la orden Lea.

-INSTRUCCIÓN DE SALIDA DE DATOS: Para representar la visualización de mensajes y resultados se utiliza la orden Escriba.

-PRUEBA DE ESCRITORIO: La prueba de escritorio es un recorrido del programa siguiendo el flujo de las instrucciones para comprobar su funcionalidad y fiabilidad.

-TÉCNICA DE PROGRAMCIÓN ESTRUCTURADA: Proporciona estructuras de control que conducen al programador escribir programas más cortos y eficientes. Las estructuras de control que se utilizan son: secuénciales, selectivas o condicionales y repetitivas.

-ESTRUCTURA SECUENCIAL:
Como su nombre lo sugiere, en un estructura secuencial las instrucciones se ejecutan en el mismo orden como están escritas. Una secuencia de instrucciones son pasos sucesivos, uno seguido de otro.

-ALGORITMO: Un algoritmo es la representación de la solución paso a paso, de un problema especifico, conformado por un conjunto de instrucciones o pasos ordenados de forma lógica y secuencial y escrito en lenguaje natural.

Ejemplo: Escriba el algoritmo par preparar una torta.

Algoritmo torta
inicio
1.Buscar el libro de recetas
2.Ubicar la pagina con la receta para preparar la torta
3.Alistar todos los ingredientes necesarios
4.Elegir el molde y untarle mantequilla, luego esparcir polvo royal o maizena.
5.Elaborar la mezcla siguiendo las instrucciones del libro de recetas
6.Vaciar la mezcla en el molde
7.Controlar el tiempo de horneado
8.Apagar el horno, sacar el molde

Fin

-Es importante revisar que hay una secuencia lógica, en el orden en que se escribió cada paso, para la preparación de la torta. La secuencia tiene gran importancia porque indica la prioridad de ejecución de cada paso, cuando se dice secuencia lógica se da a entender la importancia y el orden.

1.PASOS PARA SOLUCIONAR UN PROBLEMA

Para dar solución a un problema se debe tener el enunciado o definición del problema y luego se recomienda aplicar los siguientes pasos:


1.Leer y entender el problema (Análisis del problema)
2.
Escribir con palabras la posible solución (Algoritmo)
3.Definir y declarar variables
4.Codificar el Algoritmo en seudo lenguaje (Estructuras parecidas a las de un lenguaje de programación)
5.Hacer prueba de escritorio para validar y depurar el programa.

1.2 LEER Y ENTENDER EL PROBLEMA

ANALISIS DEL PROBLEMA:
Para analizar se debe leer las veces que sea necesario el enunciado del problema, hasta entenderlo y llegar una síntesis del problema.

La primera habilidad que se debe desarrollar o reforzar es la de entender el enunciado del problema. Un problema esta entendido cuando se tiene claridad respecto a lo que se esta pidiendo resolver, l proceso a emplear para obtener lo requerido y a la forma de presentación de los resultados.

Leer con detenimiento facilita obtener una idea general de lo que se necesita. Entender se constituye en una forma de descomponer el problema, en pequeñas partes, para lograr una mejor definición de la solución. En el enunciado del problema se debe identificar:

-Los datos de entrada
-Los datos de salida
-Procedimientos o Cálculos
-
Información requerida


COMO ENTENDER EL PROBLEMA?Para entender el problema de una forma mas fácil, nos apoyaremos en preguntas. Se deben plantear preguntas que ayuden a identificar dentro del enunciado:

Qué se quiere obtener con el programa?
Qué se tiene o Qué datos me dan? (Datos necesarios para llegar a resultados)
Cómo lo hago? Qué calculos se deben realizar?, cómo realizar calculos y en donde se necesitan?Qué proposiciones debo evaluar?


Plantear preguntas nos cuestiona y nos conduce a lograr respuestas sobre lo que se pide solucionar.

Qué se quiere obtener con el programa?

Revise en el enunciado cual es el problema a resolver, esto generalmente obedece a la información que se quiere como resultado.

Qué datos me dan?

Dentro del enunciado del problema se debe buscar que datos de entrada se proporcionan para obtener lo que se pide en el problema.

Cómo lo hago?

La respuesta a esta pregunta indica la forma en que se puede dar solución al problema. Se definen los tipos de operaciones a realizar. Estas operaciones son aritméticas y lógicas.

EJEMPLO: En una compra venta de café se requiere de un algoritmo para liquidar el valor a pagar por la compra de café. Por cada cliente se solicita la cantidad de bultos, la variedad y el valor a pagar por bulto según la variedad.

ANALISIS DEL PROBLEMA: Liquidar el valor de compra de bultos de café de acuerdo al valor por variedad.
QUE ME PIDEN: Valor de la compra de bultos de café.
QUE ME DAN: Tres datos de entrada: Cantidad de bultos, variedad de café, valor por bulto de café.
COMO LO HAGO: Multiplicando el valor del bulto de café por la cantidad de bultos.
Expresado de otra forma:
valor_compra=Can_bultos * valor_bulto

Algoritmo CAFÉ
inicio
1.
Conocer Nombre variedad de café
2.Conocer cantidad de bultos
3.Conocer valor por bulto
4.Calcular el valor a pagar multiplicando la cantidad de bultos por el valor del bulto de café
5.Mostrar resultados

Fin

DEFINICIÓN Y DECLARACIÓN DE VARIABLES:
Entrada: Variedad :Carácter
Can_bultos :Entero
Valor_bulto :Real
Proceso: Val_compra :Real

Algoritmo CAFÉ
VAR Variedad : Carácter
Can_bultos :Entero
Val_compra, Valor_bulto: Real
inicio

Escriba “variedad de café: 1 Colombia, 2 Arábigo, 3 caturra” lea variedad
Escriba “Cantidad de bultos” lea can_bultos
Escriba “Valor por bulto” lea valor_bulto
\\Aqui inicia el proceso de cálculo del valor a pagar por la compra
Val_compra = Can_bultos * Valor_bulto
Escriba “valor de la compra:”, Val_compra

Fin

ESTRUCTURA SELECTIVA

Cuando la solución de un problema requiere evaluar una o más condiciones lógicas para decidir de acuerdo con el resultado de la evaluación, verdadero o falso, si ciertas acciones deben ejecutarse o no; se enfrenta a un problema que necesita un algoritmo de solución a implementarse con una estructura selectiva.

ESTRUCTURA SELECTIVA SIMPLE

Esta estructura esta compuesta de una proposición que es evaluada y si el resultado de la evaluación es verdadero, entonces ejecuta la acción o acciones indicadas por la palabra Entonces y si es falso, no se ejecuta ninguna acción.

ESTRUCTURA SELECTIVA ALTERNA

Esta estructura está compuesta de una proposición que es evaluad y si el resultado de la evaluación es verdadero, entonces ejecuta la acción o acciones indicadas por la palabra Entonces y si el resultado es Falso, ejecuta las acciones indicadas por las palabras o frases ( Sino, Falso, De lo contrario, De otra forma).

Es una estructura diseñada con acciones por el lado Verdadero o Falso. Las cláusulas Entonces y Sino don excluyentes. Si se ejecutan las acciones enmarcadas por la palabra Entonces no se ejecutarán las acciones enmarcadas por la palabra Sino.

Ejemplo:
Una comercializadora de frutas, vende únicamente dos clases de frutas: Peras y Manzanas, el kilo de Pera tiene un valor de $1500 y el de Manzana es de $2500.

Se debe diseñar un algoritmo que permita calcular el valor a pagar por un cliente, teniendo en cuenta la restricción de que cliente compra Pera o Manzana, pero no ambas simultáneamente. Además debe generar una salida que contenga lo siguiente:

· Articulo comprado
· Valor a pagar
·
Mensaje que diga GRACIAS POR LA COMPRA

Análisis
Qué piden: Calcular el valor a pagar por la compra de un articulo.
Qué me dan: El nombre del articulo a comprar y la cantidad de kilos.
Cómo lo hago: Verificando qué articulo es----
Si es MANZANA entonces VP = CAN * 2500
Si es PERA entonces VP = CAN * 1500

Definición de variables
ENTRADA: ARTI (Articulo requerido por el cliente) :CADENA
CAN (Número de kilos pedidos) :REAL
PROCESO: VP (Valor a pagar):REAL

Algoritmo Compra

Var
ARTI: Cadena
CAN,VP: Real
inicio
1.Escriba “Articulo”
2.Lea ARTI
3.Escriba “Cantidad de bultos”
4.Lea CAN
5.Si ARTI = “PERA” entonces
VP = CAN * 1500
Fin_si
6.Si ARTI = “MANZANA” entonces
VP = CAN * 2500
Fin_si
7.Escriba ARTI
8.Escriba “Valor a pagar”, VP
9.Escriba “GRACIAS POR LA COMPRA”
FIN-PROGRAMA

Se modifica el algoritmo de solución en las instrucciones 5 y 6, las cuales emplean selectivas simples, por una instrucción que utilice una selectiva alterna.

Si ARTI = “PERA” entonces
VP = CAN * 1500
Sino
VP = CAN * 2500
Fin_si

REGLAS DE INFERENCIA LÒGICA

MODUS PONENDO PONENS (PP)

p → q “Si llueve, entonces las calles se mojan” (premisa)
p “Llueve” (premisa)
__________________________________________________

q “Luego, las calles se mojan” (conclusión)

-El condicional o implicación es aquella operación que establece entre dos enunciados una relación de causa-efecto. La regla ‘ponendo ponens’ significa, “afirmando afirmo” y en un condicional establece, que si el antecedente (primer término, en este caso p) se afirma, necesariamente se afirma el consecuente (segundo término, en este caso q).


MODUS TOLLENDO TOLLENS (TT)

‘Tollendo tollens’ significa “negando, niego”, y se refiere a una propiedad inversa de los condicionales, a los que nos referíamos en primer lugar.

p → q “Si llueve, entonces las calles se mojan”
¬q “Las calles no se mojan”
__________________________________________________

¬p “Luego, no llueve”

Si de un condicional, aparece como premisa el consecuente negado (el efecto), eso nos conduce a negar el antecedente (la causa), puesto que si un efecto no se da, su causa no ha podido darse.

Esto nos permite formular una regla combinada de las ambas anteriores, consecuencia ambas de una misma propiedad de la implicación; la regla ponendo ponens sólo nos permite afirmar si está afirmado el antecedente (el primer término de la implicación), y la regla tollendo tollens sólo nos permite negar a partir del consecuente (segundo término de la implicación); ambas consecuencias se derivan de que la implicación es una flecha que apunta en un único sentido, lo que hace que sólo se pueda afirmar a partir del antecedente y negar sólo a partir del consecuente.


DOBLE NEGACIÓN (DN)

¬¬p ↔ p

El esquema representa, “p doblemente negada equivale a p”. Siguiendo el esquema de una inferencia por pasos, la representaríamos así:

¬¬p “No ocurre que Ana no es una estudiante”
_____________________________________________________

p “Ana es una estudiante”

La regla ‘doble negación’, simplemente establece que si un enunciado está doblemente negado, equivaldría al enunciado afirmado.

ADJUNCIÓN Y SIMPLIFICACIÓN

Adjunción (A): Si disponemos de dos enunciados afirmados como dos premisas separadas, mediante la adjunción, podemos unirlos en una sola premisa utilizando el operador Λ (conjunción).

p “Juan es cocinero”

q “Pedro es policía”
___________________________________

p Λ q “Juan es cocinero y Pedro es policía”

Simplificación (S): obviamente, es la operación inversa. Si disponemos de un enunciado formado por dos miembros unidos por una conjunción, podemos hacer de los dos miembros dos enunciados afirmados por separado.

p Λ q “Tengo una manzana y tengo una pera”
___________________________________________

p “Tengo una manzana”

q “Tengo una pera”

MODUS TOLLENDO PONENS (TP)

La disyunción, que se simboliza con el operador V, representa una elección entre dos enunciados. Ahora bien, en esa elección, forma parte de las posibilidades escoger ambos enunciados, es decir, la verdad de ambos enunciados no es incompatible, si bien, ambos no pueden ser falsos.

A partir de lo anterior, se deduce la siguiente regla, denominada tollendo ponens (negando afirmo): si uno de los miembros de una disyunción es negado, el otro miembro queda automáticamente afirmado, ya que uno de los términos de la elección ha sido descartado.

p V q “He ido al cine o me he ido de compras”

¬q “No he ido de compras”
__________________________________________________________

p “Por tanto, he ido al cine”


SILOGISMO HIPOTÉTICO (SH)

Dados dos implicaciones, de las cuales, el antecedente de la una sea el consecuente de la otra (el mismo enunciado), podemos construir una nueva implicación cuyo antecedente sea el de aquella implicación cuya consecuencia sea el antecedente de la otra implicación, y cuyo consecuente sea el de ésta última, cuyo antecedente era consecuencia del primero.
Expresado de otro modo, si una causa se sigue una consecuencia, y ésta consecuencia es a su vez causa de una segunda consecuencia, se puede decir que esa primera causa es causa de esa segunda consecuencia, del mismo modo que, si una bola de billar roja golpea a otra bola blanca que a su vez golpea a una bola negra, la bola roja es causa del movimiento de la bola negra. Expresado en forma de inferencia lógica:

p → q “Si la bola roja golpea a la bola blanca, la bola blanca se mueve”

q → r “Si la bola blanca golpea a la bola negra, la bola negra se mueve”
______________________________________________________________________

p → r “Si la bola roja golpea a la bola blanca, la bola negra se mueve”

LEYES DE MORGAN (DM)
Esta ley permite transformar una disyunción en una conjunción, y viceversa, es decir, una conjunción en una disyunción. Cuando se pasa de una a otra, se cambian los valores de afirmación y negación de los términos de la disyunción/conjunción así como de la propia operación en conjunto, como podemos observar aquí:

p Λ q p V q
___________ ____________

¬(¬p V ¬q) ¬(¬p Λ ¬q)

sábado, 7 de junio de 2008

LOGICA PROPOSICIONAL

La lògica es una habilidad innata e intuitiva en el ser humano, debemos conocer los elementos conceptuales para comprender las estructuras de las proposiciones que empleamos diariamente, la forma de simbolizarlas y las reglas que rigen a cada tipo de proposiciòn con el fin de evaluar si es verdadera o falsa.


PROPOSICIONES
Una proposiciòn es un enunciado que tiene un valor de verdadero o falso segùn el criterio empleado para evaluar las proposiciones se clasifican de acuerdo al numero de expresiones que involucren en atomicas o simples y moleculares o compuestas.

-Una proposiciòn simple o atomica esta compuesta de una sola expresiòn que no utiliza terminos de enlace como: y, o, no y si...entonces, esta Consta de una sola proposición, no se puede descomponer más.

-Una proposiciòn compuesta o molecular esta formada por dos o más proposiciones, que constan de varios enunciados atómicos, que se pueden descomponer., esta puede contener varias proposiciones atòmicas, ya que esta unida por medio de conectores logicos.

-Una proposición se puede definir como un enunciado que al evaluarse puede tener uno de dos valores v o f, ya que se esta evaluando en términos lógicos; al analizar y evaluar sus premisas solo se puede tener uno de dos valores, verdadero (1) o falso (0).

- Los enlaces que se puede utilizar en una proposición, son conocidos como conectores lógicos y
ayudan a unir dos o mas proposiciones y de esta manera podemos analizarlas y darles un sentido.
Los conectores lógicos son:
-Conjunción “ ^ ” y se lee “y”;
-Disyunción “ v ” y se lee “o”;
-Condicional “→ “ y se lee “si…entonces…”;
-
Bicondicional “ ↔ “ y se lee “…si y solo si…”

* Si al evaluar una formula lógica y todos los valores siempre son verdaderos, decimos que dicha formula es una tautología y si al estudiar una formula lógica el resultado de esta es siempre falso, decimos que es una contradicción y si una proposición no es una tautología ni una contradicción, es decir que contiene al menos un valor V y otro F es una contingencia.