miércoles, 27 de febrero de 2008

ejercicios en blue j (2.11 al 2.28)

  • Exercise 2.11

What do you think is the type of each of the following fields?
private int count;
private Student representative;
private Server host;

Ejercicio 2,11 ¿Cuál cree que es el tipo de cada uno de los siguientes campos?

private int count; PRIVADO- ENTERO
private Student representative; PRIVADO - STRING
private Server host; PRIVADO- STRING





  • Exercise 2.12

What are the names of the following fields?
private boolean alive;
private Person tutor;
private Game game;

Ejercicio 2,12
¿Cuáles son los nombres de los siguientes campos?


private boolean alive; PRIVADO- BOOLEANO
private Person tutor; PRIVADO- STRING
private Game game; PRIVADO- STRING




  • Exercise 2.13

In the following field declaration from the TicketMachine class
private int price;
does it matter which order the three words appear in? Edit the TicketMachine class to
try different orderings. After each change, close the editor. Does the appearance of the
class diagram after each change give you a clue as to whether or not other orderings are
possible? Check by pressing the Compile button to see if there is an error message.
Make sure that you reinstate the original version after your experiments!

Ejercicio 2,13 En el siguiente campo declaración de la clase TicketMachine
private int price;

¿Importa el orden que aparecen en tres palabras? Modificar la clase a la TicketMachine Probar diferentes ordenamientos. Después de cada cambio, cierre el editor. ¿La aparición de la Diagrama de clase después de cada cambio de darle una pista en cuanto a si o no son otros ordenamientos Posible?
Checa pulsando el botón Compilar para ver si hay un mensaje de error. Asegúrese de que restablecer la versión original después de sus experimentos!


S i cambiamos el orden de las palabras y lo compilamos nos manda un mensaje de error como el siguiente:





  • Exercise 2.14

Is it always necessary to have a semicolon at the end of a field declaration?
Once again, experiment via the editor. The rule you will learn here is an
important one, so be sure to remember it.

Ejercicio 2,14 ¿Es siempre necesario contar con un punto y coma al final de una declaración sobre el terreno? Una vez más, el experimento a través de editor. La norma podrá aprender aquí es un Importante, así que asegúrese de recordarla.
Si es necesario poner el punto y coma al final de un a declaracion, ya que de lo contrario nos marca un error (ya que es una regla de sintaxis). Ejemplo:

  • Exercise 2.15

Write in full the declaration for a field of type int whose name is
status.

Ejercicio 2,15 Escribir en pleno la declaración de un campo de tipo int cuyo nombre es status.


INT STATUS

  • Exercise 2.16

To what class does the following constructor belong?
public Student(String name)

Ejercicio 2,16 ¿En qué clase hace lo siguiente constructor pertenecen? public Student(String name)

A la clase “ public class Student”

  • Exercise 2.17

How many parameters does the following constructor have and
what are their types?
public Book(String title, double price)


2,17 ejercicio ¿Cuántos parámetros hace lo siguiente constructor y han ¿Cuáles son sus tipos?
public Book(String title, double price)

Este constructor hace 2 parametros, el primero “title” es de tipo cadena y el segundo “price”es de tipo double.

  • Exercise 2.18

Can you guess what types some of the Book class’s fields might
be? Can you assume anything about the names of its fields?

Ejercicio 2.18 ¿Puede adivinar qué tipos podrian ser algunos campos de la clase Book ?
¿Puede asumir nada sobre los nombres de sus campos?

Titulo, autor, editorial, etc.


  • Exercise 2.19

Suppose that the class Pet has a field called name that is of type
String. Write an assignment statement in the body of the following constructor so
that the name field will be initialized with the value of the constructor’s parameter.

public Pet(String petsName)
{
...
}


Ejercicio 2,19 Supongamos que la clase Pet (mascotas) tiene un campo llamado name que es del tipo String. Escribir una sentencia de asignación en el cuerpo de el siguiente constructor Que el campo name se inicia con el valor del parámetro del constructor.

Pues se tiene que hacer lo siguiente:

Public Pet(String petsName)
{name= petsName;}

  • Exercise 2.20

Challenge exercise What is wrong with the following version of the onstructor of TicketMachine?


public TicketMachine(int ticketCost)
{
int price = ticketCost;
balance = 0;
total = 0;
}

Once you have spotted the problem, try out this version in the naive-ticket-machine
project. Does this version compile? Create an object and then inspect its fields. Do
you notice something wrong about the value of the price field in the inspector with
this version? Can you explain why this is?


Ejercicio 2,20 ¿Qué hay de malo en la siguiente versión del Constructor de TicketMachine?

