Introducci贸n a los algoritmos

1

驴Qu茅 aprender谩s sobre algoritmos y pensamiento l贸gico?

2

La importancia de entrenar tu pensamiento l贸gico

3

驴Qu茅 entiende una computadora?

4

驴Qu茅 es el sistema binario?

5

Metodolog铆a para construir un algoritmo: requerimientos y proceso mental

Tipos de datos y operadores l贸gicos

6

驴Qu茅 son Bits y Bytes?

7

驴Qu茅 son variables, constantes y tipos de datos?

8

Identifica las variables seg煤n los requerimientos de negocio

9

Strings (texto) y concatenaci贸n

10

N煤meros y operaciones matem谩ticas b谩sicas

11

Operaciones matem谩ticas compuestas: par茅ntesis y orden de evaluaci贸n

12

True y false: booleanos y tablas de la verdad

13

Arrays y funciones sobre arrays

14

驴C贸mo dise帽ar algoritmos con diagramas de flujo?

15

Define el tipo de dato seg煤n los requerimientos de negocio

Estructuras de control

16

If y Else: condicionales y comparaciones para proteger tus algoritmos

17

Switch y Case: condicionales en forma de casos

18

Excepciones y errores: Throw y Try Catch

19

驴Qu茅 es un ciclo? While, For y Do While

20

Diagrama de flujo con condicionales

21

Diagrama de flujo con ciclos

22

Tutorial de algoritmos de programaci贸n

23

Dise帽a algoritmos para resolver problemas de tu vida diaria

Encapsula tu c贸digo en funciones

24

驴Qu茅 es una funci贸n?

25

驴C贸mo desarrollar tu l贸gica de programaci贸n?

26

Modularizaci贸n de c贸digo

27

Flujo de funciones para encapsular algoritmos

28

Nomenclaturas de programaci贸n: camelCase, PascalCase, snake_case

29

驴Qu茅 es recursividad? Funciones que se llaman a s铆 mismas

30

Convierte algoritmos con ciclos a funciones recursivas

31

Resolviendo acertijos

Traduce tus algoritmos a lenguajes de programaci贸n

32

Diferencias entre lenguajes de programaci贸n

33

C贸mo escribir c贸digo en cualquier lenguaje de programaci贸n

34

C贸mo programar en JavaScript, Python y PHP

35

Introducci贸n al ejercicio en JavaScript

36

Programando en JavaScript

37

Introducci贸n al ejercicio en Python

38

Programando en Python

39

Introducci贸n al ejercicio en PHP

40

Programando en PHP

41

C贸mo programar en Java y Lenguaje C

42

Introducci贸n al ejercicio en Java

43

Programando en Java

44

Introducci贸n al ejercicio en C

45

Programando en Lenguaje C

46

Traduce diagramas de flujo a c贸digo en lenguajes de programaci贸n

Conclusiones

47

Pr贸ximos pasos para aprender programaci贸n profesionalmente

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

True y false: booleanos y tablas de la verdad

12/47
Recursos

驴Qu茅 son las tablas de verdad y las compuertas l贸gicas?

Estos datos hacen referencia a l贸gica. Nos dar谩n un resultado de verdadero o falso de acuerdo a su valor.

Los usaremos cuando vayamos a crear funciones, condiciones y estemos llevando nuestra l贸gica un escal贸n m谩s arriba, pues son quienes definir谩n si algo est谩 sucediendo o definitivamente no est谩 pasando.

Tablas de verdad: Son las tablas que nos indican el resultado de acuerdo a la conexi贸n que hagamos entre ellas.

Composici贸n

Dado por dos proposiciones en este orden. Son cada uno de los valores que vamos a combinar para que nos den un resultado. El resultado ser谩 lo que la conectiva l贸gica defina entre cada uno de ellos.

Contribuci贸n creada por: Giuseppe Ram铆rez y areyouivan

Aportes 152

Preguntas 19

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Freddy tiene un video hablando sobre las tablas de verdad:
.
https://www.youtube.com/watch?v=Pfyuv5ZnNNw
.
Pero lo m谩s importante es, no tienes que aprenderte todas las tablas de memoria, de hecho, no te sirve de nada apredertelas de memoria, tienes que aprender a c贸mo funcionan para que tu puedas generar tus porpias tablas, esa es la manera en la que realmente puedes sacarle provecho a las tabals de verdad porque, m谩s adelante, empezar谩s a tener comparaciones, de 3, 4, 5 o muchos m谩s valores, comprenderlas es la mejor manera de asegurar que sabes dominarlas 馃槃
.
Les dejo una referencia a estas tablas:
.

馃槄 No me qued贸 muy claro el funcionamiento de las tablas de verdad, pero investigu茅 y encontr茅 otra forma de entenderlo.
.
馃挌 Hice estos apuntes para explicarlo, espero que les pueda servir.
.

Comparto una imagen donde se utilizan las operaciones logicas en sus diferentes lenguajes

La esposa de un experto en l贸gica acaba de dar a luz. El m茅dico inmediatamente le entrega el reci茅n nacido a su padre. La mujer pregunta: 鈥溌縀s un ni帽o o una ni帽a?鈥. Y el padre responde: 鈥淪铆鈥.

隆Si no lo entendiste, no pasa nada, sigue practicando tu l贸gica!

馃挕 Las tablas de verdad nos permiten analizar expresiones matem谩ticas y determinar su valor de verdad, es decir si nuestro razonamiento es v谩lido o no.

Conjunci贸n = Es verdadera solo si ambas son verdaderas, y es falsa cuando al menos uno de los valores es falso
Disyunci贸n inclusiva = Es verdadera cuando por lo menos una es verdadera, de lo contrario, ser谩 falsa
Disyunci贸n exclusiva = Es falsa si ambos componentes son verdaderos o falsos
Condicional = Devuelve falso cuando el primer valor es verdadero y el segundo falso
Bicondicional = Es verdadera cuando ambas proposiciones son verdaderas o ambas falsas

mirando este video resolveran cualquier duda

