Sunteți pe pagina 1din 7

Programación

Avanzada
Edición 2018-2019

Profesor: Rafael Berenguer Vidal

Tema 2 – Ejercicios
Alumno-1: Baly,Diaz,Alvaro 48847847X
Alumno-2: Daoudi, Hassouni, Mohammed 24427707M
Grado en Ingeniería en Sistemas de Telecomunicación
Programación Avanzada

Realizar y entregar en este documento las soluciones de los siguientes ejercicios del
Tema 02:

Ejercicio 3-8
Ejercicio 3-9
Ejercicio 3-10
Ejercicio 3-13
Ejercicio 3-14

EJERCICIO 3-8

1. Modificar el programa del ejercicio anterior para permitir la funcionalidad de entrada y salida
como se muestra en este apartado.
2. ¿Se ejecuta correctamente? Si, el programa al ejecutarlo te deja el acceso de entrada y salida
de datos.
3. ¿Funciona con cualquier tipo de texto de entrada? Si, funciona con cualquier tipo de texto.

4. Modificar el programa anterior para que sea posible introducir hasta tres cadenas de caracteres
(nombre, edad y e-mail). ¿Funciona como se espera? Si ,el programa recopila la información
pedida y luego la muestra en pantalla.

Código:
package tema2;
import java.io.*;

public class eje38 {


public static void main(String[] args) throws IOException
{ InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Enter your name: ");
String name = input.readLine();
System.out.print("Enter your age: ");
String age = input.readLine();
System.out.print("Enter your email: ");
String email = input.readLine();
System.out.println("Hello, " + name + "!");
System.out.println("your age is , " + age );
System.out.println("and your email is " + email);
}

PAV_Tema02 -2- © 2019 Rafael Berenguer Vidal


Grado en Ingeniería en Sistemas de Telecomunicación
Programación Avanzada

EJERCICIO 3-9

1. Escribir y compilar el programa. Ejecutarlo por pantalla. Probar su funcionamiento con la edad
del probador.

2. ¿Se ejecuta correctamente? No ya que da una fecha como si estuviéramos en 2007.Dberiamos


cambiar la operación a int year = 2019 - age;

3. ¿Qué se produce si introducimos un número negativo? ¿Y si probamos con un número no


entero? ¿Y si introducimos algún carácter? Al introducir un numero negativo se suma dicho
numero al año, es decir calcula el año en que nacerás.
Si introducimos un numero con coma o un carácter el programa dará error.

4. ¿Funcionará el programa con número enteros positivos de la edad el año que viene? En caso
negativo, ¿qué deberíamos hacer para solucionarlo? para calcular la edad del año que viene
deberíamos cambiar la operación a un año más es decir int year = 2020 - age;

Código:
package tema2;
import java.io.*;
public class eje39 {

public static void main(String[] args) throws IOException


{ InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Enter your age: ");
String text = input.readLine();
int age = new Integer(text).intValue();
System.out.println("You are " + age + " years old, now,");
int year = 2019 - age;
System.out.println("so you were probably born in " + year);
}
}

PAV_Tema02 -3- © 2019 Rafael Berenguer Vidal


Grado en Ingeniería en Sistemas de Telecomunicación
Programación Avanzada

EJERCICIO 3-10

1. Escribir y compilar el programa. Ejecutarlo por pantalla. Probar su funcionamiento con un valor
entero y uno en coma flotante.

2. ¿Se ejecuta correctamente?


Si ,el programa funciona tanto para números reales como números con coma flotante.

3. ¿Qué se produce si introducimos un número negativo? ¿Y si introducimos algún carácter?


Al introducir un numero negativo si se hace la operación ya que r esta al cuadrado lo cual nos
daría el mismo resulta que un número positivo.
Al introducir un carácter nos da error.

Código:
package tema2;
import java.io.*;

public class eje310 {

public static void main(String[] args) throws Exception


{ InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Enter the radius: ");
String text = input.readLine();
Double x = new Double(text);
double r = x.doubleValue();
System.out.println("The area of a circle of radius " + r);
double area = Math.PI*r*r;
System.out.println(" is " + area);
}

PAV_Tema02 -4- © 2019 Rafael Berenguer Vidal


Grado en Ingeniería en Sistemas de Telecomunicación
Programación Avanzada

EJERCICIO 3-13

1. Escribir y compilar el programa. Ejecutarlo por pantalla.  Determinar cuál es el resultado


del programa.
2. ¿Qué significa el siguiente valor en los operadores de incremento y decremento para la
variable c? ¿Significa lo mismo para la variable j?
3. En las operaciones de incremento aplicadas a j, ¿se produce resultado inesperado? En
caso afirmativo, ¿por qué?
4. ¿Tenemos una situación similar en los operadores de asignación aplicados a k?

Solución:
Estos son los resultados que nos da el programa.

En el caso de C los operadores de incremento y decremento, van aumentando de


letra en letra, y cuando se acaben las letras a los caracteres que le siguen; y en el caso de que
hubiera decremento, las letras que nos saldrían serían Q P etc… En cambio en J , al referirnos a
números, el incremento y decremento es de números.

En el caso de J al declarar la variable tipo byte (esta va desde el -128 al 127 ) y como vemos
primero disminuimos, pasa al 126 , luego aumentamos pasa al 127 y al limitarse el byte pues
da la vuelta y pasa al -128 que es como el principio. Se ha producido un caso inesperado que
ya lo he explicado anteriormente.

Con respecto a K pasa lo mismo las variables de tipo short van -32768 a 32767 , que es el
máximo valor , y en el programa restamos 4 y le sumamos 5 , y al sumarle 5 pues se nos sale
del rango y da la vuelta.
Codigo:

public class IncrementDecrement {

PAV_Tema02 -5- © 2019 Rafael Berenguer Vidal


Grado en Ingeniería en Sistemas de Telecomunicación
Programación Avanzada

public static void main(String[] args) {


char c = 'R';
byte j = 127;
short k = 32767;
System.out.println("c = " + c);
++c;
System.out.println("c = " + c);
++c;
System.out.println("c = " + c);
System.out.println("j = " + j);
--j;
System.out.println("j = " + j);
++j;
System.out.println("j = " + j);
++j;
System.out.println("j = " + j);
System.out.println("k = " + k);
k -= 4;
System.out.println("k = " + k);
k += 5;
System.out.println("k = " + k);
}
}

EJERCICIO 3-14

1. Escribir y compilar el programa. Ejecutarlo.


2. Determinar cuál es el resultado del programa.
3. ¿Funciona como se espera?
4. ¿Qué función tiene el operador / y el operador %?

Solucion:
Nos da este resultado:
m = 25
n = 7
m + n = 32
m - n = 18
m * n = 175
m / n = 3
m % n = 4

PAV_Tema02 -6- © 2019 Rafael Berenguer Vidal


Grado en Ingeniería en Sistemas de Telecomunicación
Programación Avanzada

Código:
public class IntegerArithmetic
{ public static void main(String[] args)
{ int m = 25;
int n = 7;
System.out.println("m = " + m);
System.out.println("n = " + n);
int sum = m + n;
System.out.println("m + n = " + sum);
int difference = m - n;
System.out.println("m - n = " + difference);
int product = m * n;
System.out.println("m * n = " + product);
int quotient = m / n;
System.out.println("m / n = " + quotient);
int remainder = m % n;
System.out.println("m % n = " + remainder);
}
}

PAV_Tema02 -7- © 2019 Rafael Berenguer Vidal

S-ar putea să vă placă și