public TicketMachine(int ticketCost)
{
int price = ticketCost;
balance = 0;
total = 0;
}


Esta parte es erronea:


int price = ticketCost;
ya que en ella volvemos a declarar price como tipo entero y lo toma como parámetro diferente al de price.


Una vez que haya visto el problema, pruebe esta versión ingenua en proyecto naive-ticket-machine ¿se compila esta version? Crear un objeto y, a continuación, inspeccionar sus campos. ¿ Usted nota algo mal sobre el valor del precio en el campo con el inspector Esta versión? ¿Puede explicar por qué es?

No compila ya que marca un error de sintaxis.

  • Exercise 2.21

Compare the getBalance method with the getPrice method.
What are the differences between them?

Ejercicio 2,21 Comparar el método getBalance con el método getPrice. ¿Cuáles son las diferencias entre ellos?
Aparte de los nombres; En la estructura no hay diferencias, nada mas que getPrice devuelve el valor del ticket que se declaro cuando se crea el objeto mientras que getBalance sirve para comprobar que la máquina tiene un registro de la cantidad insertada.

  • Exercise 2.22

If a call to getPrice can be characterized as ‘What do tickets
cost?’, how would you characterize a call to getBalance?

Ejercicio 2,22 Si una llamada a getPrice puede caracterizarse como "¿Cuál es el costo de un ticket? ", ¿Cómo se puede caracterizar a una llamada getBalance?

Pues getBalance es el que hace el registro de las cantidades que se inserta y cambia cada vez que insertamos una cantidad.


  • Exercise 2.23

If the name of getBalance is changed to getAmount, does the
return statement in the body of the method need to be changed, too? Try it out within
BlueJ.

Ejercicio 2,23 Si el nombre de getBalance se cambia a getAmount, ¿el Volver declaración en el cuerpo del método que hay que cambiar, también?

Pues al cambiar el nombre de getBaalance a getAmount no tengo que cambiar nada en el cuerpo del metodo ya que son independientes.

  • Exercise 2.24

Define an accessor method, getTotal, that returns the value of
the total field.

Ejercicio 2,24 Definir un método de acceso, getTotal, que devuelve el valor de El total del campo.

public int getTotal()
{
return Total;
}

  • Exercise 2.25

Try removing the return statement from the body of getPrice.
What error message do you see now when you try compiling the class?
2,25 Ejercicio Prueba a eliminando la declaracion de retorno del cuerpo de getPrice. ¿Qué mensaje de error es el que usted ve ahora al tratar de compilar la clase?


  • Exercise 2.26

Compare the method signatures of getPrice and printTicket in Code 2.1. Apart from their names, what is the main difference between them?
Ejercicio 2,26 Comparar el método de las firmas getPrice y printTicket En el Código de 2,1. Aparte de sus nombres, ¿cuál es la principal diferencia entre ellos?

La principal diferencia entre estos es que uno es de tipo entero mientras que el otro es un metodo mutante es decir que tiene void

public int getPrice()
{

return price;
}

