http://www.crunchzilla.com/code-maven
QUE ES LOGICA ?
Lógica es una ciencia formal que estudia la estructura o formas del pensamiento humano (como proposiciones, conceptos y razonamientos) para establecer leyes y principios válidos para obtener criterios de verdad. Como adjetivo, 'lógico' o 'lógica' significa que algo sigue las reglas de la lógica y de la razón. Indica también una consecuencia esperable natural o normal. Se utilizar también para referirse al llamado 'sentido común'.


PROPOSICIONES
es todo aquello de lo que se puede decir que es verdad o falso ,las proposiciones se nombran con letras minúsculas : p , q , r , s . etc : a , b ,c , d
si una proposición es verdadera , su negación es falsa y viceversa
p: la sangre es roja: V ------ -p: la sangre no es roja :F
p: el cielo es azul: V
q: el mar es cafe : F
a: la tierra es color plata: F
r: yo no soy un conejo : V -r: yo soy un conejo : F
-r no es cierto que yo no soy un conejo : F
TABLAS DE VERDAD O LOGICA BOOLEANA
Conjunción (y) símbolo ^
proposición q: Las semana tiene siete días:
Puede ser verdadero o falso
Las proposiciones p: la semana tiene siete días y q: el año tiene 13 meses
tiene las siguientes combinaciones:
p
|
q
|
p^q
|
v
|
v
|
v
|
v
|
f
|
f
|
f
|
v
|
f
|
f
|
f
|
f
|
Disyunción (o) símbolo v
en este se abarca todas las posibilidades que entre en los conjuntos menos f v f = f
p
|
q
|
pvq
|
v
|
v
|
v
|
v
|
f
|
v
|
f
|
v
|
v
|
f
|
f
|
f
|
Condicional: Si p… entonces q
p ganar el año q recibir un carro
p
|
q
|
p→ q
|
v
|
v
|
v
|
v
|
f
|
f
|
f
|
v
|
v
|
f
|
f
|
v
|
Nuestro primer algoritmo
Algunas palabras claves:
Pseudocódigo : falso lenguaje es una descripcion de alto nivel conmpata e informal
Variable : un dato que cambia
Constante : un dato que no cambia
instrucción o sentencia
condición
ciclos (estructuras repetitivas)
Diagramas de flujo
INICIO
Si ORLANDO SACA BILLETERA entonces ( condicional simple )
Haga Aplaudir
Sino
Haga Silbar ( condicional doble )
FIN
INICIO
Mientras ORLANDO TIENE ARRIBA LA BILLETERA
Haga Aplaudir
FIN
Condicional simple
Dados dos números decir cuál es el mayor
ejemplo número 1: 5 y número 2: 10
ejemplo número 1: 10 y número 2: 9
Condicional doble
Dados dos números decir cuál es el mayor y cuál es el menor
Condicional anidado
Dado un número
Condicional simple:
Decir si el número es positivo
Inicio
Condicional doble
Decir si es positivo o negativo
Anidado
decir si es positivo, negativo o igual a cero
Inicio
variable número
Escriba “Ingrese un número cualquiera”
Lea número
Si número >0 entonces
Escriba: “El número”, número, “es positivo”
Sino
Si número <0 entonces
Escriba: “El número”, número, “es negativo”
Sino
Escriba: “El número”, número, “ es igual a 0”
Fin si
Fin si
Fin
Algoritmo
es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia
TRABAJANDO EN LPP

