SlideShare una empresa de Scribd logo
1 de 36
COLEGIO DE ESTUDIOS CIENTÍFICOS Y TECNOLÓGICOS DEL ESTADO DE
MÉXICO
TÉCNICO EN PROGRAMACIÓN
DESARROLLA APLICACIONES MÓVILES
CUARTO SEMESTRE
Alumna: Yoselin Viridiana Romo Rodríguez
Grupo: 403
4° Semestre
Practicas
Figuras Rectangulares
Descripción
Tenemos un conjunto de cuadrados y rectángulos cuyos medidas de sus diferentes lados son cantidades enteras y
mayores a 1 y , si tenemos el área de la figura, es posible que sea un cuadrado o un rectángulo.
Problema
Construye un programa que nos ayude a resolver este problema (dada el área de una figura determinar si es cuadrado o
rectángulo), la lectura la debes hacer de la entrada estándar (teclado) y la escritura se debe hacer a la salida estándar
(pantalla).
Entrada
La primera línea contendrá un número "N" entre 1 y 1,000,000,000, representando el área.
Salida
Una sola línea indicando la figura que se puede formar, si el área puede formar un cuadrado debes imprimir la palabra
“cuadrado” si el área puede formar un rectángulo, debes imprimir la palabra “rectangulo” y si el área puede formar ambos
debe imprimir la palabra “ambos” (note no hay acentos ni mayusculas), en caso de que no se pueda formar un cuadrado
o rectángulo escriba "ninguno"
Ejempl
os
Entrada
Salida
9 cuadrad
o
6 rectang
ulo
36 ambos
Código
import java.util.*;
public class Figuras {
public static void main(String[] args) {
Scanner Yo=new Scanner(System.in);
System.out.println("Valor");
int n=Yo.nextInt();
System.out.println(ChecaQueEs(n));
}
public static String ChecaQueEs(int n){
String Resultado="";
int c=0;
int raiz=(int) Math.sqrt(n);
for(int i=2;i<n;i++){
if(n%i==0){
c++;
}
}
if((raiz*raiz)==n && c>=2){
Resultado="Ambos";
}else if((raiz*raiz)!=n && c>=2){
Resultado="Rectangulo";
}else if((raiz*raiz)==n){
Resultado="Cuadrado";
} else{
Resultado="Ninguno";
}
return Resultado;
}
}
Pruebas de Escritorio
Sumando
Problema
Se tiene un matriz cuadrada de tamaño “n” y se requiere saber cuánto suma cada columna.
Entrada
En el primer renglón un valor “n” indicando el tamaño de la matriz donde 1<=n<=1000 y en los siguientes “n”
renglones habrán “n” valores correspondientes los valores de cada renglón de la matriz donde 1<=V<= 1000.
Salida
Un renglón con “n” cantidades, cada cantidad representa la sumatoria de cada columna de la matriz, el primer valor
corresponde a la columna 1, el segundo a la columna 2 ,... y el último valor corresponde a la columna “n”.
Consideraciones
Tu programa se evaluará con varios casos de prueba.
Ejempl
os
Entrada
Salida Descripció
n
3
1 2 3
3 5 6
7 8 9
11 15 18 Case #1:
4
3 2 4 3
2 3 3 2
7 8 5 3
1 1 1 1
13 14 13
9
Case #2:
Código
import java.util.*;
public class sumando{
public static void main(String[]args){
Scanner in=new Scanner(System.in);
int num=in.nextInt();
int numeros[][]= new int[num][num];
int suma[]=new int[num];
int sumafila[]=new int[num];
for(int i=0;i<num;i++){
for(int k=0;k<num;k++){
numeros[i][k]=in.nextInt();
}
}
imprimir(numeros,num);
obsuma(numeros,num,suma,sumafila);
}
public static void imprimir(int [][] numeros,int n){
for(int i=0;i<n;i++){
for(int k=0;k<n;k++){
System.out.print("numeros["+i+"]["+k+"]=>"+numeros[i][k]+" ");
}System.out.println(" ");
}
}
public static void obsuma(int [][] numeros,int n,int [] suma,int []sumafila){
System.out.println("nnSuma de columnas:n");
for(int i=0;i<n;i++){
for(int k=0;k<n;k++){
suma[k]+=numeros[i][k];
}
}
for(int j=0;j<n;j++){
System.out.println("Columna #"+(j+1)+" "+suma[j]+" ");
}
System.out.println("nn");
System.out.println("Suma de filas:n");
for(int i=0;i<n;i++){
for(int k=0;k<n;k++){
sumafila[i]+=numeros[i][k];
}
}
for(int l=0;l<n;l++){
System.out.println("Fila #"+(l+1)+" "+sumafila[l]+" ");
}
}
}
Pruebas de Escritorio
Frecuencias
Descripción
Cierta escuela realiza cuestionarios para conocer al profesor favorito de los alumnos. Y lo realiza de la siguiente
manera; a cada profesor se le asigna un número posteriormente a cada alumno se le pregunta cual es su profesor
favorito, posteriormente, se calcula una tabla de frecuencia indicando en cada profesor cual es la cantidad de
alumnos que lo eligieron.
Problema
Escribe un programa que ayude a la escuela a escribir la tabla de frecuencias.
Entrada
En la primera línea el número “P” que indica la cantidad de profesores que tiene la escuela donde 1<=P <= 100 y el
número “n” que indica la cantidad de alumnos en la escuela donde 1<=n<=1000. en la siguiente línea habrán “n”
números que representan el número de profesor favorito “F” de cada alumno donde 1<=F<=P.
Salida
Deberá haber “P” cantidad de líneas y en cada una dos números separados por un guión, el primer número será el
número del profesor y el segundo número la cantidad de alumnos que lo eligieron.
Consideraciones
Tu programa se evaluará con varios casos de prueba.
Ejemplo
s Entrada
Salida Descripción
4 10
1 1 2 1 1
2 3 2 3 4
1-4
2-3
3-2
4-1
Case #1:
4 8
1 2 4 1 2
4 1 2
1-3
2-3
3-0
4-2
Case #2:
Código
import java.util.*;
public class Frecuencias{
public static void main (String [] args){
Scanner in=new Scanner (System.in);
int np=in.nextInt();
int npa[]=new int [np];
int na=in.nextInt();
int votos[]=new int[na];
for(int i=0;i<na;i++){
votos[i]=in.nextInt();
}
System.out.println(" ");
for(int a=0;a<na;a++){
npa[votos[a]-1]+=1;
}
for(int J=0;J<np;J++){
System.out.print(" Profesor"+(J+1)+"=>"+npa[J]);
}
}
}
Pruebas de Escritorio
Cuadrado
Descripción.
A continuación te mostramos un giro de 90 grados a la derecha de una matriz de 2 por 2 cuyos valores son:
Matriz original
1 2
3 4
Matriz Girada 90° a la derecha
3 1
4 2
Problema
Dada una matriz cuadrada de tamaño “n” , debes hacer que tu programa la gire 90 grados a la derecha.
Entrada
En la primera línea el valor “n” indicando el tamaño de la matriz donde 1<=n<=1000, en los siguientes “n” renglones
habrán “n” valores de la matriz separados por un espacio.
Salida
“n” renglones cada renglón con "n" valores mostrando la matriz girada 90 grados.
Consideraciones Tu programa se evaluará con varios casos de prueba
Ejem
plo
Entrada
Salida Descrip
ción
2
1 2
3 4
3 1
4 2
Case #1:
3
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
Case #2:
Código
import java.util.*;
public class girocuadro{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
System.out.println("Cantidad");
int numero=datos.nextInt();
int cuadroarray[][]=new int[100][100];
System.out.println("Numeros");
for(int dimension1=0;dimension1<numero;dimension1++){
for(int dimension2 =0;dimension2 <numero;dimension2 ++){
cuadroarray[dimension1][dimension2]=datos.nextInt();
}
}
System.out.println("nCuadro originaln");
for(int dimension1=0;dimension1<numero;dimension1++){
for(int dimension2 =0;dimension2<numero;dimension2 ++){
System.out.print("["+dimension1+"]["+dimension2+"]"+cuadroarray[dimension1][dimension2]+" ");
}System.out.println(" ");
}
System.out.println("n");
System.out.println("Cuadro con giro de 90° a la derechan");
int contd2=0;
for (int vert=0;vert<numero ;vert++ ) {//repite la posicion inicial de la dimension 1
for(int dimension1=numero;dimension1>=0;dimension1--){//resta una posicion a la dimension
1 e imprime de forma horizontal junto con la dimension 2
for(int horiz=0;horiz<numero;horiz++){//imprime de forma horizontal
dimension1--;
for(int dimension2=contd2;dimension2<=contd2;dimension2++){//repite la
misma posicion las veces del contador horiz
System.out.print("["+dimension1+"]["+dimension2+"]"+cuadroarray[dimension1][dimension2]+" ");
}
}
contd2++;
}
System.out.println(" ");
}
}
}
Pruebas de Escritorio
Bardeando
Descripción
Se tiene un conjunto de “n” trozos de malla ciclónica y un terreno de perímetro “P” el terreno es cuadrado.
Problema
Debes escribir un programa que nos diga cuántos metros de malla ciclonica nos hace falta para poder bardear el
terreno.
Entrada
En la primera línea dos números “P” y "n", donde "P" representa el perímetro del terreno con un rango de valores
de 1<=P <= 2,000,000,000 y “n” representa la cantidad de trozos de malla ciclónica que tenemos, donde
1<=n<=100,000. En las siguientes “n” líneas es el tamaño de cada trozo de malla que tenemos. La suma de todos
los trozos siempre será menor a 2147483648.
Salida
Un único valor entero indicando los metros de malla que nos hacen falta para bardear el terreno.
Ejem
plos
Entrada
Salida Descrip
ción
100 3
25
20
10
45 Caso #1
100 2
1000
2000
0 Caso #2
21 1
20
1 Caso #3
Código
import java.util.*;
public class Bardeando{
public static void main(String [] args){
Scanner Yo=new Scanner(System.in);
System.out.println("Perimetro del Terreno");
int Per=Yo.nextInt();
System.out.println("Cantidad de trozos de malla");
int Can=Yo.nextInt();
int [] Trozos=new int[Can];
for(int a=0;a<Can;a++){
System.out.println("Longitud");
Trozos[a]=Yo.nextInt();
}
Proceso(Trozos, Per);
}
public static void Proceso(int [] t, int p){
int Suma=0;
for(int Contador=0;Contador< t.length;Contador++){
Suma+=t[Contador];
}
int Falta=p-Suma;
if(Falta>0){
System.out.println("Los metros que te faltan de malla son: "+Falta);
}
else{
System.out.println("Los metros que te faltan de malla son: 0");
}
}
}
Pruebas de Escritorio
Matriz Cuadrada
Descripción
Descripción Tenemos una matriz de “R” renglones por “C” columnas, donde podemos enumerar las casillas de la
siguiente manera, la casilla 1,1 (renglón 1, columna 1), la casilla 1,2 (renglón 1, columna 2) y la casilla 1,3 (renglón
1, columna 3 ) serían respectivamente las posiciones 1, 2 y 3 como se puede ver en la figura, donde la casilla 1,1
es la esquina superior izquierda y la celda “R” x “C” es la celda ubicada en la esquina inferior derecha.
En esta cuadrícula, podemos hacer preguntas de la forma, ¿que número está en la casilla 1,2 ? y su respuesta
sería 2 otro ejemplo ¿qué número está en la celda 2,3? y su respuesta es 6.
Problema
Escribe un programa que dada las dimensiones de la cuadrícula responda una cantidad “P” de preguntas.
Entrada
En la primera línea dos valores indicando las dimensiones de la cuadrícula separados por un espacio „R‟ cantidad
de renglones donde 1<=R<=10000 y “C” cantidad de columnas donde 1<=C<=10000, En la tercera línea el número
“P” cantidad de preguntas donde 1<=P<=10,000 y en las siguientes “P” líneas un par de coordenadas de la forma r,
c, representando las coordenadas de cada pregunta en donde “r” indica el renglón 1<=r<=R y “c” la columna
1<=c<=C por cada pregunta.
Salida
Por cada pregunta debe escribir en cada línea el número de casilla que le corresponde.
Ejem
plos
Entrada
Salida Descrip
ción
3 3
3
1 1
2 2
3 3
1 5 9 Caso #1
3 1000
2
2 1
2 10
1001
2010
Caso #
Código
import java.util.*;
public class matrizcuadrada{
public static void main(String [] args){
Scanner in=new Scanner (System.in);
int fil=in.nextInt();
int colum=in.nextInt();
int num=in.nextInt();
int arreglox[][]=new int[num][2];
int pez[]=new int [num];
for(int k=0;k<num;k++){
for(int i=0;i<2;i++){
arreglox [k][i]=in.nextInt();
for(int z=0;z<num;z++){
pez [z]=((arreglox[z][0]-1)*colum)+arreglox[z][i];
}
}
}
for(int m=0;m<num;m++){
System.out.println(""+pez[m]);
}
}
}
Pruebas de Escritorio
Suma Triple
Descripción
Se tiene la siguiente función f(n), formada por la suma de los tres números anteriores.
f(1)=1
f(2)=1
f(3)=2
f(4)=4
f(5)=7
f(6)=13
f(7)=24
f(8)=44
f(9)=81
Note que f(1) = 1 ya que no tiene números anteriores, f(2)=1 ya que es el único número anterior, f(3) tiene solo 2
números anteriores y a partir de f(4) se da la suma de los tres números anteriores.
Problema
Escribe un programa que dado el valor de “n” escriba la serie correspondiente.
Entrada
Un solo renglón conteniendo el valor “n”donde 1<=n<=64.
Salida
Una sola
línea
mostrando la
serie desde el
número
menor hasta
el mayor cada
número debe
estar
separado por
un espacio.
Entrada
Salida Descripción
4 1 1 2 4 Caso #1
6 1 1 2 4 7 13 Caso #2
9 1 1 2 4 7 13
24 44 81
Caso #3
Código
import java.util.*;
public class triple{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
int numero[]=new int[100];
int suma[]=new int[100];
numero[1]=1;
int n=datos.nextInt();
System.out.print("n");
for (int sumar=1;sumar<=n ;sumar++ ) {
numero[sumar+3]=numero[sumar]+numero[sumar+1]+numero[sumar+2];
System.out.print("["+sumar+"] "+numero[sumar+3]+" ");
}System.out.print("n");
}}
Pruebas de Escritorio
Triángulo
Descripción
Un triángulo es formado por 3 segmentos (con valor entero) de recta unidos por sus extremos, sin embargo no
todas las combinaciones de 3 segmentos pueden formar un triángulo.
Problema
Escriba un programa que dados 3 números que representan 3 segmentos de rectas, diga si pueden formar un
triángulo rectángulo.
Entrada
En la primera línea 3 números “a”, “b” y “c” representando las longitudes de 3 segmentos de recta en un rango de
entre 1 y 32,000.
Salida
Una sola línea en donde si es posible generar un triángulo rectángulo debes imprimir la hipotenusa, el cateto mayor
y el cateto menor y si no es posible formar un triángulo rectángulo imprime la palabra “imposible”.
Consideraciones
Tu programa se evaluará con varios casos de prueba, para cada caso de prueba (entrada)
Ejemp
los
Entrada
Salida Descripci
ón
1 1 1 imposibl
e
Caso #1
3 4 5 5 4 3 Caso #2
Código
import java.lang.Math;
import java.util.*;
public class triangulo{
public static void main(String[] args) {
Scanner b1= new Scanner (System.in);
Scanner b2= new Scanner (System.in);
Scanner b3= new Scanner (System.in);
int a,b,c,ax,bx,cx,d,e,f;
Double raiz;
System.out.println("Ingresa los numeros");
a=b1.nextInt();
b=b2.nextInt();
c=b3.nextInt();
ax=a*a;
bx=b*b;
cx=c*c;
if (a>=b){
if(a>=c){
if(b>=c){
System.out.println("n N:"+a+"n N:"+b+"n N:"+c);
d=bx+cx;
raiz=Math.sqrt(d);
if(raiz==a){
System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+a+"n Cateto Adyacente "+b+"n Cateto
Opuesto "+c);
}
else{
System.out.println("Es imposible");
}
}
else{
System.out.println("n N:"+a+"n N:"+c+"n N:"+b);
d=cx+bx;
raiz=Math.sqrt(d);
if(raiz==a){
System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+a+"n Cateto Adyacente "+c+"n Cateto
Opuesto "+b);
}
else{
System.out.println("Es imposible");
}
}
}
else{
System.out.println("n N:"+c+"n N:"+a+"n N:"+b);
d=ax+bx;
raiz=Math.sqrt(d);
if(raiz==c){
System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+c+"n Cateto Adyacente "+a+"n Cateto
Opuesto "+b);
}
else{
System.out.println("Es imposible");
}
}
}
else {
if(b>=c){
if(c>=a){
System.out.println("n N:"+b+"n N:"+c+"n N:"+a);
d=ax+cx;
raiz=Math.sqrt(d);
if(raiz==b){
System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+b+"n Cateto Adyacente "+c+"n Cateto
Opuesto "+a);
}
else{
System.out.println("Es imposible");
}
}
else{
System.out.println("n N:"+b+"n N:"+a+"n N:"+c);
d=ax+cx;
raiz=Math.sqrt(d);
if(raiz==b){
System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+b+"n Cateto Adyacente "+a+"n Cateto
Opuesto "+c);
}
else{
System.out.println("Es imposible");
}
}
}
else{
System.out.println("n N:"+c+"n N:"+b+"n N:"+a);
d=ax+bx;
raiz=Math.sqrt(d);
if(raiz==c){
System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+c+"n Cateto Adyacente "+b+"n Cateto
Opuesto "+a);
}
else{
System.out.println("Es imposible");
}
}
}
}
}Pruebas de Escritorio
Romanos
Descripción
Escribe un programa que lea un entero entre 1 y 100 e imprima su equivalencia en números romanos.
Entrada
Una línea con el entero a convertir.
Salida
la conversión a números romanos (en mayúsculas).
Ejemplos
Entrada
Salida Descripción
48 Salida
XLVIII
Las equivalencias de
números arábigos a
romanos son:
I 1
V 5
X 10
L 50
C 100
Código
import java.util.*;
public class romanos{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
int arabigo=datos.nextInt();
int miles=arabigo/1000;
int res1000=arabigo%1000;
for (int impresor=0;impresor<miles ;impresor++ ) {
System.out.print("M ");
}
int novecientos=res1000/900;
int res900=res1000%900;
if(res1000>=900){
System.out.print("CM ");
}
int quinientos=res1000/500;
int res500=res1000%500;
if (res1000>=500 && res1000<900) {
System.out.print("D ");
}
int cuatrocientos=res500/400;
int res400=res500%400;
if(res500>=400 && res500<500 && novecientos==0){
System.out.print("CD ");
}
int centenas=res500/100;
int res100=res500%100;
if(res500<400){
for (int impresor=0;impresor<centenas ;impresor++ ) {
System.out.print("C ");
}
}
int noventas=res100/90;
int res90=res100%90;
if(res100>=90){
System.out.print("XC ");
}
int cincuentas=res100/50;
int res50=res100%50;
if (res100>=50 && res100<90) {
System.out.print("L ");
}
int cuarentas=res50/40;
int res40=res50%40;
if(res50>=40 && res50<50 && noventas==0){
System.out.print("XL ");
}
int decenas=res50/10;
int res10=res50%10;
if(res50<40){
for (int impresor=0;impresor<decenas ;impresor++ ) {
System.out.print("X ");
}
}
int nueves=res10/9;
int res9=res10/9;
if(res10==9){
System.out.print("IX ");
}
int cincos=res10/5;
int res5=res10%5;
if(res10>=5 && res10<9){
System.out.print("V ");
}
int cuatros=res5/4;
if(res5==4 && nueves==0){
System.out.print("IV ");
}
int unidades=res5/1;
if (res5>=1 && res5<4) {
for (int impresor=0;impresor<unidades ;impresor++ ) {
System.out.print("I ");
}
}
}
}
Pruebas de Escritorio
Intervalo
Descripción
Escribe un programa que lea tres enteros a, b, c y determine si c se encuentra en el intervalo [a,b], a la izquierda o
a la derecha de dicho intervalo.
Entrada
Una línea con los enteros a,b,c separados por un espacio
Salida
Imprime INTERVALO, IZQUIERDA o DERECHA según sea el caso.
Ejemplos Entrada Salida Descripción
3 10 6 Salida
INTERVALO
6 se encuentra contenido
en el intervalo desde 3
hasta 10
Código
import java.util.*;
public class intervalo{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
int a=datos.nextInt();
int b=datos.nextInt();
int c=datos.nextInt();
System.out.print("n");
if (c>=a && c<=b) {
System.out.print("INTERVALO");
}
if (c>b) {
System.out.print(c+" esta a la derecha del intervalo "+a+" a "+b);
}
if (c<a) {
System.out.print(c+" esta a la izquierda del intervalo "+a+" a "+b);
}
}
}
Pruebas de Escritorio
Sedes
Descripción
Ahora que estás en la preselección de Veracruz, debes prepararte mucho para ser seleccionado. Como parte de
este proceso, se deben realizar algunos entrenamientos y de preferencia en varias sedes del estado, por ejemplo
Coatzacoalcos, Veracruz, Xalapa, Tuxpan, etc. Puesto que a ti te gusta viajar mucho, quieres asistir a las dos
sedes que estén más lejos entre sí.
Suponiendo que todas las sedes se encontraran en línea recta, una tras de otra, identifica, cuál es la distancia más
larga que deberías recorrer entre dos sedes.
Entrada
En la primera línea el número n, que indica la cantidad de sedes para este año. 1<=n<=100000. En las siguientes n
líneas un número indicando la distancia de esa sede con respecto a tu ubicación actual entre 0<=d <=5000. Supón
que tu ubicación actual es el inicio de la línea recta, por lo que todas las distancias serán positivas. Siempre te
encuentras en el km 0, y en el ejemplo la primera sede está a 7 kilómetros de tu ubicación, la segunda a 5, la
tercera a 13, y la cuarta a 4 kilómetros de tu ubicac
Salida
Un solo número con un salto de línea, indicando la distancia máxima que hay entre dos sedes.
Ejemplo
4
7
5
13
4
9
Código
import java.util.*;
public class sedes{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
int tiros=datos.nextInt();
int valor[]=new int[1000];
for(int pos=0;pos<tiros;pos++){//guarda los numeros
valor[pos]=datos.nextInt();
}
for(int pos1=0;pos1<tiros-1;pos1++) {
for(int pos2=0;pos2<tiros-1;pos2++) {
if(valor[pos2]>valor[pos2+1]) {
int aux=valor[pos2];
valor[pos2]=valor[pos2+1];
valor[pos2+1]=aux;
}
}
}
int pos=0;
System.out.print("Orden: ");
for(int pos1=0;pos1<tiros;pos1++) {
System.out.print(valor[pos1]+" ");
}
int maxima=valor[(pos+tiros)-1]-valor[pos];
System.out.print("nDistancia maxima: "+maxima);
Pruebas de Escritorio
No-Fibonacci
"Leonardo de Pisa o Leonardo Pisano o Leonardo Bigollo(c. 1175 - 1250), tambi llamado Fibonacci, fue un
matemático italiano,famoso por la invención de la sucesión de Fibonacci, surgida como consecuencia del estudio
del crecimiento de las poblaciones de conejos" Wikipedia
La sucesión de Fibonacci es una serie de números enteros positivos de la cual sus primeros 2 números son 1 y 2,
luego de eso, cada número es el resultado de sumar los dos anteriores de dicha serie de la siguiente forma:
1, 2, 3, 5, 8, 13, 21, 34, 55...
Nótese que 1+2=3, 2+3=5, 5+8=13, 13+21=34, 21+34=55 ...
Ahora, podrías pensar que el problema será calcular la serie de fibonacci, sin embargo es exactamente lo contrario.
Problema
Escribe un programa que imprima en pantalla todos los números enteros positivos estrictamente menores que N
que NO pertenezcan a la serie de Fibonacci.
Entrada
Tu programa deberá de leer del un solo número entero 2 ≤ N ≤ 30000 (30 mil)
Salida
Tu programa deberá imprimir en pantalla todos los números enteros positivos menores que N que no formen parte
de la serie de Fibonacci, deberá imprimirlos en orden creciente, separados por espacios.
Eje
mpl
o
Entra
da
Salida
9 4 6 7
Código
import java.util.*;
public class NoFibonaci{
public static void main(String[] args) {
Scanner in=new Scanner (System.in);
int a=in.nextInt();
int lmfao []=new int [a];
if (a>2) {
lmfao[0]=1;
lmfao[1]=1;
for (int i=2;i<a ;i++ ) {
lmfao[i]=lmfao[i-1]+lmfao[i-2];
}
}
else if(a==2){
lmfao[0]=1;
lmfao[1]=1;
}
else if (a<2){
lmfao[0]=1;
}
int lmfao1 []=new int [a];
for (int i=0;i<a ;i++ ) {
lmfao1[i]=i+1;
}
for (int i=0;i<a ;i++ ) {
for (int k=1;k<a ;k++ ) {
if (lmfao1[i]==lmfao[k]){
k=a-1;
}
else if (k==(a-1)){
System.out.println(lmfao1[i]);
}
}
}
System.out.println("n");
}
}
Pruebas de Escritorio
Dados
Problema
Desarrollar un programa en donde el usuario tecleara las veces de tiradas de los dados y lo que le salió en cada
una de ellas
Entrada
Tu programa deberá de leer del numero de tiradas & el valor de cada una
Salida
Tu programa deberá imprimir en pantalla el orden de las tiradas y cual es su mayor y menor suma
Ejemplo Entrada Salida
#1 3
2
3
4
2 3 4
Min=5
Max=7
Código
import java.util.*;
public class dados{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
int tiros=datos.nextInt();
int valor[]=new int[1000];
for(int pos=0;pos<tiros;pos++){//guarda los numeros
valor[pos]=datos.nextInt();
}
for(int pos1=0;pos1<tiros-1;pos1++) {
for(int pos2=0;pos2<tiros-1;pos2++) {
if(valor[pos2]>valor[pos2+1]) {
int aux=valor[pos2];
valor[pos2]=valor[pos2+1];
valor[pos2+1]=aux;
}
}
}
int pos=0;
System.out.print("Orden: ");
for(int pos1=0;pos1<tiros;pos1++) {
System.out.print(valor[pos1]+" ");
}
int minima=valor[pos]+valor[pos+1];
System.out.print("nMinima: "+minima);
int maxima=valor[(pos+tiros)-1]+valor[(pos+tiros)-2];
System.out.print("nMaxima: "+maxima);
}
}
Pruebas de Escritorio
Par y Impar
Problema
Desarrolla un programa en donde el usuario tecleara cuantos números ingresa y introduciraa los números, de los
cuales dira si es Par Positivo o Negatico o si es Impar positivo o negativo
Entrada
Tu programa deberá de leer la cantidad de números y de ellos definir si es par o impar ya sea positivo o negativo
Salida
Tu programa deberá imprimir en pantalla si el numero es par o impar positivo o negativo
Ejemplo Entrada Salida
#1
3
6
5
-3
6 Par Positivo
5 Impar Positivo
-3 Impar Negativo
#2
2
-9
-13
-9 Impar Negativo
-13 Impar Negativo
Código
import java.util.*;
public class pares{
public static void main(String[] args) {
Scanner datos=new Scanner(System.in);
int tiros=datos.nextInt();
int numeros[]=new int[1000];
int resultados[]=new int[1000];
for(int pos=0;pos<tiros;pos++){//guarda los numeros
numeros[pos]=datos.nextInt();
resultados[pos]=numeros[pos]%2;
}
for(int pos=0;pos<tiros;pos++){//guarda los numeros
if (resultados[pos]==0 && numeros[pos]>0) {
System.out.print(numeros[pos]+" es par positivo n");
}
if (resultados[pos]!=0 && numeros[pos]>0) {
System.out.print(numeros[pos]+" es impar positivo n");
}
if (resultados[pos]==0 && numeros[pos]<0) {
System.out.print(numeros[pos]+" es par negativo n");
}
if (resultados[pos]!=0 && numeros[pos]<0) {
System.out.print(numeros[pos]+" es impar negativo n");
}
if (numeros[pos]==0) {
System.out.print(numeros[pos]+" es cero n");
}
}
}
}Pruebas de Escritorio

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Insertion Sort Algorithm
Insertion Sort AlgorithmInsertion Sort Algorithm
Insertion Sort Algorithm
 
