0% encontró este documento útil (0 votos)
52 vistas76 páginas

SEMANA No 6 Parcial

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1/ 76

Fundamentos de la programación

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.

• También son llamados arreglos unidimensionales. Los


cuales son definidos por un nombre, dimensión y
tipo de dato.

• Para acceder a un elemento particular de un arreglo


se usa su nombre y su ubicación en el conjunto
(denominado índice).
Realice los siguientes ejemplos

Ejemplo 1: Realizar un programa para visualizar los datos de un vector

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

numeros[0]=5; for(int i=0;i<4;i++){


numeros[1]=10;
numeros[2]=13;
for(int i=0;i<3;i++){ JOptionPane.showMessageDialog(null,numeros[i]);
JOptionPane.showMessageDialog(null,numeros[i]); }
}
}
}
}
}
Ejemplo 2: Realizar un programa para llenar un arreglo

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

for (int i=0;i<nElementos;i++){


System.out.print("Digite un caracter numero"+(i+1)+":");
letras[i]= entrada.next().charAt(0);
}
System.out.println("\n Los caracteres del arreglo son:");
for(int i=0;i<nElementos;i++) {
System.out.print(letras[i]+" ");
System.out.print("\n ");
}
}
}
Ejemplo 3: leer 5 números, guardarlos en un arreglo y mostrarlos en el mismo orden introducido

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

System.out.println("Guardando los datos en el arreeglo");


for (int i=0; i<5;i++){
System.out.print((i+1)+". Digite un numero");
numeros[i]=entrada.nextFloat();
}
System.out.println("\n Imprimir los elmentos del arreglo");
for (float i:numeros){
System.out.println(i);
}
}
}
Ejemplo 5: Realizar el ingreso de 5 notas en un vector de y muestre las notas que se
ingresaron