real ( se asigna primero la variable ) lado,area
inicio
escriba ( se utiliza para mostrar algo en pantalla ) "ingrese el valor del lado del cuadrado"
lea ( la instruccion que se le da al computador para que almacene en una variable la informacion que sera ingresada ) lado
area<-lado*lado
escriba (se utiliza para mostrar algo en pantalla) "el area del cuadradoes:"
fin
existen dos tipos de errores , uno de ellos es el error de tipo lógico y hay errores de sintaxis ( en ves de multiplicar se sume )
real lado, area
inicio
escriba "escriba el valor del lado del cuadrado cuya area desea calcular: "
lea lado
area <- lado*lado
escriba "el area del cuadrado de lado : " , lado , "es: " , area
fin
segundo ejercicio
real base, altura, area
inicio
escriba "escriba la base del triangulo cuya area desea calcular: "
lea base
escriba "escriba la altura del triangulo cuya area desea calcular: "
lea altura
area <- base*altura/2
escriba "el area del triangulo de base : " , base , " y altura " , altura , " es : " , area
fin
tercero
entero entero1 , entero2 , suma
inicio
escriba "escriba un numero entero para suma : "
lea entero1
escriba "escriba un numero entero para suma: "
lea entero2
suma <- entero1+entero2
escriba "la suma de los enteros es : " ,suma
fin
cuarto
entero entero1 , entero2 , entero3 , suma , resta
inicio
escriba "escriba el primer numero entero para la suma : "
lea entero1
escriba "escriba el segundo numero entero para la suma: "
lea entero2
escriba "escriba el tercer numero entero para la resta: "
lea entero3
suma <- entero1+entero2
resta<-suma-entero3
escriba "el resultado total es : " ,resta
fin
quinto
entero entero1 , entero2 , suma , resta , multiplicacion
real division
inicio
escriba "escriba el primer numero entero para la suma : "
lea entero1
escriba "escriba el segundo numero entero para la suma: "
lea entero2
suma <-entero1+entero2
resta<-entero1-entero2
division<-entero1/entero2
multiplicacion<-entero1*entero2
escriba "el resultado de la suma es : " , suma
llamar nueva_linea ( crea un salto o un espacio entre lineas )
escriba "el resultado de la resta es : " , resta
llamar nueva_linea
escriba "el resultado de la mulplicacion es : " , multiplicacion
llamar nueva_linea
escriba "el resultado division de la es : " , division
fin
ESTRUCTURA CONDICIONAL
ESTRUCTURA CONDICIONAL ANIDAD
CONDICIONAL SI
entero numero
inicio
escriba " escriba el numero entero: "
lea numero
si numero > 0 entonces
escriba " el numero es positivo: "
fin si
fin
CONDICIONAL SINO
entero numero
inicio
escriba " escriba el numero entero : "
lea numero
si numero > 0 entonces
escriba " el numero es positivo "
sino
escriba " el numero es negatico "
fin si
fin
CONDICIONAL ANIDADO
entero numero
inicio
escriba " ingrese un numero entero "
lea numero
si numero>0 entonces
escriba " el numero es positivio "
sino
si numero<0 entonces
escriba " el numero es negativo "
sino
escriba " el numero es cero "
fin si
fin si
fin

real n1,n2,n3,nf
inicio
escriba " ingrese nota 1 : "
lea n1
escriba " ingrese nota 2 : "
lea n2
escriba " ingrese nota 3 : "
lea n3
nf<-(n1+n2+n3)/3
escriba " si nota fina es : " , nf
si nf>3.0 entonces
llamar nueva_linea
escriba " aprobada "
fin si
FIN
real n1,n2,n3,nf
inicio
escriba " ingrese nota 1 : "
lea n1
escriba " ingrese nota 2 : "
lea n2
escriba " ingrese nota 3 : "
lea n3
nf<-(n1+n2+n3)/3
si nf>=3.0 entonces
llamar nueva_linea
escriba " eres un maldito genio "
sino
si ( nf<=1.9)entonces
escriba " bestia " , nf
sino
escriba " burro chiquito ",nf
fin si
fin si
Fin
lo mas importante de los procesos de programacion es saber separa los datos de entrada que en este caso serian los datos numericos , proceso que es todo el proceso que se debe de llevar para que de el resultado normal y el de salida que es el mensaje final un ejemplo
dato de entrada ( entero )
1+1 pedimos que los datos numericos son los numeros en este caso los unos
proceso
el proceso en si seria la suma
dato de salida
y el dato de salida el resultado que en este caso seria un 2
ACTIVIDAD
realice un algoritmo que calcule una factura para cuatro productos si esos productos suman mas de 10.000 pesos hacerle un descuento del 20% de lo contrario hacer un descuento del 10%
entregar analicéis del problema , datos de entrada , datos de salida , procesos , variables y codigo en lpp , mas el archivo funcionando
real p1,p2,p3,p4,total,descuento,finalfactura
inicio
escriba " el valor del producto 1 "
lea p1
escriba " el valor del producto 2 "
lea p2
escriba " el valor del producto 3 "
lea p3
escriba " el valor del producto 4 "
lea p4
total<-p1+p2+p3+p4
si total<=10000 entonces
descuento<-total*0.10
finalfactura<-total-descuento
llamar nueva_linea
escriba " su factura es: " , total , " tiene un descuento del 10% valor final : ", finalfactura
sino
descuento<-total*0.20
finalfactura<-total-descuento
escriba " su factura es: " , total , " tiene un descuento del 20%:valor final ", finalfactura
fin si
fin
esta es la imagen del 20%
ESTRUCTURA CONDICIONAL ANIDAD
CONDICIONAL SI
entero numero
inicio
escriba " escriba el numero entero: "
lea numero
si numero > 0 entonces
escriba " el numero es positivo: "
fin si
fin
CONDICIONAL SINO
entero numero
inicio
escriba " escriba el numero entero : "
lea numero
si numero > 0 entonces
escriba " el numero es positivo "
sino
escriba " el numero es negatico "
fin si
fin
CONDICIONAL ANIDADO
entero numero
inicio
escriba " ingrese un numero entero "
lea numero
si numero>0 entonces
escriba " el numero es positivio "
sino
si numero<0 entonces
escriba " el numero es negativo "
sino
escriba " el numero es cero "
fin si
fin si
fin