/**


public void printTicket()
{
if(balance >= price) {
// Simulate the printing of a ticket.
System.out.println("##################");
System.out.println("# The BlueJ Line");
System.out.println("# Ticket");
System.out.println("# " + price + " cents.");
System.out.println("##################");
System.out.println();

// Update the total collected with the price.
total = total + price;
// Reduce the balance by the prince.
balance = balance - price;
}
else {
System.out.println("You must insert at least: " +
(price - balance) + " more cents.");

}
}

  • Exercise 2.27

Do the insertMoney and printTicket methods have return
statements? Why do you think this might be? Do you notice anything about their
headers that might suggest why they do not require return statements?


Ejercicio 2,27 ¿la insertMoney y printTicket métodos tienen declaraciones de retorno ? ¿Por qué cree que podría ser? ¿Nada acerca de su anuncio Cabeceras que puede sugerir la idea de la razón por la que no requieren declaraciones de retorno?


public void insertMoney(int amount)
{
if(amount > 0) {
balance = balance + amount;
}
else {
System.out.println("Use a positive amount: " +
amount);
}
}

public void printTicket()
{
if(balance >= price) {
// Simulate the printing of a ticket.
System.out.println("##################");
System.out.println("# The BlueJ Line");
System.out.println("# Ticket");
System.out.println("# " + price + " cents.");
System.out.println("##################");
System.out.println();

total = total + price;
balance = balance - price;
}
else {
System.out.println("You must insert at least: " +
(price - balance) + " more cents.");

}
}

Pues yo creo que como en estos dos metodos se hacen operaciones (cambios) es necesario ponerle el VOID, ya que con otro tipo no se puede.

  • Exercise 2.28
Create a ticket machine with a ticket price of your choosing. Before
doing anything else, call the getBalance method on it. Now call the insertMoney
method (Code 2.6) and give a non-zero positive amount of money as the actual
parameter. Now call getBalance again. The two calls to getBalance should show
different output because the call to insertMoney had the effect of changing the
machine’s state via its balance field.


Ejercicio 2,28 Crear un ticket máquina con un ticket de precio de su elección. Antes de hacer algo más, llame al metodo getBalance en ella. Tiene la palabra el metodo insertMoney Método (Código 2.6) y dar un no-cero positivos cantidad de dinero como el actual Parámetro. Ahora llama getbalance.
Las dos llamadas a getBalance debe mostrar Diferentes de salida debido a la llamada a insertMoney tuvo el efecto de cambiar la Máquina del Estado a través de su equilibrio sobre el terreno.

martes, 26 de febrero de 2008

ejercicios en blue j (2.1 a 2.10)

  • Exercise 2.1

Create a TicketMachine object on the object bench and take a look at its methods. You should see the following: getBalance, getPrice, insertMoney, and printTicket. Try out the getPrice method. You should see a return value containing the price of the tickets that was set when this object was created. Use the insertMoney method to simulate inserting an amount of money into the machine and then use getBalance to check that the machine has a record of the amount inserted.
You can insert several separate amounts of money into the machine, just like you might insert multiple coins or notes into a real machine. Try inserting the exact amount required for a ticket. As this is a simple machine, a ticket will not be issued automatically, so once you have inserted enough money, call the printTicket method. A facsimile ticket should be printed in the BlueJ terminal window.

Ejercicio 2,1
Crear un objeto TicketMachine en el objeto bancada y echar un vistazo En sus métodos. Debería ver lo siguiente: getBalance, getPrice, insertMoney, Y printTicket. Pruebe el método getPrice. Debe aparecer un valor de retorno que contiene El precio de los billetes que se estableció cuando este objeto se ha creado. Utilice el InsertMoney método para simular la inserción de una suma de dinero en la máquina y GetBalance utilizar para comprobar que la máquina tiene un registro de la cantidad inserta.
Puede insertar varios distintas cantidades de dinero en la máquina, al igual que lo puede Insertar múltiples monedas o notas en una verdadera máquina. Trate de insertar la cantidad exacta Necesario para un billete. Como se trata de una simple máquina, un billete no se publicarán automáticamente, Así que una vez que se han insertado suficiente dinero, llame a la printTicket método. A Facsímil billete deben imprimirse en la ventana de Terminal BlueJ.

Primero abrimos el proyecto better-ticket-Machine y precisamente tenia los métodos getBalance, getPrice, insertMoney, Y printTicket.
Creamos un objeto TicketMachine, después probamos los métodos que éste tenia:

Al llamar el método getPrice, nos apareció esta ventana en la cual aparece el precio de los tickets que se estableció cuando este objeto se creo:


Llamamos al metodo InsertMoney el cual sirve para simular la inserción de una suma de dinero en la máquina. Y el metodo GetBalance sirve para comprobar que la máquina tiene un registro de la cantidad insertada.
Así que una vez que se han insertado suficiente ticket, llamamos al metodo printTicket y nos aparecio la siguiente ventana.


  • Exercise 2.2

What value is returned if you check the machine’s balance after it
has printed a ticket?

Ejercicio 2,2 ¿Qué valor se devuelve si checas el balance de la maquina después que ha impreso un ticket? Pues nos devuelve el total que hemos insertado

  • Exercise 2.3

Experiment with inserting different amounts of money before printing
tickets. Do you notice anything strange about the machine’s behavior? What happens
if you insert too much money into the machine – do you receive any refund? What
happens if you do not insert enough and then try to print a ticket?

Ejercicio 2,3 Experimento con la inserción de diferentes cantidades de dinero antes de imprimir tickets. ¿Notado nada extraño en el comportamiento de la máquina? ¿Qué sucede Si inserta demasiado dinero en la máquina - ¿recibirá ningún reembolso? ¿Qué Sucede si no insertar suficiente y luego tratar de imprimir un billete?

Al insertar diferentes cantidades de dinero antes de imprimir no pasa nada, pero cuando se inserta una cantidad muy grande y después lo mandamos a imprimir, solo nos devuelve el valor maximo que nosotros le pusimos a la crearlo. Ejemplo, si le pusimos 100 y le insertamos 245, al mandar a imprimir solo nos devuelve lo siguiente:




si no insertamos suficiente dinero y queremos imprimir, nos muestra una mensaje que dice debemos de insertar la cantidad que falta. Por ejemplo si solo insertamos 89 en el ticket de 100 y le damos imprimir nos parece lo siguiente


  • Exercise 2.4

Try to obtain a good understanding of a ticket machine’s behavior by interacting with it on the object bench before we start looking at how the TicketMachine class is implemented in the next section.


Ejercicio 2,4 Trate de obtener un buen entendimiento de un ticket por el comportamiento de la máquina Interactuando con él sobre el objeto de banco antes de empezar a buscar la forma en que la clase TicketMachine se aplica en la siguiente sección.

  • Exercise 2.5

Create another ticket machine for tickets of a different price. Buy a ticket from that machine. Does the printed ticket look different?

Ejercicio 2,5 Crear otra máquina para tickets de un precio diferente. Compre un ticket de esa máquina. ¿El billete impreso un aspecto distinto?
No

  • Exercise 2.6

Write out what you think the outer wrappers of the Student and
LabClass classes might look like – do not worry about the inner part.


Ejercicio 2,6 Escriba lo que usted cree el exterior de las envolturas de Estudiantes y la clase LabClass podria ver como le guste - No se preocupe por la parte interior.


  • Exercise 2.7

Does it matter whether we write public class TicketMachine or class public TicketMachine in the outer wrapper of a class? Edit the source of the TicketMachine class to make the change and then close the editor window. Do you notice a change in the class diagram?
What error message do you get when you now press the Compile button? Do you think this message clearly explains what is wrong?

Ejercicio 2,7 Importa que escribimos : public class TicketMachine or class public TicketMachine En la envoltura exterior de una clase?
Modificar la fuente de la clase a la TicketMachine Hacer el cambio y, a continuación, cerrar la ventana del editor. ¿Usted nota un cambio en el Diagrama de la clase? ¿Qué mensaje de error que recibe cuando usted presione el botón Compilar? ¿Cree usted que Este mensaje explica claramente lo que está mal?

Al cambiar la fuente de la clase y cerrar el editor nos aparece de la siguiente manera:


y al dar compilar nos aparece in mensaje de error, el cual creo que no es suficientemente claro para detectar el error del codigo.


  • Exercise 2.8

Check whether or not it is possible to leave out the word public from the outer wrapper of the TicketMachine class.


Ejercicio 2,8 Compruebe si es o no posible dejar fuera la palabra public De la envoltura exterior de la clase TicketMachine .

Si es posible no escribir la palabra public al declarar la clase ya que por default lo toma como una clase publica y al compilarlo no marca ningun error

  • Exercise 2.9

From your earlier experimentation with the ticket machine objects within BlueJ you can probably remember the names of some of the methods – printTicket, for instance. Look at the class definition in Code 2.1 and use this knowledge, along with the additional information about ordering we have given you, to try to make a list of the names of the fields, constructors, and methods in the TicketMachine class. Hint: There is only one constructor in the class.



Ejercicio 2,9 De su anterior experimentación con objetos de la máquina de tickets Dentro de BlueJ probablemente pueda recordar los nombres de algunos de los métodos -- PrintTicket, por ejemplo. Vea la definición en el Código de la clase 2,1 y el uso de este Conocimientos, junto con información adicional sobre los pedidos que hemos dado, Para tratar de hacer una lista de los nombres de los campos, constructores, y los métodos en la clase TicketMachine. Sugerencia: Sólo hay un constructor de la clase.

DECLARACION DE LA CLASE
Public class TicketMachine
{
// The price of a ticket from this machine.
private int price;
// The amount of money entered by a customer so far.
private int balance;
// The total amount of money collected by this machine.
private int total;

COMENTARIO
/**
* Create a machine that issues tickets of the given price.
*/

