rene documentacion programas
TRANSCRIPT
documentacion de algoritmo pseudocodigo diagrama de flujo codigo fuente pruebas de escritorio
MATRICULA 14150630052Profesor: Rene DominguezAlumno David Robles RuizGrupo 2416IS
Recuperación de Estructuras de DatosResolver los 5 ejercicios del archivo1. Documentar la solución en un documento de electrónico con el algoritmo, pseudocódigo, diagrama de flujo, código fuente y 3 pruebas de escritorio.Subirlo a slideshare.net y publicar en este grupo.
DOCUMENTACION DE LA SOLUCION (ALGORITMO, PSEUDOCODIGO DIAGRAMA DE FLUJO, CODIGO FUENTE Y LA TRES
PRUEBAS DE ESCRITORIO)
PROBLEMA 1CARRETES
ALGORITMO:
inicio
ingreso de datos
Introduce el numero de carretes (entre 2 y 200)
Introduce el precio inicial
Introduce el precio final
operación en un ciclo for repitiéndolo por el numero de carretes
imprimiendo salidas
Diagrama de flujo:
PSEUDOCODIGO:
iniciando variables que tomen números ingresados y las almacenen en el arreglo introduciendo el numero de carretes, el precio inicial y el precio
FIN
("pfinal["+i+"]="+pfinal[i]+"
pinicial["+i+"]="+pinicial[i]+" dif1="+salida+"
dif2="+dif2+" dif3="+dif3+"
Calcular(n<2 || n>200);
pinicial= new int[n];pfinal= new int[n];
(int i=0; i<n;i++)
pinicial[i]=cad.charAt(i)-48;
Inicio
Ingresar datosn=salida
String cad; int[]
pinicial,pfinal;
final formando estructuras repetitivas para almacenar los datos, crear instrucciones de operación y para imprimir
CODIGO FUENTE:
package recuperacioncarretes;
import java.util.Scanner;
public class RecuperacionCarretes {
public static void main(String[] args) {
Scanner lector = new Scanner(System.in);
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;
//Aqui se realiza el algoritmo para calcular la salida
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]);
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);
}
}
PRUEBAS DE ESCRITORIO:
1)
Introduce el numero de carretes (entre 2 y 200)
4
Introduce el precio inicial
5732
Introduce el precio final
1598
pfinal[0]=1 pinicial[0]=5 dif1=4 dif2=4 dif3=14 min=4
pfinal[1]=5 pinicial[1]=7 dif1=6 dif2=2 dif3=12 min=2
pfinal[2]=9 pinicial[2]=3 dif1=10 dif2=6 dif3=4 min=4
pfinal[3]=8 pinicial[3]=2 dif1=14 dif2=6 dif3=4 min=4
salida=14
2)
Introduce el numero de carretes (entre 2 y 200)
4
Introduce el precio inicial
6000
Introduce el precio final
2000
pfinal[0]=2 pinicial[0]=6 dif1=4 dif2=4 dif3=14 min=4
pfinal[1]=0 pinicial[1]=0 dif1=4 dif2=0 dif3=10 min=0
pfinal[2]=0 pinicial[2]=0 dif1=4 dif2=0 dif3=10 min=0
pfinal[3]=0 pinicial[3]=0 dif1=4 dif2=0 dif3=10 min=0
salida=4
3)
Introduce el numero de carretes (entre 2 y 200)
4
Introduce el precio inicial
6000
Introduce el precio final
2200
pfinal[0]=2 pinicial[0]=6 dif1=4 dif2=4 dif3=14 min=4
pfinal[1]=2 pinicial[1]=0 dif1=6 dif2=2 dif3=8 min=2
pfinal[2]=0 pinicial[2]=0 dif1=6 dif2=0 dif3=10 min=0
pfinal[3]=0 pinicial[3]=0 dif1=6 dif2=0 dif3=10 min=0
salida=6
PSEUCODIGO
formando el código de los carretes
PROBLEMA 2
MATRIZ TRANSPUESTA
ALGORITMO:Inicio Entrada de datos de columnas Entrada de datos de renglones Leer datos en el arregloIgualar datos en dos for anidados Para operarY hacer otros dos for anidados para imprimir PSEUDOCODIGO:Armado el código de manera que se muestren las columnas en renglones y los renglones en columnas solo hubo de escanear los datos de la matriz e igualarlos con otra variable para poder alterar su posicion y e imprimirlo de manera correcta dentro de fors aninados
DIAGRAMA DE FLUJO:inicioingreso de datos:CODIGO FUENTE:package recuperacionmatriztranspuesta;
import java.util.Random;
public class RecuperacionMatrizTranspuesta { public static void imprimir(int matriz[][], int fila, int columna) { 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()*(10-2+1)+2)); //(int)(Math.random()*(HASTA-DESDE+1)+DESDE); colum = ((int)(Math.random()*(10-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()*(100-2+1)+2)); } } imprimir (matriz,fil,colum);
//transpuesta System.out.println("La transpuesta de la matriz es: "); for(j=0;j<colum;j++) { for (i=0;i<fil;i++) { matriz_T[j][i]=matriz[i][j]; } } imprimir (matriz_T,colum,fil); }}PRUEBAS DE ESCRITORIO:1)La matriz es: 18 16 68 25 50 44 94 94 25 32 84 93 11 55 76 33 58 54 6 57 80 47 6 7 54 8 92 75 40 32 46 64 15 91 79 15 80 68 88 40 97 96 34 18 23 81 5 50 16 81 20 75 91 57 46 14 46 19 64 7 98 55 31
La transpuesta de la matriz es: 18 32 6 75 80 81 46 16 84 57 40 68 5 14 68 93 80 32 88 50 46 25 11 47 46 40 16 19 50 55 6 64 97 81 64 44 76 7 15 96 20 7 94 33 54 91 34 75 98 94 58 8 79 18 91 55 25 54 92 15 23 57 31
2)La matriz es: 49 75 80 77 44 70 30 78 51 82 73 8 43 28 42 51 61 94 23 90 19 78 57 68 85 9 74 40 45 28 11 89 63 85 98 42 60 8 24 25 51 28 57 29 68 55 77 4
La transpuesta de la matriz es: 49 51 61 85 63 51 75 82 94 9 85 28 80 73 23 74 98 57 77 8 90 40 42 29 44 43 19 45 60 68 70 28 78 28 8 55 30 42 57 11 24 77 78 51 68 89 25 4
3)La matriz es: 29 59 34 78 57 44 61 69 43 44 15 47 75 32 38 15 64 55 6 70 91 31 12 28
La transpuesta de la matriz es: 29 43 64 59 44 55 34 15 6 78 47 70 57 75 91 44 32 31 61 38 12 69 15 28
PROBLEMA 3
NÚMEROS NO FIBONACCI
ALGORITMO:inicionumero entrante PSEUDOCODIGO:Del algoritmo de la serie Fibonacci solo inverti los datos reciprocando los datos de el algoritmo
DIAGRAMA DE FLUJO:
CODIGO FUENTE:package recuperacionnofibonacci;
import java.util.Scanner;
public class RecuperacionNoFibonacci { public static void main(String[] args) { Scanner in = new Scanner(System.in); int b=3; int c=4; int d; System.out.println("ingrese dato"); int a = in.nextInt(); for (int z=8; z<a; z++){
Inicio
Fibo1=n, fibo2=n
N<=1
Fibo1=4;Fibo2=6;
Fibo1=fibo1+fibo2;Fibo2=fibo2+fibo1;
Fin
if(z<=1){ z = z+3; d=0; } else{ d=b+c; } System.out.println(c+" "+z+""+d); } } }PRUEBAS DE ESCRITORIO:1)ingrese dato94 87
PROBLEMA 4
CARRERA DE LARGA DISTANCIA
ALGORITMO:inicio mensaje en pantalla pedido de PSEUDOCODIGO:DIAGRAMA DE FLUJO:CODIGO FUENTE:PRUEBAS DE ESCRITORIO:
PROBLEMA 5
SI TE DA Diagrama de Flujo:
Inicio
N1, n2
CODIGO FUENTE:package recuperacionsiteda;
import java.util.Scanner;
public class RecuperacionSiTeDa { public static void main(String[] args) { Scanner 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=, Temp=10
N1=n2
Fin
Iguales==false
Imprimir= línea 1, línea 2
n1=n2; n2=temp; contador++; if (n1== aux1&&n2==aux2){ iguales=true; } } System.out.println(""); System.out.println(contador+"veces"); } }
PRUEBAS DE ESCRITORIO:1)
18189 7 6 3 9 2 1 3 4 7 1 8 12veces
2)
27279 6 5 1 6 7 3 10 3 3 6 9 5 4 9 3 2 5 7 2 9 1 10 1 1 2 3 5 8 3 1 4 5 9 4 3 7 10 7 7 4 1 5 6 1 7 8 5 3 8 1 9 10 9 9 8 7 5 2 7 60veces
3)
59594 3 7 10 7 7 4 1 5 6 1 7 8 5 3 8 1 9 10 9 9 8 7 5 2 7 9 6 5 1 6 7 3 10 3 3 6 9 5 4 9 3 2 5 7 2 9 1 10 1 1 2 3 5 8 3 1 4 5 9 60veces