Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:cc4101:tareas:2025-1:tarea3 [2025/06/19 20:39] – [Parte 3 (extra): Campos de Clase (1 pt)] dibanezteaching:cc4101:tareas:2025-1:tarea3 [2025/07/09 20:04] (current) – [Objetos (1.5 pts)] dibanez
Line 1: Line 1:
-====== Tarea 3 (Entrega: TBD) ====== +====== Tarea 3 (Entrega: 6 de Julio de 2025) ====== 
  
-Esta tarea se distribuye con un archivo zip (<<PLACEHOLDER>>) que contiene 3 archivos: main.rkt, tests.rkt y env.rkt. Los archivos están incompletos, y en ellos tiene que implementar lo que se solicita en las preguntas siguientes. +Esta tarea se distribuye con un archivo zip ({{ :teaching:cc4101:tareas:2025-1:t3-init.zip |}}) que contiene 3 archivos: main.rkt, tests.rkt y env.rkt. Los archivos están incompletos, y en ellos tiene que implementar lo que se solicita en las preguntas siguientes. 
  
 Debe entregar via U-cursos **un archivo .zip** que contenga los archivos main.rkt y tests.rkt. Debe entregar via U-cursos **un archivo .zip** que contenga los archivos main.rkt y tests.rkt.
Line 7: Line 7:
 <note important>Consulte las normas de entrega de tareas en http://pleiad.cl/teaching/cc4101</note> <note important>Consulte las normas de entrega de tareas en http://pleiad.cl/teaching/cc4101</note>
  
-**Recuerde que el testing y calidad de código se evalúan de acuerdo a [[https://docs.google.com/document/d/1Ahtk97_teZwtpFnJ-H--rLndeiFuyeDHpoGWpC8wL5I/edit?usp=sharing|la rúbrica]].**+**Recuerde que el testing y calidad de código se evalúan de acuerdo a [[https://docs.google.com/document/d/1Ahtk97_teZwtpFnJ-H--rLndeiFuyeDHpoGWpC8wL5I/edit?usp=sharing|esta rúbrica]].**
  
 ====== Resumen ====== ====== Resumen ======
Line 204: Line 204:
                              {def init {x y} {begin {set x x}                              {def init {x y} {begin {set x x}
                                                     {set y y}}}}}}                                                     {set y y}}}}}}
-                  {init A}})+                  {new A}})
 ; Retorna una instancia donde x e y no están inicializados. ; Retorna una instancia donde x e y no están inicializados.
 </code> </code>
Line 302: Line 302:
 </code> </code>
  
-===== Parte 3 (extra): Campos de Clase (1 pt) ===== +===== Parte 3 (extra): Campos de Clase (1 pt de Bonus) ===== 
-En las parte 1 implementamos clases con campos y métodos de instancia, además de estos la mayoría de lenguajes que permiten POO soportan campos y métodos de clase, como también campos y métodos estáticos.+En la parte 1 implementamos clases con campos y métodos de instancia, además de estos la mayoría de lenguajes que permiten POO soportan campos y métodos de clase, como también campos y métodos estáticos.
  
 En esta parte extenderemos el lenguaje con campos de clase, para ello modificaremos la sintáxis de esta forma: En esta parte extenderemos el lenguaje con campos de clase, para ello modificaremos la sintáxis de esta forma:
Line 329: Line 329:
                                {begin {set x x}                                {begin {set x x}
                                       {set y {+ 1 {get self y}}}}}}}                                       {set y {+ 1 {get self y}}}}}}}
-                   {o1 {init A 5}} +                   {o1 {new A 5}} 
-                   {o2 {init A 10}} +                   {o2 {new A 10}} 
-                   {o3 {init A 0}}}+                   {o3 {new A 0}}}
                   {get A y}})                   {get A y}})
 3 3
Line 355: Line 355:
                    {o1 {init Test}}                    {o1 {init Test}}
                    {o2 {init Test}}                    {o2 {init Test}}
-                  {begin {-> set-b o1 #t}+                  {begin {-> o1 set-b #t}
                          {get o2 b}}})                          {get o2 b}}})
 +#t
 </code> </code>
 +
 +  * Realize las modificaciones necesarias para extender el lenguaje con campos de clase.