Arreglos
Arreglos
• Un arreglo es un conjunto de variables del
mismo tipo que poseen un nombre común
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 más dimensiones.
1
Arreglos unidimensionales
• La forma general de declaración:
tipo nombre_variable[tamaño];
• La cantidad de memoria en bytes se puede
obtener con la función:
numero_bytes = sizeof(tipo)*tamaño;
• El 0 es el índice del primer elemento de un
arreglo.
1
Arreglos Unidimensionales
tipo nombre_variable[tamaño];
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;
}
1
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.
1
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 tamaño
del arreglo
Se pasa la dirección del primer
elemento del arreglo a la función
1
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 tamaño del
arreglo
1
Paso de Arreglos unidimensionales
a funciones
• Nota:
– Al llamar una función pasándole un arreglo como
parámetro, como se le entrega la dirección del
primer elemento, entonces si los valores del
arreglo son modificados dentro de la función,
también son modificados en la función que llama.
1
String
• Es el uso más común de arreglo
unidimensional.
• En C un string es un arreglo de caracteres
que terminan en un caracter nulo: ‘\0’.
1
String
• Declaración:
– Se declaran como arreglos unidimensionales.
– Debe contener 1 carácter más que la cadena más
larga más 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
1
Strings
Constante de cadenas:
– Es una secuencia de uno o más caracteres
encerrado entre comillas.
– Ejemplo: “informatica”
1
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 mayúsculas a minúsculas, minúsculas a
mayúsculas y sumar los dígitos.
1
Arreglos de punteros
Un puntero es una variable, por lo tanto puede
ser almacenado en un arreglo.
Declaración:
tipo *nombre_variable[tamaño];
xyz
xyz
Qwertyuiopasdfg
Qwertyuiopasdfg
Abcdefghi
Abcdefghi
1
Punteros a punteros:
argumentos de la función 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 estándar ANSI define dos argumentos de
main(): argc y argv.
• Permite pasar información al programa de C
mediante argumentos de línea de órdenes.
./programa
argumento1 argumento2 ….
Línea de órdenes
• argc : contiene el número 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
Definición:
– Es un arreglo de dos dimensiones (2 índices).
A[i][j]
Declaración:
tipo nombre_variable[tamaño_1][tamaño_2];
1
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];
1
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 gráfico.
- 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
número, nombre, calificaciones y promedio del
estudiante. Visualizar el promedio general por
cada asignatura. Mostrarla en sistema gráfico.
1
Arreglos Multidimensionales
• Definición:
– Es un arreglo con k-dimensiones, el cual está
indexado por medio de k índices.
A[m]….[n]
• Declaración:
k
tipo nombre_variable[tamaño_1]...[tamaño_k];
1
Descargar

Arreglos