https://twitter.com/i/status/1188749430020698112

Tambi茅n los operadores l贸gicos tienen un nivel jer谩rquico, donde primero es el NOT (!), despu茅s AND (&&) y finalmente OR (||), obviamente esto puede variar en caso de que haya una expresi贸n en par茅ntesis, porque en ese caso primero ir铆an en par茅ntesis.
Por ejemplo, tenemos una expresi贸n Z = X AND Y OR W donde X = false, Y = true, W = true. (True es 1 y false 0), 驴Cu谩l ser铆a el resultado de Z?, bueno siguiendo nuestro nivel jer谩rquico, la Z ser铆a true. Porque X AND Y es false, pero tenemos el OR que es el que nos cambia el valor a true, y como tenemos que W es true, quedar铆a false OR true que ser铆a true

9. True y false: booleanos y tablas de la verdad

Les comparto las tablas compartidas en clase en una sola imagen 馃槂.

Si quieren practicar y profundizar en este tema busquen algebra booleana y les saldr谩 muchos ejercicios.

Aqu铆 una peque帽a tabla con resumen de lo visto anteriormente.

Nota

El tama帽o de las filas viene condicionado por el numero de preposiciones. 驴Qu茅 quiere decir esto?
Espec铆ficamente la formula es #De preposiciones ^ 2

Ejemplo 1:

Si tenemos una tabla con dos preposiciones lo correcto es que
#De preposiciones = 2
2 ^ 2 = 4
Resultado = Filas a tener serian 4

Ejemplo 2:

Si tenemos una tabla con tres preposiciones lo correcto es que
#De preposiciones = 3
2 ^ 3 = 8
Resultado = Filas a tener serian 8

A medida que tengamos mas preposiciones la tabla ser谩 mucho mas compleja.

True y false: booleanos y tablas de la verdad

Estos datos hacen referencia a l贸gica. Nos dar谩n un resultado de verdaderoo falsode acuerdo a su valor.

Los usaremos cuando vayamos a crear funciones, condiciones y estemos llevando nuestra l贸gica un escal贸n mas arriba, pues son quienes definir谩n si algo esta sucediendo o definitivamente no esta pasando.

Tablas de verdad: Son las tablas que nos indican el resultado de acuerdo a la conexi贸n que hagamos entre ellas.

Composici贸n

Dado por dos proposiciones en este orden. Son cada uno de los valores que vamos a combinar para que nos den un resultado. El resultado ser谩 lo que la conectiva l贸gica defina entre cada uno de ellos.

Al tratar con operaciones l贸gicas bianarias debemos tener en cuenta que:

  • Una proposici贸n l贸gica simple es un enunciado que puede ser verdadero o falso, pero no ambos a la vez.

  • Las operaciones l贸gicas binarias unen dos proposiciones simples en una proposici贸n compuesta que tambi茅n puede ser verdadera o falsa, pero no ambas.

De modo que las operaciones l贸gicas principales pueden describirse de manera sencilla como sigue.

Conjunci贸n

  • En lenguaje com煤n: p y q.
  • Es verdadera 煤nicamente si p y q son verdaderas simult谩neamente.

Disyunci贸n inclusiva

  • En lenguaje com煤n: p o q.
  • Es verdadera si al menos una proposici贸n constituyente es verdadera.

Disyunci贸n exclusiva

  • En el lenguaje natural: p o q pero no ambos.
  • Es verdadera si uno de los componentes constituyente es verdadero mientras que el otro es falso.

Condicional
Operaci贸n que indica que si se cumple la proposici贸n p entonces se cumple la proposici贸n q.

  • Es falsa 煤nicamente si p es verdadera y q es falsa.
  • En el lenguaje cotidiano: si p entonces q.

Bicondicional
Operaci贸n que indica que la proposici贸n p implica la proposici贸n q y que la proposici贸n q implica la proposici贸n p.

  • La operaci贸n resulta ser verdadera en caso de que ambas proposiciones constituyentes sean simult谩neamente falsas o simult谩nemante verdaderas.

  • En el lenguaje cotidiano: p si y s贸lo si q.

Si se entienden las descripciones anteriores, no suelen ser necesarias las tablas de verdad.

Recorde este video, es muy bueno y es un caso de la vida donde se usan tablas de verdad

https://youtu.be/80uUIEcxbjM

la manera en la que aprend铆 a diferencias las distenciones es de la siguiente manera:

La Exclusiva: es para responder a que no puedes estar en 2 lugares a la vez, la pregunta seria algo como:

驴Estas en tu casa o estas en el parque?

R: Solo una puede ser verdad, porque no puedes estar en los 2 lugares y si no estas en ninguno de los mencionados simplemente no estas, (arroja falso)

Y la inclusiva es para situaciones en donde no genera conflictos l贸gicos que ambas preposiciones sean ciertas como:

驴En este plato hay peras o manzanas?

R: Puede ser uno o otro pero si hay peras y manzanas en el plato puedes decirlo sin quebrar la l贸gica.

Booleanos y tablas de Verdad:
Los valores booleanos solo pueden tomar dos valores verdadero (1) o falso (0)
Operaciones con booleanos

  • Negaci贸n (~) 鈫 Invierte el valor asignado
  • Conjundion (and) 鈫 ser谩 verdad s贸lo cuando ambos valores a los que se aplica son verdad
  • Disyuncion (or) 鈫 ser谩 falsa s贸lo cuando ambos valores a los que se aplica son falsos
  • Disyunci贸n Exclusiva (xor) 鈫 es verdadera si uno de los componentes es verdadero y el otro falso
  • Condicional (then) 鈫 es falso solo si la primera condici贸n es verdadera y la segunda es falsa.
  • Bicondicional (if) 鈫 ser谩 verdadera cuando ambas proposiciones tengan el mismo valor de verdad (verdadero o falso)

despu茅s de ver la clase 10 veces ya voy entendiendo de que van las tablas de la verdad xd

Comparto mis apuntes. Espero sirva de apoyo.
Me base en esta clase y un video hecho por Freddy, que comparti贸 alguien dentro de los aportes (gracias RetaxMaster).

