ARRAYS EN C# Vector m Acceso al cuarto elemento es m[3] m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7]

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ARRAYS EN C# Vector m Acceso al cuarto elemento es m[3] m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7]"

Transcripción

1 ARRAYS EN C# I. I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales). En un gran número de problemas es necesario manejar un conjunto de datos más o menos grande que están relacionados entre sí, de tal forma que constituyen una unidad para su tratamiento. Por ejemplo si se quiere manipular una lista de 100 edades de personas, es conveniente tratar el conjunto de datos de forma unitaria en lugar de utilizar 100 variables para cada dato simple.. Un conjunto de datos homogéneo que se tratan como una sola unidad se denomina estructura de datos. Si una estructura de datos reside en memoria central (memoria RAM), se llama estructura de datos interna. Recíprocamente si reside en un soporte externo (disquete, disco, cd, memoria USB, cinta, se denomina estructura de datos externa. La estructura de datos más importante desde el punto de vista de utilización es un arreglo, que es implementado en la totalidad de lenguajes de programación. Esta estructura corresponde con los conceptos matemáticos de vector, matriz o poliedro. I I. D E F I N I C I O N Un array o arreglo es una secuencia de datos del mismo tipo (estructura homogénea), los datos se llaman elementos del arreglo enumerados consecutivamente 0,1,2,3,. y se encuentran almacenados consecutivamente en memoria. Cada elemento puede ser accedido directamente por el nombre de la variable matriz seguido de uno o más subíndices. array m Un arreglo puede contener, por ejemplo, la edad de los estudiantes de una clase, las horas diarias laboradas por un trabajador, el número de estudiantes por ciclo de Ingeniería de Sistemas, etc. En general, la representación de un arreglo se hace mediante variables suscritas o de subíndices y pueden tener una o varias dimensiones (subíndices). I I I. C L A S I F I C A C I Ó N D E A R R A Y S Los Arrays se dividen en 2 grupos, los vectores y las matrices. Los vectores son arreglos que contienen una sola dimensión y las matrices 2 o más dimensiones. ARRAYS UNIDIMENSIONALES (Vectores) 1. DEFINICIÓN: Son arreglos de una sola dimensión, tienen un solo índice. Cada elemento del vector se accesa mediante su nombre seguido del número correspondiente al subíndice que se escribe entre corchetes. Por ejemplo, supongamos que tenemos un vector de entero llamado m, el cual contiene 8 elementos. Estos elementos se identificaran de la siguiente forma: Vector m Acceso al cuarto elemento es m[3] m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] Elementos del Vector Subíndices El arreglo unidimensional tiene ocho elementos: m[0] contiene 5, m[1] contiene 4, m[2] contiene 8, m[3] contiene 7, m[4] contiene 3, m[5] contiene 2, m[6] contiene 1, m[7] contiene 6. El diagrama representa realmente una región de la memoria de la computadora, ya que un arreglo se almacena siempre con sus elementos en una secuencia de posiciones de memoria contigua. En C#, los índices del arreglo siempre tienen como limite inferior 0, y como índice superior el tamaño del arreglo menos 1. Igual que sucede con otras variables, antes de utilizar un arreglo primero hay que declararla. La declaración de un arreglo especifica el nombre del arreglo y el tipo de elemento de la misma. Para crear y utilizar un arreglo hay que realizar tres operaciones: declararla, crearla e iniciarla. CURSO: Algoritmos Avanzados y Estructura de Datos 1 DOCENTE: Ing. CIP Fabián Silva Alvarado

2 2. DECLARAR Y CREAR UN ARREGLO UNIDIMENSIONAL La declaración de un arreglo es muy similar a la de una variable, crear un arreglo significa reservar la cantidad de memoria necesaria para contener todos sus elementos y asignar al nombre del arreglo una referencia a ese bloque. Esto puede expresarse genéricamente así: tipodato[] nombrevariable = new tipodato[tamaño]; tipodato indica el tipo de datos de los elementos del arreglo, que pueden ser de cualquier tipo primitivo o referenciado; los corchetes modifican la definición normal del identificador para que sea interpretado por el compilador como un arreglo. nombrevariable es un identificador que nombra al arreglo, Operador new significa que C# implementa los arreglos como objetos, por lo tanto serán tratadas como cualquier otro objeto. y tamaño es una expresión entera que especifica los números de elementos Las siguientes líneas de código crean los arreglos de una dimensión declaradas en el ejemplo anterior: int[] m = new int [5]; float[] temp = new float[30]; Crea un vector identificado por m con 5 elementos de tipo int; es decir, puede almacenar 5 valores enteros; el primer elemento es m[0], el segundo es m[1], y el ultimo es m[4]. Crea un vector de temperaturas de 30 elementos de tipo float. Vector m m[0] m[1] m[2] m[3] m[4] Vector temp temp [0] temp [1] temp [28] temp [29] Elementos del Vector Subíndices Más Ejemplos: int[] Edad = new int[100]; Declara un arreglo llamado Edad que contiene 100 elementos de tipo enteros (int). String[] Nombres = new String[25] ; Declara un arreglo llamado Nombres que puede almacenar 25 nombres. double[] Salario = new double[50] ; Declara un arreglo llamado Salario que puede almacenar 25 elementos de tipo doublé. 3. INICIAR UN ARREGLO UNIDIMENSIONAL Un arreglo es un objeto, por lo tanto, cuando es creada, sus elementos son automáticamente iniciados, igual que sucedía con las variables miembro de una clase. Si el arreglo es numérico sus elementos son iniciados a 0 y si no es numérico, a un valor análogo a 0; por ejemplo un elemento booleano es inicializado a false y las referencias a objetos a null. Si deseamos iniciar un arreglo con otros valores diferentes a los predeterminados, podemos hacerlo de la siguiente forma: double[] ingresos =1000,5000,7000,10000,12000,15000; el ejemplo crea un arreglo ingresos de tipo double con tantos elementos como valores se hayan especificado entre llaves. Para practicar la teoría vamos a realizar un programa que asigne datos a un arreglo unidimensional miarreglo de nelementos y, a continuación, como comprobación del trabajo realizado, escriba el contenido de dicho arreglo. La solución será similar a la siguiente: CURSO: Algoritmos Avanzados y Estructura de Datos 2 DOCENTE: Ing. CIP Fabián Silva Alvarado

