Recuperacion programas

Please download to get full document.

View again

of 9
185 views
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.

Download

Document Related
Document Description
1. RECUPERACION DE ESTRUCTURA DE DATOS. Rodríguez Vicente Javier 14150630053 2416-IS RENE DOMINGUEZ ESCALONA Universidad Politécnica de Tecámac. 2. CARRETES…
Document Share
Document Transcript
  • 1. RECUPERACION DE ESTRUCTURA DE DATOS. Rodríguez Vicente Javier 14150630053 2416-IS RENE DOMINGUEZ ESCALONA Universidad Politécnica de Tecámac.
  • 2. CARRETES Descripción En un tipo de caja registradora antigua, para mostrar los precios, se utilizaba un carrete con los dígitos del 0 al 9 escritos alrededor, para representar cada una de las cifras. este carrete podía girar, hacia delante o hacia atrás, avanzando de uno en uno los dígitos hasta legar al número deseado y girando cada uno hacia el sentido que requiera menor número de pasos Tu deseas conocer cuántos de estos pasos realiza la máquina para cambiar de un precio a otro. Problema Debes realizar un programa que, conociendo la cantidad de carretes que tiene la máquina, el precio inicial y el precio final, calcule el número de pasos que realizara el mecanismo para llegar de uno a otro. Entrada Tu programa deberá leer del teclado los siguientes datos: en la primera línea el número de carretes N, que puede ser desde 2 hasta 200. En la segunda línea, el precio inicial como una cadena de N caracteres y en la tercera línea el precio final. Como otra cadena de caracteres. Salida Tu programa debe escribir en pantalla el número total de pasos que realizará la máquina para llegar del precio inicial al precio final Algoritmo 1.-Introducir el número de carretes 2.-El valor de carácter esta entre (2-200) 3.-Introducir el precio inicial 4.-Introducir el precio final 5.-Calcular la salida 6.-Salida Código Fuente package recuperacion; import java.util.Scanner; public class Carretes { public static void main(String[] args) { Scanner lector = new Scanner(System.in);
  • 3. int n,salida=0; String cad; int[] pinicial,pfinal; System.out.println("Introduce el numero de carretes (entre 2 y 200)"); do{ cad=lector.nextLine(); n=Integer.parseInt(cad); }while(n<2 || n>200); pinicial= new int[n]; pfinal= new int[n]; System.out.println("Introduce el precio inicial"); do{ cad=lector.nextLine(); }while(cad.length()!=n); for(int i=0; i<n;i++) pinicial[i]=cad.charAt(i)-48; System.out.println("Introduce el precio final"); do{ cad=lector.nextLine(); } while(cad.length()!=n); for(int i=0; i<n;i++) pfinal[i]=cad.charAt(i)-48; for(int i=0; i<n;i++){ int dif1,dif2,dif3,min; dif1=Math.abs(pfinal[i]+10-pinicial[i]); dif2=Math.abs(pfinal[i]-pinicial[i]); dif3=Math.abs(pinicial[i]+10-pfinal[i]);
  • 4. min=Math.min(Math.min(dif1, dif2),dif3); salida+=min; System.out.println("pfinal["+i+"]="+pfinal[i]+" pinicial["+i+"]="+pinicial[i]+" dif1="+salida+" dif2="+dif2+" dif3="+dif3+" min="+min); } System.out.println("salida="+salida); } } MATRIZ TRANSPUESTA Descripción Dados los datos enteros de una matriz de F filas por C columnas. 1<=F,C<=50. Imprime sus transpuesta, en una matriz transpuesta las columnas pasan a ser filas. Entrada En la primera línea los enteros F, C separados por espacios, que denotan el número de filas y columnas de la matriz. En cada una de las siguientes F filas, C enteros separados por espacios. Salida La matriz transpuesta, F líneas, en cada línea Los C datos separados por un espacio, excepto el último. Algoritmo 1.-Introducir numero de columnas 2.-Introducir numero de filas 3.-Ingresa un números dependiendo del numero de columnas y filas 4.-Imprime la matriz transpuesta Código Fuente package recuperacion; import java.util.Random; public class MatrizTranspuesta { public static void imprimir(int matriz[][], int fila, int columna) {
  • 5. int i, j; for (i=0; i<fila; i++) { for (j=0; j<columna; j++) { System .out.print(matriz[i][j]+"t"); } System .out.println(" "); } System.out.println(); } public static void main(String[] args) { int i,j,fil,colum; fil = ((int)(Math.random()*(4-2+1)+2)); //(int)(Math.random()*(HASTA- DESDE+1)+DESDE); colum = ((int)(Math.random()*(4-2+1)+2)); int [] [] matriz = new int [fil][colum]; int [] [] matriz_T = new int [colum][fil]; System.out.println("La matriz es: "); Random num = new Random(); for ( i = 0; i < fil; i++) { for (j = 0; j < colum; j++) { matriz [i][j] = matriz [i][j]=((int)(Math.random()*(60-2+1)+2)); } } imprimir (matriz,fil,colum); System.out.println("La transpuesta de la matriz es: "); for(j=0;j<colum;j++) { for (i=0;i<fil;i++) {
  • 6. matriz_T[j][i]=matriz[i][j]; } } imprimir (matriz_T,colum,fil); } } NÚMEROS 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. Algoritmo 1.-Introduce el numero fibonaci 1 2.-Introduce el numero fibonaci 2 3.-Haz la operación 4.-Imprime el resultado
  • 7. Código Fuente Package recuperacion; import java.util.Scanner; public class NoFibonacci { public static void main(String[] args) { Scanner in; in = new Scanner(System.in); boolean iguales = false; int n1= in.nextInt(); int aux1= n1; int n2= in.nextInt(); int aux2=n2; int contador =0; System.out.print(n1+"+n2+"); while (iguales == false){ int temp =n1+n2; if (temp>10){ temp-=10; } System.out.print(temp+" "); n1=n2; n2=temp; contador++; if (n1== aux1&&n2==aux2){ iguales=true; } } System.out.println("");
  • 8. System.out.println(contador+"veces"); } } SI TE DA No tienes nada que hacer y un amigo te comento que existe un problema de teoría de números que se te ha hecho muy interesante y quieres resolverlo a través de una programa de computo. Problema Se tienen 2 números de un digito cada uno, el tercer numero se forma de la suma de los 2 números anteriores, tomando de el, solo la posición del digito, y así sucesivamente hasta que el ciclo regresa a los 2 numero originales. Entrada Dos números enteros de un solo dígito, en líneas separadas. Salida En la primera línea tu programa deberá escribir la serie completa separada por espacios. En la segunda línea tu programa deberá imprimir el número de pasos para regresar a los números iniciales. Algoritmo 1.-Declara variables 2.-Iniciar variable 3.-Lee el primer numero 4.-Lee el segundo numero 5.-Imprime solo un digito de las suma entre los numero Código Fuente package recuperacion; import java.util.Scanner; public class SiTeDa { public static void main(String[] args) { Scanner in; in = new Scanner(System.in);
  • 9. boolean iguales = false; int n1= in.nextInt(); int aux1= n1; int n2= in.nextInt(); int aux2=n2; int contador =0; System.out.print(n1+"+n2+"); while (iguales == false){ int temp =n1+n2; if (temp>10){ temp-=10; } System.out.print(temp+" "); n1=n2; n2=temp; contador++; if (n1== aux1&&n2==aux2){ iguales=true; } } System.out.println(""); System.out.println(contador+"veces"); } }
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks