Está en la página 1de 12

ARREGLOS

Vectores

Matrices

Manejo de cadenas de caracteres

 Será capaz de utilizar los datos de tipo arreglo para plantear la solución de problemas que requieran de
esta estructura.
Arreglo: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una
colección de datos del mismo tipo.

Los arreglos se caracterizan por:


 Almacenan los elementos en posiciones contiguas de memoria
 Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia a
esos elementos es necesario utilizar un índice que especifica el lugar que ocupa cada elemento dentro
del archivo.

Unidimensionales (Vectores)
Tipo de
Arreglos
Bidimensionales (Matrices)

Vectores
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. Por ejemplo:

Vec[x]

Donde:
Vec………… Nombre del arreglo
x…………… Numero de datos que constituyen el arreglo

Representación gráfica de un vector

Vec[1] 7
Vec[2]
Vec[3] 8
Vec[4] 9
1
0
Llenado de un Vector

 Hacer para I = 1 a 10
Leer vec[I]
Fin-para

 Hacer mientras I <= 10


Leer vec[I]
Fin-mientras

 I=1
Repetir
Leer vec[I]
I=I+1
Hasta-que I>10

Practica 1

Programa que muestra el número de apuestas que son necesarias para que se acierten 6 números dados en la
lotería primitiva.

int[] apuesta = {22,28,3,13,40,7};


int aciertos, bola, apuestas=0;

do {
aciertos = 0;
apuestas++;
for(int i=0;i<6;i++) {
bola = (int)(Math.random()*49)+1;
for(int j=0;j<6;j++)
{
if(bola==apuesta[j])
aciertos++;
}
}
} while(aciertos<6);
System.out.println("Apuestas realizadas: "+apuestas);

}
}
Diseñe el análisis, algoritmo y diagrama de flujo
Practica 2

Programa que inicializa un vector de números enteros y los muestra en pantalla junto con la suma de su
posición.

int[] listaNumeros= {234,54,67,68,978,12};


for(int i=0; i<listaNumeros.length; i++) {
System.out.print(listaNumeros[i]);
System.out.print("...");
System.out.println(listaNumeros[i]+i);
}

Nota importante: El método length obtiene la dimensión que tiene un arreglo.

Diseñe el análisis, algoritmo y diagrama de flujo


Practica 3

Programa que carga automáticamente en un vector las letras del abecedario indicando el tamaño del vector en
una constante.

final int TAMANO = 26;


char[] listaLetras = new char[TAMANO];
char letra = 'A';

//Asignación de letras a cada elemento del vector


for(int i=0; i<TAMANO; i++) {
listaLetras[i] = letra;
letra++;
}

//Mostrar en pantalla el vector


for(int i=0; i<TAMANO; i++) {
System.out.print(listaLetras[i]+" ");
}

}
}

Diseñe el análisis, algoritmo y diagrama de flujo


Practica 4

Programa que muestra diversos elementos de un vector

int[] edades = {26,73,84,52,76,72,37,67,62,73};

//Mostrar el primer elemento


System.out.println(edades[0]);

//Mostrar el último elemento


System.out.println(edades[edades.length-1]);

//Cambiar el tercer valor y mostrarlo


edades[2] = 48;
System.out.println(edades[2]);

//Mostrar todo el vector


for(int i=0; i<edades.length; i++) {
System.out.print(edades[i]+" ");
}
System.out.println();

//Mostrar todo el vector de otra forma


for(int edad:edades) {
System.out.print(edad+" ");
}
System.out.println();

Diseñe el análisis, algoritmo y diagrama de flujo


Problemas propuestos

1) Calcular el promedio de 10 valores almacenados en un vector. Determinar además cuantos son pares,
imprimir la suma total.

2) Calcular el promedio de 10 valores almacenados en un vector. Determinar además cuantos son


mpares, imprimir la suma total.

3) Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor almacenado en el
vector. Suponga que todos los elementos del vector son diferentes.
Matriz
Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el numero de filas o
reglones y “N” el numero de columnas.

Para representar una matriz se necesita un nombre de matriz se necesita un nombre de matriz
acompañado de dos índices.