3 Para ello, en primer lugar definimos la variable tamaño para fijar el número de elementos del arreglo, creamos el arreglo miarreglo con el tamaño que será ingresado por teclado. int tamaño=0; Console.Write("\nIndique el Tamaño del Arreglo: "); tamaño=int.parse(console.readline()); //declarar y crear el arreglo int[] miarreglo=new int[tamaño]; El paso siguiente es asignar un valor desde el teclado a cada elemento del arreglo. for (int i = 0; i < tamaño; i++) Console.Write("miarreglo["+ i +"] = "); miarreglo[i]= int.parse(console.readline()); Una vez leído los elementos para el arreglo visualizamos para comprobar el trabajo realizado. Console.Write("\nElementos del arreglo\n"); Console.WriteLine(); for (int i = 0; i < tamaño; i++) Console.Write(miarreglo[i]+" "); El Programa completo se muestra a continuación: class Program static void Main(string[] args) int tamaño=0; Console.Write("\nIndique el Tamaño del Arreglo: "); tamaño=int.parse(console.readline()); Console.WriteLine(); //declarar y crear el arreglo int[] miarreglo=new int[tamaño]; //asignar datos for (int i = 0; i < tamaño; i++) Console.Write("miarreglo["+ i +"] = "); miarreglo[i]= int.parse(console.readline()); //visualizar los elementos del arreglo Console.Write("\nElementos del arreglo\n"); Console.WriteLine(); for (int i = 0; i < tamaño; i++) Console.Write(miarreglo[i]+" "); Console.Read(); CURSO: Algoritmos Avanzados y Estructura de Datos 3 DOCENTE: Ing. CIP Fabián Silva Alvarado

4 4. TAMAÑO DE UN ARREGLO. Atributo length Java considera cada arreglo como un objeto, debido a ello se puede conocer el numero de elementos de un arreglo accediendo al campo length. Por ejemplo, la última parte del ejercicio anterior podríamos escribirla también así. //visualizar los elementos del arreglo Console.Write("\nElementos del arreglo\n"); Console.WriteLine(); for (int i = 0; i < miarreglo.length; i++) Console.Write(miarreglo[i]+" "); APLICACIONES EMPLEANDO ARRAYS UNIDIMENSIONALES 1. Programa que incluye un arreglo con elementos inicializados con valores diferentes a los predeterminados: Diseñar la siguiente interfaz y agregue el siguiente código para el botón. //Código para el botón 2. Programa que incluye un arreglo de enteros y los datos son asignados directamente en el código: CURSO: Algoritmos Avanzados y Estructura de Datos 4 DOCENTE: Ing. CIP Fabián Silva Alvarado

5 //Código para el botón También podemos hacer una asignación con números aleatorios 3. Programa que incluye un arreglo de enteros y los datos son asignados desde un cuadro de texto: Diseñe el formulario teniendo en cuenta el nombre de los controles Programa funcionando //Código del programa CURSO: Algoritmos Avanzados y Estructura de Datos 5 DOCENTE: Ing. CIP Fabián Silva Alvarado

6 Modifique el código de tal manera que solo permita ingresar números enteros. También tener en cuenta el tamaño del arreglo para el ingreso de datos. Ahora implemente lo siguiente métodos: - Suma de los elementos ingresados al arreglo: - Hallar el Máximo Valor: COMPLETE LOS METODOS PARA OBTENER EL PROMEDIO Y EL VALOR MINIMO. Ahora completamos el código para el botón Calcular: Ahora complete el código para el Botón Nuevo y para el botón Salir, guarde y pruebe su aplicación CURSO: Algoritmos Avanzados y Estructura de Datos 6 DOCENTE: Ing. CIP Fabián Silva Alvarado

7 CREANDO UN ARREGLO DE 3 COLUMNAS Diseño de la Interfaz Programa en Ejecución //código de la aplicación namespace Arreglos_04 public partial class FrmListas : Form public FrmListas() InitializeComponent(); static int tam = 50; //crear los arreglos String[] codigo = new String[tam]; String[] vendedor = new String[tam]; double[] ventames = new double[tam]; int indice = 0; //var. utilizado para el indice de los elem. double suma_ventas = 0; //var. utilizado para acumular las ventas. private void btnagregar_click(object sender, EventArgs e) //AGREGAR AL ARREGLO codigo[indice] = textbox1.text; vendedor[indice] = textbox2.text; ventames[indice] = double.parse(textbox3.text); //ACUMULA suma_ventas += ventames[indice]; //agregar a las listas listbox1.items.add(codigo[indice]); listbox2.items.add(vendedor[indice]); listbox3.items.add(string.format("0:c", ventames[indice])); // indice++; //INCREMENTAR INDICE //muestra el total de las ventas textbox4.text = string.format("0:c", suma_ventas); this.limpia_controles(); public void limpia_controles() textbox1.text = ""; textbox2.text = ""; textbox3.text = ""; textbox1.focus(); CURSO: Algoritmos Avanzados y Estructura de Datos 7 DOCENTE: Ing. CIP Fabián Silva Alvarado