Data structures using C
Data structures using CData structures using C
Data structures using C
 
Greedy Algorihm
Greedy AlgorihmGreedy Algorihm
Greedy Algorihm
 
Insertion sort
Insertion sort Insertion sort
Insertion sort
 
Design and analysis of algorithms
Design and analysis of algorithmsDesign and analysis of algorithms
Design and analysis of algorithms
 
Informed search
Informed searchInformed search
Informed search
 
N queen puzzle
N queen puzzleN queen puzzle
N queen puzzle
 
Unit 1 chapter 1 Design and Analysis of Algorithms
Unit 1   chapter 1 Design and Analysis of AlgorithmsUnit 1   chapter 1 Design and Analysis of Algorithms
Unit 1 chapter 1 Design and Analysis of Algorithms
 
FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
 FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM) FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
FUNCTION IN C PROGRAMMING UNIT -6 (BCA I SEM)
 
Medians and order statistics
Medians and order statisticsMedians and order statistics
Medians and order statistics
 
Data Structures - Lecture 7 [Linked List]
Data Structures - Lecture 7 [Linked List]Data Structures - Lecture 7 [Linked List]
Data Structures - Lecture 7 [Linked List]
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
 
0 1 knapsack using branch and bound
0 1 knapsack using branch and bound0 1 knapsack using branch and bound
0 1 knapsack using branch and bound
 
