Arreglo Unidimensional ESCOM

Embed Size (px)

DESCRIPTION

Notas de trabajo arreglos C

Citation preview

4.1 Arreglo unidimensional

Unidad IV Arreglos y tipos estructurados

4.1 Arreglo unidimensionalEstructuras de datos (Prof. Edgardo A. Franco)1

Instituto Politcnico NacionalEscuela Superior de Cmputo

Departamento de Ciencias e Ingeniera de la ComputacinAcademia de Ciencias de la ComputacinAutor: M. en C. Edgardo Adrin Franco Martnez Algoritmia y programacin estructurada

ContenidoIntroduccinArreglos unidimensionalesLectura-escritura de elementos en arreglos unidimensionalesInicializacin de un arregloTamao de un arregloFuncin SizeofCadenas en CManejo de cadenas en C Prueba y manejo de caracteres en C

2

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco MartnezIntroduccinUn arreglo esttico es una coleccin finita y constante (que no cambia su tamao) de elementos del mismo tipo.

Un arreglo tambin es conocido como vector, matriz o array.

Se pueden crear arreglos de cualquier tipo de dato en C, es decir, tipos de dato simple, estructurado, archivos e incluso de apuntadores.

3

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco MartnezArreglos unidimensionalesSe conocen dos tipos de arreglos: los unidimensionales y los multidimensionales. Y al igual que otra variable primero se debe declarar antes de utilizarse.

Sintaxis para declarar un arreglo unidimensional: identificador[tam_arreglo];

Cuando se declara un arreglo unidimensional o multidimensional, se debe indicar el tamao de dicho arreglo y este permanecer constante durante el ciclo de vida del programa o de la funcin, es decir, no podr cambiar su tamao de manera dinmica. (Arreglos estticos)

4

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco MartnezPor ejemplo: int arreglo[ 10 ];

Esta declaracin hace que el compilador le indique al sistema operativo que reserve espacio suficiente para almacenar 10 valores enteros.

En estos casos, cuando se declara un arreglo el S.O. le asigna a dicho arreglo una porcin consecutiva de memoria que es mltiplo del tamao del tipo de dato con el que se declaro el arreglo.

5

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco Martnezint arreglo[ 10 ];

6

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco MartnezLectura-escritura de elementos en arreglos unidimensionalesCada tem del arreglo se le denomina elemento del arreglo.

Todos los elementos que constituyen un arreglo se numeran consecutivamente comenzando en 0 hasta n-1 donde:0: es el primer elemento del arreglo,n-1: es el ultimo elemento del arreglo yn: es el tamao total del arreglo.

7

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco MartnezA los valores de 0 a n-1 se les denomina ndices o subndices del arreglo, es decir, un ndice o subndice nos ubica en una posicin determinada dentro del arreglo y nos permite tener acceso directo al elemento de ese ndice, para obtener su valor o para modificarlo,

Por ejemplo:

ndice o subndice del arregloTamao total del arregloSe obtiene el valor del elemento (10 + 1)Se modifica el valor del elemento (25 + 1) int arreglo[30];int dato;dato = arreglo[10];arreglo[25] = 2344;

8

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco MartnezInicializacin de un arregloAl igual que una variable local, un arreglo puede estar previamente inicializado antes de usarlo, caso contrario el arreglo contendr datos basura.

Existen diferentes formas de inicializar un arreglo:int numeros[6] = { 10,20,30,40,50,60 };int numeros[] = { 10,20,30 };char cad[] = {h,o,l,a,\0};char s[] = hola";

Cada elemento dentro de las llaves corresponde a un elemento que se almacena en una localidad del arreglo.

Un caso especial es el de las comillas dobles cadenas, este tipo de inicializacin aplica solamente para arreglos de caracteres y tambin significa que se est inicializando dicho arreglo.

9

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco Martnez9EjemplosInicializar un arreglo de nmeros aleatorios

Inicializar un arreglo de con el abecedarioint i;for( i = 0, i < 6, i++ ){numeros[i] = rand();}char i;int h = 0;for( i = a, i =strlen(s2), entonces strncat tiene el mismo efecto que strcat.strchr()char* strchr( const char* s1, int ch)Devuelve un apuntador a la primera ocurrencia de ch en s1, devuelve NULL si ch no se encuentra en s1.strcmp()int strcmp( const char* s1, const char* s2)Compara alfabeticamente la cadena s1 con s2 y devuelve un dato de:cero si s1 == s2menor que cero si s1 < s2mayor que cero si s1 > s2strcspn()size_t strcspn( const char* s1, const char* s2)Devuelve la longitud de la subcadena ms larga de s1 que comienza con el carcter s1[0] y no contiene ninguno de los caracteres de la cadena s2.*Consultar las funciones de la librera "string.h" de ANSI C

22

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco Martnez22Prueba y manejo de caracteres en C Una biblioteca relacionada #include la cual contiene muchas funciones tiles para convertir y probar caracteres individuales.

Las funciones ms comunes para revisar caracteres tienen los siguientes prototipos:int isalnum(int c): Verdad si c es alfanumrico.int isalpha(int c): Verdad si c es una letra.int isascii(int c): Verdad si c es ASCII.int iscntrl(int c): Verdad si c es un caracter de control. int isdigit(int c): Verdad si c es un dgito decimal.int isgraph(int c): Verdad si c es un caracter imprimible, exceptuando el espacio en blanco.

23

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco Martnezint islower(int c): Verdad si c es una letra minscula.int isprint(int c): Verdad si c es un caracter imprimible, incluyendo el espacio en blanco.int ispunct(int c): Verdad si c es un signo de puntuacin.int isspace(int c): Verdad si c es un espacioint isupper(int c): Verdad si c es una letra mayscula.int isxdigit(int c): Verdad si c es un dgito hexadecimal.

Las funciones para conversin de caracteres son:int toascii(int c): Convierte c a ASCII o un unsigned char de 7 bits, borrando los bits altos.int tolower(int c): Convierte la letra c a minsculas, si es posible.int toupper(int c): Convierte la letra c a maysculas, si es posible.

24

Algoritmia y programacin estructurada4.1 Arreglo unidimensionalAutor: M. en C. Edgardo Adrin Franco Martnez