Mat [R,C]

Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.

Representación gráfica de una matriz

Fila o
Mat [R,C]
Renglon
[R] 1,1 1,2 1,3 1,4
2,1 2,2 2,3 2.4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4

Columna
[C]

Llenado de una matriz

 Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para

 Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices y se utilizan 2 ciclos
uno para los renglones y otro para las columnas; a estos ciclos se les llama ciclos anidados (un ciclo dentro
de otro ciclo).
Practica 1
Pedir 10 números por teclado y obtener la suma, media aritmética, el número menor, el número mayor y
cuántas veces se repite cada número.

import java.util.Scanner;

public class TestArreglos {


public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float promedio = 0;
float suma = 0;
int mayor = 0;
int menor = 0;

int[] miArreglo = new int[10];


for (int i = 0; i < 10; i++) {
System.out.print("Ingrese el número en la posición " + (i) + " :");
miArreglo[i] = entrada.nextInt();
}
// realizar la suma, promedio y el mayor
for (int i = 0; i < miArreglo.length; i++) {
suma += miArreglo[i];
if (mayor < miArreglo[i]) {
mayor = miArreglo[i];
}
System.out.println(String.format("Posición [%d] Elemento: %d", i,
miArreglo[i]));
}
menor = mayor;
// buscar el menor
for (int i = 0; i < miArreglo.length; i++) {
if (menor > miArreglo[i]) {
menor = miArreglo[i];
}
}
//promedio
promedio = suma / miArreglo.length;
System.out.println("***Salida***");
// contar las veces que se repite cada número
int cont;
for (int i = 0; i < miArreglo.length; i++) {
cont = 0;
for (int j = i; j < miArreglo.length; j++) {
if (miArreglo[i] == miArreglo[j]) {
cont++;
}
}
System.out.println(String.format("El número %d se repite %d veces",
miArreglo[i], cont));
}
System.out.println(String.format("La suma es %.2f, el promedio es %.2f, el mayor es %d, el
menor es %d",suma, promedio, mayor, menor));
}}

Practica 2

Ahora vamos a resumir brevemente el código utilizado.

INGRESAR NÚMEROS
Se utiliza un for para el ingreso, que va desde la línea 14 hasta la 17.

REALIZAR LA SUMA Y BUSCAR EL NÚMERO MAYOR


Desde la línea 19 hasta la 26, con la ayuda de un ciclo for en la variable suma se acumula, la suma total de
todos los elementos del vector, a la variable mayor se la inicializa en 0, con una sentencia if se va
preguntando por cada iteración si el elemento del vector es mayor al valor que tiene actualmente la variable
mayor, si es verdad se asigna en la variable mayor el elemento del vector, si no el valor de la variable mayor
se mantiene.

BUSCAR EL VALOR MENOR


En la línea 27 se asigna el valor mayor, contenido en la variable mayor a la variable menor, utilizando un
ciclo for y una sentencia if, se recorre el vector y se va preguntando si hay números menores al valor de la
variable menor, en caso de haber se actualiza el contenido de la variable.

PROMEDIO Y NÚMERO DE VECES QUE SE REPITE CADA ELEMENTO


El promedio se obtiene en la línea 35, dividiendo la suma obtenida para el número de elementos del vector,
para contar cuantas veces se repite un numero se utiliza 2 ciclos for, con una variable que hace de contador
que almacena el número de veces repetidas por elemento.

Nota importante: El método length obtiene la dimensión que tiene un arreglo.

Diseñe el algoritmo y diagrama de flujo del anterior programa


Problemas propuestos

1) Hacer un algoritmo que almacene números en una matriz de 5 * 6. Imprimir la suma de los números
almacenados en la matriz.

2) Hacer un algoritmo que llene una matriz de 10 * 10 y determine la posición [renglon ,columna] del
numero mayor almacenado en la matriz. Los números son diferentes.

Crear un array bidimensional de tamaño 8x8 y rellénalo de forma que los elementos de la diagonal
principal sean 1 y el resto 0. Muéstra el array por pantalla en forma de cuadrado.

También podría gustarte