facultad de ingeniería y arquitectura introducción a la computación 2007 – i (14va semana)...

29
Facultad de Ingeniería y Arquitec Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. [email protected]

Upload: xiomara-allende

Post on 21-Apr-2015

2 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

Facultad de Ingeniería y Arquitectura

Introducción a la Computación 2007 – I

(14va Semana) Lunes 11 de Junio

Ing. Juan José Montero Román.

[email protected]

Page 2: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS TIPO ARREGLOVECTORES

ESTRUCTURAS DE DATOS TIPO ARREGLOVECTORES

Introducción a la Computación

SEMANA 15

Page 3: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

Objetivos :

• Describir la estructura de datos tipo arreglo. Uso de vectores y matrices.

• Desarrollo de soluciones con uso de vectores

Introducción a la Computación

Page 4: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

Los arreglos son estructuras de datos que consisten en elementos del mismo tipo. Los arreglos son entidades estáticas en cuanto a que su tamaño no cambia una vez que han sido creadas.

Se debe tener en cuenta que antes de usar los elementos de un arreglo, se debe declarar, crear e inicializar el arreglo.

ESTRUCTURAS DE DATOS : ARREGLOS

ARREGLOS

Definición:

Page 5: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ARREGLOS

Tipos:

32 -2 0 174

0 1 2 3

números

tamaño=4

• Arreglos unidimensionales o vectores

Representación:

• Arreglos bidimensionales o matrices

Representación:

32 -2 0 174

0 1 2 3

números

filas=2, columnas=4

14 12 -5 129

0

1

ESTRUCTURAS DE DATOS : ARREGLOS

Page 6: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

DECLARACIÓN:

tipoDato nombreVector [ ]

En Pseudocódigo

Ejemplos;

- TEXTO nombres [ ]

- NUMERO sueldos [ ] - CARACTER letras [ ]

tipoDato nombreVector [ ] ;

En Java

tipoDato [ ] nombreVector ;

Ejemplos;

- String nombres [ ] ;

- double sueldos [ ] ; - char letras [ ] ;

ARREGLOS TIPO VECTOR

Page 7: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

CREACIÓN:

CREAR nombreVector [tamaño]

Ejemplos;

- CREAR nombres [10 ]

- CREAR sueldos [numNot] - CREAR letras [LONGITUD texto]

nombreVector = new tipoDato [tamaño] ;

Ejemplos;

- nombres = new String [10] ;

- sueldos = new double [numNot] ; - letras = new char [texto.length()] ;

ARREGLOS TIPO VECTOR

En Pseudocódigo En Java

Page 8: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

INGRESO DE DATOS:

identificador [índice] = valor ;nombreVector [índice] = valor

Ejemplos; Ejemplos;

Cuando utilizamos vectores podemos utilizar las estructuras lógicas de repetición para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE ó PARA.

- nombres [0 ] = “Danae”

- sueldos [1] = 100.5 - letras [x] = ‘J’

- nombres [0 ] = “Danae” ;

- sueldos [1] = 100.5 ; - letras [x] = ‘J’ ;

ARREGLOS TIPO VECTOR

En Pseudocódigo En Java

Page 9: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

TAMAÑO:

variable = LONGITUD nombreVector [ ]

Ejemplos;

- tamaño = LONGITUD nombres [ ]

- tamaño = LONGITUD sueldos [ ] - tamaño = LONGITUD letras [ ]

variable = nombreVector.length ;

Ejemplos;

- tamaño = nombres.length ;

- tamaño = sueldos.length ; - tamaño = letras.length ;

ARREGLOS TIPO VECTOR

En Pseudocódigo En Java

Page 10: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

DECLARACIÓN Y CREACIÓN:

En Java

DECLARACIÓN, CREACIÓN E INICIALIZACIÓN:

tipoDato nombreVector [ ] = { valor1, valor2, valor3, valor4, … , valorN } ;

En Java

tipoDato nombreVector [ ] = new tipoDato [tamaño] ;

ARREGLOS TIPO VECTOR

Page 11: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

Ejercicio 1

Desarrollar una solución que permita ingresar y almacenar las notas de todas las prácticas de un alumno. Determinar el promedio de las prácticas sabiendo que se elimina la práctica con la nota mas baja.

Utilice vectores.

ARREGLOS TIPO VECTOR