He realizado algunos videos sobre estos temas enfocado a los accionamientos el茅ctricos:

Trivia del d铆a:
Los booleans son suuuuper 煤tiles en programaci贸n de videojuegos. En este campo, existe algo llamado eventos, que son el pan y agua para crear ciertas situaciones en juegos muy usuales (ejemplo, una batalla obligatoria al llegar por primera vez a u 谩rea).

Los eventos dependen mucho de los booleans, pues sirven para hacer que un evento ocurra bajo ciertas circunstancias. Tambi茅n, podemos hacer que un evento altere el valor de un boolean, entre muchas otras cosas.
Son super 煤tiles, y si quieren entrar a dise帽ar juegos tienen que entender como usarlos.

Tablas de verdad

Permiten comparar dos proposiciones y darnos una salida a ra铆z del tipo de conexi贸n que tengan.

Proposici贸n, 驴Qu茅 es? Una expresi贸n que puede ser verdadera o falsa鈥 en programaci贸n, esto se le conoce como tipo de dato boolean.

Pasemos a las tablas鈥

Negaci贸n
Niega una proposici贸n.
Se unen las proposiciones con el s铆mbolo ~
Ejemplo:
鈥淩a煤l, vamos a la playa?鈥 No
鈥淩a煤l, entonces no vamos a la playa? No, no vamos a la playa. La doble negaci贸n anula dicha negaci贸n.

Conjunci贸n.
Solo es verdadero cuando ambas proposiciones son verdaderas.
Se unen las proposiciones con el s铆mbolo ^ que significa AND 鈥測鈥
Por ejemplo, Rosario y Ana van a una fiesta. La frase es verdadera s贸lo si los dos van a la fiesta. No vale que uno solo haya ido o que ninguno fuera, tienen que ir los dos.

Disyunci贸n inclusiva.
Es verdadera cuando por lo menos una proposici贸n es verdadera.
Se unen las proposiciones con el s铆mbolo v que significa OR 鈥渙鈥
Ejemplo, Rosario o Ana van a una fiesta. La frase es verdadera si al menos, alguno de los dos va a la fiesta.

Disyunci贸n exclusiva.
Es falsa si ambas proposiciones son del mismo valor.
Su s铆mbolo es v/ que significa exclusive 鈥渆xclusivo鈥
Ejemplo, Una pareja interracial es aquella donde cada individuo es de diferente etnia, por ejemplo un asi谩tico y un africano. Dos africanos no ser铆an una pareja interracial porque son de la misma etnia.

Condicional.
Devuelve falso cuando el primer valor es verdadero y el segundo falso.
Su s铆mbolo es -> que significa then 鈥渆ntonces鈥
Ejemplo 鈥淪i prop 1 es V y prop 2, entonces el resultado es F鈥

Bicondicional:
Es verdadera si ambas proposiciones son del mismo valor. Lo contrario a la Disyunci贸n exclusiva.
Su s铆mbolo es <-> que significa if o tambi茅n 鈥渟i y s贸lo si鈥
Ejemplo: Si Paco va a la fiesta, Rosario tambi茅n va. Como Paco fue a la fiesta, Rosario tambi茅n fue. Si Rosario fue, se da por entendido que Paco tambi茅n fue. Si Rosario no fue, Paco no fue y si Paco no va Rosario tampoco va.

驴Para qu茅 sirven? Para aplicar condiciones en el c贸digo, entre otras cosas.

Muy buena explicaci贸n la de la profesora, pero tan solo imaginense estar en su lugar diciendo las tabla de verdad. Verdadero, Verdadero, Falso, Verdadero鈥 Un dolor de cabeza馃槄馃槀馃槀

Comparto mi c贸digo del video de Freddy

var cliente = {
    banco: "BBVA",
    cuenta: "451234567890",
    saldo: 5400000,
    verificado: true
}
var destino = {
    banco: "BANAMEX",
    cuenta : "450987654321",
    verificado: true
}

var horasDeTransferencia = 21

var transferecia = 1000000
var costoDeTransaccion = 0;
var saldoTransferencia = cliente.saldo + costoDeTransaccion

//Clientes verificados
if (cliente.verificado && destino.verificado) {
    console.log("Exito en verificaci贸n")
}
else {
    console.log("Error en verificaci贸n")
}

//Saldo mayor al monto a transferir m谩s costo de transacci贸n
if(cliente.saldo > saldoTransferencia) {
    console.log("Transferecia aceptada")
}
else {
    console.log("Error en la transferencia")
}

//Parametros de costo de transacci贸n
if(cliente.banco === destino.banco) {
    costoDeTransaccion = 0
    console.log(`El costo de transferencia es ${costoDeTransaccion}`)
}
else {
    costoDeTransaccion = 100
    console.log(`El costo de transferencia es ${costoDeTransaccion}`)
}

//Horas de transaccci贸n
if(horasDeTransferencia >= 9 && horasDeTransferencia <= 12 || horasDeTransferencia >= 15 && horasDeTransferencia <= 20 ){
    console.log("Hora De Transferencia Aceptada")
}
else {
    console.log("Hora de transferencia no aceptada")
}

Un resumen en texto

- Negaci贸n: son opuestas
	P	~P
	V	 F
	F	 V

- Conjunci贸n: Es verdadera solo si ambas son verdaderas
	P	    Q	  P藙Q
	V  and  V     V
	V  and  F     F
	F  and  V     F
	F  and  F     F 

- Disyunci贸n inclusiva: Es verdadera cuando por lo menos una es verdadera
	P	  Q	P藚Q
	V  or   V     V
	V  or   F     V
	F  or   V     V
	F  or   F     F 
	
- Disyunci贸n exclusiva: Es falsa si ambos son iguales
	P	   Q	 P鈯籕 
	V  xor  V     V
	V  xor  F     F
	F  xor  V     F
	F  xor  F     V 

