Introducción al tipo de dato ARRAY



Documentos relacionados
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS

Arrays y Cadenas en C

Tema 9. Vectores y Matrices

Introducción a la programación orientada a objetos

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

1 Estructura básica de un programa C++

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Modulo 1 El lenguaje Java

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

ESTRUCTURA DE DATOS: ARREGLOS

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Vectores. 27/05/05 Programación Digital I 1

TécniquesInformàtiques PRÀCTICA 6 (2 Sessions) Curs

Informática FACULTAD DE FÍSICAS

Tema: Arreglos de Objetos en C++.

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

Fundamentos de la Programación

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Prof. Dr. Paul Bustamante

LABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

PRACTICA 6. VECTORES Y MATRICES.

Práctica 2: Simón dice

PRÁCTICAS DE GESTIÓN GANADERA:

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

Introducción al lenguaje JAVA

11. Algunas clases estándar de Java (II)

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C#

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

Contenidos. Archivos en C++ Archivos en C++ Introducción

BASES DE DATOS - Microsoft ACCESS 2007-

Tema 2: La clase string

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Curso 0 de Informática

Tutorial Básico de vbscript

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Clases y Objetos. Informática II Ingeniería Electrónica

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos

Una breve introducción a Excel c

8. Sentencia return y métodos

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

AGRUPA P R OBJET E OS 1

7. Manejo de Archivos en C.

Preliminares. Tipos de variables y Expresiones

Taller de Programación I. Tema 04: Arreglos y Matrices en Java

Programación Orientada a Objetos con Java

FACULTAD DE INGENIERÍA

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Formas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007

PETICIÓN DE MATERIAL

CÓMO CREAR NUESTRO CATÁLOGO

Examen escrito de Programación 1

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Teclado sobre una PDA para Personas con Parálisis Cerebral

QUE ES UN CUPO? Cupos 1

Creación de usuarios Acceso a Alexia

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

3.2 Operaciones aritmético-lógicas en Pascal

Diseño de páginas web

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo.

Prof. Dr. Paul Bustamante

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

Plantillas de clases ( Templates )

Capítulo 6. Introducción a la POO

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

Curso de programación en C++ Apuntes de clase EUI (UPV) Valencia, 17 al 28 de Julio de Sergio Talens Oliag

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Indicaciones específicas para los análisis estadísticos.

Instalación del programa PSPP y obtención de una distribución de frecuencias.

INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO

1. Manejo de memoria estática 2. Manejo de memoria dinámica

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

PART II: Moviendo al jugador

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows

NORMA 34.14(SEPA) 05/11/2013

Programación Avanzada para Sistemas de Telecomunicación Arrays

Base de datos en Access

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

SIIGO Pyme. Procesos Gestión de Ventas. Cartilla I

SISTEMAS DE NUMERACIÓN.

SIMPLE Cuentas Corrientes

Transcripción:

CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción al tipo de dato ARRAY

Introducción Hasta ahora hemos visto los tipos de datos simples de C++, y sus características. int ( Números enteros ) float, double ( Números reales ) bool ( Valores lógicos ) char ( Caracteres y cualquier cantidad de 8 bits ) void ( Nada. Sirve para indicar que una función no devuelve valores ) También se ha visto cómo declarar y utilizar constantes utilizando const y el tipo enumerado enum. Ahora vamos a introducir un tipo de dato definido por el programador: el tipo array 3 El tipo Array: Definición Un Array es un conjunto finito de valores del mismo tipo. Un Array es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo tipo. Un Array es un conjunto de variables del mismo tipo que tienen el mismo nombre y se diferencian en el índice. Letras = a z r j A cada dato almacenado se le denomina elemento del array o ítem. Cada elemento del array está numerado, y a éste número se le denomina índice. 4

El tipo Array: Características Los elementos del array se numeran consecutivamente comenzando con,,, letras = a z r j 3 Estos números, los índices, permiten localizar cada elemento del array. letras[] es el elemento que está en la posición, letras[] es el elemento que está en la posición, etc índice array de 4 elementos Los elementos almacenados en el array pueden ser de cualquier tipo: tipos simples como: int, char, bool, float ó tipos definidos por el programador como por ejemplo estructuras (hablaremos de ellas más tarde). 5 El tipo Array: Declaración de un array Se declara de forma similar a cualquier otro tipo de datos, solo que hay que indicarle al compilador el número de elementos que forma el array: tamaño ó longitud del array. Sintaxis <tipo_de_dato> <nombre_de_variable> [numero_de_elementos]; Tipo de dato Nombre_de_variable [ ] Num_elementos ; Ejemplos: char letras[4]; int edades[]; // variable letras de tipo array de 4 elementos de tipo char // variable edades de tipo array de elementos de tipo entero. 6