8 private void btnmayor_click(object sender, EventArgs e) int pos = 0; double max = ventames[0]; for (int i = 1; i < indice; i++) if (max < ventames[i]) max = ventames[i]; pos = i; MessageBox.Show(vendedor[pos] + ", acumuló: " + string.format("0:c", max), "Mayor Venta Mes", MessageBoxButtons.OK, MessageBoxIcon.Information); private void btnmenor_click(object sender, EventArgs e) int pos = 0; double min = ventames[0]; for (int i = 1; i < indice; i++) if (min > ventames[i]) min = ventames[i]; pos = i; MessageBox.Show(vendedor[pos] + ", acumuló: " + string.format("0:c", min), "Menor Venta Mes", MessageBoxButtons.OK, MessageBoxIcon.Information); private void btnpromedio_click(object sender, EventArgs e) double sum = 0, prom = 0; for (int i = 0; i < indice; i++) sum += ventames[i]; prom = sum / indice; MessageBox.Show("Promedio Ventas del Mes: " + string.format("0:c", prom), "Ventas", MessageBoxButtons.OK, MessageBoxIcon.Information); private void btnsalir_click(object sender, EventArgs e) this.close(); CURSO: Algoritmos Avanzados y Estructura de Datos 8 DOCENTE: Ing. CIP Fabián Silva Alvarado

9 ALGORITMO DE BUSQUEDA BUSQUEDA LINEAL Consiste en encontrar un elemento determinado dentro de una colección dada. La búsqueda se realiza sobre una estructura de datos de tamaño fijo y conocido, por ejemplo, un vector. Los algoritmos sirven para hacer búsquedas sobre cualquier tipo de datos, siempre que sea posible realizar comparaciones ( igualdad, menor que ) sobre este tipo. Buscar si el elemento 14 se encuentra en la lista A. Clave= A[0] A[1] A[2] A[3] A[4] A[5] Valor devuelto, índice 3 La codificación en C # public void busqueda_lineal() rpta = InputBox.Show("Ingrese el numero a buscar", "Busqueda", "", new InputBoxValidatingHandler(inputBox_Validating)); double clave = double.parse(rpta.text); int i = 0; bool encontrado; for (i = 0; i < indice; i++) if (clave == miarreglo[i]) encontrado = true; break; if (encontrado==true) MessageBox.Show("Dato Encontrado en la pos: "+ i, "Actualización", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("Dato no encontrado", "Actualización", MessageBoxButtons.OK, MessageBoxIcon.Error); BUSQUEDA BINARIA El método más eficiente de búsqueda en una tabla secuencial sin utilizar índices o tablas auxiliares es la búsqueda binaria. Para poder llevarse acabo esta, necesita tener el arreglo ordenado. Básicamente, el argumento se compara con la llave del elemento intermedio de la tabla. Si son iguales, la búsqueda termina exitosamente; en caso contrario, debe buscarse en la mitad superior o inferior en la tabla en una forma similar. En un arreglo, donde los índices de la lista son bajo = 0 y alto = n-1, donde n es el numero de elementos del arreglo. 1. Calcular el índice del punto central del array central = (bajo+alto)/2 división entera 2. Comparar el valor de este elemento central con la clave Clave Clave Clave bajo central alto bajo central alto bajo central alto Clave Encontrada Búsqueda lista inferior Búsqueda lista superior CURSO: Algoritmos Avanzados y Estructura de Datos 9 DOCENTE: Ing. CIP Fabián Silva Alvarado

10 Sea el arreglo de enteros A: Buscar si el elemento 40 se encuentra en la lista A. Clave= A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] bajo = 0 alto = 8 central = bajo+alto/2 0+8/2 = 4 clave (40) > A[4] (12) Buscar en la sublista derecha A[5] A[6] A[7] A[8] bajo = 5 alto = 8 central = bajo+alto/2 5+8/2 = 6 clave (40) > A[6] (25) Buscar en la sublista derecha A[7] A[8] bajo = 7 alto = 8 central = bajo+alto/2 7+8/2 = 7 clave (40) = A[7] (40) El Algoritmo ha requerido tres comparaciones frente a ocho comparaciones que se hubieran realizado con la búsqueda secuencial. La codificación en C # public void busqueda_binaria() rpta = InputBox.Show("Ingrese el numero a buscar", "Busqueda", "", new InputBoxValidatingHandler(inputBox_Validating)); double clave = double.parse(rpta.text); int bajo, alto, central; bajo = 0; alto = indice - 1; central = (bajo + alto) / 2; while ((bajo <= alto) && (miarreglo[central]!= clave)) if (clave < miarreglo[central]) alto = central - 1; else bajo = central + 1; central = (bajo + alto) / 2; if (miarreglo[central]==clave) MessageBox.Show("Dato Encontrado en la pos: " + central, "Búsqueda", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("Dato no encontrado", "Búsqueda", MessageBoxButtons.OK, MessageBoxIcon.Error); CURSO: Algoritmos Avanzados y Estructura de Datos 10 DOCENTE: Ing. CIP Fabián Silva Alvarado