- Condicional: Solo devuelve falso cuando el primero valor es verdadero y el segundo valor es falso 
	P	    Q	  P->Q 
	V then  V      V
	V then  F      F
	F then  V      V
	F then  F      V 

- Bicondicional: Es verdadera si ambos son iguales
	P	Q	P<->Q 
	V  if  V          V
	V  if  F          F
	F  if  V          F
	F  if  F          V 

Si quieren profundizar mas en el tema de las preposiciones y lenguaje l贸gico les recomiendo este libro

No es queja ni nada peroo鈥 Tremendo trabalenguas cuando le铆a las V y F JAJJAJA

IF otra vez la funcion si del excel, sabia que aprender excel a fondo me hiba a servir incluso mas que access

Yo estoy cursando una ingenieria en sistemas y en el primer semestre nos dieron en gran tama帽o estos temas de las tablas de verdad, al inicio es algo confuso y cuesta memorizarlo y entenderlo. Sin embargo les aconsejo que lo refuercen bien porque estos son MUY, MUY utilies en la programacion, es una de las logicas mas usadas para condiciones y otras cosas en la programacion, Tomense su tiempo aprendiendo las bases porque las bases hacen que los temas avanzados sean faciles de aprender.

Las tablas de verdad me hacen recordar mucho al tema de l贸gica proposicional. Sencillo y divertido.

Espero que la tabla les ayude a interiorizar un poco m谩s en el tema 馃挌

Dato curioso:
No s茅 por qu茅 la disyunci贸n inclusiva me record贸 un poco a las reglas gramaticales del Espa帽ol y la controversia con todes (todxs).
Si masculino = V y femenino = F, entonces esta tabla aplica exactamente igual porque鈥
Si el grupo es 100% masculino, entonces decimos 鈥渢odos鈥. Si es 50% masculino o 50% femenino, seguimos diciendo 鈥渢odos鈥.
Si por 煤ltimo, es 100% femenino, entonces decimos 鈥渢odas鈥.
No s茅鈥 yo aqu铆 observando.

En algunos lenguajes como clojure existe el concepto de truthy, un valor es falso si es false 贸 null de lo contrario es verdadero

https://dzone.com/articles/clojure-truthy-and-falsey

Las tablas de la verdad muy relacionadas con lo binario sirven a la hora de la toma de decisiones en los sistemas.

)馃槮

en este video me qued贸 claro la bicondicional https://youtu.be/Pr95RBB6JSM . Creo que no abordan bien el tema en esta clase porque faltaron ejemplos, no indican cu谩l es el uso pr谩ctico.

que temas mas aburridos

Les dejo un video de Freddy que me ha ayudado .

https://www.youtube.com/watch?v=Pfyuv5ZnNNw&t=2s

Hola, les comparto un aporte que conservo del curso de Matem谩ticas discretas relacionado con las tablas de verdad.

Espero que les sea de provecho

Realmente fue algo complicado entender la clase, pero al mirar el video de Fredy entendy mejor e hice esta 鈥渢abla鈥 comparativa.
No me juzguen la hice en paint 馃槀

Hola comparto un c贸digo que muestra los principios de las tablas en Js, del reto que esta en enlace de YouTube:

var saldoCliente = 1000000;
var cliente = true;
var destino = true;
var costoTransferencia;
var montoTransferencia = 500000;
var bancoCliente = 鈥渂ancolombia鈥;
var bancoDestino = 鈥渂ancolombia鈥;
var horaTransferencia = 8;

if (cliente == true || cliente == false)
{
if (destino == true || cliente == false)
{
if (bancoCliente == bancoDestino)
{
costoTransferencia = 0;
if (saldoCliente >= montoTransferencia + costoTransferencia)
{
document.write(montoTransferencia + costoTransferencia + 鈥</br>鈥);
if ((horaTransferencia >= 9 && horaTransferencia <= 12) || (horaTransferencia>=15 && horaTransferencia<=20))
{
document.write(true);
}
else
{
document.write(false);
}
}
else
{
document.write(鈥淪aldo insuficiente no se puede hacer transacci贸n鈥);
}
}
else
{
costoTransferencia = 100;
if (saldoCliente >= montoTransferencia + costoTransferencia)
{
document.write(montoTransferencia + costoTransferencia + 鈥</br>鈥);
if ((horaTransferencia >= 9 && horaTransferencia <= 12) || (horaTransferencia>=15 && horaTransferencia<=20))
{
document.write(true);
}
else
{
document.write(false);
}
}
else
{
document.write(鈥淪aldo insuficiente no se puede hacer transacci贸n鈥);
}
}

}
else
{
    document.write("Destino no verificado no se puede hacer transacci贸n");
}

}
else
{
document.write(鈥淐liente no verificado no se puede hacer transacci贸n鈥);
}

muy interesante este tema profundisare mas

Las tablas de verdad pueden ser representadas en compuertas l贸gicas, que es b谩sicamente el principio de funcionamiento de los procesadores:

El concepto del condicional l贸gico est谩 m谩s ligado a la teor铆a de conjuntos que a la implicaci贸n l贸gica de un par de eventos. Les comparto un diagrama de Venn acompa帽ado de un ejemplo hipot茅tico, en donde parto del supuesto que Platzi tiene s贸lo 4 estudiantes y se requiere conocer cu谩l de las 4 estudiantes est谩 inscrita en la escuela de Desarrollo Web exclusivamente.
En programaci贸n este concepto se asocia f谩cilmente a las instrucciones de control como el 鈥渋f 鈥 else鈥 y para el manejo de base de datos tambi茅n es un concepto bastante 煤til.

Personalmente es un tema que no comprend铆a, pero entre los comentarios de los compa帽eros y la analog铆a de ejemplos que han dado por fin veo la luz en este.



Estos son temas que depronto uno en la universidad o escuela deja pasar pero realmente son de mucha importacion y te ayudan mucho al momento de hacer codigo.

Excelente clase

