Está en la página 1de 9

C.I.F.P. CAMINO DE LA MIRANDA. PALENCIA.

FECHA: viernes, 12 de enero de 2024. EVALUACIÓN:


MODULO: Programación.
GRUPO: Desarrollo de aplicaciones multiplataforma online. NOTA
NOMBRE:

Realizar los siguientes programas en java.


1. Escribir un programa en java para imprimir los 16 primeros números de Pell. Un punto.
En matemáticas, los números de Pell son una secuencia infinita de números enteros. La secuencia
de números de Pell empieza con 0 y 1, y entonces cada número de Pell es la suma del doble del
anterior número de Pell y el número de Pell anterior a éste.

empiezo por cero y uno. #i-1 + 2·#i

el tercero es uno por dos y sumo el anterior luego el nuevo de pell es 2.

número
00 + 2 × 0
01 + 2 × 0 1
02 0 + 2 × 1 2
03 1 + 2 × 2 5
04 2 + 2 × 5 12
05 5 + 2 × 12 29
06 12 + 2 × 29 70
07 29 + 2 × 70 169
08 70 + 2 × 169 408
09 169 + 2 × 408 985
10 408 + 2 × 985 2378
11 985 + 2 × 2378 5741
12 2378 + 2 × 5741 13860
13 5741 + 2 × 13860 33461
14 1386 + 2 × 33461 80782
0
15 3346 + 2 × 80782 194525
1
16 8078 + 2 × 194525
2

import java.util.Scanner;
public class pell {

public static void main(String args[])


{
int n,a=1,b=0,c;
System.out.println("First 20 Pell numbers: ");
for(n=1; n<=20; n++)
{
c= a + 2*b;
System.out.print(c+" ");
a = b;
b = c;
}
}
}

2. Escribe un programa en java que sirva para encontrar los elementos comunes entre dos arrays
de elementos de tipo string. Dos puntos.
String[] array1 = {"Python", "JAVA", "PHP", "C#", "C++", "SQL"};
String[] array2 = {"MySQL", "SQL", "SQLite", "Oracle", "PostgreSQL", "DB2", "JAVA"};

import java.util.*;
public class Exercise14 {
public static void main(String[] args)
{
String[] array1 = {"Python", "JAVA", "PHP", "C#", "C++", "SQL"};

String[] array2 = {"MySQL", "SQL", "SQLite", "Oracle", "PostgreSQL", "DB2", "JAVA"};

System.out.println("Array1 : "+Arrays.toString(array1));
System.out.println("Array2 : "+Arrays.toString(array2));

HashSet<String> set = new HashSet<String>();

for (int i = 0; i < array1.length; i++)


{
for (int j = 0; j < array2.length; j++)
{
if(array1[i].equals(array2[j]))
{
set.add(array1[i]);
}
}
}

System.out.println("Common element : "+(set)); //OUTPUT : [THREE, FOUR, FIVE]


}
}

3. De los dos programas siguientes se puede hacer el 3 o el 4. el tres es para sacar un punto y el 4
es para sacar 2 puntos.
Escribir un programa java que haga uso de un método java para que el programa llame a un
método que nos sirva para contar el número de palabras que hay en una cadena de caracteres.
Entrada: el rápido zorro salta sobre el valiente murciélago palentino.
Salida: el número de palabras son: 9

import java.util.Scanner;
public class Exercise5 {

public static void main(String[] args)


{
Scanner in = new Scanner(System.in);
System.out.print("Input the string: ");
String str = in.nextLine();

System.out.print("Number of words in the string: " + count_Words(str)+"\n");


}

public static int count_Words(String str)


{
int count = 0;
if (!(" ".equals(str.substring(0, 1))) || !(" ".equals(str.substring(str.length() - 1))))
{
for (int i = 0; i < str.length(); i++)
{
if (str.charAt(i) == ' ')
{
count++;
}
}
count = count + 1;

Página 2 de 9
}
return count; // returns 0 if string starts or ends with space " ".
}
}

b - Escribir un método java que sirve para computar el promedio de tres números dados. un
punto.
el primer número es: 3
el segundo número es:3
el tercer número es: 3
la media de los tres números es 3.