Page 12: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ENTRADA: numPra, notas[ ] / SALIDA: promAluINICIO ENTERO i, numPra REAL sumaNotas = 0, notaMenor = 20 REAL notas[ ], promAlu COMENTARIO “Creación del arreglo” CREAR notas [numPra] COMENTARIO “Ingreso de datos al arreglo notas[ ].” PARA (i=0, i<numpra, i=i+1) HACER LEER notas[i] FINPARA COMENTARIO “Cálculo del promedio de notas de las prácticas” PARA (i=0, i<numpra, i=i+1) HACER sumaNotas = sumaNotas + notas[i] FINPARA PARA (i=0, i<numpra, i=i+1) HACER SI ( notaMenor > notas[i] ) ENTONCES notaMenor = notas[i] FINSI FINPARA promAlu = ( sumaNotas - notaMenor ) / ( numPra - 1 )ESCRIBIR promAlu

Algoritmo VectorNotas

Page 13: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe
Page 14: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

TRABAJO FINAL

Desarrolle una solución en Java que permita mostrar un menú con las siguientes opciones:[ 1 ] Presentación del grupo de trabajo[ 2 ] Test [ 3 ] Generación de gráfico de números [ 4 ] Uso de la Clase String[ 5 ] Salida

[ 1 ] Presentación del grupo de trabajo, En esta opción la solución deberá Mostrar el nombre y código de los integrantes del grupo.

Page 15: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

TRABAJO FINAL

[ 2 ] Test, La solución en Java para esta opción, deberá permitir evaluar el conocimiento de un alumno de los temas desarrollados en el curso de Introducción a la Computación. Para ello deberá considerar:a.- El numero de preguntas disponibles para evaluarse, deberán ser 30, cada una de las cuales deberá tener 5 alternativas, debiendo ser solo una de ellas la correcta.b.- El usuario deberá ingresar el número de preguntas a responder, siendo el mínimo número de preguntas a responder de 5 preguntas y el máximo de 20 preguntas.c.- El programa deberá seleccionar aleatoriamente el número de preguntas seleccionadas por el usuario en base de las 30 preguntas disponibles, validando que no se repita la misma pregunta.d.- Finalmente la solución deberá mostrar la cantidad y porcentaje de preguntas respondidas correctamente y el total de preguntas seleccionadas por el usuario.

Page 16: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

TRABAJO FINAL

[ 3 ] Generación de gráfico de números, En esta opción la solución deberá generar con los símbolos que usted estime conveniente el gráfico de los números del 0 al 9. Ejemplo:

* * **

* * *** * *

[ 4 ] Uso de la Clase String, En esta opción, deberá desarrollar una solución que emplee al menos 5 métodos de la clase String.

[ 5 ] Salida, En esta opción, permitirá la salida del menú.

Page 17: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

TRABAJO FINAL

CONSIDERACIONES GENERALES

La fecha de entrega del trabajo será el lunes 13/06/2007, en el horario de clases (no se recibirán trabajos, después del termino de la misma).Se deberá entregar la solución en medio magnético e impreso. Para el trabajo impreso, considerar presentar:- La carátula, - Código Java,- Tipo de estructura de datos empleadas- Tipo de estructuras de control empleadas- Conclusiones y - RecomendacionesSe deberá aplicar, solo los conocimientos adquiridos en las clases del curso de Introducción a la Computación.Para la evaluación se considerará, el orden, validaciones y creatividad del grupo.

Grupos de 5 integrantes.El nombre del programa será Prg mas las iniciales del Apellido paterno de los integrantes del grupo, ejemplo : PrgMBASI.Presentar fotocopia de la caratula del trabajo.

Page 18: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

Ejercicio 2 Desarrollar una solución que permita ingresar y almacenar el sueldo (sueldos[]) de todos los trabajadores de una empresa. Calcular y mostrar el sueldo neto (sueldoNeto) de cada trabajador, sabiendo que se tienen que descontar el 12% por impuestos y el 3% por seguro. Consistenciar el ingreso de datos.

Ejercicio 3Desarrollar una solución que permita ingresar y almacenar la nota (notas[]) de 10 alumnos de un salón de clase y determinar el promedio final del aula (prom). Mostrar el promedio. Consistenciar el ingreso de datos.

.Ejercicio 4 Desarrollar una solución que permita ingresar y almacenar la nota (notas[]) de todos los alumnos de un salón de clase y determinar el promedio final (prom) redondeado a dos decimales. Mostrar el promedio. Consistenciar el ingreso de datos.

Emplee vectores

ARREGLOS TIPO VECTOR

Page 19: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS TIPO ARREGLOMATRICES

ESTRUCTURAS DE DATOS TIPO ARREGLOMATRICES

Introducción a la Computación

SEMANA 16

Page 20: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS

Arreglos

Tipos:

32 -2 0 174

0 1 2 3

números

tamaño=4

• Arreglos unidimensionales o vectores

Representación:

• Arreglos bidimensionales o MATRICES