CONSTRUCTOR
public TicketMachine(int ticketCost)
{
price = ticketCost; CAMPOS
balance = 0;
total = 0;
}
COMENTARIO
/**
* @Return The price of a ticket.
*/

METODO
public int getPrice()
{
return price;
}

METODO
public int getBalance()
{
return balance;
}

METODO
public void insertMoney(int amount)
{
if(amount > 0) {
balance = balance + amount;
}
else {
System.out.println("Use a positive amount: " +
amount);
}
}

METODO
public void printTicket()
{
if(balance >= price) {
// Simulate the printing of a ticket.
System.out.println("##################");
System.out.println("# The BlueJ Line");
System.out.println("# Ticket");
System.out.println("# " + price + " cents.");
System.out.println("##################");
System.out.println();

// Update the total collected with the price.
total = total + price;
// Reduce the balance by the prince.
balance = balance - price;
}
else {
System.out.println("You must insert at least: " +
(price - balance) + " more cents.");

}
}

METODO
public int refundBalance()
{
int amountToRefund;
amountToRefund = balance;
balance = 0;
return amountToRefund;
}
}



  • Exercise 2.10

Do you notice any features of the constructor that make it significantly different from the other methods of the class?
Ejercicio 2,10 ¿usted nota cualquiera de las características que hacen que sea constructor significativamente Diferente de los otros métodos de la clase?