real n1,n2,n3,nf
inicio
escriba " ingrese nota 1 : "
lea n1
escriba " ingrese nota 2 : "
lea n2
escriba " ingrese nota 3 : "
lea n3
nf<-(n1+n2+n3)/3
escriba " si nota fina es : " , nf
si nf>3.0 entonces
llamar nueva_linea
escriba " aprobada "
fin si
FIN
real n1,n2,n3,nf
inicio
escriba " ingrese nota 1 : "
lea n1
escriba " ingrese nota 2 : "
lea n2
escriba " ingrese nota 3 : "
lea n3
nf<-(n1+n2+n3)/3
si nf>=3.0 entonces
llamar nueva_linea
escriba " eres un maldito genio "
sino
si ( nf<=1.9)entonces
escriba " bestia " , nf
sino
escriba " burro chiquito ",nf
fin si
fin si
Fin
lo mas importante de los procesos de programacion es saber separa los datos de entrada que en este caso serian los datos numericos , proceso que es todo el proceso que se debe de llevar para que de el resultado normal y el de salida que es el mensaje final un ejemplo
dato de entrada ( entero )
1+1 pedimos que los datos numericos son los numeros en este caso los unos
proceso
el proceso en si seria la suma
dato de salida
y el dato de salida el resultado que en este caso seria un 2
ACTIVIDAD
realice un algoritmo que calcule una factura para cuatro productos si esos productos suman mas de 10.000 pesos hacerle un descuento del 20% de lo contrario hacer un descuento del 10%
entregar analicéis del problema , datos de entrada , datos de salida , procesos , variables y codigo en lpp , mas el archivo funcionando
real p1,p2,p3,p4,total,descuento,finalfactura
inicio
escriba " el valor del producto 1 "
lea p1
escriba " el valor del producto 2 "
lea p2
escriba " el valor del producto 3 "
lea p3
escriba " el valor del producto 4 "
lea p4
total<-p1+p2+p3+p4
si total<=10000 entonces
descuento<-total*0.10
finalfactura<-total-descuento
llamar nueva_linea
escriba " su factura es: " , total , " tiene un descuento del 10% valor final : ", finalfactura
sino
descuento<-total*0.20
finalfactura<-total-descuento
escriba " su factura es: " , total , " tiene un descuento del 20%:valor final ", finalfactura
fin si
fin
esta es la imagen del 20%

esta es la imagen del 10%