![](

La tabla de verdad Bicondicional me hace recordar mucho al operador l贸gico 鈥淚gual que鈥 (==).

Si las dos proposiciones son iguales, resulta true, si son diferentes, resulta false.

p1 = False
p2 = False

if (p1 == p2):
	print("Es true")
else: 
	print("Es false")

En este caso imprimir谩: 鈥淓s true鈥

Algo que ayuda para comprender m谩s las tablas de verdad es relacionarlo con ejemplos de la vida real.

Platzi es lo maximo ( True )  Y (conjunci贸n) Este Curso Es genial(True)? 
= True

Un tema interesante a revisar m谩s a fondo.

Negacion: Sera opuesto al que se recibe.

V --> F
F -->V

Conjuci贸n: Sera verdadera almenos que exista un valor falso.

V & V --> V
V & F --> F
F & V --> F
F & F --> F

Disyunci贸n inclusiva: Sera verdadera siempre que exista un valor verdadero.

V Or V --> V
V Or F --> V
F Or V --> V
F Or F --> F

Disyunci贸n exclusiva: Sera verdadera siempre que los valores sean diferentes

V xOr V --> F
V xOr F --> V
F xOr V --> V
F xOr F --> F

Condicional: Sera falso cuando y solo cuando el primer valor sea verdaderoy el segundo falso

V then V --> V
V then F --> F
F then V --> V
F then F --> V

Bicondicional: Sera verdadero cuandos los valores sean iguales

V if V --> V
V if F --> F
F if V --> F
F if F --> V

A continuaci贸n les dejo una tabla de verdad que me ayud贸 mucho a entender los conectivos l贸gicos :3

Estos temas son muy entretenidos, los ves en el primer semestre de matem谩ticas en l贸gica, obvio con m谩s profundidad, pero siempre es bueno volver a recordar todo y entrenar la l贸gica.

Tienes que estar atento a eso, porque a estas condiciones, or, and, then, xor, etc, son tambien, calculo.
or es una suma:

Decir
true or true = true
es lo mismo que decir

1 or 1 = 1
1 + 1 = 1

Aca estamos viendo si hay o no hay electricidad, si hay, perfecto, si no, no hay, no estamos calculando si hay mucho o poquito)

true or false
1 or 0 Son iguales a 1
1 + o

El AND funciona como una multiplicacion

true x true = true 1 x 1 = 1
true x false = false 1 x 0 = 0
false x true = false 0 x 1 = 0
false x false = false 0 x 0 =0

隆Hola!
La condicional es conocida en l贸gica como implicaci贸n y quiere decir que p implica q, es decir, que q es la consecuencia l贸gica de p:
Por ejemplo:
Si prendo un fuego entonces habr谩 humo .
Tabla de verdad
prendo un fuego || habr谩 humo || p->q
v || v || v (prend铆 fuego, hay humo)
v || f || f (como prend铆 fuego deber铆a haber humo)
f || v || v (si hay humo es porque debi贸 haber combusti贸n)
f || f || v (no prend铆 fuego, entonces no hay humo)


Ya en lo que nos corresponde, podemos programar este comportamiento mediante los condicionales de los lenguajes de programaci贸n:
Por ejemplo:

function fuego()
{
	if (fuegoPrendido == true){
	producirHumo()
	}
	else{ //(fuegoPrendido == false)
	noProducirHumo()
	}
}

Esta es la soluci贸n al reto propuesto en el video de Freddy sobre Tablas de Verdad.

                    banco_cliente = "Bancolombia";
                    cuenta_cliente = true;
                    saldo_cliente = 1000100;

                    banco_destino = "Bancolombia";
                    cuenta_destino = true;
                    hora_transferencia = 20;

                    document.write("Banco cliente: <b>" + banco_cliente + "</b><br>");
                    document.write("Cuenta cliente: <b>" + cuenta_cliente + "</b><br>");
                    document.write("Saldo cliente: <b>" + saldo_cliente + "</b><br>");
                    document.write("Banco destino: <b>" + banco_destino + "</b><br>");
                    document.write("Cuenta destino: <b>" + cuenta_destino + "</b><br>");
                    document.write("Hora de transferencia: <b>" + hora_transferencia + "</b><br><br>");
                    document.write("Transferir (USD): <b>1000000</b> <br><br><br>");
                    document.write("<b>----------------- // -----------------</b> <br><br>");

                    if(hora_transferencia >= 9 && hora_transferencia <= 12 || hora_transferencia >= 15 && hora_transferencia <= 20) {
                        if(cuenta_cliente) {
                            if(cuenta_destino) {
                                if(banco_cliente == banco_destino) {
                                    if(saldo_cliente >= 1000000) {
                                        document.write("Transacci贸n Exitosa de <b>1000000</b>!!!<br>");
                                        document.write("Su nuevo saldo es: <b>" + (saldo_cliente - 1000000) + "</b>");
                                    }
                                    else {
                                        document.write("Saldo induficiente!!!")
                                    }
                                }
                                else {
                                    document.write("Bancos diferentes!!!<br>");
                                    if(saldo_cliente < 1000100) {
                                        document.write("Su saldo debe ser m铆nimo <b>1000100</b><br>");
                                    }
                                    else {
                                        document.write("Transacci贸n Exitosa de <b>1000100</b>!!!<br>");
                                        document.write("Su nuevo saldo es: <b>" + (saldo_cliente - 1000100) + "</b>");
                                    }
                                }
                            }
                            else {
                                document.write("Cuenta destino incorrecta!!!<br>");
                            }
                        }
                        else {
                            document.write("Cuenta de cliente incorrecta!!!<br>");
                        }
                    }
                    else {
                        document.write("En este horario no se permiten transacciones.");
                    }

                    document.write("<br><br><br><b>----------------- // -----------------</b> <br><br>");

                    if((hora_transferencia >= 9 && hora_transferencia <= 12 || hora_transferencia >= 15 && hora_transferencia <= 20) && (cuenta_cliente && cuenta_destino) && ((banco_cliente == banco_destino && saldo_cliente >= 1000000) || (banco_cliente != banco_destino && saldo_cliente >= 1000100))) {
                        document.write("Transacci贸n exitosa!!!");
                    }
                    else {
                        document.write("No se puede realizar la transacci贸n!!!");
                    }