SI, ya que el constructor tiene el mismo nombre que la clase.

ejercicios en blue j (1.28 al 1.32)

  • Exercise 1.28

What would you have to do to add a new field, for example one called name, to a circle object?

¿Qué sería de lo que tiene que hacer para añadir un nuevo campo, por ejemplo, uno Llamado neme, a un objeto círculo ?

  • Exercise 1.29

Write the signature for a method named send that has one parameter of type String, and does not return a value.

Escribir la firma de un método que ha llamado enviar un parámetro De tipo String, y no devuelve un valor.

Exercise 1.30

Write the signature for a method named average that has two
parameters, both of type int, and returns an int value.
Escribir la firma de un método llamado media que tiene dos Parámetros, tanto de tipo int, y devuelve un valor int.

  • Exercise 1.31

Look at the book you are reading right now. Is it an object or a class?
If it is a class, name some objects. If it is an object, name its class.

Vea el libro que está leyendo ahora mismo. ¿Es un objeto o una clase? Si se trata de una clase, el nombre de algunos objetos. Si se trata de un objeto, el nombre de su clase.
Es un objeto de la clase medios de información, por ejemplo.

  • Exercise 1.32

Can an object have several different classes? Discuss.
¿un objeto dispone de diferentes clases? Comentar.
llegamos a la conclusión de que un objeto si puede disponer d diferentes clases

lunes, 18 de febrero de 2008

ejercicios en blue j (1.17al 1.27)

  • Exercise 1.17

Create an object of class Student. You will notice that this time you
are prompted not only for a name of the instance, but also for some other parameters.
Fill them in before clicking Ok. (Remember that parameters of type String must be
written in double quotes.)

El ejercicio dice que debemos:
Crear un objeto de la clase Estudiante. Usted se dará cuenta de que esta vez usted Se impulsó no sólo por un nombre de la instancia, pero también para algunos otros parámetros.
Llenarlos antes de hacer clic en Aceptar. (Recuerde que los parámetros de tipo String debe ser Escrito entre comillas dobles.)

Primero abrimos el proyecto LAB- CLASSES

Al dar clic derecho en la clase student elegimos new Student

Nos aparece una ventana en la cual nos pide valores como:

Nombre de la instancia, los datos del nuevo estudiante (nombre, ID).La cual llenamos

Al dar OK se creo el objeto.

  • Exercise 1.18

Create some student objects. Call the getName method on each
object. Explain what is happening.

Ejercicio 1,18
Cree algunos objetos Student. Llame al método getName en cada Objeto. Explique lo que está sucediendo

Creamos mas objetos


después llamamos el metodo getName en cada objeto y nos aparecio una ventana como esta:
Donde aparece el nombre del estudiante, que nosotros le pusimos al llenar los datos.






  • Exercise 1.19

Crear un objeto de clase LabClass. Como indica la firma, Necesita especificar el número máximo de alumnos en la misma clase (un entero).

  • Exercise 1.20

Call the numberOfStudents method of that class. What does it do?

Llame al metodo numberOfStudents de esa clase. ¿Para qué?

  • Exercise 1.21

Look at the signature of the enrollStudent method. You will notice
that the type of the expected parameter is Student. Make sure you have two or three
students and a LabClass object on the object bench, then call the enrollStudent
method of the LabClass object. With the input cursor in the dialog entry field, click
on one of the student objects – this enters the name of the student object into the parameter
field of the enrollStudent method (Figure 1.8). Click Ok, and you have added
the student to the LabClass. Add one or more other students as well.

Vea la firma del metodo enrollStudent . Usted notará Que el tipo de parámetro es la espera de Estudiantes. Asegúrese de tener dos o tres LabClass estudiantes y un objeto sobre el objeto de banco, y luego llamar a la enrollStudent Método de la LabClass objeto. Con el cursor de entrada en el campo de entrada de diálogo, haga clic en uno de los objetos de estudiantes - esto entra en el nombre del estudiante objeto en el parámetro Ámbito de la enrollStudent método (Figura 1.8). Haga clic en Aceptar, y que ha añadido Al estudiante a la LabClass. Añadir una o más estudiantes también.


  • Exercise 1.22

