PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE WWW.NETWORKINGAPURE.COM.VE Introducci Ó n a los Arreglos (“arrays”) en C++

Slides:



Advertisements
Presentaciones similares
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Advertisements

PROF. CARLOS RODRIGUEZ SANCHEZ COMP 242 Introducci Ó n a los Arreglos (arrays) en C++
Conceptos Básicos Prof. Carlos Rodríguez Sánchez
Abstracción de Datos Arrays.
Ejemplo de Programa C++
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Listas enlazadas c++ Prof. Franklin Cedeño.
Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Tipos de Datos Básicos y Estructurados
INFORMATICA I Arreglos 1 CLASE 17.
Ismael Camarero1. 2 ¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria.
ESTRUCTURAS DE SECUENCIA
Estructuras de Datos Punteros y algo más.
Unidad 3 Punteros.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.

Diseño de algoritmos “Punteros”
Tema 3 Entrada y Salida.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Introducción a los punteros
Arreglos.
Capítulo 5. Punteros y Cadenas de Caracteres
Índice. Revisando conceptos acerca de la memoria.
1 3Tablas o matrices 3.1. Concepto Las tablas corresponden al concepto matemático de matriz. Todos sus elementos deben ser del mismo tipo y se accede a.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
1 Chapter 12 Arrays Dale/Weems/Headington. 2 Chapter 12 Topics l Declaring and Using a One-Dimensional Array l Passing an Array as a Function Argument.
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
PUNTEROS Ing Anghello Quintero.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
FIEE VARIABLES Ing. José Antonio Poma G.. FIEE Variables Una variable es un identificador (nombre de la variable) que hace referencia a.
Aplicación de estructuras de datos
Introducción a los punteros Prof. Domingo Hernández.
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Estructuras de repetición
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
CAPITULO V ARREGLOS Y CADENAS.
Arreglos Computción.
Los punteros Programación modular.
Matrices Prof. Flor Narciso Departamento de Computación
Eficiencia en uso de recursos y memoria
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Términos algoritmo diseñar algoritmo implementar algoritmo
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
PRINCIPIOS DE PROGRAMACIÓN
LENGUAJE “C” Programación.
Fundamentos de Programación
Lic. Carla Aguirre Montalvo
Algoritmo.
int cantidad, horas, cuota; float precio, peso; cantidad = 5; // Le asigno un número a la variable Cantidad; horas = // Le asigno 30 a la variable.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
ARREGLOS O ARRAYS.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
Lenguaje de Programación II PLAN DE EVALUACIÓN CONTENIDO MODALIDAD DE EVAL. PONDERACIÓN INTRODUCCIÓN BÁSICA AL LENGUAJE DE PROGRAMACIÓN.
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
IntroducciÓn a los Arreglos (“arrays”) en C++
Lenguaje C++ Problemas.
Arreglos en C++ (una y dos dimensiones)
Transcripción de la presentación:

PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++

Tipos de datos en C++ Simple data types Structured data types Pointers data types

Structured data types Variables definidas que pueden almacenar en memoria varios valores al mismo tiempo  Arreglos (arrays)

Arreglos (Arrays) Colección de un número fijo de componentes que son del mismo tipo de dato. Forma general para declarar un arreglo de una dimensión:  dataType arrayName[intExp];  Donde intExp es cualquier expresión constante que al evaluarse produce un número positivo entero. También, intExp especifica el número de componentes del arreglo.

Arrays Ejemplos:  La instrucción: int num[5]; declara un arreglo llamado num de cinco componentes, cada uno de tipo int. num[0] num[1] num[2] num[3] num[4] num

Arrays Para acceder a los componentes de un arreglo, la forma general utilizada es:  arrayName[indexExp]  Donde indexExp, también llamado el index, es cualquier expresión cuyo valor debe ser un entero positivo. Especifica la posición de un componente dentro del arreglo.  Ejemplo:  int list[10]; // declara un arreglo llamado list de 10 componentes  list[5] = 34; // almacena el valor 34 en la sexta posición del arreglo list 34 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

Arrays aint. Suponer que a es una variable de tipo int. Las instrucciones:  a = 3;  list[a] = 63; asignan el valor de 3 a la variable a, y luego le asigna el valor 63 a la cuarta posición del arreglo list. De la misma forma, si el valor de la variable a es 4, entonces la instrucción list[2 * a – 3] = 58; list[5] almacena el valor 58 dentro de list[5] porque 2*a-3 evalua a cinco.

Arrays Analice las siguientes instrucciones:  list[3] = 10; list  list[3] = 10; //asigna el valor de 10 al cuarto componente de list  list [6] = 35; list  list [6] = 35; //asigna el valor de 35 a la posición siete de list  list [5] = list[3] + list [6] = 35;  list [5] = list[3] + list [6] = 35; //añade el contenido de list[3] y de list[6] a list[5] [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

Arrays Uso práctico de arreglos en C++  Problema: hacer un programa que en C++ que lea cinco números, los sume, y luego los escriba en el orden inverso como se entraron.  Se necesitan declarar al menos cinco variables todas del mismo tipo para almacenar en memoria los números que se van a entrar.

Arrays Flowchart: start Entrar 5 numeros a,b,c,d,e sum = a+b+c+d+e Mostrar e,d,c,b,a stop

