LENGUAJE DE PROGRAMACIÓN
Sesión 7
• Arreglos Unidimensionales
Mag. Ing. Ricardo Yauri
4/08/2020 18:12 1
Arreglos unidimensionales
• Estructuras Básicas: Arreglo Unidimensional.
• Definición, características
• Inicialización de arrays
• Operaciones leer, mostrar,
• ARREGLOS UNIDIMENSIONALES Y STRINGS. Cadenas de
Caracteres.
• Funciones para el manejo de cadenas
4/08/2020 18:12 2
1. Arreglos Unidimensionales
1.1. Arreglos
• 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:
o Tipo_d_dato Nombre_array[ longitud_d_arreglo ];
Donde longitud_d_arreglo es cualquier expresión constante que al evaluarse
produce un número positivo entero.
También, longitud_d_arreglo especifica el número de componentes del arreglo.
4/08/2020 18:12 3
1. Arreglos Unidimensionales
1.1. Arreglos
• Ejemplos:
• La instrucción: int num[5]; declara un arreglo llamado num de cinco componentes,
cada uno de tipo int.
4/08/2020 18:12 4
1. Arreglos Unidimensionales
1.1. Arreglos
• Suponer que a es una variable de tipo int. Las instrucciones:
o a = 3;
o list[a] = 63;
o 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
o list[2 * a – 3] = 58;
o Almacena el valor 58 dentro de list[5] porque 2*a-3 evalúa a cinco.
4/08/2020 18:12 5
1. Arreglos Unidimensionales
1.1. Arreglos
• Analice las siguientes instrucciones:
list[3] = 10; //asigna el valor de 10 al cuarto componente de list
list [6] = 35; //asigna el valor de 35 a la posición siete de list
list [5] = list[3] + list [6] = 45; //añade el contenido de list[3] y de list[6] a list[5]
4/08/2020 18:12 6
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.1. Representación de un arreglo en memoria
Si se declara:
int a[3];
En memoria esto se representa de la siguiente forma:
4/08/2020 18:12 7
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.1. Representación de un arreglo en memoria
Otras declaraciones
char c1;
int a[3];
char c2;
int i;
4/08/2020 18:12 8
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.2. Inicialización
Los tipos de arrays que pueden existir son: char , int , Long , Long long , Float
¿Cómo se inicializa un Array?
int array1[10] = {1,2,3,4,5,6,7,8,9,10};
int array2[5] = {0,1,3};
int array3[] = {1,3,5,7,11,13};
• En el primer caso se están inicializando todos los elementos del array.
• En el segundo caso se están declarando solo los 3 primeros elementos del array, por lo que los
otros dos elementos se pondrán a cero.
• En el tercer caso el tamaño de la matriz queda especificado por el número de valores
ingresados.
4/08/2020 18:12 9
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.2. Inicialización
Ejemplo 1:
#include "iostream"
#include<stdio.h>
using std::cout;
using std::endl;
void main()
int main()
{
{
int array1[10] = {1,2,3,4,5,6,7,8,9,10};
int array1[10] = {1,2,3,4,5,6,7,8,9,10};
int array2[5] = {0,1,3};
int array2[5] = {0,1,3};
int array3[] = {1,3,5,7,11,13};
int array3[] = {1,3,5,7,11,13};
printf("el valor es: %d\n",array1[0]);
cout << "el valor es: " << array1[0] << endl ;
printf("el valor es: %d\n",array2[4]);
cout << "el valor es: " << array2[4] << endl;
printf("el valor es: %d",array3[5]);
cout << "el valor es: " << array3[5] << endl;
}
return 0;
}
4/08/2020 18:12 10
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.3. Arreglos de tipo caracter. Strings
Una cadena es un tipo de dato compuesto por un array de caracteres (char), terminado por un
carácter nulo ('\0'), NULL.
• Una cadena es "ABCD" (también llamada constante de cadena o literal de cadena). En memoria esta
cadena consta de cinco elementos: 'A', 'B', 'C', 'D' y '\0‘.
• De otra manera, se considera que la cadena "ABCD" es un array de cinco elementos de tipo char.
4/08/2020 18:12 11
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.3. Arreglos de tipo caracter. Strings
Una cadena como "hola" es en realidad un arreglo de caracteres. Un arreglo de caracteres se
puede inicializar mediante el uso de una literal de cadena. Por ejemplo, la declaración:
char cadena1[] = "primero";
• Inicializa los elementos del arreglo cadena1 con los caracteres individuales de la cadena "primero". El
compilador determina el tamaño del arreglo cadena1, con base en la longitud de la cadena.
• Un arreglo de caracteres que representa a una cadena siempre debe declararse con el tamaño
suficiente como para contener el número de caracteres en la cadena, junto con el carácter nulo de
terminación.
4/08/2020 18:12 12
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.3. Arreglos de tipo caracter. Strings
Los strings son un tipo especial de array.
• Los strings agrupan valores de datos de tipo char.
• Siempre están terminados por ‘\0’.
• La inicialización se puede hacer facilmente.
Ejemplo de inicialización de un string:
• char s[] = { ‘s’, ‘e’ , ‘s’ , ‘i’ , ‘o’ , ‘n’, ‘\0’ };
• char s[]= “sesion”;
¿De qué tamaño es el string anterior?
El valor ‘\0’ aparece adjunto automáticamente al final del string, por lo que el tamaño del string es 7.
¿Qué pasa si declaramos lo siguiente?
char s[10]=“sesion”;
4/08/2020 18:12 Pues, en este caso el resto de valores se llena con cero. 13
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.4. Librería de tratamiento de cadenas
La biblioteca estándar de C++ contiene la biblioteca de cadena cstring (string.h) , que contiene las
funciones de manipulación de cadenas.
char *s1; . Cuando se utiliza la función, se char * strcpya( char * destino, const char* origen)
puede usar un puntero a una cadena o se {
puede especificar el nombre de una variable int lon = strlen(origen); // se calcula longitud
189
array char.
destino = new char [lon + 1]; // se reserva memoria
for (int i = 0; i < lon; i++) //se copia caracter a caracter
Cuando se pasa un array a una función, C++ destino[i]= origen[i];
pasa automáticamente la dirección del array destino[lon] = '\0'; // se anade fin decadena
char. return destino; // retorno de la copia
}
4/08/2020 18:12 14
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.4. Librería de tratamiento de cadenas
4/08/2020 18:12 15
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.5. Librería de conversión de cadenas
La función atoi( ) convierte una cadena a un valor entero. Su prototipo es:
int atoi(const char*cad).
La cadena debe tener la representación de un valor entero. Si la cadena no se puede convertir, atoi( )
devuelve cero.
La función atof( ) convierte una cadena a un valor de coma flotante. Su prototipo es:
double atof(const char*cad);
La conversión termina cuando se encuentre un carácter no reconocido. La cadena de caracteres debe
tener una representación de caracteres de un número de coma flotante.
La función atol( ) convierte una cadena a un valor largo (long). Su prototipo es:
long atol(const char*cad);
4/08/2020 18:12 16
1. Arreglos Unidimensionales
1.1. Arreglos
1.1.5. Librería de conversión de cadenas
La librería <cstdlib> tiene algunas de las funciones de conversión:
4/08/2020 18:12 17
Referencias
• DEITEL, Harvey M.; DEITEL, Paul J. Cómo programar en C+. Pearson
Educación, novena edición, 2014.
• JOYANES AGUILAR, Luis; SANCHEZ GARCIA, LUCAS. Programación en C++: un
enfoque práctico. 2006.
4/08/2020 18:12 18