SEMANA No 6 Parcial
SEMANA No 6 Parcial
SEMANA No 6 Parcial
estructurada.
Primitivos – No primitivos
FUNDAMENTOS DE LA PROGRAMACION
ESTRUCTURADA
TIPOS DATOS
TIPOS DE DATOS
TIPOS PRIMITIVOS
PRIMITIVOS
NO PRIMITIVOS
DEFINICION ESTRUCTURAS DATOS
ESTRUCTURAS DE DATOS ESTATICAS
ARREGLOS
• Se pueden declarar como: int[] A; int A[];
Esto es la declaración del puntero al arreglo, no se
especifica tamaño en la declaración;
• Inicialización: A = new int[10]; int[] A = new int[10];
• Empiezan desde 0: for(int i=0; i < 10; ++i) A[i] = 0;
• Se puede averiguar el tamaño: int largo = A.length;
• length es un campo del objeto arreglo y no un método.
No es necesario el método ya que el tamaño, como el
contenido de un String no varían después de su
creación.
17
Vectores
VECTORES
• Los vectores son una colección de variables del
mismo tipo, que tienen un nombre común.
Forma 1 Forma 2
package arreglos; package arreglos;
import javax.swing.JOptionPane;
import javax.swing.JOptionPane;
public class Arreglos {
public class Arreglos {
public static void main(String[] args) {
public static void main(String[] args) {
int [] numeros = new int[3]; int [] numeros = {3,5,7,10};
package arreglos;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Arreglos {
public static void main(String[] args) {
Scanner entrada =new Scanner (System.in);
int nElementos;
nElementos =Integer.parseInt(JOptionPane.showInputDialog("Digite la cantidad de elementos del
arreglo "));
char[]letras=new char[nElementos];
System.out.println("Digite los elementos del arreglo:");
package ejercicio1_arreglos;
import java.util.Scanner;
public class Ejercicio1_Arreglos {
public static void main(String[] args) {
Scanner entrada =new Scanner (System.in);
float numeros[]=new float [5];
import java.util.Scanner;
public class arreglo1 {
public static void main(String[] args) {
int i=0;
Scanner scanner = new Scanner(System.in);
// lee e ingresa notas al arreglo
while (i<5) {
System.out.print("Ingrese nota :");
notas[i] = scanner.nextInt(); // ingresa al arreglo
i++;
}
// Muestra las notas del arreglo
i=0;
while (i<5) {
System.out.println("La nota es :"+ notas[i]);
i++;
}
} }
Ejemplo 4: Realizar un arreglo para sacar promedio de 6 notas ingresadas
MATRICES
0 1 2 ..... m
M[0][0] M[0][1] M[0][2] ... M[0][m]
0
M[1][0] M[1][1] M[1][2] ... M[1][m]
1
2 M[2][0] M[2][1] M[2][2] ... M[2][m]
:
n M[n][0] M[n][1] M[n][2] ... M[n][m]
M[0][0] M[0][1] M[0][2]
int [ ] [ ] matriz1;
int [ ] [ ] matriz3 = { { 3, 4, 8 }, { 1, 2, 5 } };
equivale a escribir
int matriz3 [ ] [ ] = { { 3, 4, 8 }, { 1, 2, 5 } };
Ejemplo 1: Realizar un programa para visualizar los datos de
una matriz
import java.util.Scanner;
class Matriz {
public static void main(String args[])
{
int matriz[][]={{1,2,3},{4,5,6},{7,8,9}};
}
System.out.print("\n");
}
}
}
Ejemplo 2: Realizar un programa para ingresar numero de filas
y columnas de una matriz
}
}
package matriz;
import java.util.Scanner;
class matriz {
public static void main(String args[]) {
Scanner EN=new Scanner(System.in);
int M[][]=new int[3][3];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
M[i][j]=EN.nextInt();
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
System.out.print(M[i][j]+" ");
System.out.println();
}
}
}
Ejemplo 3: Realizar la suma de filas y columnas de una matriz
System.out.println("\nLa matriz es: ");
for (int i=0;i<nFilas;i++) {//numero filas
package matriz; for (int j=0;j<nColumnas;j++) { //numero de columnas
import java.util.Scanner; System.out.print(matriz[i][j]+" ");
import javax.swing.JOptionPane; }
class Matriz { System.out.println("");
public static void main(String args[]) }
{ //Sumar Filas
Scanner entrada= new Scanner (System.in);
int matriz[][],nFilas,nColumnas,sumaFila, sumaColumna; for (int i=0; i<nFilas;i++){
sumaFila =0;
nFilas=Integer.parseInt(JOptionPane.showInputDialog("Digite el numro de for (int j=0;j<nColumnas;j++){
Filas")); sumaFila +=matriz[i][j];
nColumnas=Integer.parseInt(JOptionPane.showInputDialog("Digite el numro de }
Columnas")); System.out.println("\n La suma de la fila es ["+i+"]: "+sumaFila);
}
matriz=new int [nFilas][nColumnas]; System.out.println("");
System.out.println("Digite la Matriz"); //suma columnas
for(int j=0;j<nColumnas;j++){
for (int i=0;i<nFilas;i++) {//numero filas sumaColumna =0;
for (int j=0;j<nColumnas;j++) { //numero de columnas for (int i=0;i<nFilas;i++){
System.out.print("Matriz["+i+"]["+j+"]: "); sumaColumna += matriz[i][j];
matriz[i][j]= entrada.nextInt(); }
} System.out.println("\n La suma de la Columna es ["+j+"]:
} "+sumaColumna);
}
System.out.println("");
}
}
EJERCICIOS VECTORES
• Insertar los primeros 10 números naturales en un vector y posteriormente visualizar los
datos del vector
• Leer 5 números, guárdalos en un arreglo y mostrarlos en el orden inverso al introducirlo
• Realizar un programa para insertar 5 datos por teclado en un vector de 10 posiciones y
posteriormente calcular la sumatoria y el promedio al final visualizar los datos del vector.
• Realizar un arreglo tipo de vector que me permita mostrar los días de la semana en su
respectivo orden de ingreso
• Crea un arreglo de números de 100 posiciones, que contendrá los números del 1 al 100.
Obtén la suma de todos ellos y la media.
• Realizar un arreglo tipo vector que me indique la posición del mayor numero ingresado
• Realice un arreglo tipo vector que me permita identificar de acuerdo al anterior ejercicio
cual es el numero mayor, el numero menor y numero neutro e indicar la posición,
ingrese alrededor de 10 valores
EJERCICIOS MATRICES
• Realizar un programa para insertar datos por teclado en una matriz
de 3 x 3 y posteriormente visualizar los datos de la misma
• Desarrollar una matriz de 3*3 con números y hallar el promedio de
la fila 3
• Realizar un arreglo tipo matriz que muestre la siguiente lista de
datos
Nombre Apellidos ID de alumno Telefono
BRAYAN DANIEL ACOSTA LEAL 1003764825 123456
FRANK ESTEBAN ALFONSO CASTAÑEDA 1000775987 789456
BRAYAN ALONSO DIAZ 1026599055 1455456
JUAN STEVEN AMAYA EL MARBU 1000734057 2121456
JHONATAN DAVID APONTE BETANCOURT 1000163867 2787456
YAIR ALEXANDER BARRERO ECHEVERRY 1000126834 3453456
JULIAN ANDRES BELTRAN COCA 1000288547 4119456
HUGO ALEJANDRO BELTRAN QUESADA 1192799990 4785456
ANDRES FELIPE CALDERON MANCERA 1000775880 5451456
DILAN SEBASTIAN CAMACHO CARDENAS 1000786595 6117456
BUSQUEDA SECUENCIAL
Ejemplo: Vector Ordenado Buscar el elemento 25
1 11 21 25 60
C1: 1 = 25 NO
C2: 11 = 25 NO
C3: 21 = 25 NO
C4: 25 = 25 SI FIN BUSQUEDA
Ejemplo: Vector No Ordenado Buscar el elemento 200
21 100 200 12 5
C1: 21 = 200 NO
C2: 100 = 200 NO
C3: 200 = 200 SI FIN BUSQUEDA
BUSQUEDA BINARIA
Ejemplo: Vector Ordenado Buscar el elemento 8
4 6 8 10 12 14 16
1 2 3 4 5 6 7
I J
Buscamos el punto medio M=(I+J)/2 M=(1+7)/2=4
4 6 8 10 12 14 16
1 2 3 4 5 6 7
I M J
Si el elemento a buscar es mayor que el punto medio, se encuentra en la mitad superior, de lo contrario se
encuentra en la mitad inferior
8>10 NO
8<10 SI
Recorremos J
J=M-1 4-1=3
4 6 8
1 2 3
I
J
Se busca un nuevo punto medio
M=(I+J)/2 M=(1+3)/2=2
4 6 8
1 2 3
I M J
8>6 SI
Recorremos I
I=M+1 2+1=3
8
3
J
I
M
Se busca un nuevo punto medio M=(3+3)/2 = 3
3>3 NO
3<3 NO
3=3 SI EL ELEMENTO HA SIDO ENCONTRADO EN LA POSICION 3
EJERCICIO BUSQUEDAS
6 2 1 4 7 3
Buscar el elemento 5
7 1 4 5 6 3 2
Buscar el elemento 6
5 8 2 3 1 4 7 6
Buscar el elemento 450
Buscar el elemento 60
3 4 5 6 7 8 9
Buscar el elemento 10
2 3 4 6 10 12 14 17
Buscar el elemento 22
2 4 5 7 8 9 12 14 17 19 22 25 27 28 33 37 550 600
Buscar el elemento 14
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 37 550 600
Búsqueda Secuencial
package busquedalineal;
while (posicion<numeros.length){ //Bucle que recorre el vector desde la posicion que inicia en cero hasta que
posicion sea menor al tamaño del vector
while(posini<=posfin){
}else {
posini=poscent+1;
}
}
}
}
Ejercicio
Solicitar el ingreso del valor buscado y responder en caso de que el
valor no se encuentre dentro del arreglo “El Numero no fue
encontrado”
METODO ORDENAMIENTO BURBUJA
Numero Actual
Numero Siguiente
METODO ORDENAMIENTO INSERCION
EJERCICIO ORDENAMIENTO METODO BURBUJA
7 1 4 5 6 3 2
5 8 2 3 5 4 7 6
8 9 1 2 3 5 4 6 8
5 1 3 7 2 9 10 8 4 11