rene documentacion programas

16
DOCUMENTACION DE ALGORITMO PSEUDOCODIGO DIAGRAMA DE FLUJO CODIGO FUENTE PRUEBAS DE ESCRITORIO MATRICULA 1415063005 2 Profesor: Rene Dominguez Alumno David Robles Ruiz Grupo 2416IS

Upload: david-robles

Post on 13-Jan-2017

53 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Rene documentacion programas

documentacion de algoritmo pseudocodigo diagrama de flujo codigo fuente pruebas de escritorio

MATRICULA 14150630052Profesor: Rene DominguezAlumno David Robles RuizGrupo 2416IS

Page 2: Rene documentacion programas

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

Page 3: Rene documentacion programas

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;

Page 4: Rene documentacion programas

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];

Page 5: Rene documentacion programas

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;

Page 6: Rene documentacion programas

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)

Page 7: Rene documentacion programas

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

Page 8: Rene documentacion programas

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);

Page 9: Rene documentacion programas

//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

Page 10: Rene documentacion programas

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

Page 11: Rene documentacion programas

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

Page 12: Rene documentacion programas

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

Page 13: Rene documentacion programas

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

Page 14: Rene documentacion programas

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