11 ALGORITMOS DE ORDENAMIENTO Arrays I V. I N T R O D U C C I Ó N Los algoritmos de ordenamiento nos permiten, como su nombre lo dice, ordenar. En este caso, nos servirán para ordenar vectores o matrices con valores asignados aleatoriamente. Nos centraremos en los métodos más populares, analizando la cantidad de comparaciones que suceden, el tiempo que demora y revisando el código, escrito en Java, de cada algoritmo. Este informe nos permitirá conocer más a fondo cada método distinto de ordenamiento, desde uno simple hasta el más complejo. Se realizaran comparaciones en tiempo de ejecución, pre-requisitos de cada algoritmo, funcionalidad, alcance, etc. V. T I P O S D E A L G O R I T M O S Para poder ordenar una cantidad determinada de números almacenadas en un vector o matriz, existen distintos métodos (algoritmos) con distintas características y complejidad. Existe desde el método mas simple, como el Bubblesort (o Método Burbuja), que son simples iteraciones, hasta el Quicksort (Método Rápido), que al estar optimizado usando recursión, su tiempo de ejecución es menor y es más efectivo METODOS ITERATIVOS Estos métodos son simples de entender y de programar ya que son iterativos, simples ciclos y sentencias que hacen que el vector pueda ser ordenado. Dentro de los Algoritmos iterativos encontramos: Burbuja Inserción Selección Shellsort METODO DE LA BURBUJA El método de la burbuja es uno de los más simples, es tan fácil como comparar todos los elementos de una lista contra todos, si se cumple que uno es mayor o menor a otro, entonces los intercambia de posición. Por ejemplo, imaginemos que tenemos los siguientes valores: Lo que haría una burbuja simple, seria comenzar recorriendo los valores de izq. a derecha, comenzando por el 5. Lo compara con el 6, con el 1, con el 0 y con el 3, si es mayor o menor (dependiendo si el orden es ascendiente o descendiente) se Intercambian de posición. Luego continua con el siguiente, con el 6, y lo compara con todos los elementos de la lista, esperando ver si se cumple o no la misma condición que con el primer elemento. Así, sucesivamente, hasta el último elemento de la lista. 1º. BURBUJA SIMPLE Como lo describimos en el ítem anterior, la burbuja mas simple de todas es la que compara todos con todos, generando comparaciones extras, por ejemplo, no tiene sentido que se compare con sigo mismo o que se compare con los valores anteriores a el, ya que supuestamente, ya están ordenados. public void orden_asc(int[] vector, int nelem) for (int i = 1; i < nelem; i++) for (int j = 0; j < (nelem - 1); j++) if (vector[j] > vector[j + 1]) int temp = vector[j]; vector[j] = vector[j + 1]; vector[j + 1] = temp; CURSO: Algoritmos Avanzados y Estructura de Datos 11 DOCENTE: Ing. CIP Fabián Silva Alvarado

12 2º. BURBUJA OPTIMIZADA Una nueva versión del método de la burbuja seria limitando el número de comparaciones, es inútil que se compare consigo misma. Si tenemos una lista de elementos, entonces son comparaciones que están sobrando. Imaginemos si tenemos de elementos. El método seria mucho mas optimo con n comparaciones menos (n = total de elementos). Si a este cambio anterior le sumamos otro cambio, el hecho que los elementos que están detrás del que se esta comparando, ya están ordenados, las comparaciones serian aun menos y el método seria aun mas efectivo. Si tenemos una lista de 10 elementos y estamos analizando el quinto elemento, que sentido tiene que el quinto se compare con el primero, el segundo o el tercero, si supuestamente, ya están ordenados. Entonces optimizamos mas aun el algoritmo, quedando nuestra versión final del algoritmo optimizado de la siguiente manera: public void orden_asc(int[] vector, int nelem) for (int i = 0; i < nelem; i++) for (int j = 0; j < i; j++) if (vector[i] < vector[j]) int temp = vector[j]; vector[j] = vector[i]; vector[i] = temp; METODO DE INSERCION El bucle principal de la ordenación por inserción va examinando sucesivamente todos los elementos de la matriz desde el segundo hasta el n-ésimo, e inserta cada uno en el lugar adecuado entre sus predecesores dentro de la matriz. public void orden_asc(int[] vector, int nelem) for (int i = 1; i < nelem; i++) int temp = vector[i]; int j = i - 1; while (j >= 0 && temp < vector[j]) vector[j + 1] = vector[j]; j--; vector[j + 1] = temp; METODO SHELLSORT Este método es una mejora del algoritmo de ordenamiento por Inserción (Insertsort). Si tenemos en cuenta que el ordenamiento por inserción es mucho más eficiente si nuestra lista de números esta semi-ordenada y que desplaza un valor una única posición a la vez. Durante la ejecución de este algoritmo, los números de la lista se van casi-ordenando y finalmente, el ultimo paso o función de este algoritmo es un simple método por inserción que, al estar casi-ordenados los números, es más eficiente. public void orden_asc(int[] vector, int nelem) for (int incremento = nelem / 2; incremento > 0; incremento = (incremento == 2? 1 : (int)math.round(incremento / 2.2))) for (int i = incremento; i < nelem; i++) for (int j = i; j >= incremento && vector[j - incremento] > vector[j]; j -= incremento) CURSO: Algoritmos Avanzados y Estructura de Datos 12 DOCENTE: Ing. CIP Fabián Silva Alvarado

13 int temp = vector[j]; vector[j] = vector[j - incremento]; vector[j - incremento] = temp; OPERACIONES CON ARREGLOS: I. SUMA DE 2 ARREGLOS A B C i= i= i= = 35. i=n-1 X Y X+Y C[i]= A[i] + B[i] En Código: for(i=0;i<n;i++) C[i]= A[i] + B[i]; II. PRODUCTO DE 2 ARREGLOS A B C i= i= i=2 20 * 15 = i=n-1 X Y X*Y En Código: C[i]= A[i] * B[i] for(i=0;i<n;i++) C[i]= A[i] * B[i]; III. DIFERENCIA DE 2 ARREGLOS En Código: for(i=0;i<n;i++) C[i]= A[i] - B[i]; IV. DIVISION DE 2 ARREGLOS En Código: for(i=0;i<n;i++) C[i]= A[i] / B[i]; CURSO: Algoritmos Avanzados y Estructura de Datos 13 DOCENTE: Ing. CIP Fabián Silva Alvarado

