1 / 13

FUNCIONES EN C USANDO ARRAYS Y MATRICES

FUNCIONES EN C USANDO ARRAYS Y MATRICES. MENU DEL DIA. Repaso rápido.(Diapositivas Profesores Byron Buitrago y Sebastian Villa). Inicialización de arreglos de dos dimensiones. Funciones en C y arreglos. Comparación al trabajar con funciones y sin funciones. Sin funciones. Con funciones.

mandar
Download Presentation

FUNCIONES EN C USANDO ARRAYS Y MATRICES

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FUNCIONES EN C USANDO ARRAYS Y MATRICES

  2. MENU DEL DIA • Repaso rápido.(Diapositivas Profesores Byron Buitrago y Sebastian Villa). • Inicialización de arreglos de dos dimensiones. • Funciones en C y arreglos. • Comparación al trabajar con funciones y sin funciones. • Sin funciones. • Con funciones. • Mas anotaciones sobre funciones en C. • Ejercicios.

  3. INICIALIZACION DE ARREGLOS DE DOS DIMENSIONES

  4. INICIALIZACION DE ARREGLOS DE DOS DIMENSIONES int i,j,k = 0; int M[3][4]; for(i=0;i<3;i++){ for(j=0;j<4;j++) { M[i][j]=k++; } } • Para barrer matrices se usan ciclos anidados. Hay que prestar atención a tres cosas: • Las dimensiones de la matriz, las cuales definen los limites de los ciclos. • Que índice será usado como filas y cual como columnas. • Que se va a barrer primero, si filas o columnas. El ciclo mas interno define lo que se barre primero (Ojo con las dimensiones). int i,j,k = 0; int M[3][4]; for(j=0;j<4;j++){ for(i=0;i<3;i++) { M[i][j]=k++; } }

  5. FUNCIONES EN C Y ARREGLOS • Es posible usar vectores y matrices como parametros de una funcion. • Para declarar un array como argumento se usa la siguiente sintaxis en la definicion: tipo nombre_parametro[], tipo *nombre_parametro. • Siempre que tengamos un array como parámetro a una función, ésta debe saber hasta donde va el arreglo. Generalmente se envía el tamaño del arreglo #include<stdio.h> voidsumar_array(int [],int [], int); voidrestar_array(int *,int *, int); int main() { int a[] = {2,3,-1,4}; int b[4] = {2,3,-1,4}; c[4]={0,0,0,0}; sumar_array(a,b,4); sumar_array(c,b,4); return 0; } voidsumar_array(int a[],int b[], int len) { int i; for(i=0;i<len;i++) { b[i] = b[i] + a[i]; } } voidrestar_array(int *a,int *b, int len) { int i; for(i=0;i<len;i++) { b[i] = b[i] - a[i]; } } Nota: Complementar con las diapositivas de los profesores Sebastian y Byron.

  6. FUNCIONES EN C Y ARREGLOS • También es posible usar matrices como parámetros en una función. • Cuando se pasa una matriz doublemaximum( int , int , double [][] ) . . . doublemaximum( int nrows, int ncols, doublematrix[nrows][ncols] ) { doublemax = matrix[0][0]; int c,r; for ( r = 0; r < nrows; ++r ) for ( c = 0; c < ncols; ++c ) if ( max < matrix[r][c] ) max = matrix[r][c]; returnmax; } • Nota: Complementar con las diapositivas de Byron y Sebastian.

  7. TRABAJANDO SIN FUNCIONES #include <stdio.h> int a[3],b[3],c[3]; int main() { int i; printf(" Ingrese el primer vector: "); for(i=0;i<3;i++) { scanf("%d",&a[i]); } printf(" vec1 = [%d %d %d]\n\n",a[0],a[1],a[2]); printf(" Ingrese el segundo vector: "); for(i=0;i<3;i++) { scanf("%d",&b[i]); } printf(" vec2 = [%d %d %d]\n\n",b[0],b[1],b[2]); for(i=0;i<3;i++) { c[i]=a[i]+b[i]; } printf(" vec3 = vec1 + vec2 = [%d %d %d]\n\n",c[0],c[1],c[2]); return 0; }

  8. TRABAJANDO CON FUNCIONES #include <stdio.h> int a[3],b[3],c[3]; voidingresar_vector(int []); voidimprimir_vector(int []); voidsumar_vectores(int [],int [],int ); int main() { int i; printf(" Ingrese el primer vector: "); ingresar_vector(a); printf(“vec1 = ”); imprimir_vector(a); printf(“\n\n”); . . . return 0; } voidingresar_vector(int v[]) { for(i=0;i<3;i++) { scanf("%d",&v[i]); } } voidimprimir_vector(int v[]) { printf(“[%d %d %d]”,v[0],v[1],v[2]); } voidsumar_vectores(int v1[],int v2[],int res) { for(i=0;i<3;i++) { res[i]=v1[i]+v2[i]; } } Prototipos de las funciones Función principal Definición de las funciones

  9. MAS ANOTACIONES SOBRE FUNCIONES EN C • Una función puede devolver cualquier tipo de dato simple (char, short, int, long, etc), compuesto (estructura) o un puntero a cualquiera de estos dos tipos. int suma(int a, int b, int c) unsignedposicion(char cadena[],char letra) long potencia(int base,int exponente) char *strchr (char *s, int c) struct estudiante getEstudiante(struct estudiante *a,char *c) getEstudiante strchr • Una función solo puede retornar un solo valor a menos que devuelva un puntero o una estructura. int c char * char *strchr (char *s, int c) char *s struct estudiante *a struct estudiante char *s struct estudiante getEstudiante(struct estudiante *a,char *c)

  10. ANOTACIONES SOBRE FUNCIONES EN C • Una función no puede retornar un array o una matriz. int A[ ] int C[ ] Error!!! int B[ ] int tam sumarVectores sumarVectores int [] sumarVectores(int A[], int B[], int tam) int A[ ] int B[ ] int C[ ] int tam void sumarVectores(int A[], int B[], int C[], int tam)

  11. EJERCICIOS Escribir una lista de funciones que realice las siguientes operaciones sobre una Matriz entera de M filas por N columnas: Mostrar menor elemento. Mostrar el mayor elemento. Realizar la transpuesta. Sumar dos matrices llevando el resultado de la suma primera de las matrices.

  12. EJERCICIOS Los resultados de las ultimas elecciones a alcalde en el pueblo x han sido los siguientes: Escribir un programa que haga las siguientes tareas: Imprimir la tabla anterior con cabeceras incluidas. Calculas e imprimir el numero total de votos recibidos por cada candidato y el porcentaje total de votos emitidos. Así mismo, visualizar el candidato mas votado. Si algún candidato recibe mas del 50% de los votos, el programa imprimirá un mensaje declarándole ganador. Si algún candidato recibe menos del 50% de los votos, el programa debe imprimir el nombre de los dos candidatos mas votados que serán los que pasen a la segunda ronda de las elecciones.

More Related