Yo a帽adir铆a que una tabla de verdad muestra todos los posibles casos de verdad, cada rengl贸n es un caso. Por ejemplo para hacer una tabla de verdad con m谩s de 2 proposiciones primero tienes que calcular el numero de renglones eso lo haces elevando 2 por el numero de proposiciones; despu茅s lo que yo hago es sacar los valores individuales de cada proposici贸n; y luego simplemente voy calculando los valores de verdad.
Por ejemplo:

  • La siguiente expresi贸n (p鈫抭)^r鈫抮 tiene tres variables proposicionales p, q, r por lo que hacemos 2 elevado al cubo, de modo que tenemos que hacer 8 renglones.

  • Lo siguiente es sacar los valores individuales:

  • finalmente calculas los valores de verdad de la expresi贸n. Sobre la jerarqu铆a, primero haces lo de los par茅ntesis, luego la conjunci贸n y al final la la condicional o implicaci贸n.

tablas de verdad

conjunci贸n
p and q p^q
v and v v
v and f f
f and v f
f and f f

disyunci贸n inclusiva
es verdadero mientras una de las dos proposiciones sea verdadera

disyunci贸n exclusiva
es falsa si ambos componentes es verdadero o falso caso contrario verdadero

Les recomiendo el juego para Android y iOS llamado "Make it true" donde jugando te explican el NOT, XOR, AND, OR y m谩s. Es s煤per entretenido y lo recomiendo mucho.

Los datos logicos hacen referencia a l贸gica y pueden contener 煤nicamente dos estados True y False.
Las tablas de verdad nos permiten conocer el resultado de una operaci贸n con los datos l贸gicos o proposiciones, estas operaciones pueden ser:
- Negaci贸n (~): Obtenemos el estado opuesto del dato l贸gico.
- Conjunci贸n (^): Es verdadero cuando ambas proposiciones son verdaderas de lo contrario es falso.
- Disyunci贸n (v): Es falso cuando ambas proposiciones son falsas de lo contrario es verdadero.
- Exclusiva (v): Es verdadero cuando ambas proposiciones tienen estados diferentes de lo contrario es falso.
- Condicional (->): Devuelve falso cuando el primer valor es verdadero y el segundo es falso de lo contrario es verdadero.
- Bicondicional (<->): Es verdadera cuando ambas proposiciones son verdaderas o falsas de lo contrario es Falso.

By Ssimor

Creo que las tablas y lo que dice aveces no coincide 馃檴

super

True y False

Hasta recien pense que era un curso muy b谩scio. no para de sorprenderme platzi . cada dia mas feliz de saber que estoy en el lugar correcto!

Quiero compartirles este video que me ayudo mucho a entender el sistema binario y las puertas logicas:

https://www.youtube.com/watch?v=RVGIXfC4Xeg&ab_channel=NateGentile

Hice el ejercicio aqui, el de fredy en el minuto 21:10

https://gist.github.com/gustavcaves/05becf209a21034c854299c9b9b52bfc

// Banco Cliente
// Cuenta Cliente
// Saldo Cliente
// Banco Destino
// Cuenta Destino
// Hora de transferencia [0-23]

// Transferir 1M USD

// Condiciones Obligatorias de Transferencia:
// Cliente verificado (verdadero o falso)
// Destino verificado (verdadero o falso)
// Saldo mayor al monto a transferir mas costo de transaccion

// Parametros del costo de transaccion:
// Si el banco destino es el mismo al banco del cliente el costo de la transaccion es 0
// Si el banco destino es diferente al banco del cliente el costo de la transaccion es 100

// Solo se pueden hacer transferencias en hora de 9 a 12 o de 15 a 20

// Intenta hacer todo organizado por multiples lineas de c贸digo
// Y tambien en un solo if

let bancoCliente = "Santander";
let cuentaCliente = "123456789";
let saldoCliente = 1000200;

let bancoDestino = "Liberbank"
let cuentaDestino = "987654321";
let saldoDestino = 0;

let montoATransferir = 1000000;
let horaTransferencia = 9;

if (cuentaCliente && cuentaDestino){
    if (saldoCliente > montoATransferir){
        if (horaTransferencia >= 9 && horaTransferencia <= 12 || horaTransferencia >= 15 && horaTransferencia <= 20) {
            if (bancoCliente === bancoDestino){
                saldoCliente = saldoCliente - montoATransferir;
                saldoDestino = saldoDestino + montoATransferir;
                console.log("Transferencia exitosa");
                console.log("Saldo Cliente: " + saldoCliente);
                console.log("Saldo Destino: " + saldoDestino);
            } else {
                saldoCliente = saldoCliente - montoATransferir;
                saldoDestino = saldoDestino + montoATransferir;
                saldoCliente = saldoCliente - 100;
                console.log("Transferencia exitosa");
                console.log("Saldo Cliente: " + saldoCliente);
                console.log("Saldo Destino: " + saldoDestino);
            }
            } else {
                console.log("Hora de transferencia no permitida");
            }
    } else {
        console.log("Saldo insuficiente");
    }
} else {
    console.log("Cuenta no valida");
}

// Un solo If

if ((cuentaCliente && cuentaDestino) && (saldoCliente > montoATransferir) && (horaTransferencia >= 9 && horaTransferencia <= 12 || horaTransferencia >= 15 && horaTransferencia <= 20) && (bancoCliente === bancoDestino)){
    saldoCliente = saldoCliente - montoATransferir;
    saldoDestino = saldoDestino + montoATransferir;
    console.log("Transferencia exitosa");
    console.log("Saldo Cliente: " + saldoCliente);
    console.log("Saldo Destino: " + saldoDestino);
} else {
    saldoCliente = saldoCliente - montoATransferir;
    saldoDestino = saldoDestino + montoATransferir;
    saldoCliente = saldoCliente - 100;
    console.log("Transferencia exitosa");
    console.log("Saldo Cliente: " + saldoCliente);
    console.log("Saldo Destino: " + saldoDestino);
}