Call the printList method of the LabClass object. You will see a
list of all the students in that class printed to the BlueJ terminal window (Figure 1.9).
Ejercicio 1,22
Llame a la printList método de la LabClass objeto. Verá una Lista de todos los estudiantes en la clase que imprime al BlueJ ventana de Terminal.



Exercise 1.23
Create three students with the following details:


Snow White, student ID: 100234, credits: 24
Lisa Simpson, student ID: 122044, credits: 56
Charlie Brown, student ID: 12003P, credits: 6


Then enter all three into a lab and print a list to the screen.


Crear tres alumnos con los siguientes datos: Blanca Nieves, estudiante ID: 100234, créditos: 24 Lisa Simpson, estudiante ID: 122044, créditos: 56 Charlie Brown, estudiante ID: 12003P, créditos: 6 A continuación, introduzca los tres en un laboratorio y de imprimir una lista en la pantalla.

Exercise 1.24
Use the inspector on a LabClass object to discover what fields it has.
Utilice el inspector en una LabClass objeto de descubrir lo que los campos que tiene

Exercise 1.25
Set the instructor, room, and time for a lab, and print the list to the
terminal window to check that these new details appear.
Conjunto de instructor, habitación, y el tiempo para un laboratorio, y de imprimir la lista a la Ventana de terminal para comprobar que estos nuevos datos aparecen.

Exercise 1.26
In this chapter we have mentioned the data types int and String.
Java has more predefined data types. Find out what they are and what they are used
for. To do this, you can check Appendix B, or look it up in another Java book or in an
online Java language manual. One such manual is at
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/
datatypes.html

Exercise 1.27
What are the types of the following values?
0
"hello"
101
–1 :
True
"33"
3.1415

¿Cuáles son los tipos de los siguientes valores?
"hello" STRING
101 INT
–1 LONG
True BOOLEANO
"33" STRING
3.1415 DOUBLE




sábado, 9 de febrero de 2008

ejercicios en blue j (1.9 al 1.16)

  • Exercise 1.9

Use the shapes from the shapes project to create an image of a
house and a sun, similar to that shown in Figure 1.7. While you are doing this, write down what you have to do to achieve this. Could it be done in different ways?

Utilizamos las formas del proyecto shapes para crear una imagen de un Casa y un sol. Pues nosotros lo creamos de la siguiente manera:

1.Primero creamos un cuadrado y le cambiamos el color (rojo) , así como el tamaño y la posición, utilizando los métodos.

2.-Creamos el triangulo, lo colocamos encima del cuadrado mayor, le cambiamos color (verde) y tamaño.

3.- Creamos otro cuadrado mas pequeño para simular la ventana de la casa (color negro).

4.- Por ultimo creamos un circulo, le cambiamos el color (amarillo), el tamaño y la posición.

Y listo!!!! Por cierto fuimos las primeras en terminarJ.

  • Exercise 1.10

Open the picture project. Create an instance of class Picture and
invoke its draw method. Also, try out the setBlackAndWhite and setColor methods.

Aqui nosotros abrimos el proyecto Picture.
Creamos una instancia de la clase Picture e invocamos el metodo Draw.
Al invocar este método, nos llevamos una sorpresa, ya que automáticamente aparece el dibujo de la casa y el sol como la que habíamos dibujado.

También, probamos los metodos setBlackAndWhite y setColor.

Al invocar el metodo setBlackAndWhite, cambio de color el dibujo a blanco y negro.

  • Exercise 1.11

How do you think the Picture class draws the picture?
¿Cómo cree que la clase picture señala a la imagen?

Pues, yo creo que ya es un método con valores predefinidos.

  • Exercise 1.12

Look at the popup menu of class Picture again. You will see an
option labeled Open Editor. Select it. This will open a text editor displaying the source
code of the class.

Vimos el menú de la clase Picture de nuevo.y vimos una opcion Open editor (para abrir el editor) lo Seleccionamos y nos abrio erl editor de texto que muestra la fuente el Código de la clase, en el vimos que precisamente los valores de los objetos que aparece ya están predefinidos.

  • Exercise 1.13

In the source code of class Picture, find the part that actually
draws the picture. Change it so that the sun will be blue rather than yellow.

En el código fuente de la clase Picture, encontrar la parte que realmente Señala a la imagen. Cambio de forma que el sol será de color azul en lugar de amarillo.
Este es la parte del codigo que señala la imagen:

public class Picture
{
private Square wall;
private Square window;
private Triangle roof;
private Circle sun;
….
}

  • Exercise 1.14

Add a second sun to the picture. To do this, pay attention to the field
definitions close to the top of the class. You will find this code:

