La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

CLASE 18. Chiste del día Definición: Un array es una colección de variables del mismo tipo de datos con un mismo nombre. En los arrays: –Hay un número.

Presentaciones similares


Presentación del tema: "CLASE 18. Chiste del día Definición: Un array es una colección de variables del mismo tipo de datos con un mismo nombre. En los arrays: –Hay un número."— Transcripción de la presentación:

1 CLASE 18

2 Chiste del día

3 Definición: Un array es una colección de variables del mismo tipo de datos con un mismo nombre. En los arrays: –Hay un número de piezas de datos contenidos en el mismo nombre. –Hay un método ordenado para la extracción de datos individuales del array Definición

4 Accediendo a los arreglos Un array así como las variables ordinarias debe ser declarado antes de ser usado. edad[i] índice Nombre del arreglo int edad[10]; Cada dato de un arreglo puede ser utilizado como si fuera una variable mas. Un dato de un arreglo se referencia así: Número de elementos = 10 Subíndices Valores Nombre

5 Ejemplo Arreglos Un arreglo es como una caja para guardar elementos o como un archivador. Utiliza un sistema de indexación para encontrar el valor de cada una de las variables almacenadas en su interior. INTRODUCCION

6 ACCESO A LOS ELEMENTOS DE UN ARRAY LECTURA nombreVariable = nombreArray[indice] ESCRITURA nombreArray[indice] = valor m= a[9]; n = a[3]; m = 33; a[2]=m; m=33/11; a[0]=m; a[4]=10; 33310

7 Lectura y Escritura de Cadenas CADENAS DE CARACTERES

8 FUNCIONES PARA MANIPULAR CADENAS CADENAS DE CARACTERES

9 AGENDA 2 Arreglos multidimensionales 3 Funciones y arreglos 1 Ejemplo repaso arreglos 1

10 Ejemplo 0 Programa que almacena 10 números en un vector, y luego halla cual es el mayor de todos y su posición dentro del vector. EJEMPLO REPASO ARRAY

11 Ejemplo Programa que almacena 10 numeros en un vector, y luego halla cual es el mayor de todos y su posición dentro del vector. EJEMPLO REPASO ARRAY #include #define SIZE 10 int main (void){ int array[SIZE]; int i, mayor=0,posMayor=0; for (i=0; i < SIZE; i++){ //Ciclo para llenar el array printf(Ingrese el valor: %d, i); scanf(%d,&array[i]); } for(i=0; i <= SIZE-1; i++){ //Ciclo para hallar Mayor if(mayor < array[i]){ mayor = array[i]; posMayor=i; } printf(El mayor es: %d y su posicion es %d. \n, mayor,posMayor); return 0; }

12 AGENDA 2 Cadena de Caracteres 3 Ejemplos 4 Arreglos multidimencionales 1 Ejemplo repaso arreglos 5 Funciones y arreglos 3

13 Ejemplo 1 Crear un programa que cuente cuantas vocales tiene una cadena. EJEMPLOS

14 Ejemplo 1 EJEMPLOS #include int main (void){ char nom[20]; int i, vocal=0, tam; printf(Ingrese su nombre: ); scanf(%s,nom); tam=strlen(nom); for (i=0; i

15 Ejemplo 2 Escribir un programa en C que lea una secuencia de caracteres ASCII y que escriba este mensaje codificado. Si el carácter es una letra o dígito, será reemplazado por el siguiente carácter en el conjunto de caracteres, excepto Z que será reemplazado por A, z por a y 9 por 0. Por tanto, 1 se transforma en 2, C en D, p en q, etc. Cualquier carácter que no sea letra o dígito será reemplazado por un punto (.). CADENAS DE CARACTERES

16 Ejemplo 2 CADENAS DE CARACTERES #include #define MAXCAR 60 void main() { char LIN[MAXCAR], LOUT [MAXCAR]; int i; puts("INGRESE TEXTO A CODIFICAR: \n"); gets(LIN); puts("EL TEXTO CODIFICADO ES: \n"); for (i= 0; LIN[i] != '\0'; i++) { if (((LIN[i] >='0')&&(LIN[i] ='A)&&(LIN[i] ='a') && (LIN[i] < 'z'))) { LOUT[i]= LIN[i] + 1; } else if (LIN[i] == '9') LOUT[i]='0'; else if (LIN[i] == 'Z') LOUT[i]='A'; else if (LIN[i] == 'z') LOUT[i]='a'; else LOUT[i]='.'; putchar(LOUT[i]); } putchar('\n'); }

