Sie sind auf Seite 1von 23

Arreglos

Arreglos
Un arreglo es un conjunto de variables del mismo tipo que poseen un nombre comn concatenado a un ndice. El ndice permite acceder directamente a un elemento particular de un arreglo. Los arreglos en lenguaje C se almacenan en celdas de memoria contiguas. Pueden tener 1 o ms dimensiones.

Arreglos unidimensionales
La forma general de declaracin:
tipo nombre_variable[tamao];

La cantidad de memoria en bytes se puede obtener con la funcin:


numero_bytes = sizeof(tipo)*tamao;

El 0 es el ndice del primer elemento de un arreglo.

Arreglos Unidimensionales
tipo nombre_variable[tamao];

elemento 0

elemento 1

elemento n-1

Ejemplo:
Realizar un programa en el que se ingresen 10 enteros, y luego se sumen sus elementos. Mostrar el resultado.
1

Ejemplo
#include <stdio.h> int main(){ int x[10]; int i,suma; for (i=0;i<10;i++){ printf ("Ingresar entero: "); scanf("%d",&x[i]); } suma=0; for (i=0;i<10;i++) suma+=x[i]; printf(" El resultado de la suma es = %d\n",suma); return 0; }

Arreglos Unidimensionales
Ejercicios:
- Crear un programa al cual se le ingrese un conjunto de caracteres. - Calcular el promedio en un arreglo de largo L el cual no est lleno completamente.

Paso de Arreglos unidimensionales a funciones


Forma 1: Arreglo delimitado
#include <stdio.h> func1(int x[100]){ ......... } int main(){ int a[100]; .. func1(a); ... return 0; }

Se debe especificar el tamao del arreglo

Se pasa la direccin del primer elemento del arreglo a la funcin

Paso de Arreglos unidimensionales a funciones


Forma 2: Arreglo no delimitado
#include <stdio.h> func1(int x[]){ ... } int main(){ int a[10]; .. func1(a); ... return 0; }

No se especifica el tamao del arreglo

Paso de Arreglos unidimensionales a funciones


Nota:
Al llamar una funcin pasndole un arreglo como parmetro, como se le entrega la direccin del primer elemento, entonces si los valores del arreglo son modificados dentro de la funcin, tambin son modificados en la funcin que llama.

String
Es el uso ms comn de arreglo unidimensional. En C un string es un arreglo de caracteres que terminan en un caracter nulo: \0.

String
Declaracin:
Se declaran como arreglos unidimensionales. Debe contener 1 carcter ms que la cadena ms larga ms larga que pueda contener.
char cadena[6]; 0 1 2 3 4 5

\0

Puede contener hasta 5 caracteres

Caracter que marca el fin del string

Strings

Constante de cadenas:
Es una secuencia de uno o ms caracteres encerrado entre comillas. Ejemplo: informatica

Biblioteca de funciones de Manejo de cadenas


Funci n strcpy() strcat() strlen() strcmp() Prototipo char *strcpy(char *s1,const char *s2); char *strcat(char *s1,const char *s2); int strlen(const char *s1); int strcmp(const char *s1,const char *s2); Acci n Copia s2 en s1. Concatena s2 en s1. Compara s2 con s1 Retorna s1 s1 Longitud de s1 0 si son iguales >0 si s1>s2 <0 si s1<s2

Biblioteca: string.h

Las cadenas o string no son un tipo de dato en C, por lo tanto, las operaciones sobre cadenas se realizan mediante funciones de biblioteca que ahorran el trabajo byte a byte (podemos crear otras).

Ejemplo
#include <string.h> #include <stdio.h> int main(void){ char c1[64,c2[64]; printf("Ingrese un string:"); scanf("%s",c1); printf("Ingrese un string:"); scanf("%s",c2); printf("Longitudes: %d %\n",strlen(c1),strlen(c2)); if(!strcmp(c1,c2)) printf("Son iguales\n"); strcat(c1,c2); printf("%s\n",c1); return 0; }
1

Strings
Ejercicio:
- Realizar un programa que convierta dentro de un string, las maysculas a minsculas, minsculas a maysculas y sumar los dgitos.

Arreglos de punteros
Un puntero es una variable, por lo tanto puede ser almacenado en un arreglo. Declaracin:
tipo *nombre_variable[tamao];

xyz Qwertyuiopasdfg

xyz Qwertyuiopasdfg

Abcdefghi

Abcdefghi
1

Punteros a punteros: argumentos de la funcin main()


Dos formas equivalentes para declarar los argumentos:
main(int argc, char **argv){....} main(int argc, char *argv[]){....}

Ejemplo: $z ertyuiopasdfg cdefghi


argv: z\0 ertyuiopasdfg\0 cdefghi\0 0
1

Argumentos de main()
El estndar ANSI define dos argumentos de main(): argc y argv. Permite pasar informacin al programa de C mediante argumentos de lnea de rdenes.
./programa argumento1 argumento2 .

Lnea de rdenes

argc : contiene el nmero de argumentos, y es entero. argv : es un puntero a un arreglo de caracteres.

23

Argumentos de main() (cont.)


#include <stdio.h> int main(int argc, char *argv[]){ int i; for(i=0;i<argc;i++){ printf(El argumento %d es: %s,i,argv[i]); return 0; }

$./programa aaa bb El argumento 0 es: ./programa El argumento 1 es: aaa

El argumento 2 es: bb
23

Arreglos Bidimensionales
Definicin:
Es un arreglo de dos dimensiones (2 ndices). A[i][j]

Declaracin:
tipo nombre_variable[tamao_1][tamao_2];

Arreglos Bidimensionales
Una matriz bidimensional tiene la forma siguiente:
a11 a12 ............ a1n a21 a22 ............ a2n ..................... am1 am2 ............ amn

Para acceder al dato aij se hace de la manera siguiente:


c=a[i][j];

Arreglos Bidimensionales
Ejercicios:
- Hacer un programa que lea en los enteros n y m las dimensiones y luego leer la matriz de enteros por fila. Mostrarla en sistema grfico. - Se desea controlar los resultados de los alumnos en las diferentes asignaturas. El programa debe leer las notas obtenidas de las distintas asignaturas y visualizarlas en la pantalla en nmero, nombre, calificaciones y promedio del estudiante. Visualizar el promedio general por cada asignatura. Mostrarla en sistema grfico.

Arreglos Multidimensionales
Definicin:
Es un arreglo con k-dimensiones, el cual est indexado por medio de k ndices. A[m].[n]

Declaracin:

tipo nombre_variable[tamao_1]...[tamao_k];

Das könnte Ihnen auch gefallen