Está en la página 1de 23

Arreglos

Arreglos
Unarregloesunconjuntodevariablesdel
mismotipoqueposeenunnombrecomn
concatenadoaunndice.
Elndicepermiteaccederdirectamenteaun
elementoparticulardeunarreglo.
LosarreglosenlenguajeCsealmacenanen
celdasdememoriacontiguas.
Puedentener1omsdimensiones.
1

Arreglos unidimensionales
Laformageneraldedeclaracin:
tipo nombre_variable[tamao];

Lacantidaddememoriaenbytessepuede
obtenerconlafuncin:
numero_bytes = sizeof(tipo)*tamao;

El0eselndicedelprimerelementodeun
arreglo.

Arreglos Unidimensionales
tipo nombre_variable[tamao];

elemento 0

elemento 1

elemento n-1

Ejemplo:
Realizarunprogramaenelqueseingresen10
enteros,yluegosesumensuselementos.Mostrarel
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:
Crearunprogramaalcualseleingreseun
conjuntodecaracteres.
CalcularelpromedioenunarreglodelargoLel
cualnoestllenocompletamente.

Paso de Arreglos unidimensionales


a funciones
Forma1:Arreglodelimitado
#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
Forma2:Arreglonodelimitado
#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:
Alllamarunafuncinpasndoleunarreglocomo
parmetro,comoseleentregaladireccindel
primerelemento,entoncessilosvaloresdel
arreglosonmodificadosdentrodelafuncin,
tambinsonmodificadosenlafuncinquellama.

String
Eselusomscomndearreglo
unidimensional.
EnCunstringesunarreglodecaracteres
queterminanenuncaracternulo:\0.

String
Declaracin:
Sedeclarancomoarreglosunidimensionales.
Debecontener1carctermsquelacadenams
largamslargaquepuedacontener.
char cadena[6];

\0
Puede contener hasta
5 caracteres

Caracter que marca el fin del string

Strings
Constantedecadenas:
Esunasecuenciadeunoomscaracteres
encerradoentrecomillas.
Ejemplo:informatica

Biblioteca de funciones de
Manejo de cadenas
Funcin
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);

Accin
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;
}

Strings
Ejercicio:
Realizarunprogramaqueconviertadentrodeun
string,lasmaysculasaminsculas,minsculasa
maysculasysumarlosdgitos.

Arreglos de punteros
Unpunteroesunavariable,porlotantopuede
seralmacenadoenunarreglo.
Declaracin:
tipo *nombre_variable[tamao];

xyz

xyz

Qwertyuiopasdfg

Qwertyuiopasdfg

Abcdefghi

Abcdefghi
1

Punteros a punteros:
argumentos de la funcin main()
Dosformasequivalentesparadeclararlosargumentos:
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()
ElestndarANSIdefinedosargumentosde
main():argcyargv.
PermitepasarinformacinalprogramadeC
medianteargumentosdelneaderdenes.
./programa

argumento1 argumento2 .

Lnea de rdenes

argc:contieneelnmerodeargumentos,y
esentero.
argv:esunpunteroaunarreglode
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:
Esunarreglodedosdimensiones(2ndices).
A[i][j]

Declaracin:
tipo nombre_variable[tamao_1][tamao_2];

Arreglos Bidimensionales
Unamatrizbidimensionaltienelaforma
siguiente:
a11 a12 ............ a1n
a21 a22 ............ a2n
.....................
am1 am2 ............ amn

Paraaccederaldato aij sehacedela


manerasiguiente:
c=a[i][j];

Arreglos Bidimensionales
Ejercicios:
Hacerunprogramaqueleaenlosenterosnym
lasdimensionesyluegoleerlamatrizdeenteros
porfila.Mostrarlaensistemagrfico.
Sedeseacontrolarlosresultadosdelosalumnos
enlasdiferentesasignaturas.Elprogramadebe
leerlasnotasobtenidasdelasdistintas
asignaturasyvisualizarlasenlapantallaen
nmero,nombre,calificacionesypromediodel
estudiante.Visualizarelpromediogeneralpor
cadaasignatura.Mostrarlaensistemagrfico.

Arreglos Multidimensionales
Definicin:
Esunarregloconkdimensiones,elcualest
indexadopormediodekndices.
A[m].[n]

Declaracin:

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

También podría gustarte