import java.util.Scanner;
public class Exercise2 {

public static void main(String[] args)


{
Scanner in = new Scanner(System.in);
System.out.print("Input the first number: ");
double x = in.nextDouble();
System.out.print("Input the second number: ");
double y = in.nextDouble();
System.out.print("Input the third number: ");
double z = in.nextDouble();
System.out.print("The average value is " + average(x, y, z)+"\n" );
}

public static double average(double x, double y, double z)


{
return (x + y + z) / 3;
}
}

4. Hacer un programa que realice la ordenación de la burbuja. Se coge un array de números


enteros y los números que ocupan posiciones adyacentes se intercambias si no están ordenados.
2 puntos.
import java.util.Arrays;
class BubbleSort
{
void bubbleSort(int nums[])
{
int n = nums.length;
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (nums[j] > nums[j+1])
{
// swap temp and nums[i]
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}

// Method to test above


public static void main(String args[])
{
BubbleSort ob = new BubbleSort();
int nums[] = {7, -5, 3, 2, 1, 0, 45};
System.out.println("Original Array:");
System.out.println(Arrays.toString(nums));
ob.bubbleSort(nums);

Página 3 de 9
System.out.println("Sorted Array");
System.out.println(Arrays.toString(nums));
}
}

Escbribir un programa en java que lea el contenido de un fichero línea por línea.

5. Realizar uno de estos dos programas.


Escribir un programa en java que lea el contenido de un fichero y lo guarde en una varaible.
Escribir un programa en java que almacene el contenido de un fichero línea por línea en un array.

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

public class Exercise14 {

public static void main(String a[]){


StringBuilder sb = new StringBuilder();
String strLine = "";
List<String> list = new ArrayList<String>();
try {
BufferedReader br = new BufferedReader(new FileReader("/home/students/test.txt"));
while (strLine != null)
{
strLine = br.readLine();
sb.append(strLine);
sb.append(System.lineSeparator());
strLine = br.readLine();
if (strLine==null)
break;
list.add(strLine);
}
System.out.println(Arrays.toString(list.toArray()));
br.close();
} catch (FileNotFoundException e) {
System.err.println("File not found");
} catch (IOException e) {
System.err.println("Unable to read the file.");
}
}
}

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;

public class exercise13 {

public static void main(String a[]){


StringBuilder sb = new StringBuilder();
String strLine = "";
String str_data = "";
try {
BufferedReader br = new BufferedReader(new FileReader("/home/students/test.txt"));
while (strLine != null)
{
if (strLine == null)
break;

Página 4 de 9
str_data += strLine;
strLine = br.readLine();

}
System.out.println(str_data);
br.close();
} catch (FileNotFoundException e) {
System.err.println("File not found");
} catch (IOException e) {
System.err.println("Unable to read the file.");
}
}
}

6. Ejercicio.

Este ejercicio es una variación del ejercicio que se puso en la primera evaluación. En el
cual se expone la creación herencia, polimorfismo de las clases.
Hay que definir una clase abstracta shape que tiene dos métodos área y perímetro.

Hay que definir la clase rectángulo circulo y triangulo con sus atributos de clase base y altura, radio, tres lados.
Después tengo que escribir el constructor de la clase. De cada clase
Después tengo que escribir el método para el calculo del área de la forma ,….
Después tengo que escribir el método para el cálculo del perímetro de la forma rectángulo, circulo, trinagulo.

En la clase circulo el número pi está definido como una variable final statica.

Hay que definir la clase circulo con su atributo principal que es el radio.
Después el número pi está definido como una variable final static.
Después escribo el constructor de la clase.
Después tengo que escribir los métodos de la clase que son el que calcula el área del circulo y el que calcula el perímetro de la
circunferencia (pleonasmo)

Estas tres formas derivan de la clase shape y redefinen los respectivos métodos abstractos definidos en la clase shape.

Luego hay que escribir una programa llamado testShape que sirva para construir un rectángulo de base 7 y de altura 5. Un
circulo/circunferencia de radio 5 y un triángulo cuyos lados son de 5, 3, y 4. Y que muestr el área y el perímetro de cada uno de los
objetos creados.

Hay que definir una clase abstracta llamada cítrico que tiene dos métodos llamados pelar
y exprimir.

Hay que definir la clase pomelo, naranja y mandarina, color, tamaño, acidez.
después tengo que escribir el constructor de la clase de cada clase.
Después tengo que escribir el método para pelar la naranja y el pomelo y la mandarina,
los cítricos se pelan con cuchillo, pero en el caso de la mandarina el método esta
redefinido, o bien overide, y lo pelamos con la mano.
el método pelar puede tener argumento mano o bien cuchillo.
Después tengo que escribir el método para ingerir cada uno de los diferentes citricos.
cada uno de los diferentes cítricos.

shape.java
public abstract class Shape {
public abstract double area();
public abstract double perimeter();
}

Rectangle.java
public class Rectangle extends Shape {
private final double width, length; //sides

public Rectangle() {
this(1,1);
}
public Rectangle(double width, double length) {

Página 5 de 9
this.width = width;
this.length = length;
}

@Override
public double area() {
// A = w * l
return width * length;
}

@Override
public double perimeter() {
// P = 2(w + l)
return 2 * (width + length);
}

Circle.java

public class Circle extends Shape {


private final double radius;
final double pi = Math.PI;

public Circle() {
this(1);
}
public Circle(double radius) {
this.radius = radius;
}

@Override
public double area() {
// A = π r^2
return pi * Math.pow(radius, 2);
}

public double perimeter() {


// P = 2πr
return 2 * pi * radius;
}
}

Triangle.java
public class Triangle extends Shape {
private final double a, b, c; // sides

public Triangle() {
this(1,1,1);
}
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}

@Override
public double area() {
// Heron's formula:
// A = SquareRoot(s * (s - a) * (s - b) * (s - c))
// where s = (a + b + c) / 2, or 1/2 of the perimeter of the triangle

Página 6 de 9
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}

@Override
public double perimeter() {
// P = a + b + c
return a + b + c;
}
}

shape.java
/*

public abstract class Shape {


public abstract double area();
public abstract double perimeter();
}

Implementa las clases circulo un triángulo, rectángulo las cuales derivan de la clase
forma.*/

public abstract class Shape {


public abstract double area();
public abstract double perimeter();
}
Rectangle.java

public class Rectangle extends Shape {


private final double width, length; //sides

public Rectangle() {
this(1,1);
}
public Rectangle(double width, double length) {
this.width = width;
this.length = length;
}

@Override
public double area() {
// A = w * l
return width * length;
}

@Override
public double perimeter() {
// P = 2(w + l)
return 2 * (width + length);
}

}
Circle.java

public class Circle extends Shape {

Página 7 de 9
private final double radius;
final double pi = Math.PI;

public Circle() {
this(1);
}
public Circle(double radius) {
this.radius = radius;
}

@Override
public double area() {
// A = π r^2
return pi * Math.pow(radius, 2);
}

public double perimeter() {


// P = 2πr
return 2 * pi * radius;
}
}
Triangle.java

public class Triangle extends Shape {


private final double a, b, c; // sides

public Triangle() {
this(1,1,1);
}
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}

@Override
public double area() {
// Heron's formula:
// A = SquareRoot(s * (s - a) * (s - b) * (s - c))
// where s = (a + b + c) / 2, or 1/2 of the perimeter of the triangle
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}

@Override
public double perimeter() {
// P = a + b + c
return a + b + c;
}
}

And this is what I used to test it all, which it all works as intended:

TestShape.java

public class TestShape {


public static void main(String[] args) {

Página 8 de 9
// Rectangle test
double width = 5, length = 7;
Shape rectangle = new Rectangle(width, length);
System.out.println("Rectangle width: " + width + " and length: " + length
+ "\nResulting area: " + rectangle.area()
+ "\nResulting perimeter: " + rectangle.perimeter() + "\n");

// Circle test
double radius = 5;
Shape circle = new Circle(radius);
System.out.println("Circle radius: " + radius
+ "\nResulting Area: " + circle.area()
+ "\nResulting Perimeter: " + circle.perimeter() + "\n");

// Triangle test
double a = 5, b = 3, c = 4;
Shape triangle = new Triangle(a,b,c);
System.out.println("Triangle sides lengths: " + a + ", " + b + ", " + c
+ "\nResulting Area: " + triangle.area()
+ "\nResulting Perimeter: " + triangle.perimeter() + "\n");
}
}

Página 9 de 9

También podría gustarte