14 Ejemplo: Imprimir la planilla de salarios de los trabajadores de una empresa de acuerdo al siguiente formato: PLANILLA DEL MES DE JULIO 2009 CODIGO APELLIDOS Y NOMBRES SAL_BAS BONIF SAL_PARC DSCTO SAL_NETO **** ****************** ****.** ***.** ****.** ***.** ****.** **** ****************** ****.** ***.** ****.** ***.** ****.** **** ****************** ****.** ***.** ****.** ***.** ****.** **** ******************* ****.** ***.** ****.** ***.** ****.** TOTALES *****.** ******.** Especificaciones: a) Cada trabajador se identifica con su nombre y su código b) Cada Trabajador tiene un salario básico (SAL_BAS) entre 1000 y c) Cada trabajador tiene una bonificación (BONIF) del 12% del Salario Basico d) El Salario Parcial (SAL_PARC) es igual a SAL_BAS+ BONIF. e) Cada trabajador tiene un descuento (DSCTO) del 9% del SAL_PARC f) El Salario Neto (SAL_NETO) es igual a SAL_PARC DSCTO. i=0 i=1 i=2... i=99 Codigo[i] Ape_Nomb[i] Sal_Bas[i] Bonif[i] Sal_Parc[i] Descuento[i] Sal_Neto[i] Implementar en C# PRACTICA DE ARREGLOS 1. Desarrollar una solución que permita ingresar y almacenar las notas de 4 prácticas de un estudiante. Determinar el promedio de cada alumno sabiendo que se duplica su nota más alta y se elimina la nota mas baja. Mostrar el promedio redondeado a 1 decimal. Validar el ingreso de datos. CALCULO DEL PROMEDIO Nota[1]= 15 Nota[2]= 18 Nota[3]= 10 Nota[4]= 14 Notas Ingresadas Estudiante: Nota menor: 10.0 Nota Mayor: 18.0 El Promedio es: 16.3 //(15+(2*18)+14)/4 2. Desarrollar un programa que imprima los salarios netos junto con los demás importes necesarios para n obreros de una empresa quienes están identificados por un código y se rigen a las siguientes condiciones: a. Cada trabajador tiene una tarifa por hora de S/ b. El salario básico se calcula en base a las horas laboradas en el mes y la tarifa x hora. c. Todos reciben una bonificación del 20% con respecto al Salario Básico d. Salario Parcial es igual a Salario Básico + bonificación e. Descuento del 12% del Salario Parcial por concepto de AFP f. Salario Neto es igual a Salario Parcial Descuento CURSO: Algoritmos Avanzados y Estructura de Datos 14 DOCENTE: Ing. CIP Fabián Silva Alvarado

15 El formato de salida es: PLANILLA DEL MES DE MAYO 2009 Código Trabajador Horas_Lab Sal_Basico Bonific Sal_Parc Desc AFP Sal_Neto **** ******************** ** ****.** ***.** ****.** ***.** ****.** **** ******************** ** ****.** ***.** ****.** ***.** ****.** **** ******************** ** ****.** ***.** ****.** ***.** ****.** **** ******************** ** ****.** ***.** ****.** ***.** ****.** TOTAL PLANILLA: ****.** *****.** - Agregar una opción para realizar una búsqueda por código del trabajador empleando el algoritmo de búsqueda lineal - Agregue una opción para realizar el ordenamiento por Nombre del trabajador en forma Ascendente utilizando el Algoritmo de Inserción - Agregue una opción para realizar el ordenamiento por Salario Neto del trabajador en forma Descendente utilizando el Algoritmo de Inserción - Ubique a la persona que obtuvo un mayor sueldo neto. 3. Determinar el promedio final de cada estudiante para el curso de Algoritmos Avanzados y mostrar el resultado de acuerdo al siguiente formato: NOTAS FINALES DEL CURSO DE FUNDAMENTOS DE PROGRAMACION Código Apellidos y Nombres EP EF PP PF Observación **** ******************** ** ** ** **.* ********* **** ******************** ** ** ** **.* ********* **** ******************** ** ** ** **.* ********* **** ******************** ** ** ** **.* ********* DONDE: EP: Examen Parcial EF: Examen Final PP: Promedio de Practicas El programa trabajara bajo las siguientes condiciones: a. El Promedio Final se calcula en función a: PF=(2EP+3EF+2PP)/7 b. Completa la columna observación según sea el caso: APROBADO, APLAZADO o DESAPROBADO i. Un estudiante aprueba el curso si su promedio final es mayor o igual a 10.5 ii. Un estudiante tiene derecho a ir a examen de aplazados si su promedio final es mayor o igual a 7 iii. Un estudiante desaprueba el curso si su promedio es menor a 7 c. Al final mostrar un resumen indicando: i. El Numero de Estudiantes procesados, aprobados, desaprobados y cuantos van a aplazados. d. Agregar una opción para realizar una búsqueda por código del trabajador empleando el algoritmo de búsqueda Binaria e. Agregue una opción para realizar el ordenamiento por Apellidos y Nombres del Estudiante en forma Ascendente utilizando el Algoritmo SHELLSORT f. Agregue una opción para realizar el ordenamiento por Apellidos y Nombres del Estudiante en forma Descendente utilizando el Algoritmo SHELLSORT g. Muestre en un cuadro de mensaje a los 2 Primeros Puestos h. Muestre en un cuadro de mensaje a los 2 Últimos Puestos i. Agregue una opción para poder realizar un filtrado con todos los datos del estudiante según sea la observación del estudiante. CURSO: Algoritmos Avanzados y Estructura de Datos 15 DOCENTE: Ing. CIP Fabián Silva Alvarado

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