Respecto al ejercicio de Freddy, alguien me confirma q esta ok el ejercicio??

<if ( cliente == verificado && destino.transferencia == verificado && saldo.cuenta > monto.transferencia && banco.cliente == banco.destino || monto.transferencia + coste.transferencia > saldo.cuenta && horario.transferencia == 09 a 12 || 15 a 20)
{
    transferencia = true;
}
else
{
    transferencia = false;
}> 
<if ( cliente == verificado )
{
    cliente.verificado = true;
}
else
{
    verificar_cuenta_cliente()
}
if (destino.transferencia == verificado )
{
    destino.transferencia = true:
}
else
{
    revisar_n_cuenta()
}

if ( saldo.cuenta > monto.transferencia)
{
    monto.transferencia = true;
}
else 
{
    ingresar_monto_inferior()
}
if (banco.cliente == banco.destino)
{
    coste.transferencia = 0;
}
else
{
    coste.transferencia = 100;
}
if (monto.transferencia && coste.transferencia > saldo.cuenta)
{
    transferencia = true;
}
else 
{
     ingresar_monto_inferior()
}
if (horario.transferencia == 09 a 12 || 15 a 20)
{
    emitir.transferencia = true;
}
else 
{
    emitir.transferencia = false;
}

> 



Chicos por ac谩 les dejo mi c贸digo. Pueden revisarlo y si saben c贸mo mejorarlo o tiene algo que pueda reducirse, les agradezco me comenten. Apenas estoy comenzando con el c贸digo y este ejercicio me costo un poco. Pero estuvo muy cool.
|
|

De hecho hizo falta explicar m谩s operadores l贸gicos q denso xd. Esto es a lo que me refiero con que el curso tiene que ser reformulado, para un principiante (como fue mi caso cuando empec茅) fue un mont贸n de informaci贸n en un mundo que no ten铆a ni idea y no entend铆 nada y por eso dur茅 3 meses estudiando programaci贸n y lenguajes sin entender qu茅 era lo que hac铆a hasta que por mi cuenta y cursos en youtube desarroll茅 mi l贸gica con explicaciones m谩s simples

Hizo falta explicar los operadores l贸gicos AND, OR y NOT.

Ac谩 podemos comparar resultados, dos o m谩s resutlados simultaneamente.

  • &&: AND (el resultado es verdadero si ambas expresiones son verdaderas)
  • ||: OR (el resultado es verdadero si alguna expresi贸n es verdadera)
  • !: NOT (el resultado invierte la condici贸n de la expresi贸n)

Ejemplos

Ejemplo AND:

-Puedo ir a la fiesta?

+Si sacas la basura 鈥&&鈥, 鈥淎ND鈥, 鈥淵鈥 haces tu tarea puedes ir.

Si sacas la basura y haces tu tarea puedes ir. Tu mam谩 te condiciona a cumplir dos condiciones simultaneamente, si no las cumples no podr谩s ir a la fiesta, cuando usas AND siempre te va pedir que se cumplan todas las condiciones.

Ejemplo OR:

-Puedo ir a la fiesta?

-Si sacas la basura 鈥淥鈥, 鈥淥R鈥, 鈥渱|鈥 haces tu tarea puedes ir.

Si sacas la basura o haces tu tarea puedes ir. Me pide que haga una de las dos tareas, que solo se cumpla una condici贸n de las que yo establezca, a diferencia de AND que me pide que se cumplan todas las condiciones

Ejemplor NOT:

  • S铆, puedes ir (No, no puedes ir)
  • No puedes ir (S铆, s铆 puedes ir)

Not revierte la condici贸n, es decir si tu mam谩 te dice que s铆 entonces Not te dice que no puedes ir. Si tu mam谩 te dice que no entonces Not te dice que s铆 puedes ir. Cuando aplique un not va a invertir la condici贸n

Not no lo vamos a usar mucho. Cuando lo usemos se explicar谩 en profundidad

En programaci贸n seg煤n el lenguaje puedo usar el signo que le corresponde o la palabra. Ejemplo usar && o usar And

Cuando se habla del tema del true y false, (condicionales) se debe tener en cuenta estos puntos:

conjunci贸n
disyunci贸n incluiva
disyunci贸n exclusiva
el bicondicional

Me gustan las clases cortas y al grano con los conceptos y Ana lo explica excelente

MUY EMOCIONADO

Excelente clase

Summary for engineers

Booleans obey to truth table

Una base muy importante para empezar a programar

Les dejo esta clase del profe @RetaxMaster explicando las tablas de verdad.
Una genialidad.

En mi opinion es mas intuitivo ver las condiciones como operaciones matematicas de sumas, multiplicaciones y complementos en vez de aprenderse las tablas. Les recomiendo chequearlo. https://es.wikipedia.org/wiki/L贸gica_binaria

Con esta clase entend铆 lo que no entend铆 en el colegio . 馃槂. Gracias!.

Es la ley de los signos 鉂わ笍

Comparto el ejercicio de Fredy programado en Python:

驴Qu茅 son las tablas de verdad?
Tablas que nos indican cual ser铆a el resultado acerca del verdadero y falso
Negaci贸n: Una proposici贸n verdadera que es falsa
Conjunci贸n: Es verdadera solo si ambas es verdadera y es falsa cuando al menos un valor es falso
Disyunci贸n inclusiva: Es verdadera cuando una de las proposiciones es verdadera y es falsa cuando ambas proposiciones son falsas
Disyunci贸n exclusiva: Es falsa si ambos componentes son verdaderos o falsos
Condicional: Devuelve falso cuando el primer valor es verdadero y el segundo falso
Bicondicional: Es verdadera cuando ambas proposiciones son verdaderas o ambas falsas