private Square wall;
private Square window;
private Triangle roof;
private Circle sun;


You need to add a line here for the second sun. For example:
private Circle sun2;
Then write the appropriate code for creating the second sun.

En este ejercicio nos indica que debemos Añadir un segundo sol a la imagen. Para ello, prestar atención a las Definiciones cerca de la parte superior de la clase. Y Encontramos este código:

private Square wall;
private Square window;
private Triangle roof;
private Circle sun;


en esta parte precisamente debemos agrgar una linea mas de codigo para crear el segundo sol. Por ejemplo:


private Circle sun2;

Luego, escribimos el código apropiado para crear el segundo sol:

Sun2 = new Circle();
sun.changeColor("yellow");
sun.moveHorizontal(180);
sun.moveVertical(-10);
sun.changeSize(60);
sun.makeVisible();
sun.moveVertical(-8);


  • Exercise 1.15

Challenge exercise (This means that this exercise might not be solved quickly. We do not expect everyone to be able to solve this at the moment. If you do – great. If you don’t, then don’t worry. Things will become clearer as you read on. Come back to this exercise later.) Add a sunset to the single-sun version of Picture. That is: make the sun go down slowly. Remember: The circle has a method slowMoveVertical that you can use to do this.

  • Ejercicio 1,15

Challenge ejercicio (Esto significa que este ejercicio podría no ser Resolverse rápidamente. No esperamos que todos los ciudadanos estén en condiciones de resolver este en este momento. Si Lo hace - grandes. Si no lo hace, entonces no se preocupe. Cosas que se hará más patente cuando usted lea. Volver más tarde a este ejercicio.)

Añadir una puesta de sol a sol-la única versión de Imagen. Esto es, hacer que el sol baje lentamente. Recuerde: El círculo tiene un método SlowMoveVertical que puede utilizar para hacer esto.


Para este ejercicio nos costo un poquito de tiempo saber que hacer o cambiar, pero en fin nosotros hicimos lo siguiente:

Utilizamos el metodo moveVertical, escribiendo el codigo varias veces pero con valores distintos, por ejemplo:

sun.moveVertical(-8);
sun.moveVertical(-6);
sun.moveVertical(-4);
sun.moveVertical(-2);
sun.moveVertical(0);
sun.moveVertical(2);
sun.moveVertical(4);
sun.moveVertical(6);
sun.moveVertical(8);
sun.moveVertical(10);
sun.moveVertical(12);
sun.moveVertical(14);

asi el sol bajaria de arriba hacia abajo lentamente.

  • Exercise 1.16

Challenge exercise If you added your sunset to the end of the draw method (so that the sun goes down automatically when the picture is drawn), change this now. We now want the sunset in a separate method, so that we can call draw and see the picture with the sun up, and then call sunset (a separate method!) to make the sun go down.

El ejercicio Challenge nos indica que Si añadimos la puesta de sol hasta el final del codigo del circulo, debemos Señalar un método (de modo que el sol se va automáticamente cuando se dibuja la imagen), Ahora este cambie. Ahora queremos la puesta de sol en un método separado, de modo que podamos llamar Dibujar y ver la imagen con el sol, y luego llame a la puesta del sol (un método separado!).Para hacer bajar el sol.
Pues par hacer esto hicimos lo siguiente:

Primero creamos un nuevo método:


public void puestaSun()

después escribimos el mismo codigo que tiene el metodo DRAW, pero añadimos mas lineas de codigo para que al llamar al metodo aparesca la ouesta del sol, para esto nosotros utilizamos el metodo movbevertical varias veces con valores distintos, quedando el codigo del nuevo metodo de la siguiente manera:


public void puetaSun()
{
wall = new Square();
wall.moveVertical(80);
wall.changeSize(100);
wall.makeVisible();

window = new Square();
window.changeColor("black");
window.moveHorizontal(20);
window.moveVertical(100);
window.makeVisible();

roof = new Triangle();
roof.changeSize(50, 140);
roof.moveHorizontal(60);
roof.moveVertical(70);
roof.makeVisible();

sun = new Circle();
sun.changeColor("yellow");
sun.moveHorizontal(180);
sun.moveVertical(-10);
sun.changeSize(60);
sun.makeVisible();
sun.moveVertical(-8);
sun.moveVertical(-6);
sun.moveVertical(-4);
sun.moveVertical(-2);
sun.moveVertical(0);
sun.moveVertical(2);
sun.moveVertical(4);
sun.moveVertical(6);
sun.moveVertical(8);
sun.moveVertical(10);
sun.moveVertical(12);
sun.moveVertical(14);
sun.moveVertical(16);
sun.moveVertical(18);
sun.moveVertical(20);
sun.moveVertical(22);
sun.moveVertical(24);
sun.moveVertical(26);
sun.moveVertical(28);
sun.moveVertical(30);


}
Con eso terminamos.