ACTIVIDAD
realice un algoritmo que sume la edad de cuatro personas y me de el promedio de edades.
datos de entrada
edad ,real , edades, suma , contador , promedio
proceso
acumular edades
promediar edades
dato de salida
suma edades
promedio edades
CICLOS O ESTRUCTURAS REPETITIVAS
acumulador : recibe valores y los va sumando con datos previamente recibidos
contado : control de cuantas veces se lleva algo
entero suma,edad,promedio
real promedio
sumar<-0
para contador <-1 hasta 4 haga
escriba "ingrese su edad : "
lea edad
sumar<-sumar+edad
fin para
promedio<-sumar/4
escriba " la suma de edades es : " , sumar
llamar nueva_linea
escriba " el promedio de edades es : " , promedio
fin
entero sumar, edad, contador
real promedio
inicio
sumar<-0
para contador <-1 hasta 4 haga
escriba "ingrese su edad : "
lea edad
sumar<-sumar+edad
fin para
promedio<-sumar/4
escriba " la suma de edades es : " , sumar
llamar nueva_linea
escriba " el promedio de edades es : " , promedio
fin
EJERCICIO COMPLETO SOBRE CICLOS
Primero: problema matemático
#
|
Género
|
Edad
|
Estado civil
|
1
|
Masculino
|
20
|
Casado
|
2
|
Masculino
|
30
|
Separado
|
3
|
Femenino
|
40
|
Separado
|
4
|
Masculino
|
40
|
Separado
|
5
|
Femenino
|
20
|
Separada
|
6
|
Masculino
|
30
|
Viudo
|
Entregar la siguiente información:
Cantidad de personas: 6
Cantidad de hombres:4
Cantidad de mujeres: 2
Promedio edad hombres:30
Promedio edad mujeres:30
Promedio edad total:30
Cantidad casados:1
Cantidad solteros:0
Cantidad de viudos: 1
Cantidad de separados:4
Este problema es de tipo matemático. Si fuese a convertirse en un algoritmo, tener en cuenta lo siguiente:
Realice un algoritmo que, para un grupo de personas, obtenga la información y muestre los resultados que se pedían en el anterior punto.
Preguntas:
Describa en sus palabras cómo realizaría el proceso de recolectar esta información, si usted fuera una persona y si usted fuera un software de computadores que hace programas.
¿Es una estructura secuencial (lineal) o cíclica? Justifique
¿Cuántas veces debe repetirse, en caso de ser un ciclo, el algoritmo?
¿Necesito contadores? ¿Cuáles?
¿Necesito acumuladores? ¿Cuáles?
Datos de entrada:
Datos de entrada
Proceso:
Variablesentero i, n inicio escriba " algoritmo que muestra los numeros pares gasta n " escriba " ingrese el numero de veces que desea que se repita el ciclo ( de 1 as 100 ) " lea n para i <- 2 hasta n haga escriba i i<- i+1 llamar nueva_linea fin para fin
entero i , n inicio escriba " algoritmo que muestra los numeros pares hasta n " escriba " ingrese el numero de veces que desea que se repita el ciclo : ( de 1 as 100 )" lea n para i <- 1 hasta n haga escriba i*(-1) llamar nueva_linea fin para fin
actividad
entero genero , edad , estadoc , i , edadgeneral , contadorh , contadorm , acumuladoredadh , acumuladoredadm , contadorsoltero , contadorcasado , contadordivorciado , contadorviudo real promedioedadgeneral , promedioedadm , promedioedadh inicio contadorh<-0 contadorm<-0 edad<-0 acumuladoredadh<-0 acumuladoredadm<-0 contadorsoltero<-0 contadorcasado<-0 contadordivorciado<-0 contadorviudo<-0 para i <- 1 hasta 6 haga escriba " recoleccion datos persona : " , i llamar nueva_linea escriba " ingrese su genero ( 1 si es hombre 2 si es mujer ) " escriba "ingrese su genero " lea genero si genero = 1 entonces contadorh<-contadorh+1 sino contadorh<-contadorm+1 fin si llamar nueva_linea escriba " ingrese su edad " lea edad edadgeneral<-edadgeneral+edad si genero = 1 entonces acumuladoredadh <-acumuladoredadh +edad sino acumuladoredadh <-acumuladoredadm+edad fin si escriba " ingrese su estado civil ( 1 si es soleteo , 2 si es casado , 3 si es divorciado , 4 si es viudo ) " lea estadoc si estadoc=1 entonces contadorsoltero<-contadorsoltero+1 sino si estadoc=2 entonces contadorcasado<-contadorcasado+1 sino si estadoc=3 entonces contadordivorciado<-contadordivorciado+1 sino contadorviudo<-contadorviudo+1 fin si fin si fin si fin para promedioedadgeneral<-edadgeneral/6 promedioedadm<-acumuladoredadm/contadorm promedioedadh<-acumuladoredadh/contadorh escriba " resultados de del proceso " llamar nueva_linea escriba " la cantidad de hombres : " , contadorh llamar nueva_linea escriba " la cantidad de mujeres : " , contadorm llamar nueva_linea escriba " la cantidad de solteros : " , contadorsoltero llamar nueva_linea escriba " la cantidad de casados : " , contadorcasado llamar nueva_linea escriba " la cantidad de divorciados : " , contadordivorciado llamar nueva_linea escriba " la cantidad de viudos : " , contadorviudo llamar nueva_linea escriba " la edad del promedio general es : " , promedioedadgeneral llamar nueva_linea escriba " la edad del promedio del hombre es : " , promedioedadh llamar nueva_linea escriba " la edad del promedio de la mujer es : " , promedioedadm llamar nueva_linea fin
como hacer la tabla de multiplicar en lpp
entero numero , i , resultado inicio escriba " Digite el numero de la tabla que desea realizar: " lea numero para i<-1 hasta 10 haga llamar nueva_linea resultado <- numero * i escriba i ,"X",numero,"=", resultado fin para fin
- Variable : es una espacio en el sistema de almacenaje y de alguna forma un nombre que simboliza algo , un indicador para un dato , ese dato posee una cantidad de información o también un valor.
- Constante: la constante es dato fijo el cual no cambia durante el momento de ejecutar.
- Error de sintaxis : es un error en la estructura gramatical en el lenguaje de programacion , infrige una instruccion o las reglas de sintaxis
- Error de lógica : cuando en lpp no funciona en algo que no es por la sintaxis o por una mala escritura , hay que buscar que este bien el orden de como se acomodan las estructuras , de esto nos damos cuenta cuando algo no sale como queremos.
- Condicional: ejecuta las lienas o funciones de valores de la condicion
QUE ES MOD
es una forma de división que utilizada en los lenguajes de programación para establecer si un numero dividido por otro tiene residuo o no , división entera o no ? con la opción numero mod 2 se puede averiguar si un numero es para o impar
Consultar el pseudocodigo para
llenar un vector
recorrer vector
mostrar informacion de un vector
arreglo [3] de entero telefono
arreglo [3] de cadena [20] nombre
arreglo [3] de entero edad
entero i
inicio
para i<- 1 hasta 3 haga
escriba " ingrese el numero de telefono en la posicion " , i , " : "
lea telefono [i]
fin para
llamar nueva_linea
para i<- 1 hasta 3 haga
escriba " ingrese el nombre:" , i , " : "
lea nombre [i]
fin para
llamar nueva_linea
para i<- 1 hasta 3 haga
escriba " ingrese la edad:" , i , " : "
lea edad [i]
fin para
llamar nueva_linea
para i<- 1 hasta 3 haga
escriba " su telefono es : " , telefono [i] , " su nombre es : " , nombre [i] , " su edad es . " , edad [i]
fin para
fin
Arreglo[5] de cadena[20] nombre // sea crea un vector de tipo cadena el cual tiene 20 espacios //
Arreglo[5] de real sueldo // sea crea un vector de tipo real el cual permite poner numeros que se sumen//
real impuesto , totalpago // al asignar las variables podemos cambiar los datos a ingresar //
entero I // al aignar la variable entero esta no se debe de cambiar en el proceso pues alterara la sintaxia //
Inicio
para I <- 1 hasta 2 haga
Escriba "Nombre del esclavo [",i,"]..:"
lea nombre[i]
Escriba "pago en monedas de oro ...:"
lea sueldo[i]
fin para
para I <- 1 hasta 2 haga
si sueldo[i]>6 Entonces
sino
fin si
totalpago<-sueldo[i]-impuesto
escriba "Nombre ...:",nombre[i]
llamar nueva_linea
impuesto<-84
impuesto<-0.035*sueldo[i]
Escriba "sus monedad de oro son ...:",sueldo[i]
llamar nueva_linea
Escriba "impuesto ...:",impuesto
llamar nueva_linea
Escriba "Total pagar..:",totalpago , " en monedas de oro "
fin para
fin
No hay comentarios:
Publicar un comentario