Sei sulla pagina 1di 4

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO

FACULTAD DE INGENIERA
ESTRUCTURAS DE DATOS Y ALGORITMOS 1
M. en I. Fco. Javier Rodrguez Garca

Prctica 2: Aplicaciones de apuntadores


Alumno:

Nmero de cuenta:

Fecha:

Calificacin:

Esta cartula deber ser llenada, impresa y entregada con cada prctica.
M. en I. Fco. Javier Rodrguez G. Prctica 2: Aplicaciones de apuntadores 2017-2

1 Objetivos
Que el alumno ponga en prctica lo estudiado en la teora sobre el uso
apuntadores. Al finalizar el alumno ser capaz de:

Declarar apuntadores y pasar apuntadores a funciones.


Hacer que una funcin devuelva varios resultados.
Pasar arreglos a funciones como apuntadores.

2 Pre-laboratorio
Cuestionario
1. Cul es la diferencia entre el operador referencia, &, y el operador de-referencia, *?
2. Cul es la diferencia entre el paso de argumentos por copia y por referencia?
3. Cmo se pasa un apuntador a una funcin?
4. Qu se puede hacer para que una funcin devuelva varios resultados?
5. Qu es una estructura?
6. Cmo se accesa a los elementos de una estructura?
7. Cmo se pasa por referencia una variable estructura a una funcin? Porqu se recomienda
pasar variables estructuras por referencia en lugar de por copia?
8. Cmo se accesa a los campos de una estructura que fue pasada a una funcin por referencia?
Pautas para la entrega del cuestionario. ste deber ser entregado en papel, acompaado de la cartula (primer pgina de esta
prctica). Las preguntas y respuestas debern estar en estricto orden. Para su comodidad, los campos de la cartula pueden ser llenados
en la computadora antes de imprimirla. Para ello escriba la informacin pertinente y termnela con un <ENTER>. Luego con el ratn
mevase al siguiente campo.

Ejercicios de Warm-up
1. Escriba una funcin que reciba un valor de tipo int por referencia y devuelva el doble del mismo en la misma
variable. Tome en cuenta que la funcin deber ser void. Pruebe la funcin en su driver program1.

2. Escriba una funcin que intercambie dos valores de tipo float. Pruebe la funcin en su driver program.

1 Un driver program es un programa cuyo nico objetivo es probar otras secciones de cdigo. En nuestro caso, la funcin main()
casi siempre va a ser nuestro driver program.

2
M. en I. Fco. Javier Rodrguez G. Prctica 2: Aplicaciones de apuntadores 2017-2

3 Actividades
Para las siguientes actividades se le recomienda encarecidamente que primero establezca su plan de accin a travs de un pseudo-
cdigo o un diagrama de flujo, y a continuacin, dependiendo de la complejidad del ejercicio, haga una prueba de escritorio. Finalmente
realice la codificacin.

1. BSQUEDA LINEAL. Escriba una funcin Buscar() que reciba un arreglo de enteros y un valor a buscar
dentro de dicho arreglo. La funcin devolver el ndice del elemento donde hubiera encontrado la coincidencia,
-1 en caso de no haberla encontrado. En el caso de mltiples coincidencias, nicamente devolver el ndice de
la primera encontrada. La firma de la funcin ser:

int Buscar (const int * arreglo, int tam);

Dentro de la funcin Ud. deber utilizar notacin de apuntadores, y en especial la de direccin base +
desplazamiento. Pruebe la funcin en su driver program.

2. CADENAS. Escribir su propia versin de la funcin strcpy() y la nombrar miStrCpy(). La firma de la


funcin ser:

int miStrCpy (char * destino, const char * fuente);

En este ejercicio Ud. utilizar la aritmtica de apuntadores, en especial el operador de pre-incremento, ++, y un
ciclo while; NO use ciclos for. El valor devuelto es la cantidad de caracteres copiados desde fuente hacia
destino, sin incluir el nulo, \0. Pruebe la funcin en su driver program.

3. CALIFICACIONES. Escriba una funcin que reciba un arreglo de calificaciones y devuelva el promedio,
Promedio(). Escriba una funcin que reciba un arreglo de calificaciones y devuelva la desviacin tpica,
Sigma(). Escriba una funcin, Conv(), que reciba un arreglo de calificaciones y asigne una calificacin en
formato de letra (como en el sistema norteamericano) A, B, C, D y F, segn la siguiente tabla:

La firma de la funcin Conv() ser:

void Conv (const float * califs, char * final, size_t tamCalifs);

Note que char *final NO es una cadena de texto, es simplemente un arreglo de caracteres.

En todas las funciones anteriores utilice notacin y aritmtica de apuntadores. Pruebe la funcin Conv() en su
driver program.

3
M. en I. Fco. Javier Rodrguez G. Prctica 2: Aplicaciones de apuntadores 2017-2

4 Post-laboratorio
Termine las actividades que hubieran quedado pendientes.

5 Referencias y bibliografa recomendada


[DEITELxx]
Deitel, H. M., Deitel, P. J. Cmo programar en C/C++. 2da. ed. ESPAA: McGraw-Hill, 20xx.

[JOYANES04]

[JOYANES05]

Referencia del lenguage C


http://www.cplusplus.com/reference/

Potrebbero piacerti anche