17 Ejemplo 3 Crear un programa que invierta un nombre. EJEMPLOS

18 #include //#include int main (void){ char nombre[20]; char invertido[20]; int i, j, largo=0; printf(Ingrese su nombre: ); scanf(%s,nombre); //largo=strlen(nombre); for (i=0; nombre[i]!=\0; i++){ largo++; } for (i=0,j=largo-1; j>=0; j--, i++){ invertido[i]= nombre[j]; } printf(El nombre invertido es: %s\n) return 0; }

19 AGENDA 2 Arreglos multidimensionales 3 Funciones y arreglos 1 Ejemplo repaso arreglos 2

20 Arreglos Multidimensionales Es posible crear arrays de tantas dimensiones como requieran sus aplicaciones. Se declaran siguiendo el patrón de la declaración de un vector: ARREGLOS MULTIDIM tipo nombre [d1] [d2] [d3]… [dN];

21 Arreglos de 2 Dimensiones Declaración Ejemplo: ARREGLOS MULTIDIMENSIONALES tipo nombre [fila] [columna]; int A[2] [3]; A[0][0] Nombre Columnas = 3 Filas = 2 A[0][1] A[0][2] A[1][0] A[1][1] A[1][2]

22 Representación en memoria A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] Realmente todo arreglo de mas de una dimensión queda representado en memoria simplemente como un vector de 1 sola dimensión

23 Inicialización ARREGLOS MULTIDIMENSIONALES A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] int matrizA [2] [3] = { {3,5,7}, {8,6,4} }; Fila 0 Fila int matrizA [2] [3] = { {3,5,7}, {8,6,4} }; int matrizA [2] [3] = { 3,5,7,8,6,4 };

24 B[0][0][2] B[0][1][2] B[0][2][2] B[1][2][2] B[1][0][1] B[1][1][1] B[0][0][1] B[0][1][1] B[1][0][1] B[1][1][1] B[1][2][1] B[0][2][1] Arreglos de 3 Dimensiones Declaración tipo nombre [fila] [columna] [Plano]; Int matrizB[2] [3] [3]; B[0][0][0] Nombre Columnas = 3 Filas = 2 B[0][1][0] B[0][2][0] B[1][0][0] B[1][1][0] B[1][2][0] Planos = 3

25 int matrizA [2] [3] [3]={ {{1,3,5}, {7,9,11}}, {{2,4,6}, {8,10,12}}, {{3,7,11}, {15,19,23}} }; Arreglos de 3 Dimensiones Fila 0 Fila Plano 0 Plano 1 Plano F0 F1 C0 C1 C2 C0 C1 C2 C0 C1 C2 Plano 0 Plano 1 Plano 2

26 Ejercicios ARREGLOS MULTIDIMENSIONALES Crear programa que llene una matriz de un tamaño fijo. Los valores se le piden al usuario. Filas(i) Columnas (j) Programa que suma los elementos de las filas de una Matriz Programa que suma los elementos de las Columnas de una Matriz

27 EJEMPLO: ARREGLOS MULTIDIMENSIONALES Crear un programa que verifique que una matriz de 5x5 enteros es una matriz identidad. Filas (i) Columnas (j) Posición??? [1][2] i = 1, j = 2 [1][2] i = 1, j = 2

28 ARREGLOS MULTIDIMENSIONALES #include #define FILAS 5 #define COLUMNAS 5 int main (void){ int matriz [FILAS][COLMUNAS]; int i, j, indent = 1; for(i=0; i < FILAS; i++){ for(j=0; j < COLUMNAS; i++){ printf(Ingrese el valor: (%d,%d), i, j); scanf(%d,&matriz [i][j]); } for(i=0; i < FILAS, ident == 1; i++){ for(j=0; j < COLUMNAS, ident == 1; i++){ if(i==j){ if(matriz [i][j]==1) { indent = 1; } else{ indent = 0;} }else{ if(matriz [i][j]==0) { indent = 1; } else{ indent = 0; } } if(ident==1) { printf(La matriz SI es la Identidad); } else { printf(La matriz NO es la Identidad); } return 0; } Para recorrer la matriz es necesario utilizar dos ciclos. 1. Recorre las filas (externo) 2.Recorre las columnas (interno) Para recorrer la matriz es necesario utilizar dos ciclos. 1. Recorre las filas (externo) 2.Recorre las columnas (interno)