El tipo Array: Declaración de un array El compilador reserva espacio en memoria en posiciones contiguas. char letras[4]; int edades[]; letras[] letras[] letras[] letras[3] El array letras ocupa 4 bytes de memoria. 3 4 Cuando declaramos el array edades lo que hacemos es reservar un espacio de memoria para variables de tipo int. El array edades ocupa bytes consecutivos de memoria [] [] [] [3] [4] [5] [6] [7] [8] [9] ( bytes por elemento). 7 El tipo Array: Declaración de un array Si queremos saber el número de bytes que necesitamos para almacenar un array en memoria, podemos utilizar la función sizeof(). En nuestro caso, sizeof (edades) =. int edades[]; Cabecera stdio.h [] [] [] [3] [4] [5] [6] [7] [8] [9] 8

El tipo Array: Acceso a los elementos de un array Para acceder a los elementos de un array hay que poner el nombre y el índice del elemento al que queremos acceder ó referenciar. int primera =, k = 3; char letras[4]; cout << letras[]; //visualiza la letra a cout << letras[]; //visualiza la letra r cin >> letras[]; letras[] = R ; letras[] = letras[primera+]; cout << letras[k-]; //visualiza la letra z.. letras = a z r j 3 Podemos visualizar el valor de los elementos de un array Modificar el valor de los elementos de un array Acceder a los elementos utilizando fórmulas 9 El tipo Array: Acceso a los elementos de un array Si necesitamos acceder a todos los elementos, utilizaremos un bucle de tipo for: Sintaxis for ( int j = ; j < num_elementos ; j++ ) procesar_elemento [j]; char letras[4]; for ( int j = ; j < 4 ; j++ ) { cout << Introduzca el elemento : << j+ ; cin >> letras[j]; cout << endl; } Variable de control j para recorrer cada uno de los elementos Pasada j Salida por pantalla Introduzca el elemento: Introduzca el elemento: 3 Introduzca el elemento: 3 4 3 Introduzca el elemento: 4

El tipo Array: Acceso a los elementos de un array C++ no comprueba que los índices del array estén dentro del rango permitido. Si escribimos cout << letras[4]; no tendremos error de compilación, pero el programa no funcionará correctamente. letras[] letras[] letras[] letras[3] El código ASCII del carácter + es 43 7 97 4 74 43 63 78 3 4 letras = a z r j 3 El tipo Array: Inicialización de un array Antes de empezar a utilizar una variable de tipo array hay que asignar valores a cada uno de sus elementos. Tenemos varias formas de inicializar un array:. Inicialización en la declaración: char letras[4] = { a, z, t, j }; int edades[] = {,, 3, 4, 5, 6 }; char saludo[] = { h, o, l, a }; char saludo[] = { hola }; Los valores se encierran entre llaves y se separan por comas. C++ permite omitir el tamaño del array cuando se inicializa. El compilador reserva memoria para un array de enteros de tamaño 6. Los array de caracteres se pueden inicializar de éstas dos formas.

El tipo Array: Inicialización de un array. Inicialización elemento a elemento en el cuerpo del programa: letras[] = a ; letras[] = z ; letras[] = r ; letras[3] = j ; Este método no es muy práctico cuando tenemos muchos elementos. 3. Inicialización mediante una sentencia FOR: int edades[ 6 ]; int valor = ; for (int i = ; i<6 ; i++ ) { edades[i] = ; valor = valor + ; } int temperatura[ ]; for (int i = ; i<; i++) edades[i] = ; Temperatura = edades = 3 4 5 6 3 ARRAYS multidimensionales 4

Arrays multidimensionales: Definición Los arrays que hemos visto anteriormente se conocen como arrays unidimensionales y se caracterizan por tener un solo índice. También se conocen como listas de elementos y se corresponden con el concepto de vector. Los arrays multidimensionales son aquellos que tienen más de una dimensión y por tanto tienen más de un índice. Los más utilizados son los de dos dimensiones, conocidos con el nombre de tablas. Se corresponden con el concepto de matriz. C++ permite trabajar con arrays de de tantas dimensiones como requieran las aplicaciones ( 3, 4 ó más dimensiones). 5 Arrays bidimensionales: Definición Un array de dos dimensiones se corresponde con una tabla con varias filas y varias columnas. índice para las filas 3 3 4 4 3 3 4 índice para las columnas Cada elemento almacenado en el array está identificado por dos índices, sus coordenadas, la fila y la columna en la que se encuentra dicho elemento. Ambos índices se numeran consecutivamente comenzando con,,, 6

