0% encontró este documento útil (0 votos)
2 vistas

02 - Slide-Java Sesion

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas

02 - Slide-Java Sesion

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

CICLO II:

Programación
Básica en Java
Sesión 2:
Introducción a Java
Arreglos
Vectores y matrices
Objetivos de la sesión
Al finalizar esta sesión estarás en capacidad de:
1. Declarar e inicializar arreglos (vectores y matrices).
2. Utilizar los arreglos para almacenar datos y recuperarlos.
3. Iterar a través de los arreglos y manipular sus datos utilizando las primitivas
de programación estudiadas.
ARREGLOS
UNIDIMENSIONALES
VECTORES
Arreglo unidimensional: vector
Definición – Repaso
Es un arreglo de N elementos organizados en una dimensión donde N recibe el
nombre de longitud o tamaño del vector. Para hacer referencia a un elemento
del vector se usa el nombre del mismo, seguido del índice (entre corchetes), el
cual indica una posición en particular del vector.

V 7 9 17 5 74 8 1 V[4] =
10 16 5
Lectura y escritura de un vector
Pseudocódigo Java
Inicio public static void main(String[] args) {
Entero i, n, V[100] int n, i, V[] = new int[100];
Leer n Scanner leer = new Scanner(System.in);
para i: 0, n-1, 1 hacer System.out.print("Cantidad de elementos: ");
Leer V[i] n = leer.nextInt();
Finpara for (i = 0; i < n; i++) {
para i: 0, n-1, 1 hacer System.out.print("Elemento "+(i+1)+": ");
Escribir V[i] V[i] = leer.nextInt();
Finpara }
Fin System.out.println("Elementos del vector");
for (i = 0; i < n; i++) {
System.out.println(V[i]);
}
}
Arreglo unidimensional: vector
Algoritmos de inserción – Codificar en Java

Vector ordenado Vector desordenado en la posición k


Inicio
Entero V[cap_max], x, i, n, pos Inicio
pos←1 Entero V [cap_max], x, i, n, k
Leer x Leer x , k
Si (n < cap_max) entonces
Si (n < cap_max) entonces Para i ← n a k paso -1 hacer
MQ (x > V [pos]) hacer V [ i+1] ← V [ i ]
pos←pos+1 Fin para
Fin MQ V[ k ] ← x
Para i ← n a pos paso -1 hacer Sino
V [ i+1 ] ← V [ i ] Escribir “No hay espacio disponible”
Fin para; Fin si
V[ pos ] ← x Fin
Sino
Escribir “No hay espacio
disponible”
Fin si
Fin
Búsqueda secuencial en un vector
Pseudocódigo Java
public int busquedaSecuencial (int V[ ]){
Inicio int n, i, pos = 1, x;
Entero Pos ← 1, X boolean sw = false;
lógico existe ← F Scanner leer = new Scanner(System.in);
System.out.print("Cantidad estudiantes: ");
leer X n = leer.nextInt();
MQ (Pos < = N y Existe = F) for (i = 0; i < n; i++) {
hacer System.out.print("Elemento " + (i + 1) + ": ");
si (V(Pos) = X ) entonces V[i] = leer.nextInt();
existe ← V }
sino System.out.print("Elemento a buscar:");
Pos ← Pos + 1 x = leer.nextInt();
fin si while (pos <= n && sw == false) {
fin MQ if (V[pos] == x) {
Si (existe = V) entonces sw = true;
Escribir “Encontrado” } else {
sino pos = pos + 1;
Escribir “No encontrado” }
fin si }
Fin if (sw = true) {
System.out.println("Encontrado");
} else {
System.out.println("No encontrado");
}
}
Arreglo unidimensional: vector
Algoritmos de eliminación – Codificar en Java

Vector ordenado Vector desordenado en la posición k