Algoritmos de Ordenamiento

Algoritmos de Ordenamiento Algoritmos de Ordenamiento Fernando A. Lagos B. Copyleft 2007 INDICE 1 Introducción Pág. 3 2 Tipos de Algoritmos Pág. 4 2.1 Algoritmos iterativos Pág. 5 2.2 Algoritmos recursivos Pág. 6 3 Método de la

Más detalles

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 4 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

Tema: Arreglos en C#.

Tema: Arreglos en C#. Programación1, Guia#7 1 Tema: Arreglos en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Introducir al estudiante a los conceptos de estructura de datos.

Más detalles

Tema: Métodos de Ordenamiento. Parte 1.

Tema: Métodos de Ordenamiento. Parte 1. Programación IV. Guía 2. 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 1. Objetivos Específicos Identificar la estructura de algunos algoritmos

Más detalles

Para crear un arreglo de cualquier tipo de elementos la sintaxis es:

Para crear un arreglo de cualquier tipo de elementos la sintaxis es: Arreglos (arrays) Un arreglo es una estructura de datos homogénea o conjunto de elementos del mismo tipo. En Java se pueden manejar arreglos de elementos de tipo primitivo (8 tipos primitivos hay en Java)

Más detalles

Tema: Vectores en C#.

Tema: Vectores en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada Tema: Vectores en C#. Objetivos Introducir al estudiante a los conceptos de estructura de datos. Conocer la

Más detalles

Porque usar Arreglos?

Porque usar Arreglos? Arreglos Porque usar Arreglos? Se tienen las calificaciones de 100 alumnos, como sacar cuantos alumnos tienen una calificación superior al promedio? Doble lectura: Un ciclo para leer y acumular las calificaciones,

Más detalles

Unidad 4. Arreglos y Cadenas

Unidad 4. Arreglos y Cadenas Unidad 4. Arreglos y Cadenas Definición de Arreglo: Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La propiedad indexado significa

Más detalles

int[] nombrearray1; int nombrearray2[];

int[] nombrearray1; int nombrearray2[]; USANDO ARREGLOS Y STRINGS Arrays unidimensionales Declaración En Java un array se declara de las siguientes formas: int[] nombrearray1; int nombrearray2[]; Ambas declaraciones son equivalentes. La primera

Más detalles

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS)

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS) UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN DOCENTE: Ing. Ronald Rentería Ayquipa. MARCO TEÓRICO: ARREGLOS (ARRAYS) En clase ya conocimos algunos

Más detalles

Algoritmos de Ordenación

Algoritmos de Ordenación Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Algoritmos comunes - Ordenación Ordenación o clasificación es

Más detalles

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación Un dato

Más detalles

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,

Más detalles

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales ARREGLOS Introducción Primero que todo, es importante conocer el concepto de estructura de datos. Una estructura de datos es "una colección de datos organizados de un modo particular." Las estructuras

Más detalles

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Web: http://estructuradatos.tripod.com 1 Qué

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2 Arreglos en Java o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 3 27 50 4 Arreglo de bytes Arreglos con tipos primitivos hola Casa Auto No Arreglo de Strings EII147-01-02

Más detalles

Guia#9: Punteros en C#.

Guia#9: Punteros en C#. Guia#9: Punteros en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos. Conocer el concepto de punteros y su aplicación en C#. Desarrollar aplicaciones en

Más detalles

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 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.

Más detalles

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas

Más detalles

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Justificación: Se pretende con éste contribuir a que el alumno se inicie y conozca el entorno del IDE en la creación de pequeños programas en java Objetivos:

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo. Arreglos Los arreglos son estructuras de datos que consisten de elementos de datos relacionados, del mismo tipo. Los arreglos son entidades son entidades de longitud fija: conservan la misma longitud una

Más detalles

Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos

Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar

Más detalles

Tema: Estructuras de Selección en C#.

Tema: Estructuras de Selección en C#. Programación I, Guía 4 1 Tema: Estructuras de Selección en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de selección if e

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores. Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo

Más detalles

Principal material bibliográfico utilizado

Principal material bibliográfico utilizado Vectores y Punteros Principal material bibliográfico utilizado www.jorgesanchez.net Fundamentos de Programación C/C++ - Ernesto Peñaloza Romero. Lenguaje C Adolfo Beltramo, Nélida Matas. En C el primer

Más detalles

Tema: Estructuras de Repetición en C# [For].

Tema: Estructuras de Repetición en C# [For]. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada Objetivos Tema: Estructuras de Repetición en C# [For]. Utilizar las estructuras de repetición para ejecutar

Más detalles

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial

Más detalles

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

ARREGLOS CLASE VECTOR. Ing. Marina Cipolletti

ARREGLOS CLASE VECTOR. Ing. Marina Cipolletti ARREGLOS CLASE VECTOR Ing. Marina Cipolletti QUÉ ES UN ARREGLO? Es una estructura de datos. Almacena datos del mismo tipo en forma indexada. El tamaño se declara en un primer momento y no cambia en tiempo

Más detalles

12. Tipos de atributos

12. Tipos de atributos Programación orientada a objetos con Java 135 12. Tipos de atributos Objetivos: a) Profundizar en el concepto de atributo de una clase e indicar los tipos de atributos en Java b) Interpretar el código

Más detalles

Bloque II. Elementos del lenguaje de programación Java

Bloque II. Elementos del lenguaje de programación Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Fundamentos de Informática Lección 5. Arreglos (vectores) Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Arreglos: Concepto

Más detalles

Dpto. de ATC, Universidad de Sevilla - Página 1 de 16

