NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
Documentacion de los programas
1. Recuperación de Estructuras de Datos
Resolver los 5 ejercicios del archivo
1. 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.
2. Realizar dos videotutoriales con voz propia: uno sobre un problema que utilice array lineal y otro
sobre array bidimencional, explicar la solución completamente.
Publicar las URL´s de Youtube de los vídeos en este grupo a más tarda el día Domingo 2 de
Octubre
Ambas actividades deben estar complemente identificadas con sus datos acádemicos
DOCUMENTACION DE LA SOLUCION
(ALGORITMO, PSEUDOCODIGO DIAGRAMA DE FLUJO, CODIGO FUENTE Y LA TRES
PRUEBAS DE ESCRITORIO)
PROBLEMA 1
CARRETES
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
PSEUDOCODIGO:
iniciando variables
DIAGRAMA DE FLUJO:
CODIGO FUENTE:
package recuperacioncarretes;
2. 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);
3. 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);
}
4. }
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
5. 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
PROBLEMA 2
MATRIZ TRANSPUESTA
ALGORITMO:
PSEUDOCODIGO:
DIAGRAMA DE FLUJO:
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++)
{
6. 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
8. 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++){
if(z<=1){
z = z+3;
d=0;
}
else{
d=b+c;
}
System.out.println(c+" "+z+""+d);
}
}
}
PRUEBAS DE ESCRITORIO:
1)
ingrese dato
9
4 87
PROBLEMA 4
CARRERA DE LARGA DISTANCIA
ALGORITMO:
PSEUDOCODIGO:
DIAGRAMA DE FLUJO:
CODIGO FUENTE:
PRUEBAS DE ESCRITORIO:
PROBLEMA 5
SI TE DA
ALGORITMO:
PSEUDOCODIGO:
DIAGRAMA DE FLUJO:
CODIGO FUENTE:
9. 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;
n2=temp;
contador++;
if (n1== aux1&&n2==aux2){
iguales=true;
}
}
System.out.println("");
System.out.println(contador+"veces");
}
}
PRUEBAS DE ESCRITORIO:
1)
1
8
189 7 6 3 9 2 1 3 4 7 1 8
12veces
2)
2
7
279 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)