29 Ejercicios: ARREGLOS MULTIDIMENSIONALES Programa que suma o multiplica dos vectores (verifique que las dimensiones sean correctas). Programa que sume o multiplique dos matrices (Verifique que las dimensiones sean correctas).

30 AGENDA 2 Arreglos multidimensionales 3 Funciones y arreglos 1 Ejemplo repaso arreglos 3

31 Arreglos como Parámetros a Funciones FUNCIONES Y ARREGLOS

32 Arreglos como Parámetros a Funciones FUNCIONES Y ARREGLOS tipoRetorno funcion (tipoDato vector[]); tipoRetorno funcion (tipoDato matriz[][SIZE]);

33 Arreglos como Parámetros a Funciones Siempre que tengamos un array como parámetro a una función, ésta debe saber hasta donde va el arreglo, ya que se le está pasando el inicio del arreglo. Generalmente se envia el tamaño del arreglo. FUNCIONES Y ARREGLOS tipoRetorno funcion(tipoDato vector[], int fila); tipoRetorno funcion(tipoDato matriz[][colum], int fila);

34 Tener en cuenta… Cuando se utiliza una variable array como argumento, la función receptora puede no conocer cuántos elementos existen en el array. Sin su conocimiento una función no puede utilizar el array. Aunque la variable array puede apuntar al comienzo de él, no proporciona ninguna indicación de donde termina el array FUNCIONES Y ARREGLOS

35 Arrays como Parámetros a Funciones 1.Situar un valor de señal al final del array, que indique a la función hasta donde va el arreglo; 2.Pasarle un segundo argumento que indica el número de elementos del array. FUNCIONES Y ARREGLOS tipoRetorno funcion (tipoDato vector[]); funcion (nombreVector); tipoRetorno funcion (tipoDato vector[], int size); funcion (nombreVector, tamaño);

36 Ejemplo FUNCIONES Y ARREGLOS Programa que sume los elementos de un arreglo. Utlice una Función que lleve a cabo la suma

37 #include void leerDatos (int vect [], int size); int sumarDatos (int vect [], int size); int main (void){ int datos [5]; int suma; leerDatos (datos, 5); suma = sumarDatos (datos, 5); printf(La suma de los datos es: %d\n, suma); return 0; } void leerDatos (int vect[ ], int size) { int i; for(i=0; i < size; i++){ printf(Ingrese el valor: (%d), i); scanf(%d, &vect [i]); } } int sumarDatos (int vect[ ], int size) { int i, acum=0; for(i=0; i < size; i++){ acum = acum + vect [i]; } return acum; } FUNCIONES Y ARREGLOS Prototipo Main Función 1 Función 2

38 Ordenación de Vectores Una tarea muy importante en los sistemas de computo es la ordenación de datos - Numericos, caracteres. (BASES DE DATOS). Arreglos

39 Ordenación de Vectores Ejercicio: Realizar un programa para ordenar en forma ascendente un vector dado. Arreglos BUSCAR: Existen numerosos algoritmos de ordenación de arrays: inserción, burbuja, selección, rápido (quick sort), fusión (merge), montículo (heap), shell, etc.

40 Ejercicios Arreglos Programa que convierte una matriz en su transpuesta. Programa que permita visualizar el triángulo de Pascal:

41 Bibliografía Joyanes Aguilar, Luis. PROGRAMACIÓN EN C. Metodología, algoritmos y estructura de datos Capitulo8. Google

42


Descargar ppt "CLASE 18. Chiste del día Definición: Un array es una colección de variables del mismo tipo de datos con un mismo nombre. En los arrays: –Hay un número."

Presentaciones similares


Anuncios Google