Queueing theory
Queueing theoryQueueing theory
Queueing theory
 
language , grammar and automata
language , grammar and automatalanguage , grammar and automata
language , grammar and automata
 
Insertion sort algorithm power point presentation
Insertion  sort algorithm power point presentation Insertion  sort algorithm power point presentation
Insertion sort algorithm power point presentation
 
N queen problem
N queen problemN queen problem
N queen problem
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
Insertion Sorting
Insertion SortingInsertion Sorting
Insertion Sorting
 
Informed search (heuristics)
Informed search (heuristics)Informed search (heuristics)
Informed search (heuristics)
 

Similar a Programación de aplicaciones móviles para determinar figuras geométricas

Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015Ulises_312
 
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403Evelyn Anayansi
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Gustavo Macias
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Gustavo Macias
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con javadiegocastro1234
 
Java problems
Java problemsJava problems
Java problemsNoe Lopez
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programasgidemon
 
Software e.e docx
Software e.e docxSoftware e.e docx
Software e.e docxAreli1215
 
Presentación de deber
Presentación de deberPresentación de deber
Presentación de deberMiguelcz30
 
C++ parcial 1 oscar mendoza-303
C++ parcial 1  oscar mendoza-303C++ parcial 1  oscar mendoza-303
C++ parcial 1 oscar mendoza-303Oscar711
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Andres Garcia Garcia
 