Dpto. de ATC, Universidad de Sevilla - Página 1 de 16 Dpto. de ATC, Universidad de Sevilla - Página 1 de 16 2 ÍNDICE Fundamentos de Informática E.U.P. Universidad de Sevilla 1 Concepto de Algoritmo Datos: Variables y Constantes Tipo de datos: Vectores Representación

Más detalles

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes. Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,

Más detalles

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes. Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

Arreglos. H. Tejeda. Marzo Declaración de arreglos Inicialización de arreglos Uso de subíndices variables en un arreglo 5

Arreglos. H. Tejeda. Marzo Declaración de arreglos Inicialización de arreglos Uso de subíndices variables en un arreglo 5 Arreglos H. Tejeda Marzo 2016 Índice 1. Declaración de arreglos 2 2. Inicialización de arreglos 4 3. Uso de subíndices variables en un arreglo 5 4. Declaración y uso de arreglos de objetos 8 5. Búsqueda

Más detalles

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera Lectura ORDENACIÓN DE ARREGLOS Con frecuencia se requiere clasificar u ordenar los elementos de un vector (arreglo unidimensional) en algún orden en particular. Por ejemplo, ordenar un conjunto de números

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Unidad V. Ya veremos qué poner en algunas_palabras y algo_más, por ahora sigamos un poco más. Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está

Más detalles

Tema: Métodos de Ordenamiento. Parte 1.

Tema: Métodos de Ordenamiento. Parte 1. Programación IV. Guía No. 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 1. Objetivos Específicos Identificar la estructura de algunos algoritmos

Más detalles

Informática I para Bachillerato

Informática I para Bachillerato CIMAT C/C++ Arreglos CIMAT Sesión 12 Un arreglo en C/C++ Un arreglo es una colección ordenada de variables del mismo tipo. Las variables que pertenecen a un arreglo se conocen por el nombre de elementos.

Más detalles

Tema: Estructuras de Repetición en C#.

Tema: Estructuras de Repetición en C#. Programación I, Guía 5 1 Tema: Estructuras de Repetición en C#. Objetivos Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Utilizar las estructuras de repetición para

Más detalles

Tema: Matrices en C#.

Tema: Matrices en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada Tema: Matrices en C#. Objetivos Implementar arreglos de dos dimensiones. Resolver problemas aplicando matrices.

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

Más detalles

ARREGLOS UNIDIMENSIONALES

ARREGLOS UNIDIMENSIONALES ARREGLOS UNIDIMENSIONALES CONTENIDO 1. Los Arreglos y Java. 1.1 Definición de arreglos 1.2 Inserción de datos 1.3 Extracción de datos 2. Trabajando con arreglos 3. Ejercicios de repaso Slide 2 Definiendo

Más detalles

UNIVERSIDAD LUTERANA SALVADOREÑA. Docente: ANA LISSETTE GIRÓN

UNIVERSIDAD LUTERANA SALVADOREÑA. Docente: ANA LISSETTE GIRÓN UNIVERSIDAD LUTERANA SALVADOREÑA CARRERA: LIC. EN CIENCIAS DE LA COMPUTACIÓN PROYECTO: PORTAFOLIO ALGORTIMO I Docente: ANA LISSETTE GIRÓN INTEGRANTES: VERÓNICA SUSANA CRUZ MARTÍNEZ HEBER ERNESTO MIJANGO

Más detalles

Bloque II. Elementos del lenguaje de programación Java

Bloque II. Elementos del lenguaje de programación Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

1.2.4 Listas enlazadas

1.2.4 Listas enlazadas 1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina

Más detalles

Trabajo Práctico 5 Estructura Repetitiva

Trabajo Práctico 5 Estructura Repetitiva Trabajo Práctico 5 Estructura Repetitiva Los ejercicios para resolver y enviar por los alumnos son los que están con letra negrita los mismos deben ser enviados en un archivo zip por medio de la página

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

Segundo parcial de Programación 2

Segundo parcial de Programación 2 Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas

Más detalles

PROGRAMACIÓN ESTRUCTURADA

PROGRAMACIÓN ESTRUCTURADA FACULTAD DE INGENIERÍA Universidad Nacional de Jujuy PROGRAMACIÓN ESTRUCTURADA Trabajo Práctico Nº 10 Tema: Arreglos. Actualización y Búsqueda Apellido y Nombre: Fecha: / / Conceptos Teóricos RESPONDA

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Cadenas de caracteres

Cadenas de caracteres Trabajo práctico Nº 6 (Trabajos con cadenas de caracteres y estructuras) Realiza el programa en Lenguaje C correspondiente. Cadenas de caracteres 1- Construir una función PASSWORD que pida por teclado

Más detalles

Java. Introducción a la Programación Orientada a Objetos

Java. Introducción a la Programación Orientada a Objetos Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

Desarrollo de Programas. Prof. Lisbeth C. Pérez Rivas

Desarrollo de Programas. Prof. Lisbeth C. Pérez Rivas Desarrollo de Programas Prof. Lisbeth C. Pérez Rivas lisbethpe@ula.ve Desarrollo de Programas Ejercicio: Calcular el sueldo neto de un trabajador conociendo el número de horas trabajadas, la tarifa horaria

Más detalles

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández PRINCIPIOS DE PROGRAMACIÓN Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández Consideraciones Generales Instructor: Ismael Jiménez Hernández Duración: 3.2 horas/semana

Más detalles

Fundamentos de Programación

Fundamentos de Programación Fundamentos de Programación COMENTARIOS Microsoft Visual Basic interpreta que todo lo que está a la derecha del carácter ( ) en una línea cualquiera de programa es un comentario y no ejecuta acción alguna.

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 02/ 2011 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: GUIA DE LABORATORIO #03 ARREGLOS EN VISUAL BASIC.NET