import java.util.Scanner;
public class arreglo1 {
public static void main(String[] args) {

// declaración de variable del tipo arreglo


int[ ] notas = new int[10];

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

package ejercicio1_arreglos; System.out.println("Calificaciones Etica:");


import java.util.Scanner; calif[4]=s.nextInt();
public class Ejercicio1_Arreglos {
public static void main(String[] args) { System.out.println("Calificaciones de administracion:");
calif[5]=s.nextInt();
Scanner s=new Scanner(System.in);
int calif[]= new int[6]; for (int i=0; i<calif.length;i++){
int suma=0;
float promedio; suma+=calif[i];
}
System.out.println("CALIFICACIONES DE PRIMER SEMESTRE\n"); promedio=(suma/calif.length) ;
System.out.println("Calculo diferncial:"); System.out.println("El promedio de calificaciones
calif[0]=s.nextInt(); es:"+promedio);
if (promedio>=3){
System.out.println("Calificaciones Introduccion a la System.out.println("Haz pasado el primer semestre");
programacion:"); }
calif[1]=s.nextInt(); else {
System.out.println("No aprobaste el semestre");
System.out.println("Calificaciones Fundamentos de }
investigacion:"); }
calif[2]=s.nextInt();
}
System.out.println("Calificaciones Matematicas discretas:");
calif[3]=s.nextInt();
Arreglo Bidimensional

MATRICES

• Un arreglo bidimensional es un conjunto de datos homogéneo , finito


y ordenado, donde se hace referencia a cada elemento por medio de
dos índices.
• El primero se utiliza para indicar el renglón o fila y el segundo para
indicar la columna.
• También puede definirse como un vector de vectores.
Matriz M(n x m)

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]

M[1][0] M[1][1] M[1][2]

M[2][0] M[2][1] M[2][2]

M[3][0] M[3][1] M[3][2]


M[0][0]=3
M[0][1]=6
M[0][2]=-1
M[1][0]=5
M[1][1]=2
M[1][2]=11
M[2][0]=9
M[2][1]=1
M[2][2]=4
M[3][0]=21
M[3][1]=7
M[3][2]=8
Declaración de una matriz y Asignación en una matriz

int [ ] [ ] matriz1;

matriz1 = new int [ 2] [ 3 ];

int [ ] [ ] matriz2 = new int [ 2 ] [ 3 ];

int [ ] [ ] matriz3 = { {3, 4, 8},{1, 2, 5} };


int [ ] [ ] matriz1;
equivale a escribir:
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

Forma 1 package matriz;

import java.util.Scanner;
class Matriz {
public static void main(String args[])
{

int matriz[][]={{1,2,3},{4,5,6},{7,8,9}};

for (int i=0;i<3;i++) {//numero filas


for (int j=0;j<3;j++) { //numero de columnas
System.out.print(matriz[i][j]);

}
System.out.print("\n");

}
}
}
Ejemplo 2: Realizar un programa para ingresar numero de filas
y columnas de una matriz

Forma 2 matriz=new int [nFilas][nColumnas];


System.out.println("Digite la Matriz");
package matriz;
import java.util.Scanner;
for (int i=0;i<nFilas;i++) {//numero filas
import javax.swing.JOptionPane;
for (int j=0;j<nColumnas;j++) { //numero de columnas
class Matriz {
System.out.print("Matriz["+i+"]["+j+"]: ");
public static void main(String args[])
matriz[i][j]= entrada.nextInt();
{
}
Scanner entrada= new Scanner (System.in);
}
int matriz[][],nFilas,nColumnas;
System.out.print("\nLa matriz es: ");
for (int i=0;i<nFilas;i++) {//numero filas
nFilas=Integer.parseInt(JOptionPane.showInpu
for (int j=0;j<nColumnas;j++) { //numero de columnas
tDialog("Digite el numero de Filas"));
System.out.print(matriz[i][j]);
nColumnas=Integer.parseInt(JOptionPane.sho
wInputDialog("Digite el numero de
}
Columnas"));
System.out.println("");
}

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

• Realice búsquedas secuenciales paso a paso de los siguientes


vectores
Buscar el elemento 7

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

20 40 60 100 300 450 500 550 600

Buscar el elemento 60

10 20 30 45 55 60 71 150 200 300


EJERCICIO BUSQUEDAS

• Realice búsquedas Binarias paso a paso de los siguientes vectores


Buscar el elemento 7
1 2 3 4 5 7
Buscar el elemento 5

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;

public class BusquedaLineal {


public static void main(String[] args) {

int[] numeros={1,11,21,25,60}; // Declaracion Vector segun Numero elementos


int numeroBuscado=25; //Valor que se pretende buscar
int posicion=0; //Posicion a la que apunta el vector
int resultado=0; //Variable que guarga la posicion final donde se va a encontrar el numero buscado

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

if (numeros[posicion]== numeroBuscado){ // Comparar si cada posicion es igual al numero buscado si es


verdadero es igual a la posicion a que se encuentra en el numero buscado
resultado=posicion;
break; // Salir bucle
}else {
posicion++; // Se incrementa en caso para seguir evaluando cada posicion del vector
}
}

System.out.println("El numero "+numeroBuscado+" fue encontrado en la posicion ["+resultado+"]");


}
}
Búsqueda Binaria
package busquedabinaria;

public class BusquedaBinaria {

public static void main(String[] args) {

int arrl[] ={1,2,3,4,5,6,7,8,9,10}; //Numero elementos


int n=3; //Valor Buscado
int posini=0; //Posicion Inicil
int posfin=arrl.length-1; //Posicion Final segun tamaño arreglo
int poscent; //Posicion Centro

while(posini<=posfin){

poscent=(posfin+posini)/2; //Obtener posicion medio


if (arrl[poscent]==n){ // Arreglo en el centro es igual al numero buscado imprime dato de la posicion del valor

System.out.println("Dato encontrado entre las posiciones "+posini+" y "+posfin);


break; //Finalizacion de while
}else if(n<arrl[poscent]){
posfin=poscent-1;

}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

• Realice el ordenamiento paso a paso de los siguientes vectores con el


metodo burbuja y método de insercion
6 2 1 4 7 3

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

También podría gustarte