sábado, 30 de abril de 2011

Actividad #3


1.Encuentre al menos 2 formas de hacer una asignación a x tal que al realizar “alt p” devuelva el objeto #(1 2) y ademas que al realizar la comparación lógica x==#(1 2) devuelva false.

2.si se realizara la comparación lógica con “=”
¿cual seria la diferencia con “==”?
¿porque se da esta diferencia?


20 comentarios:

  1. 1.para que x sea igual al objeto #(1 2 ) deberiamos de crear una variable global asignandole a x ese valor porque asi va durar hasta que la eliminemos.

    2.Al ser la comparacion con el = el programa asigna el valor que damos a determinada variable. al hacer la compacion con == aqui el programa responde true porque afirma que es cierto o verdadero lo que estamos asignando el valor.

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. 1. Respuesta:
    a)
    x := Array with: 1 with: 2.
    x == #(1 2).

    b)
    x := Array new: 2. x at: 1 put: 1 ; at: 2 put: 1 + 1. x.
    x == #(1 2).


    2.Respuesta:

    La diferencia de = con == es que el primer operador (=) compara si el valor de la segunda expresion es
    igual al valor de la primera, mientras que el segundo operador (==) compara si el objeto es exactamente
    igual, refiriendonos al valor y estructura de la expresion del objeto comparado, ya sea con una variable (a la cual esta asignado un objeto con valor y secuencia de mensajes) o con otro objeto.
    La diferencia se da porque el operador = compara los valores de los objetos, mientras que el operador
    == compara si ambos objetos son exactamente iguales.

    ResponderEliminar
  4. 1) |x|
    x:= Array with:1 with:2. valor de retorno:#(1 2)

    x=#(1 2) true
    x==#(1 2) false

    2) |x|
    x:= [:a | |dif lol|
    dif:= (4-a). lol:= (a-1). Array with:dif with:lol]. x value:3
    valor de retorno: #(1 2)
    x= #(1 2) false
    x==#(1 2) false

    La diferencia entre los resultados de valores de verdad cuando se utilizan los operadores = y == se da porque; '=' compara si el valor de la segunda expresion es igual al valor de la primera y '==' compara si son exactamente iguales. es decir que la diferencia se da por que los operadores responden de formas diferentes al argumento.

    ResponderEliminar
  5. a). y := Array new: ( 1 + 1 ). y at: 1 put: 'a' size ; at: ( 3 - 1 ) put: 'cd' size. y.
    x=#(1 2) true
    x==#(1 2) false
    b). y := Array with: 'a'size with: 'bc'size. #(1 2)
    y=#(1 2) true
    y==#(1 2) false
    El operador de verdad = verifica si o compara si el valor de la primera exprecion es igual al valor de la segunda, y el operador de verdad == verifica si son exactamente iguales las expresiones.

    ResponderEliminar
  6. y los objetos que son comparados por los operadores responden de rormas diferentes segun el caso por que = compara si los objetos son igualesw y == compara que si los objetos son exactamente iguales.

    ResponderEliminar
  7. 1.
    a. x:=#(1),#(2) #(1 2)
    x:= Array with:1 with:2. #(1 2)

    b. x:= Array new:2.
    x at:1 put:1;
    at: 2 put: 1+1.
    x == #(1 2). False

    2. El primer componente “=” se refiere si la segunda expresión es igual que la primera expresión y en cuanto el componente “==” se refiere que los dos componentes son exactamente igual. Y la diferencia seda por que si decimos que si una expresión es igual que otra expresión, mientras que == se dice si una expresión es exactamente igual y son el mismo objeto.

    ResponderEliminar
  8. lo que deberiamos hacer es crear una variable global para que el programa puedo hacer la comparacion. si la primera exprexion es identica a la segunda.

    El valor boleano de verdad = verifica compara si el valor de la primera exprecion es igual al valor de la segunda y == verifica si las dos expresiones son identicas o igualrs entre si son exactamente iguales entre si, eso es lo que ase el programa

    ResponderEliminar
  9. RITA JUAREZ
    a). x:= Array with:1 with:2
    valor de retorno #(1 2)

    x=#(1 2)true
    x=#(1 2) false

    b). x:= #(1), #(2)
    valor de retorno #(1 2)

    respuesta:
    El singo = lo que hace es determinar si el primer valor es igual que el segundo valor, y los signos == compara si los dos valores son exactamente iguales.

    ResponderEliminar
  10. FORMAS DE ASIGNACIÓN:

    a)
    x := Array with: 1 with: 2.
    x == #(1 2).

    b)
    x := Array new: 2. x at: 1 put: 1 ; at: 2 put: 1 + 1. x.
    x == #(1 2).

    2.DIFERENCIA (=) Y(==);¿POR QUÉ?

    A LO QUE ANALIZO LA DIFERENCIA ENTRE ESTOS DOS OPERADORES = Y == ES QUE EL OPERADOR (=) DETERMINA SI EL PRIMER VALOR DE ASINGNACIÓN ES IGUAL QUE EL SEGUNDO VALOR ; Y EL DOBLE OPERADOR (==)DETERMINA SI LOS VALORES DE ASINGNACIÓN SON EXACTAMENTE IGUALES.

    PIENSO QUE SE DA ESTA DIFERENCIA DEL UNO CON EL OTRO OPERADOR, POR LA DOBLE APLICACIÓN DEL OPERADOR (==).

    ResponderEliminar
  11. PRIMERA FORMA

    X:= Array with:(5 gcd: 7) with:(-2 abs).
    salida:#(1 2).
    x==#81 2). salida: false.
    con x=#(1 2). salida:true.

    SEGUNDA FORMA

    x: Array with: 1 factorial with:(1.555555 ceiling). salida:#(1 2).
    x==#(1 2). salida:false

    con x=#(1 2). salida: true.



    respuestas numero dos:
    lo que hace '=' es verificar si los valores son iguales entre dos expreciones,y el`==` lon que hace es verificar si son iguales estructuralmente.


    BRYAN ISAAC ESCOBAR RICO 0801-1989-00228

    ResponderEliminar
  12. 1).Formas de asignación que el valor de retorno es #(1 2) y con la comparación lógica "==" es false:
    x:=(#(1),#(2)) Valor de retorno: #(1 2).
    x== (#(1),#(2)) Valor de retorno: false.

    x:= (Array with:1 with:2)
    Valor de retorno: #(1 2).
    x== (Array with:1 with:2)
    valor de retorno: false.
    Esta expresión solo cumple con la primera que el valor de retorno sea #(1 2):
    |c b S|
    c:=2.
    b:=1.
    S:= Array new:2.
    S at:1 put:b;
    at:2 put:c.
    Transcript show: S.
    Valor de retorno:#(1 2).

    2). Al realizar la comparación lógica "=" el valor de retorno en los dos ejemplos es:
    x= (#(1),#(2)) Valor de retorno: true.
    x= (Array with:1 with:2)
    Valor de retorno: true.

    Y con la comparación lógica "==" es:
    x== (#(1),#(2)) Valor de retorno: false
    x== (Array with:1 with:2)
    Valor de retorno: false

    La diferencia se da porque con la comparación "=" solo se da una asignación a la variable, es decir se iguala la variable a un valor, siendo su valor de retorno true y con la otra se hace la comparación si los dos valores son exactamente iguales por lo que el valor de retorno es false porque son diferentes valores.

    ResponderEliminar
  13. I)
    Las dos formas de asignación:

    a) y:=#(1),#(2). Valor de Retorno: #(1 2)
    al evaluar:
    y==#(1 2). El valor Retorno es false

    b)m:= Array with:nil with:nil. m at:1 put:1; at:2 put:2. Valor Retorno: #(1 2).
    al evaluar:
    m==#(1 2). El Valor Retorno es false

    II)
    si la comparación es de la siguiete manera:
    y=#(1 2). El Valor Retorno es true.
    m=#(1 2). El valor Retorno es true.

    Esto se debe a que al utilizar el "=" en una comparación lógica lo que se compara es si tienen el mismo valor como objetos. Pero al hacer la comparación con "==" lo que se verifica es si son exactamente iguales, es decir si son el mismo objeto, lo cual no ocurre en los ejemplos anteriores.

    ResponderEliminar
  14. 1.
    Ejemplo A
    r:=1.
    u:=2.
    b:=Array new:2. m at:1 put:r; at:2 put:u.
    b==#(1 2).
    Resultado: false

    Ejemplo B
    z:=Array with:1 with:2.
    z==#(1 2).
    Resultado: false

    2. Si la comparacion logica se hace con el signo "=" esta evalua si el valor de ambos objetos es el mismo.

    Si la comparacion logica se hace con el signo "==" se evalua si los dos objetos son exactamente el mismo.

    ResponderEliminar
  15. Primera Forma:
    x:= (Array with:(1.5 truncated) with:(1.5 rounded)).
    El valor de retorno es: #(1 2)
    x == #(1 2).
    El valor de retorno es: false


    Segunda forma:
    x:= (Array with:(4.5//3.0) with:((-2)negated)).
    El valor de retorno es: #(1 2)
    x == #(1 2).
    El valor de retorno es:false


    La diferencia se da porque "=" evalúa si el valor de la primera expresión es igual al de la segunda; Mientras que "==" evalúa si la primera expresión es exactamente igual a la segunda (estructuralmente).

    ResponderEliminar
  16. 1.Formas de Asignación:

    z:=Array with:1 with:2.
    z==#(1 2).
    Valor de Retorno: false

    *********************************************
    z:=Array new:2.
    z at:1 put:1;
    at:2 put:2.
    z==#(1 2).
    Valor de Retorno: false.

    2.
    Cuando utilzamos el operador de comparación = evaluamos si dos objetos tienen igual valor.
    Cuando utilizamos == evaluamos si los objetos son "exactamente iguales"

    ResponderEliminar
  17. 1 respuesta.
    a) primera asignacion para x.

    x:= #('b' 'bueno' 8 #(1 2)) at: 4. #(1 2).
    x==#(1 2). false

    b) segunda asignacion para x.

    |x|
    x:=[:soy :miro | | s |
    s:= Array with: soy with: miro].
    x value: 1 value: 2.
    x ==#( 1 2 ). false

    2 respuesta.

    x:= #('b' 'bueno' 8 #(1 2)) at: 4. #(1 2).
    x=#( 1 2 ).true

    |x|
    x:=[:soy :miro | | s |
    s:= Array with: soy with: miro].
    x value: 1 value: 2.
    x=#( 1 2 ).false

    Al usar el mensaje selector ´´ == ´´ hacemos una coparacion de identidad de objetos,es decir, evalua el mismo tipo de objeto y al usar el selector ´´=´´ hacemos una comparacion de igualdad de objetos.

    ResponderEliminar
  18. |x|
    x:= Array with:1 with:2. retorno:#(1 2)

    x=#(1 2) true
    x==#(1 2) false

    Ambos son valores de verdad, cuando se utiliza el operador "=" este compara si el valor de la segunda expresión y la primera expresión son iguales y el operador "==" compara si ambas expresiones son exactamente iguales.
    Es decir que ambos operadores responden de distintas maneras a las expresiones dadas.

    ResponderEliminar
  19. en el inciso a)

    se le asigna a x un arreglo con 1 y con 2 (x:= Array with: 1 with: 2.) el cual da como resultado #(1 2) y luego lo comparamos con el simbolo "#(1 2)" al evaluar X con alt + p nos proporciona el valor de verdad false.

    x:= Array with: 1 with: 2.
    x== #(1 2). false

    inciso b)

    al realizar la operacion con el selecto u operador '=' proporciona el resultado true

    Esto se da ya que al utilizar operador "=" en una comparación lógica lo que se verifica o compara es si tienen el mismo valor como objetos; pero al realizarlo con el operador "==" lo que se verifica es si los objetos son exactamente iguales.

    Oscar W. Castro Osorto

    ResponderEliminar
  20. Soluciòn:
    a)
    x := Array with: 1 with: 2.
    x == #(1 2).

    b)
    x:= Array new:2.
    x at:1 put:1;
    at: 2 put: 1+1.
    x == #(1 2). False

    Se establece una diferencia ya que con la comparación "=" solo se da una asignación a la variable, es decir se iguala la variable a un valor, siendo su valor de retorno true y con la otra se hace la comparación si los dos valores son exactamente iguales por lo que el valor de retorno es false porque son diferentes valores.

    ResponderEliminar