Inicio Inicio
Entero V[cap_max], X, I, N, pos Entero V [ cap_max ], I, N, K
pos←1 Leer K
Leer X Si ( K <= N ) hacer
MQ (X > V [ pos ] && N <= pos ) Para I ← K hasta N-1 paso 1 hacer
hacer V [ I ] ← V [ I+1 ]
pos←pos+1 Fin para
Fin MQ N←N-1
Para I← pos hasta N-1 paso 1 hacer sino
V [ I ] ← V [ I+1 ]
Escribir “K debe ser menor que N”
Fin para
Fin-si
N←N-1
Fin
Fin
Ordenamiento por inserción
Método de inserción
public static void Insercion (int[] vector) {
for (int i = 1; i < vector.length; i++) {
int aux = vector[ i ];
int j;
for (j=i-1; j > =0 && vector[j] > aux;
j--){
vector[ j+1] = vector[ j ];
}
vector[ j+1] = aux;
}
}
ARREGLOS
BIDIMENSIONALES
MATRICES
Arreglo bidimensional: matriz
Definición – Repaso
j
• Es un arreglo de M x N elementos A
organizados en dos dimensiones
donde M es el número de filas o
renglones y N el número de columnas.
• Para representar una matriz se
necesita un nombre de matriz
acompañado de dos índices: Mat[i, j]
• Donde i indica la fila o renglón y j
A[i][j]
indica la columna, donde encuentra
almacenado el dato.
Arreglo bidimensional: matriz
Lectura Escritura
Inicio Inicio
Entero n, m, i, j, A[][] Entero n, m, i, j, A[][]
Leer n, m Leer n, m
para i: 1, n, 1 hacer para i: 1, n, 1 hacer
para j: 1, m, 1 hacer para j: 1, m, 1 hacer
Leer A[i][j] Escribir A[i][j]
Fin-para Fin-para
Fin-para Fin-para
Fin Fin
Arreglo bidimensional: matriz
Lectura y escritura en Java
public static void main(String[] args) {
int n, m, i, j, M[][] = new int[100][100];
Scanner leer = new Scanner(System.in);
System.out.print("Cantidad filas: ");
n = leer.nextInt();
System.out.print("Cantidad columnas: ");
m = leer.nextInt();
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
System.out.print("Elemento [" + (i + 1) + "," + (j + 1)
+ "]: ");
M[i][j] = leer.nextInt();
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
System.out.print("\t" + M[i][j]);
}
System.out.println("");
}
}
Arreglo bidimensional: matriz
Recorrido secuencial
Se puede acceder a los elementos de una matriz para introducir datos (leer) o
bien para visualizar su contenido (escribir), realizar comparaciones, búsquedas
de elementos o cualquier otro tipo de operación. El recorrido secuencial se
puede hacer por fila o columnas.
Recorrido por
Recorrido por filas
columnas
para i: 1, n, 1 hacer para j: 1, m, 1
para j: 1, m, 1 hacer
hacer para i: 1, n, 1
Escribir A[i][j] hacer
Fin-para Escribir A[i][j]
Fin-para Fin-para
Fin-para
Arreglo bidimensional: matriz
Recorrido por filas Recorrido por columnas
public class RecorrerMatrizPorFilas{ public class RecorrerMatrizPorColumnas {
public static void main(String[] args) { public static void main(String[] args) {
int[][] matriz = new int[50][100]; int[][] matriz = new int[50][100];
for (int i = 0; i < 50; i++){ for (int i = 0; i < 100; i++){
for (int j = 0; j < 100; j++){ for (int j = 0; j < 50; j++){
System.out.println(matriz[i][j]); System.out.println(matriz[j][i]);
} }
} }
} }
} }
Arreglo bidimensional: matriz
Matriz identidad – Codificar en Java
Un matriz identidad o unidad de orden n es una matriz cuadrada donde todos
sus elementos son ceros (0) menos los elementos de la diagonal principal, los
cuales son unos (1)
Inicio
Entero i, j, n A
Leer n
para i: 1, n, 1 hacer 1 0 0 0
para j: 1, n,
1 hacer 0 1 0 0
Si (i
= j) ent 0 0 1 0
A[i][j] <- 1 0 0 0 1
sino
A[i][j] <- 0
Finsi
Finpara
Finpara
Fin
Arreglo bidimensional: matriz
Suma de matrices – Codificar en Java
La suma de dos matrices se define únicamente cuando las matrices son el
mismo tamaño. Lo que significa que no es sumar matrices que no sean del
mismo tamaño porque serían incompatibles. Inicio
Entero n, m, i, j, A[ ][ ], B[ ][ ],
C[ ][ ]
Leer n, m
Para i: 1, m,1 hacer
Para j:1, p, 1 hacer
Lea A[ i ][ j ]
Lea B[ i ][ j ]
Lea C[ i ][ j ]
Fin-para
Fin-para
para i: 1, n, 1 hacer
para j: 1, m, 1 hacer
C[ i ][ j ] <- A[ i ][ j ] +
B[ i ][ j ]
Fin-para
Fin-para
Fin
Arreglo bidimensional: matriz
Multiplicación de matrices – Codificar en Java
Para multiplicar 2 matrices, Amxn y Bwxp, hay que tener en cuentas que n debe
ser igual a w. En caso contrario, no se pueden multiplicar. El proceso a seguir es:
Inicio
1*1 + 2*3 = 7
Entero n, m, i, j, k, A[][], B[][], C[][]
Leer n, m, w, p
Para i: 1, m,1 hacer
Para j:1, p, 1 hacer
Lea A[ i ][ j ]
Lea B[ i ][ j ]
3x2 2x3 3x3 Lea C[ i ][ j ]
Fin-para
5*2 + 6*4 = 34 Fin-para
Para i: 1, m, 1 hacer
Para j: 1, p, 1 hacer
C[ i ][ j ] <- 0
Para k: 1, n, 1 hacer
C[ i ][ j ] <- A[ i ][ k ]*B[ k ][ j ]+C[ i ][ j ]
Fin-para
Fin-para
Fin-para
Fin
Ejercicios para
practicar
Programa Java que guarda en un array 10 números enteros que se leen por
teclado. A continuación, se recorre el array y calcula cuántos números son
positivos, cuantos negativos y cuantos ceros.
import java.util.*; //se recorre el array para contar positivos, negativos y ceros
for (i = 0; i < numeros.length; i++) {
public class Main { if (numeros[i] > 0) {
pos++;
public static void main(String[] args) { } else if (numeros[i] < 0) {
Scanner sc = new Scanner(System.in); neg++;
int[] numeros = new int[10]; } else {
int pos = 0, neg = 0, cero = 0; //contadores cero++;
int i; }
}
//Leemos los valores por teclado y los guardamos en el array
//mostrar resultados
System.out.println("Lectura de los elementos del array: "); System.out.println("Positivos: " + pos);
for (i = 0; i < numeros.length; i++) {
System.out.print("numeros[" + i + "]= "); System.out.println("Negativos: " + neg);
numeros[i] = sc.nextInt(); System.out.println("Ceros: " + cero);
} }

}
Programa Java para leer la altura de N personas y calcular la altura media.
Calcular cuántas personas tienen una altura superior a la media y cuántas
tienen altura inferior a la media. El valor de N se pide por teclado y debe ser
entero positivo.
import java.util.*;
//Leer alturas
System.out.println("Lectura de la altura de las personas: ");
for (i = 0; i < N; i++) {
public class Main { System.out.print("persona " + (i+1) + " = ");
alto[i] = sc.nextDouble();
public static void main(String[] args) { media = media + alto[i]; //se suma la estatura leída para calcular la media

Scanner sc = new Scanner(System.in); }


int i, N; //Calcular la media
int contMas = 0, contMenos = 0; media = media / N;
double media = 0; //recorremos el array para ver cuantos hay más altos
//que la media y cuantos más bajos
//Leer el número de personas for (i = 0; i < alto.length; i++) {
do{ if (alto[i] > media){ //si la estatura es mayor que la media
System.out.print("Número de personas: "); contMas++;
} else if (alto[i] < media){ //si es menor
N = sc.nextInt(); contMenos++;
}while(N<=0); }
}
//Se crea el array de tamaño N
double[] alto = new double[N]; //Mostrar resultados
System.out.println("Estatura media: " + media);
System.out.println("Personas con estatura superior a la media: " + contMas);
System.out.println("Personas con estatura inferior a la media: " + contMenos);

}
}
Crear dos matrices de nxn y sumar sus valores, los resultados se deben almacenar
en otra matriz. Los valores y la longitud, serán insertados por el usuario. Mostrar
las matrices originales y el resultado.
public class Ejercicio_3 { System.out.println("Matriz 1");
public static void main(String[] args) { muestraMatriz(matriz1);
Scanner sn=new Scanner(System.in); System.out.println("Matriz 2");
System.out.println("Escribe un tamaño"); muestraMatriz(matriz2);
int tamanio=sn.nextInt(); System.out.println("Matriz resultante");
int matriz1[][]=new int[tamanio][tamanio]; muestraMatriz(resultado);
int matriz2[][]=new int[tamanio][tamanio]; }
int resultado[][]=new int[tamanio][tamanio]; public static void muestraMatriz(int[][] matriz){
for(int i=0;i<matriz1.length;i++){ for(int i=0;i<matriz.length;i++){
for(int j=0;j<matriz1[0].length;j++){ for(int j=0;j<matriz[0].length;j++){
System.out.println("Escriba el valor para la fila "+i+"y columna "+j+" de la System.out.print(matriz[i][j]+" ");
matriz 1"); }
matriz1[i][j]=sn.nextInt(); System.out.println("");
System.out.println("Escriba el valor para la fila "+i+"y columna "+j+" de la }
matriz 2"); }
matriz2[i][j]=sn.nextInt();
resultado[i][j]=matriz1[i][j]+matriz2[i][j];
}
}

También podría gustarte