Arrays Programa #1 #include using namespace std; int main() { int num1, num2, num3, num4, num; int sum; cout << “Enter five integers: “; cin >> num1, num2, num3, num4, num5; cout << endl; sum = num1 + num2 + num3 + num4 + num5; cout << “The sum of the numbers = “ << sum << endl; cout << “The numbers in reverse order are: “; cout << num5 << “ “ << num4 << “ “ << num3 << “ “ << num2 << “ “ << num1<< endl; system(“pause”); return 0; }

Arrays Hacer el mismo programa pero para que lea 100 números en lugar de solo cinco.  En vez de definir cien variables del mismo tipo en el programa, es más conveniente definir un arreglo de cien posiciones donde se pueda acumular cada valor en su lugar correspondiente, leerlos, sumarlos, y por último escribirlos en el orden inverso como se entraron.

Arrays Solución: #include using namespace std; int main() { int list[100]; int sum = 0; cout << “Enter 100 integers: “; for (int i = 0; i < 100; i ++) { cin >> list[i]; sum = sum + list[i]; } cout << endl; cout << “The sum of the numbers = “ << sum << endl; cout << “The numbers in reverse order are: “; for(int i = 99; i >=0; i --) cout << list[i] << “ “; cout << endl; system(“pause”); return 0; }

Cómo declarar un array: Un array se declara de forma parecida a una variable de tipo simple añadiéndole al nombre el número de elementos que contendrá el array. De forma general, un array se declara así: tipo_dato nombre_array[elementos1][elementos2]…..; elementos1, elementos2, etc. son los índices del array. Deben ser números enteros positivos o expresiones con un resultado entero positivo. Indican el número de elementos del array. En el ejemplo anterior, el array notas se declara como: double notas[20]; El array es unidimensional, se llama notas y contiene 20 elementos de tipo double. Arrays

int x[3]; char a[] = { 'a', 'b', 'c' }; // a es un array de 3 elementos, // a[0] = 'a', etc. float x[2] = { 1.2, 2.1, 3.2 }; // error, no se pueden iniciar más de dos elementos int y[3] = { 34, -10 }; // correcto, y[0] = 34, y[1] = -10, y[2] = 0 (valor por defecto) Unos arrays especiales son las cadenas de caracteres, que terminan con el carácter '\0'. Así: char s[] = "hola"; significa que s es una cadena de 5 caracteres: "hola" + '\0'. Ejemplos

Ejemplo: programa C++ que accede y modifica los elementos de un array Los elementos de un array se pueden utilizar igual que cualquier otra variable y se puede hacer con ellos las mismas operaciones que se pueden hacer con el resto de variables. #include using namespace std; int main () { int n, m = 5; int a[]={2,8,3,0,4}; //se declara un array de 5 elementos de tipo //int con esos valores iniciales n = a[0]; //n = 2 a[0]=a[1]+a[2]; //a[0]= = 11 a[1]++; //a[1]= 9 a[n]=m+10; //a[2]= 15 a[n+1]=7; //a[3]= 7 if(a[0]>=a[1]) //if(11 >= 9) a[4]=a[0]; // a[4]= 11 cout << a[0]<<" "<< a[1]<< " "<< a[2]<< " "<< a[3]<< " "<< a[4]; cout << endl; system("pause"); } La salida de este programa es: Ejemplos

Recorrer un array Para recorrer un array se utiliza una instrucción iterativa (normalmente una instrucción for) utilizando una variable entera como índice que tomará valores desde el primer elemento al último o desde el último al primero. El siguiente programa declara un array de 7 elementos de tipo double llamado notas y le asigna valores iniciales. A continuación recorre el array, utilizando la instrucción for, para mostrar por pantalla el contenido del array. #include using namespace std; int main () { int i; double notas[]={2.3,8.5,3.2,9.5,4,5.5,7.0}; //array de 7 elementos cout << fixed << setprecision(2); for(i=0; i<7; i++) cout << notas[i] << " "; //se muestra cada elemento del array cout << endl; system("pause"); } La salida que muestra este programa es: Ejemplos

#include // ejemplo Arrays y Punteros using namespace std; int main() { char c[] = "veronica"; // 9 caracteres char *p = c; // p asociado al comienzo de c cout << "caracter c[0]: " << c << " - direccion c[0]: " << hex << long(&c[0]) << endl; cout << "puntero p: " << hex << long(p) << " - caracter en *p: " << *p << endl; ++p; cout << "puntero p+1: " << hex << long(p) << " - caracter en *(p+1): " << *p << endl; } Se observa en el ejemplo como se puede asignar el puntero p al principio de la cadena c, porque al declarar un array de cualquier tipo c[N], c es simplemente el puntero a la dirección de memoria del primer elemento c[0]. El ejemplo también ha introducido la conocida y "peligrosa" aritmética de punteros. Las siguientes operaciones están definidas:  Diferencia entre punteros del mismo array  Suma con un entero  Diferencia con un entero Ejemplos

Punteros ¡Error! Marcador no definido. Un puntero es un tipo de variable que apunta a una dirección de memoria. Se utiliza para apuntar a otros objetos. char c = 'a'; char *p = &c; En este caso, definimos una variable de tipo carácter, c, al que asignamos el carácter 'a'. En la segunda línea, mediante el operador de dereferencia, asignamos al puntero a carácter p, la dirección de memoria de c. Tenemos pues, los siguientes elementos:  T* puntero a tipo T  &var dirección de memoria de variable var (operador de de referencia) #include using namespace std; int main() { char c = 'a'; char *p = &c; cout << "Caracter c: " << c << endl; cout << "Puntero p (hexadecimal): " << hex << long(p) << endl; cout << "Contenido de p: " << *p << endl; } Ejemplos