miércoles, 6 de febrero de 2008

ejercicios en blue j (1.1 al 1.8)

  • Exercise 1.1
Create another circle. Then create a square.

Este ejercicio dice que debemos Crear otro círculo. A continuación, crear un cuadrado.

Primero Abrimos el proyecto shapes, En este proyecto nosotros tenemos las clases circle, square, triangule y canvas.
Después creamos un circulo dando clic derecho en la clase circle/ new circle. Nos aparece lo siguiente:



Damos clic derecho en el objeto círculo y nos aparece un menú, en el cual elegimos makeVisible y nos apareció el circulo en una nueva ventana.





A continuación creamos de la misma manera el cuadrado, dando clic derecho a la clase square/new square.



  • Exercise 1.2

What happens if you call moveDown twice? Or three times? What
happens if you call makeInvisible twice?


El ejercicio dice :¿Qué sucede si usted llama moveDown dos veces? O tres veces? ¿Qué Pasa si usted llama makeInvisible dos veces?


Pues al llamar moveDown dos veces sucede que …
Y al llamar makeInvisible


  • Exercise 1.3

Try invoking the moveVertical, slowMoveVertical, and changeSize methods before you read on. Find out how you can use moveHorizontal
to move the circle 70 pixels to the left.

En este ejercicio dice que probemos llamando los métodos moveVertical, slowMoveVertical, and changeSize que están en el menú del objeto circulo (al dar clic derecho) y que veamos que pasa; y que Además utilicemos el método moveHorizontal para mover el circulo 70 pixeles a la izquierda

***Al llamar el método moveVertical nos aparece una ventana en la cual podemos poner el numero de pixeles que queremos que el objeto se mueva hacia arriba o hacia abajo (forma vertical)


***Con el método showMoveVertical podemos cambiar

***Con el método changeSize podemos cambiar el tamaño del objeto, hacerlo mas grande o mas pequeño.


***Para mover el circulo 70 pixeles a la izquierda, dimos clic en el método moveHorizontal y le pusimos -70.


  • Exercise 1.4

Invoke the changeColor method on one of your circle objects and
enter the String “red”. This should change the color of the circle. Try other colors.

En este ejercicio Invocamos el método changeColor en uno de los objetos circulo y en la ventana pusimos "red" para cambiar el circulo a color rojo. Este valor debe ir Siempre entre comillas dobles ya que es un dato tipo cadena. Tambien probamos otros colores.

  • Exercise 1.5

This is a very simple example, and not many colors are supported.
See what happens when you specify a color that is not known.

Tambien nos dimos cuenta de que Muchos colores no son compatibles, por ejemplo al poner “pink” deberia cambiar al color rosa, mas sin embargo no lo cambia ya que no es compatible.


  • Exercise 1.6

Invoke the changeColor method, and write the color into the parameter field without the quotes. What happens?

Al Invocar el método changeColor y escribir un color en el parámetro sin las comillas, nos aparece un mensaje de error ya que este valor es incorrecto puesto que es un dato de tipo cadena y éste debe de escribirse entre “comillas”.

Exercise 1.7


Create several circle objects on the object bench. You can do so by
selecting new Circle() from the popup menu of the Circle class. Make them visible,
then move them around on the screen using the ‘move’ methods. Make one big
and yellow, make another one small and green. Try the other shapes too: create a few
triangles and squares. Change their positions, sizes, and colors.


***Aquí creamos varios círculos. Para ello Seleccionamos new Circle () desde el menú de la clase Círculo. Y los hicimos visibles.

***Luego los movimos alrededor de la pantalla usando los métodos que nos sirven para mover.Hicimos uno grande y amarillo, hicimos otro pequeño y verde.

***Y Probamos las otras formas también: creamos unos pocos Triángulos y cuadrados. Cambiamos sus posiciones, tamaños y colores.

Exercise 1.8
Make sure you have several objects on the object bench and then
inspect each of them in turn. Try changing the state of an object (for example by calling the moveLeft method) while the object inspector is open. You should see the values in the object inspector change.

Asegúrese de que tiene varios objetos en el banco de objeto y, a continuación, Inspeccionar cada uno de ellos a su vez. Intente cambiar el estado de un objeto (por ejemplo llamando MoveLeft el método), mientras que el objeto está abierto inspector. Debería ver la Valores en el objeto inspector cambio