Similar a Programación de aplicaciones móviles para determinar figuras geométricas (20)

Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
 
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Aline
AlineAline
Aline
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
Java problems
Java problemsJava problems
Java problems
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Software e.e docx
Software e.e docxSoftware e.e docx
Software e.e docx
 
Programas
Programas Programas
Programas
 
Omega Up
Omega UpOmega Up
Omega Up
 
Proyecto
ProyectoProyecto
Proyecto
 
Presentación de deber
Presentación de deberPresentación de deber
Presentación de deber
 
Cecytem
CecytemCecytem
Cecytem
 
Temario de c++
Temario de c++Temario de c++
Temario de c++
 
C++ parcial 1 oscar mendoza-303
C++ parcial 1  oscar mendoza-303C++ parcial 1  oscar mendoza-303
C++ parcial 1 oscar mendoza-303
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7
 
Módulo 3
Módulo 3Módulo 3
Módulo 3
 
Programas Propuestos Capítulo IV
Programas Propuestos Capítulo IVProgramas Propuestos Capítulo IV
Programas Propuestos Capítulo IV
 

Último

Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para dRodrigoAveranga2
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 

Último (6)

Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para d
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 

Programación de aplicaciones móviles para determinar figuras geométricas

  • 1. COLEGIO DE ESTUDIOS CIENTÍFICOS Y TECNOLÓGICOS DEL ESTADO DE MÉXICO TÉCNICO EN PROGRAMACIÓN DESARROLLA APLICACIONES MÓVILES CUARTO SEMESTRE Alumna: Yoselin Viridiana Romo Rodríguez Grupo: 403 4° Semestre Practicas
  • 2. Figuras Rectangulares Descripción Tenemos un conjunto de cuadrados y rectángulos cuyos medidas de sus diferentes lados son cantidades enteras y mayores a 1 y , si tenemos el área de la figura, es posible que sea un cuadrado o un rectángulo. Problema Construye un programa que nos ayude a resolver este problema (dada el área de una figura determinar si es cuadrado o rectángulo), la lectura la debes hacer de la entrada estándar (teclado) y la escritura se debe hacer a la salida estándar (pantalla). Entrada La primera línea contendrá un número "N" entre 1 y 1,000,000,000, representando el área. Salida Una sola línea indicando la figura que se puede formar, si el área puede formar un cuadrado debes imprimir la palabra “cuadrado” si el área puede formar un rectángulo, debes imprimir la palabra “rectangulo” y si el área puede formar ambos debe imprimir la palabra “ambos” (note no hay acentos ni mayusculas), en caso de que no se pueda formar un cuadrado o rectángulo escriba "ninguno" Ejempl os Entrada Salida 9 cuadrad o 6 rectang ulo 36 ambos Código import java.util.*; public class Figuras { public static void main(String[] args) { Scanner Yo=new Scanner(System.in); System.out.println("Valor"); int n=Yo.nextInt(); System.out.println(ChecaQueEs(n)); } public static String ChecaQueEs(int n){ String Resultado=""; int c=0; int raiz=(int) Math.sqrt(n); for(int i=2;i<n;i++){ if(n%i==0){ c++; } }
  • 3. if((raiz*raiz)==n && c>=2){ Resultado="Ambos"; }else if((raiz*raiz)!=n && c>=2){ Resultado="Rectangulo"; }else if((raiz*raiz)==n){ Resultado="Cuadrado"; } else{ Resultado="Ninguno"; } return Resultado; } } Pruebas de Escritorio
  • 4. Sumando Problema Se tiene un matriz cuadrada de tamaño “n” y se requiere saber cuánto suma cada columna. Entrada En el primer renglón un valor “n” indicando el tamaño de la matriz donde 1<=n<=1000 y en los siguientes “n” renglones habrán “n” valores correspondientes los valores de cada renglón de la matriz donde 1<=V<= 1000. Salida Un renglón con “n” cantidades, cada cantidad representa la sumatoria de cada columna de la matriz, el primer valor corresponde a la columna 1, el segundo a la columna 2 ,... y el último valor corresponde a la columna “n”. Consideraciones Tu programa se evaluará con varios casos de prueba. Ejempl os Entrada Salida Descripció n 3 1 2 3 3 5 6 7 8 9 11 15 18 Case #1: 4 3 2 4 3 2 3 3 2 7 8 5 3 1 1 1 1 13 14 13 9 Case #2: Código import java.util.*; public class sumando{ public static void main(String[]args){ Scanner in=new Scanner(System.in); int num=in.nextInt(); int numeros[][]= new int[num][num]; int suma[]=new int[num]; int sumafila[]=new int[num]; for(int i=0;i<num;i++){ for(int k=0;k<num;k++){ numeros[i][k]=in.nextInt(); } } imprimir(numeros,num); obsuma(numeros,num,suma,sumafila); } public static void imprimir(int [][] numeros,int n){ for(int i=0;i<n;i++){
  • 5. for(int k=0;k<n;k++){ System.out.print("numeros["+i+"]["+k+"]=>"+numeros[i][k]+" "); }System.out.println(" "); } } public static void obsuma(int [][] numeros,int n,int [] suma,int []sumafila){ System.out.println("nnSuma de columnas:n"); for(int i=0;i<n;i++){ for(int k=0;k<n;k++){ suma[k]+=numeros[i][k]; } } for(int j=0;j<n;j++){ System.out.println("Columna #"+(j+1)+" "+suma[j]+" "); } System.out.println("nn"); System.out.println("Suma de filas:n"); for(int i=0;i<n;i++){ for(int k=0;k<n;k++){ sumafila[i]+=numeros[i][k]; } } for(int l=0;l<n;l++){ System.out.println("Fila #"+(l+1)+" "+sumafila[l]+" "); } } }
  • 7. Frecuencias Descripción Cierta escuela realiza cuestionarios para conocer al profesor favorito de los alumnos. Y lo realiza de la siguiente manera; a cada profesor se le asigna un número posteriormente a cada alumno se le pregunta cual es su profesor favorito, posteriormente, se calcula una tabla de frecuencia indicando en cada profesor cual es la cantidad de alumnos que lo eligieron. Problema Escribe un programa que ayude a la escuela a escribir la tabla de frecuencias. Entrada En la primera línea el número “P” que indica la cantidad de profesores que tiene la escuela donde 1<=P <= 100 y el número “n” que indica la cantidad de alumnos en la escuela donde 1<=n<=1000. en la siguiente línea habrán “n” números que representan el número de profesor favorito “F” de cada alumno donde 1<=F<=P. Salida Deberá haber “P” cantidad de líneas y en cada una dos números separados por un guión, el primer número será el número del profesor y el segundo número la cantidad de alumnos que lo eligieron. Consideraciones Tu programa se evaluará con varios casos de prueba. Ejemplo s Entrada Salida Descripción 4 10 1 1 2 1 1 2 3 2 3 4 1-4 2-3 3-2 4-1 Case #1: 4 8 1 2 4 1 2 4 1 2 1-3 2-3 3-0 4-2 Case #2: Código import java.util.*; public class Frecuencias{ public static void main (String [] args){ Scanner in=new Scanner (System.in); int np=in.nextInt(); int npa[]=new int [np]; int na=in.nextInt(); int votos[]=new int[na]; for(int i=0;i<na;i++){ votos[i]=in.nextInt(); } System.out.println(" "); for(int a=0;a<na;a++){ npa[votos[a]-1]+=1; }
  • 9. Cuadrado Descripción. A continuación te mostramos un giro de 90 grados a la derecha de una matriz de 2 por 2 cuyos valores son: Matriz original 1 2 3 4 Matriz Girada 90° a la derecha 3 1 4 2 Problema Dada una matriz cuadrada de tamaño “n” , debes hacer que tu programa la gire 90 grados a la derecha. Entrada En la primera línea el valor “n” indicando el tamaño de la matriz donde 1<=n<=1000, en los siguientes “n” renglones habrán “n” valores de la matriz separados por un espacio. Salida “n” renglones cada renglón con "n" valores mostrando la matriz girada 90 grados. Consideraciones Tu programa se evaluará con varios casos de prueba Ejem plo Entrada Salida Descrip ción 2 1 2 3 4 3 1 4 2 Case #1: 3 1 2 3 4 5 6 7 8 9 7 4 1 8 5 2 9 6 3 Case #2: Código import java.util.*; public class girocuadro{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); System.out.println("Cantidad"); int numero=datos.nextInt(); int cuadroarray[][]=new int[100][100]; System.out.println("Numeros"); for(int dimension1=0;dimension1<numero;dimension1++){ for(int dimension2 =0;dimension2 <numero;dimension2 ++){ cuadroarray[dimension1][dimension2]=datos.nextInt(); } }
  • 10. System.out.println("nCuadro originaln"); for(int dimension1=0;dimension1<numero;dimension1++){ for(int dimension2 =0;dimension2<numero;dimension2 ++){ System.out.print("["+dimension1+"]["+dimension2+"]"+cuadroarray[dimension1][dimension2]+" "); }System.out.println(" "); } System.out.println("n"); System.out.println("Cuadro con giro de 90° a la derechan"); int contd2=0; for (int vert=0;vert<numero ;vert++ ) {//repite la posicion inicial de la dimension 1 for(int dimension1=numero;dimension1>=0;dimension1--){//resta una posicion a la dimension 1 e imprime de forma horizontal junto con la dimension 2 for(int horiz=0;horiz<numero;horiz++){//imprime de forma horizontal dimension1--; for(int dimension2=contd2;dimension2<=contd2;dimension2++){//repite la misma posicion las veces del contador horiz System.out.print("["+dimension1+"]["+dimension2+"]"+cuadroarray[dimension1][dimension2]+" "); } } contd2++; } System.out.println(" "); } } }
  • 12. Bardeando Descripción Se tiene un conjunto de “n” trozos de malla ciclónica y un terreno de perímetro “P” el terreno es cuadrado. Problema Debes escribir un programa que nos diga cuántos metros de malla ciclonica nos hace falta para poder bardear el terreno. Entrada En la primera línea dos números “P” y "n", donde "P" representa el perímetro del terreno con un rango de valores de 1<=P <= 2,000,000,000 y “n” representa la cantidad de trozos de malla ciclónica que tenemos, donde 1<=n<=100,000. En las siguientes “n” líneas es el tamaño de cada trozo de malla que tenemos. La suma de todos los trozos siempre será menor a 2147483648. Salida Un único valor entero indicando los metros de malla que nos hacen falta para bardear el terreno. Ejem plos Entrada Salida Descrip ción 100 3 25 20 10 45 Caso #1 100 2 1000 2000 0 Caso #2 21 1 20 1 Caso #3 Código import java.util.*; public class Bardeando{ public static void main(String [] args){ Scanner Yo=new Scanner(System.in); System.out.println("Perimetro del Terreno"); int Per=Yo.nextInt(); System.out.println("Cantidad de trozos de malla"); int Can=Yo.nextInt(); int [] Trozos=new int[Can]; for(int a=0;a<Can;a++){ System.out.println("Longitud"); Trozos[a]=Yo.nextInt(); }
  • 13. Proceso(Trozos, Per); } public static void Proceso(int [] t, int p){ int Suma=0; for(int Contador=0;Contador< t.length;Contador++){ Suma+=t[Contador]; } int Falta=p-Suma; if(Falta>0){ System.out.println("Los metros que te faltan de malla son: "+Falta); } else{ System.out.println("Los metros que te faltan de malla son: 0"); } } } Pruebas de Escritorio
  • 14. Matriz Cuadrada Descripción Descripción Tenemos una matriz de “R” renglones por “C” columnas, donde podemos enumerar las casillas de la siguiente manera, la casilla 1,1 (renglón 1, columna 1), la casilla 1,2 (renglón 1, columna 2) y la casilla 1,3 (renglón 1, columna 3 ) serían respectivamente las posiciones 1, 2 y 3 como se puede ver en la figura, donde la casilla 1,1 es la esquina superior izquierda y la celda “R” x “C” es la celda ubicada en la esquina inferior derecha. En esta cuadrícula, podemos hacer preguntas de la forma, ¿que número está en la casilla 1,2 ? y su respuesta sería 2 otro ejemplo ¿qué número está en la celda 2,3? y su respuesta es 6. Problema Escribe un programa que dada las dimensiones de la cuadrícula responda una cantidad “P” de preguntas. Entrada En la primera línea dos valores indicando las dimensiones de la cuadrícula separados por un espacio „R‟ cantidad de renglones donde 1<=R<=10000 y “C” cantidad de columnas donde 1<=C<=10000, En la tercera línea el número “P” cantidad de preguntas donde 1<=P<=10,000 y en las siguientes “P” líneas un par de coordenadas de la forma r, c, representando las coordenadas de cada pregunta en donde “r” indica el renglón 1<=r<=R y “c” la columna 1<=c<=C por cada pregunta. Salida Por cada pregunta debe escribir en cada línea el número de casilla que le corresponde. Ejem plos Entrada Salida Descrip ción 3 3 3 1 1 2 2 3 3 1 5 9 Caso #1 3 1000 2 2 1 2 10 1001 2010 Caso # Código import java.util.*; public class matrizcuadrada{ public static void main(String [] args){ Scanner in=new Scanner (System.in); int fil=in.nextInt(); int colum=in.nextInt(); int num=in.nextInt(); int arreglox[][]=new int[num][2]; int pez[]=new int [num]; for(int k=0;k<num;k++){ for(int i=0;i<2;i++){ arreglox [k][i]=in.nextInt(); for(int z=0;z<num;z++){
  • 16. Suma Triple Descripción Se tiene la siguiente función f(n), formada por la suma de los tres números anteriores. f(1)=1 f(2)=1 f(3)=2 f(4)=4 f(5)=7 f(6)=13 f(7)=24 f(8)=44 f(9)=81 Note que f(1) = 1 ya que no tiene números anteriores, f(2)=1 ya que es el único número anterior, f(3) tiene solo 2 números anteriores y a partir de f(4) se da la suma de los tres números anteriores. Problema Escribe un programa que dado el valor de “n” escriba la serie correspondiente. Entrada Un solo renglón conteniendo el valor “n”donde 1<=n<=64. Salida Una sola línea mostrando la serie desde el número menor hasta el mayor cada número debe estar separado por un espacio. Entrada Salida Descripción 4 1 1 2 4 Caso #1 6 1 1 2 4 7 13 Caso #2 9 1 1 2 4 7 13 24 44 81 Caso #3 Código import java.util.*; public class triple{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); int numero[]=new int[100]; int suma[]=new int[100]; numero[1]=1; int n=datos.nextInt();
  • 17. System.out.print("n"); for (int sumar=1;sumar<=n ;sumar++ ) { numero[sumar+3]=numero[sumar]+numero[sumar+1]+numero[sumar+2]; System.out.print("["+sumar+"] "+numero[sumar+3]+" "); }System.out.print("n"); }} Pruebas de Escritorio
  • 18. Triángulo Descripción Un triángulo es formado por 3 segmentos (con valor entero) de recta unidos por sus extremos, sin embargo no todas las combinaciones de 3 segmentos pueden formar un triángulo. Problema Escriba un programa que dados 3 números que representan 3 segmentos de rectas, diga si pueden formar un triángulo rectángulo. Entrada En la primera línea 3 números “a”, “b” y “c” representando las longitudes de 3 segmentos de recta en un rango de entre 1 y 32,000. Salida Una sola línea en donde si es posible generar un triángulo rectángulo debes imprimir la hipotenusa, el cateto mayor y el cateto menor y si no es posible formar un triángulo rectángulo imprime la palabra “imposible”. Consideraciones Tu programa se evaluará con varios casos de prueba, para cada caso de prueba (entrada) Ejemp los Entrada Salida Descripci ón 1 1 1 imposibl e Caso #1 3 4 5 5 4 3 Caso #2 Código import java.lang.Math; import java.util.*; public class triangulo{ public static void main(String[] args) { Scanner b1= new Scanner (System.in); Scanner b2= new Scanner (System.in); Scanner b3= new Scanner (System.in); int a,b,c,ax,bx,cx,d,e,f; Double raiz; System.out.println("Ingresa los numeros"); a=b1.nextInt(); b=b2.nextInt(); c=b3.nextInt(); ax=a*a; bx=b*b; cx=c*c;
  • 19. if (a>=b){ if(a>=c){ if(b>=c){ System.out.println("n N:"+a+"n N:"+b+"n N:"+c); d=bx+cx; raiz=Math.sqrt(d); if(raiz==a){ System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+a+"n Cateto Adyacente "+b+"n Cateto Opuesto "+c); } else{ System.out.println("Es imposible"); } } else{ System.out.println("n N:"+a+"n N:"+c+"n N:"+b); d=cx+bx; raiz=Math.sqrt(d); if(raiz==a){ System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+a+"n Cateto Adyacente "+c+"n Cateto Opuesto "+b); } else{ System.out.println("Es imposible"); } } } else{ System.out.println("n N:"+c+"n N:"+a+"n N:"+b); d=ax+bx; raiz=Math.sqrt(d); if(raiz==c){ System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+c+"n Cateto Adyacente "+a+"n Cateto Opuesto "+b);
  • 20. } else{ System.out.println("Es imposible"); } } } else { if(b>=c){ if(c>=a){ System.out.println("n N:"+b+"n N:"+c+"n N:"+a); d=ax+cx; raiz=Math.sqrt(d); if(raiz==b){ System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+b+"n Cateto Adyacente "+c+"n Cateto Opuesto "+a); } else{ System.out.println("Es imposible"); } } else{ System.out.println("n N:"+b+"n N:"+a+"n N:"+c); d=ax+cx; raiz=Math.sqrt(d); if(raiz==b){ System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+b+"n Cateto Adyacente "+a+"n Cateto Opuesto "+c); } else{ System.out.println("Es imposible"); } } }
  • 21. else{ System.out.println("n N:"+c+"n N:"+b+"n N:"+a); d=ax+bx; raiz=Math.sqrt(d); if(raiz==c){ System.out.println("Si es posible el triangulo y sus medidas serian Hipotenusa "+c+"n Cateto Adyacente "+b+"n Cateto Opuesto "+a); } else{ System.out.println("Es imposible"); } } } } }Pruebas de Escritorio
  • 22. Romanos Descripción Escribe un programa que lea un entero entre 1 y 100 e imprima su equivalencia en números romanos. Entrada Una línea con el entero a convertir. Salida la conversión a números romanos (en mayúsculas). Ejemplos Entrada Salida Descripción 48 Salida XLVIII Las equivalencias de números arábigos a romanos son: I 1 V 5 X 10 L 50 C 100 Código import java.util.*; public class romanos{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); int arabigo=datos.nextInt(); int miles=arabigo/1000; int res1000=arabigo%1000; for (int impresor=0;impresor<miles ;impresor++ ) { System.out.print("M "); } int novecientos=res1000/900; int res900=res1000%900; if(res1000>=900){ System.out.print("CM "); } int quinientos=res1000/500;
  • 23. int res500=res1000%500; if (res1000>=500 && res1000<900) { System.out.print("D "); } int cuatrocientos=res500/400; int res400=res500%400; if(res500>=400 && res500<500 && novecientos==0){ System.out.print("CD "); } int centenas=res500/100; int res100=res500%100; if(res500<400){ for (int impresor=0;impresor<centenas ;impresor++ ) { System.out.print("C "); } } int noventas=res100/90; int res90=res100%90; if(res100>=90){ System.out.print("XC "); } int cincuentas=res100/50; int res50=res100%50; if (res100>=50 && res100<90) { System.out.print("L "); } int cuarentas=res50/40; int res40=res50%40;
  • 24. if(res50>=40 && res50<50 && noventas==0){ System.out.print("XL "); } int decenas=res50/10; int res10=res50%10; if(res50<40){ for (int impresor=0;impresor<decenas ;impresor++ ) { System.out.print("X "); } } int nueves=res10/9; int res9=res10/9; if(res10==9){ System.out.print("IX "); } int cincos=res10/5; int res5=res10%5; if(res10>=5 && res10<9){ System.out.print("V "); } int cuatros=res5/4; if(res5==4 && nueves==0){ System.out.print("IV "); } int unidades=res5/1; if (res5>=1 && res5<4) { for (int impresor=0;impresor<unidades ;impresor++ ) {
  • 26. Intervalo Descripción Escribe un programa que lea tres enteros a, b, c y determine si c se encuentra en el intervalo [a,b], a la izquierda o a la derecha de dicho intervalo. Entrada Una línea con los enteros a,b,c separados por un espacio Salida Imprime INTERVALO, IZQUIERDA o DERECHA según sea el caso. Ejemplos Entrada Salida Descripción 3 10 6 Salida INTERVALO 6 se encuentra contenido en el intervalo desde 3 hasta 10 Código import java.util.*; public class intervalo{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); int a=datos.nextInt(); int b=datos.nextInt(); int c=datos.nextInt(); System.out.print("n"); if (c>=a && c<=b) { System.out.print("INTERVALO"); } if (c>b) { System.out.print(c+" esta a la derecha del intervalo "+a+" a "+b); } if (c<a) { System.out.print(c+" esta a la izquierda del intervalo "+a+" a "+b); }
  • 28. Sedes Descripción Ahora que estás en la preselección de Veracruz, debes prepararte mucho para ser seleccionado. Como parte de este proceso, se deben realizar algunos entrenamientos y de preferencia en varias sedes del estado, por ejemplo Coatzacoalcos, Veracruz, Xalapa, Tuxpan, etc. Puesto que a ti te gusta viajar mucho, quieres asistir a las dos sedes que estén más lejos entre sí. Suponiendo que todas las sedes se encontraran en línea recta, una tras de otra, identifica, cuál es la distancia más larga que deberías recorrer entre dos sedes. Entrada En la primera línea el número n, que indica la cantidad de sedes para este año. 1<=n<=100000. En las siguientes n líneas un número indicando la distancia de esa sede con respecto a tu ubicación actual entre 0<=d <=5000. Supón que tu ubicación actual es el inicio de la línea recta, por lo que todas las distancias serán positivas. Siempre te encuentras en el km 0, y en el ejemplo la primera sede está a 7 kilómetros de tu ubicación, la segunda a 5, la tercera a 13, y la cuarta a 4 kilómetros de tu ubicac Salida Un solo número con un salto de línea, indicando la distancia máxima que hay entre dos sedes. Ejemplo 4 7 5 13 4 9 Código import java.util.*; public class sedes{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); int tiros=datos.nextInt(); int valor[]=new int[1000]; for(int pos=0;pos<tiros;pos++){//guarda los numeros valor[pos]=datos.nextInt(); } for(int pos1=0;pos1<tiros-1;pos1++) { for(int pos2=0;pos2<tiros-1;pos2++) {
  • 29. if(valor[pos2]>valor[pos2+1]) { int aux=valor[pos2]; valor[pos2]=valor[pos2+1]; valor[pos2+1]=aux; } } } int pos=0; System.out.print("Orden: "); for(int pos1=0;pos1<tiros;pos1++) { System.out.print(valor[pos1]+" "); } int maxima=valor[(pos+tiros)-1]-valor[pos]; System.out.print("nDistancia maxima: "+maxima); Pruebas de Escritorio
  • 30. No-Fibonacci "Leonardo de Pisa o Leonardo Pisano o Leonardo Bigollo(c. 1175 - 1250), tambi llamado Fibonacci, fue un matemático italiano,famoso por la invención de la sucesión de Fibonacci, surgida como consecuencia del estudio del crecimiento de las poblaciones de conejos" Wikipedia La sucesión de Fibonacci es una serie de números enteros positivos de la cual sus primeros 2 números son 1 y 2, luego de eso, cada número es el resultado de sumar los dos anteriores de dicha serie de la siguiente forma: 1, 2, 3, 5, 8, 13, 21, 34, 55... Nótese que 1+2=3, 2+3=5, 5+8=13, 13+21=34, 21+34=55 ... Ahora, podrías pensar que el problema será calcular la serie de fibonacci, sin embargo es exactamente lo contrario. Problema Escribe un programa que imprima en pantalla todos los números enteros positivos estrictamente menores que N que NO pertenezcan a la serie de Fibonacci. Entrada Tu programa deberá de leer del un solo número entero 2 ≤ N ≤ 30000 (30 mil) Salida Tu programa deberá imprimir en pantalla todos los números enteros positivos menores que N que no formen parte de la serie de Fibonacci, deberá imprimirlos en orden creciente, separados por espacios. Eje mpl o Entra da Salida 9 4 6 7 Código import java.util.*; public class NoFibonaci{ public static void main(String[] args) { Scanner in=new Scanner (System.in); int a=in.nextInt(); int lmfao []=new int [a]; if (a>2) { lmfao[0]=1; lmfao[1]=1; for (int i=2;i<a ;i++ ) { lmfao[i]=lmfao[i-1]+lmfao[i-2]; } } else if(a==2){ lmfao[0]=1; lmfao[1]=1;
  • 31. } else if (a<2){ lmfao[0]=1; } int lmfao1 []=new int [a]; for (int i=0;i<a ;i++ ) { lmfao1[i]=i+1; } for (int i=0;i<a ;i++ ) { for (int k=1;k<a ;k++ ) { if (lmfao1[i]==lmfao[k]){ k=a-1; } else if (k==(a-1)){ System.out.println(lmfao1[i]); } } } System.out.println("n"); } }
  • 33. Dados Problema Desarrollar un programa en donde el usuario tecleara las veces de tiradas de los dados y lo que le salió en cada una de ellas Entrada Tu programa deberá de leer del numero de tiradas & el valor de cada una Salida Tu programa deberá imprimir en pantalla el orden de las tiradas y cual es su mayor y menor suma Ejemplo Entrada Salida #1 3 2 3 4 2 3 4 Min=5 Max=7 Código import java.util.*; public class dados{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); int tiros=datos.nextInt(); int valor[]=new int[1000]; for(int pos=0;pos<tiros;pos++){//guarda los numeros valor[pos]=datos.nextInt(); } for(int pos1=0;pos1<tiros-1;pos1++) { for(int pos2=0;pos2<tiros-1;pos2++) { if(valor[pos2]>valor[pos2+1]) { int aux=valor[pos2]; valor[pos2]=valor[pos2+1]; valor[pos2+1]=aux; } } } int pos=0; System.out.print("Orden: ");
  • 34. for(int pos1=0;pos1<tiros;pos1++) { System.out.print(valor[pos1]+" "); } int minima=valor[pos]+valor[pos+1]; System.out.print("nMinima: "+minima); int maxima=valor[(pos+tiros)-1]+valor[(pos+tiros)-2]; System.out.print("nMaxima: "+maxima); } } Pruebas de Escritorio
  • 35. Par y Impar Problema Desarrolla un programa en donde el usuario tecleara cuantos números ingresa y introduciraa los números, de los cuales dira si es Par Positivo o Negatico o si es Impar positivo o negativo Entrada Tu programa deberá de leer la cantidad de números y de ellos definir si es par o impar ya sea positivo o negativo Salida Tu programa deberá imprimir en pantalla si el numero es par o impar positivo o negativo Ejemplo Entrada Salida #1 3 6 5 -3 6 Par Positivo 5 Impar Positivo -3 Impar Negativo #2 2 -9 -13 -9 Impar Negativo -13 Impar Negativo Código import java.util.*; public class pares{ public static void main(String[] args) { Scanner datos=new Scanner(System.in); int tiros=datos.nextInt(); int numeros[]=new int[1000]; int resultados[]=new int[1000]; for(int pos=0;pos<tiros;pos++){//guarda los numeros numeros[pos]=datos.nextInt(); resultados[pos]=numeros[pos]%2; } for(int pos=0;pos<tiros;pos++){//guarda los numeros if (resultados[pos]==0 && numeros[pos]>0) { System.out.print(numeros[pos]+" es par positivo n"); }
  • 36. if (resultados[pos]!=0 && numeros[pos]>0) { System.out.print(numeros[pos]+" es impar positivo n"); } if (resultados[pos]==0 && numeros[pos]<0) { System.out.print(numeros[pos]+" es par negativo n"); } if (resultados[pos]!=0 && numeros[pos]<0) { System.out.print(numeros[pos]+" es impar negativo n"); } if (numeros[pos]==0) { System.out.print(numeros[pos]+" es cero n"); } } } }Pruebas de Escritorio