CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1
Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1. Selectivas 1. if-else 2. switch 2. Repetitivas 1. while 2. Do while 3. for / for each 5. Uso de Arreglos 2
Logica de Programación La solución de un programa se puede implementar a traves de un algoritmo que no es otra cosa que la secuencia de instrucciones que debemos seguir para llegar a la solucion de un problema es decir el flujo del algoritmo. A un algoritmo escrito utilizando las instrucciones de un lenguaje de programacion se le denomina programa. Desde la idea hasta el planteamiento del problema se escribe la secuencia de pasos quizas no en forma global sino en problemas especificos o individuales. La elección del lenguaje sera en este caso Java 3
Para poder escribir codigo usando Java se necesita un entorno o ambiente de desrrollo mas conocido como IDE. Todo IDE trabaja en base a proyectos. Un proyecto del IDE es un conjunto de código Java, información asociada a éste en el classpath que es la ruta fisica donde se ubican las librerias que la aplicacion necesita para la ejecucion dependiendo si esta es escritorio(desktop), web o moviles. 4
Una aplicación de escritorio es un programa que se guarda como archivo con extensión java. En Programación orientada a objetos es una clase con un nombre y sintaxis ya definidas por ejemplo Java es case-sensitive (distingue minusculas y mayusculas) public class Main { public static void main(string[] args) { // Colocar aqui todo el codigo que desea probar //y ejecutar para obtener un resultado public Main() { super(); 5
Uso de Algoritmos usando Lenguaje Java 1. Una clase representa a un objeto donde el programador pueda definir atributos o propiedades, metodos. 2. Las propiedades definen caracteristicas del objeto. 3. Presento el siguiente demo donde se definen 4 atributos de la clase persona. package examples; public class Persona { private String apellido; private String nombre; private int edad; private String email; public Persona(String vap,string vnom,int vedad,string vemail){ this.apellido = vap; this.apellido = vnom; this.edad = vedad; this.email = vemail; 6
Ingreso de datos La operacion de entrada de datos mediante la clase Scanner. Consiste ingresar informacion del usuario a traves del teclado. La clase Scanner se usa de forma no estatica es decir se necesita instanciar con el operador new asi : Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in); System.out.println("Ingrese su nombre"); String name=sc.nextline(); System.out.println("Ingrese numero 1:"); int num1=sc.nextint(); System.out.println("Ingrese numero 2:"); int num2=sc.nextint(); int s = num1+num2; System.out.println("La suma es : " + s); 7
Ejercicios : 1. Calcular la media aritmetica de dos notas enteras. Tener en cuenta que la media puede contener decimales 2. Escribir un programa que permita ingresar el año actual y el denacimiento del usuario, debera calculara la edad. 3. Crear un programa que pida la base y la altura de un triangulo y muestre su area. 4. Escribir un programa que permita ingresar un numero entero y nos indique que cantidad hay que sumarle para que el resultado sea multiplo de 7. 5. Crear un programa que permita calcular el area de una circunferencia, tomando en cuenta : A = πr 2 8
Sentencias de control 1. La sentencia if evalua una condición y segun sea true o false ejecuta un bloque de codigo. Dado una fecha del presente año (día) determinar el día de la semana al cual pertenece. No usar funciones del sistema. Dato: 5 fue Jueves Ejemplo: Día: 5 Resultado: Domingo 9
package demos; public class calculos { String dia=""; public String diasemana(int d){ if (d==1) {dia="domingo"; else if (d==2) {dia="lunes"; else if (d==3) {dia="martes"; else if (d==4) {dia="miercoles"; else if (d==5) {dia="jueves"; else if (d==6) {dia="viernes"; else if (d==7) {dia="sabado"; else{ dia="dia no existe"; return dia; calculos calc = new calculos(); System.out.println(calc.diaSem ana(4)); 10
2. Uso de switch Evalua una expresion y ejecuta una tarea determinada, similar al uso de if - else public String diasemana(int d){ switch(d){ case 1: dia="domingo";break; case 2: dia="lunes";break; case 3: {dia="martes";;break; case 4: {dia="miercoles";;break; case 5: {dia="jueves";;break; case 6: {dia="viernes";;break; case 7: {dia="sabado";;break; return dia; 11
2. Uso de while Ejecuta una tarea determinada en forma repetitiva mientras se cumpla una condicion. Ejemplo : public int suma(){ //declara variables int suma=0; int n=1; while (n<=3){ suma+=n; n+=1; return suma; Ejemplo : public int suma2(){ int suma=0; int n=1; do { suma+=n; n+=1; while (n<=3); return suma; 12
2. Uso de for Ejecuta una tarea determinada en forma repetitiva public int suma3(){ int suma=0; for (int x=0;x<=4;x+=1){ suma = suma + x; return suma; //Aqui se declara una instancia de la clase calculos //usando la palabra reservada new calculos calc = new calculos(); System.out.println(calc.diaSemana(4)); System.out.println(calc.diasemana(3)); System.out.println(calc.suma1()); System.out.println(calc.suma2()); System.out.println("La suma es =>" + calc.suma3()); 13
public class varios { static Vector v=new Vector(3); public static void main(string[] args) { v.addelement("juan"); v.addelement("maria"); v.addelement("meche"); for (int i=0;i<v.size();i++){ System.out.println(v.get(i)); 14
Uso de arreglos Permite almacenar un conjunto de elementos para su posterior uso. try { int[] edades = new int[4]; edades[0]=15; edades[1]=12; edades[2]=22; edades[3]=30; int vsuma =0; for (int n : edades){ vsuma+=n; double p = vsuma/edades.length; System.out.println("La edad promedio es : " + p); catch(indexoutofboundsexception e){ System.out.println(e.getMessage()); catch(exception e){ String vbuscar="jose"; boolean existe=false; String[] nombres = new String[5]; nombres[0]="luis"; nombres[1]="pedro"; nombres[2]="ana"; nombres[3]="veronica"; nombres[4]="jose"; for (int j=0;j<nombres.length;j++){ if (nombres[j].equals(vbuscar)){ existe = true; if (existe){ System.out.println("El nombre " + vbuscar + " si existe"); else { System.out.println("El nombre " + vbuscar + " no existe"); 15
Arreglos bidimensionales (Matrices) int tab = 4; int[][] tb = new int[3][3]; tb[0][0]=15; tb[0][1]=9; tb[0][2]=11; tb[1][0]=10; tb[1][1]=7; tb[1][2]=50; tb[2][0]=14; tb[2][1]=26; tb[2][2]=9; System.out.println(tb.length); for (int i = 0; i < tb.length; i++) { for (int j = 0; j < tb.length; j++) { System.out.println(tb[i][j] + " " + " " + tb[i][j]); 16
Arreglos dinámicos (ArrayList) La clase ArrayList en Java, es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, que no es necesario declarar su tamaño como pasa con los Arrays. ArrayList<tipo> nombrearray = new ArrayList<tipo>(); tipo debe ser una clase. Indica el tipo de objetos que contendrá el array. No se pueden usar tipos primitivos. Para un tipo primitivo se debe utilizar su clase envolvente. Por ejemplo: ArrayList<Integer> numeros = new ArrayList<Integer>(); Podemos recorrerlo de forma clásica con un bucle for: for(int i = 0;i<array.size();i++){ System.out.println(array.get(i)); 17
ArrayList<String> nombres = new ArrayList<String>(); nombres.add("ana"); nombres.add("luisa"); nombres.add("felipe"); System.out.println(nombres); // [Ana, Luisa, Felipe] nombres.add(1, "Pablo"); System.out.println(nombres); // [Ana, Pablo, Luisa, Felipe] nombres.remove(0); System.out.println(nombres); // [Pablo, Luisa, Felipe] nombres.set(0,"alfonso"); System.out.println(nombres); // [Alfonso, Luisa, Felipe] String s = nombres.get(1); String ultimo = nombres.get(nombres.size() - 1); System.out.println(s + " " + ultimo); // Luisa Felipe 18