隆Apuntes!
En esta clase se vieron lo que es true y false, especialmente entendidos como booleanos y como se relacionan en las tablas de verdad.
True y False son condiciones binarias, mutuamente excluyentes (o sea que no pueden ser las dos a la vez), que describen el estado de algo en alg煤n momento. o bien es True o bien es False. En este contexto las llamaremos tambi茅n PROPOSICIONES.
Hay momentos en los que es relevante operar o relacionar estos de cierta manera. Para esto existen ciertas combinaciones que, dependiendo de la condici贸n, dan un resultado. Las tablas de verdad resumen todas las combinaciones posibles entre dos variables (True o False):
Se vieron 6 tipos de conexi贸n: Negaci贸n, Conjunci贸n, Disyunci贸n inclusiva, disyunci贸n exclusiva, condicional y bicondicional.

  1. Negaci贸n: Solo se usa con una proposici贸n y devuelve el contrario de este. Si es True, pasa a False.
  2. Conjunci贸n (AND): Devuelve un verdadero si las dos proposiciones relacionadas son verdaderas. Del tipo: si no son las dos cosas, no quiero nada.
  3. Disyunci贸n inclusiva(OR): Es verdadero siempre y cuando, en alg煤n punto, encontremos un verdadero. Todas las combinaciones con V son verdaderas. (solo las Falsas sean falsas)
  4. Disyunci贸n exclusiva(XOR): me devuelve verdadero si SOLO UNA DE LAS PROPOSICIONES ES VERDADERA. Es decir, si ambas son falsas, no; si ambas son verdaderas, tampoco. Pero si una es verdadera, entonces da verdadero.
  5. Condicional(THEN): Solo devuelve falso cuando la primera proposici贸n es verdadera y la segunda falsa. El resto es verdadero.
  6. BICONFICIONAL(IF): Iguales da verdadero, diferentes da falso.

var bancoCliente = 鈥渂cp鈥;
var cuentaCliente = 1234;
var bancoDestino = 鈥渂cp鈥;
var cuentaDestino = 1234;
var saldoCuenta = 2000;
var transferir = 1000;
var horaIngreso = 20;

if (cuentaCliente == cuentaDestino){
if(bancoCliente == bancoDestino){
if (saldoCuenta > transferir){
if (bancoDestino == bancoCliente){
if((horaIngreso => 9 && horaIngreso <= 12) || (horaIngreso => 15 && horaIngreso <= 20)){
console.log(鈥淚mporte satisfactorio鈥)
}else{
console.log(鈥渉orario mal鈥);
}
}else{
console.log(鈥渢ransaccion 100鈥);
}

    }else{
        console.log("monto debe ser mayor");
    }
}else{
    console.log("bancos incorrectos")
}

}else{
console.log(鈥淒atos incorrectos鈥);
}

馃挌"Sigamos que se puede"馃挌

Nota interesante en en javascript se puede representar algunos de esto de la siguiente manera negacion seria: != (Que viene siendo diferente de), conjuncion seria && (que viene siendo esto y esto) la desyucion inclusiva vendria siendo || (Que viene siendo esto o esto), quizas me equivoque si es asi por favor , corrijanme quiero aportar lo poco que se.

Nuevamente les dejo mis notas, espero les sirva 馃槂


Verdad

El valor verdadero se representa con la letra V; si se emplea notaci贸n num茅rica se expresa con un uno: 1; en un circuito el茅ctrico, el circuito est谩 cerrado cuando est谩 presente la afirmaci贸n de V.

Falso

El valor falso F; si se emplea notaci贸n num茅rica se expresa con un cero: 0; en un circuito el茅ctrico, el circuito est谩 abierto.

Variable

Para una variable l贸gica A, B, C, 鈥 pueden ser verdaderas V, o falsas F, los operadores fundamentales se definen as铆:

Negaci贸n

La negaci贸n operador que se ejecuta, sobre un 煤nico valor de verdad, devolviendo el valor contradictorio de la proposici贸n considerada.

Conjunci贸n

La conjunci贸n es un operador, que act煤a sobre dos valores de verdad, t铆picamente los valores de verdad de dos proposiciones, devolviendo el valor de verdad verdadero cuando ambas proposiciones son verdaderas, y falso en cualquier otro caso. Es decir, es verdadera cuando ambas son verdaderas.

En t茅rminos m谩s simples, ser谩 verdadera cuando las dos proposiciones son verdaderas.

en simbolog铆a 鈥溾埀鈥 hace referencia al conector 鈥測鈥 o 鈥渁nd鈥.

Disyunci贸n

La disyunci贸n es un operador l贸gico que act煤a sobre dos valores de verdad, t铆picamente los valores de verdad de dos proposiciones, devolviendo el valor de verdad verdadero cuando una de las proposiciones es verdadera, o cuando ambas lo son, y falso cuando ambas son falsas.

En t茅rminos m谩s simples, ser谩 verdadera cuando por lo menos una de las proposiciones es verdadera de lo contrario ser谩 falsa. Hace referencia al conector 鈥渙鈥 y 鈥渙r鈥.

Implicaci贸n o Condicional

El condicional material es un operador que act煤a sobre dos valores de verdad, t铆picamente los valores de verdad de dos proposiciones, devolviendo el valor de falso s贸lo cuando la primera proposici贸n es verdadera y la segunda falsa, y verdadero en cualquier otro caso.

Hace referencia al conector 鈥渢hen鈥

Equivalencia, doble implicaci贸n o Bicondicional

La bicondicional es una operaci贸n binaria l贸gica que asigna el valor verdadero cuando las dos variables son iguales y el valor falso cuando son diferentes.

Hace referencia al conector 鈥渋f鈥.

Tomado de Wikipedia, 2022

A partir del XOR me confund铆 ya que si hab铆a visto este tipo de tablas usadas en circuitos l贸gicos con sus respectivas compuertas pero en programaci贸n solo hab铆a visto usadas AND, OR y NOT

Hola! Para los que no an entendido sobre las tablas de verdad, ac谩 les dejo una lista de reproducci贸n, espero que les sirva.

https://www.youtube.com/playlist?list=PLeySRPnY35dHBYcVHPisjBCVHBa954rMZ

Proposiciones

Que son las "Tablas de Verdad"