Más detalles

Cómo implementar tus propias funciones en Lenguaje C?

Cómo implementar tus propias funciones en Lenguaje C? Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar

Más detalles

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero?

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero? Modulo 7. Expresiones y sentencias de control de Flujo En este punto de estudio se considera que tenemos claro los conceptos relacionados con variables y operadores, ahora estudiaremos como con las variables

Más detalles

Tema: Plantillas en C++.

Tema: Plantillas en C++. Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de

Más detalles

Guia#11: Tema: Estructuras en C#.

Guia#11: Tema: Estructuras en C#. Programación1 Guia#11 1 Guia#11: Tema: Estructuras en C#. Objetivos Conocer el concepto de estructura y cómo se utilizan en C#. Conocer las operaciones con estructuras y sus aplicaciones. Desarrollar programas

Más detalles

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo. Arreglos (Arrays) en Java Definición: Un arreglo es un objeto contenedor que consiste de una cantidad fija de posiciones o celdas para almacenar valores del mismo tipo en ellas. Cada posición o celda del

Más detalles

FUNCIONES O MÉTODOS. Algoritmia y Programación

FUNCIONES O MÉTODOS. Algoritmia y Programación FUNCIONES O MÉTODOS Algoritmia y Programación CONTENIDO Funciones/métodos Definición Partes de una función Ejemplos Ámbito de variables Variables Locales Variables Globales Slide 2 DEFINICIÓN Una función

Más detalles

INFOTECH CURSO MÓDULO 4. Estructuras de control. Excel Advanced Macros

INFOTECH CURSO MÓDULO 4. Estructuras de control. Excel Advanced Macros INFOTECH CURSO Excel Advanced Macros MÓDULO 4 Estructuras INFOTECH CAPACIDADES ESPECÍFICAS NOMBRE DEL MÓDULO - 4 CONTENIDOS RECURSOS Comprensión e información Indagación y experimentación Juicio crítico

Más detalles

Programación. Arrays. Dr. (c) Noé Alejandro Castro Sánchez

Programación. Arrays. Dr. (c) Noé Alejandro Castro Sánchez Programación orientada a objetos Arrays Dr. (c) Noé Alejandro Castro Sánchez Arrays Medio para almacenar elementos (datos primitivos u objetos) del mismo tipo de dato. Cada elemento es accesible mediante

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión III La Sintaxis de Java II... 6 Estructuras de Control... 7 Estructuras de Selección... 8 Sentencia

Más detalles

<tipo> Tipo de dato de los elementos del vector

<tipo> Tipo de dato de los elementos del vector Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.

Más detalles

Tema 10: Arreglos estáticos en C

Tema 10: Arreglos estáticos en C Tema 10: Arreglos estáticos en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido

Más detalles

PROGRAMACIÓN GENÉRICA

PROGRAMACIÓN GENÉRICA PROGRAMACIÓN GENÉRICA Lenguajes de Programación - Orientación a Objetos: Progr. Genérica 1 Programación genérica Objetivo: escribir algoritmos genéricos, independientes de las clases concretas de los datos

Más detalles

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño fijo

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño fijo Algoritmos y Programación Orientada a Objetos I Contenedoras de tamaño fijo Agenda Motivación Contenedoras de tamaño fijo Instrucciones repetitivas Agenda Motivación Contenedoras de tamaño fijo Instrucciones

Más detalles

Métodos de ordenamiento y búsqueda en vectores

Métodos de ordenamiento y búsqueda en vectores Métodos de ordenamiento y búsqueda en vectores Ordenación (clasificación) Es la operación de organizar un conjunto de datos en algún orden o secuencia específica, tal como creciente o decreciente para

Más detalles

Fundamentos de Programación Visual Basic

Fundamentos de Programación Visual Basic Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280

Más detalles

Arreglos. Donde en cada posición del array se puede guardar un elemento. tipo_dato nombre_array[cant_elem];

Arreglos. Donde en cada posición del array se puede guardar un elemento. tipo_dato nombre_array[cant_elem]; Arreglos Los arreglos o arrays son colecciones de datos del mismo tipo. De esta manera, podemos encontrar arrays de números enteros, arrays de números double, arrays de caracteres. Tradicionalmente, la

Más detalles

ALGORITMOS Y PROGRAMACIÓN I Unidad 3

ALGORITMOS Y PROGRAMACIÓN I Unidad 3 ALGORITMOS Y PROGRAMACIÓN I Unidad 3 Tipos de Datos Estructurados Prof. Jaime Soto Sección (007) Material original de Prof. AURELY LEAL Introducción a las Estructuras de Datos Una estructura de datos es

Más detalles

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año Trabajo práctico Nº 4 (Resolución de problemas Arreglos unidimensionales). Realiza el programa en lenguaje C correspondiente. Utilizar modulación. 1- Escriba una declaración para un vector que contenga

Más detalles

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -. Introducción. Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.- El presente documento busca ser una referencia para

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Tema 14: Arreglos estáticos en C

Tema 14: Arreglos estáticos en C Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom

Más detalles

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0 Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0 PROYECTO DE ESTRUCTURA REPETITIVA FOR A continuación resolveremos el siguiente proyecto.

Más detalles

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común

Más detalles

Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Vectores Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Tipos de Datos: Simples: son las unidades mínimas para almacenar un valor, ejemplo: enteros, caracteres, reales.

Más detalles

Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.

Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico. Universidad Nacional Autónoma de México Facultad de Ingeniería ARREGLOS Y ESTRUCTURAS Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan

Más detalles

Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado.

Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado. Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado. Probarlo con lo caracteres a, b, A y B 2. Hacer lo contrario, leer

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles