La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.

Presentaciones similares


Presentación del tema: "Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto."— Transcripción de la presentación:

1 Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto

2 Destrezas Esperadas Utilizar algunas funciones incorporadas en C, para el manejo de cadenas

3 Funciones para cadenas strcpy(str2,str1): Copia str1 en str2 strcmp(str1,str2): Compara dos cadenas str1 y str2. Si str1=str2 entonces retorna 0. strlen(str1): devuelve un entero que va a ser el largo de srt1. strcat(str1,str2): concatena el string str2 al final del string str1.

4 Ejercicios 1 Dado dos vectores. Dichos vectores corresponden a los elementos de conjuntos. Cree una función que calcule A-B (Operación de conjuntos). Es decir, todos los elementos que están en A, pero que no están en B.

5 Solución 1 int *RestaConjuntos(int A[],int B[],int CantA,int CantB) { int i,encontrado,k,Resta[MAX]; for(i=0,k=0; i<CantM;i++) { for(j=0,encontrado=0;j<CantB && !encontrado;j++) if(A[i]==B[j]) encontrado=1; else continue; if(encontrado==0) { Resta[k]=A[i]; k++; } else continue; } return(Resta); }

6 Ejercicio 2 Suponga que tiene una base de datos representada a través de arreglos en C. En dicha base de datos se tiene información de los empleados de una empresa. Nota los arreglos ya contienen información. La cantidad de empleados es menor o igual a MAXART, si es menor, entonces los disponibles tienen el carácter nulo en nombre y apellido : #define MAXART 500 #define largo 30

7 Ejercicio 2 #define MAXART 500 #define largo 30 main() { char nombre[MAXART][largo]; char apellido[MAXART][largo]; int edad[MAXART]; int sueldobase[MAXART]; : /* note que las declaraciones anteriores son locales*/ Cree una función que imprima la información de todos los empleados que ganan más de $250.000.-

8 Ejercicio 2 Cree una función genérica que permita incrementar el sueldo de un empleado. Para ello tome en cuenta que entre los parámetros a ingresar a la función están, el nombre, el apellido y el porcentaje a incrementar. El nombre y el apellido son string sin tamaño definido. Suponga que el procedimiento para eliminar un empleado es: Se encuentra el empleado, se corren todos los demás a la celda anterior, finalmente se coloca un vacío o nulo al final.

9 Solución 2 void Imprimir(char nombre[][largo],char apellido[][largo],int edad[],int sueldobase[]) { int i; for(i=0;i<MAXART;i++) if(sueldobase[i]>=250000) printf(“Nombre:%s, Apellido:%s, edad:%d, SueldoBase:%d\n”,nombre[i],apellido[i],edad[i], sueldobase[i]); else continue; }

10 Solución 2 void AumentarSueldo(char nombre[],char apellido[],int porcentaje) { int i; for(i=0;i<MAXART;i++) if(!srtcmp(nombre,nombre[i]) && !srtcmp(apellido,apellido[i])) { valor=sueldobase[i]*porcentaje; sueldobase[i]=sueldobase[i]+valor; } else continue; }

11 Solución 2 void Eliminar(char NB[],char AB[],char nombre[][largo],char apellido[][largo],int edad[], int sueldobase[]) { int i,j,stop=1; for(i=0;i<=MAXART && srtlen(nombre[i])!=0;i++) if(!strcmp(nombre,nombre[i]) && !strcmp(apellido,apellido[i]) && stop) { j=i; stop=0; } else if(!stop) for(;j<=MAXART && strlen(nombre[j])!=0;j++,i++) { strcpy(nombre[j],nombre[i]); strcpy(apellido[j],apellido[i]); edad[j]=edad[i]; sueldobase[j]=sueldobase[i]; } else continue; }


Descargar ppt "Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto."

Presentaciones similares


Anuncios Google