Representación:

32 -2 0 174

0 1 2 3

números

filas=2, columnas=4

14 12 -5 129

0

1

Page 21: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS

Declaración:

tipoDato identificador [ ][ ]

En Pseudocódigo

Arreglos tipo MATRIZ

Ejemplos;

- TEXTO nombres [ ][ ]

- NUMERO sueldos [ ][ ] - CARACTER letras [ ][ ]

tipoDato identificador [ ][ ] ;

En Java

tipoDato [ ][ ] identificador ;ó

Ejemplos;

- String nombres [ ][ ] ;

- double sueldos [ ][ ] ; - char letras [ ][ ] ;

Page 22: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS

Creación:

identificador = new tipoDato [filas][columnas] ;CREAR identificador [filas][columnas]

En Pseudocódigo En Java

Ejemplos; Ejemplos;

- CREAR nombres [2][4]

- CREAR sueldos [numAlu][numNot] - CREAR letras [4][total]

- nombres = new String [2][10] ;

- sueldos = new double [numAlu][numNot] ; - letras = new char [4][total] ;

Arreglos tipo MATRIZ

Page 23: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS

Declaración y Creación:

tipoDato identificador[][] = new tipoDato [filas][columnas] ;

En Java

Ejemplos;

- String nombres = new String [2][10] ;

- double sueldos = new double [numAlu][numNot] ; - char letras = new char [4][total] ;

Arreglos tipo MATRIZ

Page 24: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ESTRUCTURAS DE DATOS

Ingreso de datos:

identificador [índice] = valor ;identificador [índice] = valor

En Pseudocódigo En Java

Ejemplos; Ejemplos;

Cuando utilizamos matrices podemos utilizar las estructuras lógicas de repetición para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE ó PARA dos veces.

- nombres [0][0] = “Danae”

- sueldos [1][x] = 100.5 - letras [y][x] = ‘J’

- nombres [0][0] = “Danae” ;

- sueldos [1][x] = 100.5 ; - letras [y][x] = ‘J’ ;

Arreglos tipo MATRIZ

Page 25: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

Ejercicio

Desarrollar una solución que permita ingresar y almacenar números enteros positivos en una matriz de 3 por 3 (a[][]) y permita mostrar la matriz 3 por 3 y la suma de los números ubicados en la diagonal principal. Consistencia la entrada de datos.

Utilice matrices.

ESTRUCTURAS DE DATOS

Page 26: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

ENTRADA: numero[ ][ ] / SALIDA: numero[ ][ ], sumaDiaPriINICIO COMENTARIO “Declaración del arreglo” ENTERO i, j, numero[][], sumaDiaPri COMENTARIO “Creación del arreglo” CREAR numero[3][3], COMENTARIO “Ingreso de datos al arreglo numero[ ] [ ].” PARA (i=0, i<3, i=i+1) HACER // DESDE i =0 HASTA i < 3

PARA (j=0, j<3, j=j+1) HACER // DESDE j =0 HASTA j < 3

HACER LEER numero[i][j] MIENTRAS (numero[i][j]<0) FINPARA // FIN DESDE

FINPARA // FIN DESDE COMENTARIO “Mostrar Matriz y Cálculo de Suma” PARA (i=0, i<3, i=i+1) HACER // DESDE i =0 HASTA i < 3

PARA (j=0, j<3, j=j+1) HACER // DESDE j =0 HASTA j < 3

ESCRIBIR numero[i][j] SI (i=j) ENTONCES sumaDiaPri = sumaDiaPri + numero[i][j] FINSI FINPARA // FIN DESDE

FINPARA // FIN DESDE

ESCRIBIR sumaDiaPriFIN

Algoritmo VectorNotas

Page 27: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe
Page 28: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe
Page 29: Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román. jmonteror@usmp.edu.pe

1.- Desarrollar una solución que permita ingresar y almacenar el precio de compra y el precio de venta de todos los artículos de una bodega (precio[][]). Calcular y mostrar la utilidad que se obtiene por la venta de cada artículo. Utilice matrices.

2.-Desarrollar una solución que permita ingresar y almacenar el código y el nombre de los empleados de una compañía (empleado[][]). Luego mostrar el código y nombre de los empleados de la compañía. Utilice matrices.

3.-Desarrollar una solución que permita ingresar y almacenar el promedio de prácticas, la nota del examen parcial y la nota del examen final de todos los alumnos de MBIII de la FIA (nota[][]). Calcular y mostrar el promedio que obtuvo cada alumno; Adicionalmente indicar el porcentaje de alumnos que aprobaron el curso.

ESTRUCTURAS DE DATOS

INTENTALO…!!!