Arrays bidimensionales: Declaración Se declara de forma similar al tipo de dato array de una dimensión, solo que hay que indicarle al compilador el tamaño de cada uno de los índices, es decir, el número de filas y el número de columnas. Sintaxis <tipo_de_dato> <nombre_de_variable> [num_filas] [num_columnas]; Tipo de dato Ejemplos: Nombre_de variable [ ] [ ] Num_filas Num_columnas ; char tablero[8][8]; // variable llamada tablero de tipo array de dos dimensiones (8 filas y 8 columnas). Alamacena 64 elementos de tipo char. int matriz[3][4]; // variable llamada matriz de tipo array de dos dimensiones (3 filas y 4 columnas). Almacena elementos de tipo entero. 7 Arrays bidimensionales: Declaración Al igual que en los arrays de una dimensión, el compilador reserva espacio en memoria en posiciones contiguas. Primero se almacenan los datos de la primera fila, luego los de la segunda, int matriz[3][4]; 3 3 4 4 3 3 4 El array matriz ocupa 4 bytes consecutivos de memoria. Cuando declaramos el array matriz lo que hacemos es reservar un espacio de memoria para variables de tipo int. [][] [][] [][] [][3] [][] Primera fila Segunda fila. 8

Arrays bidimensionales: Acceso a los elementos Se puede acceder a los elementos de un array bidimensional de forma similar a como lo hacíamos para arrays de una dimensión. Hay que poner el nombre y los índices (fila y columna) del elemento al que queremos acceder ó referenciar. int j = ; char valor ; int matriz[3][4]; char cuadro[3][3]; cout <<matriz[][3]; cin >> matriz[][ j+ ]; cuadro[][] = R ; valor = cuadro[][]; Podemos visualizar el valor de los elementos de un array Modificar el valor de los elementos de un array Acceder a los elementos para extraer valores 9 Arrays bidimensionales: Acceso a los elementos Si necesitamos acceder a todos los elementos de un array bidimensional, utilizaremos un doble bucle for. Variable de control i para recorrer las filas for ( int i = ; i < num_filas ; i++ ) for ( int j = ; j < num_columnas ; j ++ ) Variable de control j para procesar_elemento [i][j]; recorrer las columnas Sintaxis int matriz[3][4]; for ( int i = ; i < 3 ; i++ ) for ( int j = ; j < 4 ; j++ ) { cout << El elemento << i+ << j+ << es: ; cout << matriz [i] [j] << endl; }

Arrays bidimensionales: Inicialización Al igual que los arrays de una dimensión, tenemos varias formas de inicializar un array: Los valores se encierran entre llaves y se separan por comas.. Inicialización en la declaración: int matriz[3][4] = {,, 3, 4, 4,,, 3, 3,,,4 }; int valores[][3] = { {,, 3}, {,,} }; char cuadro[3][3] = { }; { B, N, N }, { N, N, N }, { B, B, B } B N N N N N B B B 3 3 4 4 3 3 4 3 Arrays bidimensionales: Inicialización. Inicialización elemento a elemento en el cuerpo del programa: matriz[][] = ; matriz[][] = ; matriz[][] = 3; matriz[][3] = 4; Poco práctico como ocurría en arrays de una dimensión. 3. Inicialización mediante una doble sentencia FOR: int valores[][3] int dato = ; for (int i = ; i< ; i++ ) for (int j = ; j<3 ; j++ ) { valores[i][j] = dato; dato = dato + ; } Variable de control i para recorrer las filas Variable de control j para recorrer las columnas 3 4 5 6

Más sobre inicialización de Arrays: Si un array se declara globalmente, y no se inicializa en dicha declaración, el compilador se encarga de inicializarlo automáticamente con un valor por defecto. Si no declaran globalmente, pero se inicializan uno o más elementos pero no todos, el compilador inicializa automáticamente el resto de elementos con un valor por defecto. Si el array almacena elementos de tipo entero o real: El valor por defecto es. Si el array almacena elementos de tipo carácter: El valor por defecto es el carácter nulo \. 3 Más sobre inicialización de Arrays: Ejemplo: #include <iostream.h> int matriz[3][4]; char cuadro[3][3]; 3 matriz \ \ \ \ \ \ \ \ \ cuadro void main() { } float ventas[4] = {3.}; int otrocuadro[3][3] = { 7, 6 }; ventas 3. 3 7 6 otrocuadro 4