Está en la página 1de 5

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


DEPARTAMENTO DE PROGRAMACIÓN DE COMPUTADORAS
GUÍA DE ACTIVIDAD N° 6
Taller

Facilitador: Prof. Eduardo Beitia Asignatura: Herramientas de Programación Aplicada I

Estudiante: Fecha: 9-8-17 Grupo: 2IL112

Manejo de funciones en C.

TEMAS: Prototipo, cabecera, acceso a una función.

OBJETIVOS: Manejar el acceso a las funciones, dependiendo de la cabecera de la función.

DESARROLLO
Genere un documento en Word y responda, a cada punto, señalando el número y letra que le
corresponde.

1) Explicar el significado de cada uno de los siguientes prototipos de funciones


a) int f1(int);
Declaración de una funcion llamada f1, que recibe un valor entero y devuelve un
valor de tipo entero.
b) double f2(double, int);
Declaracion de una funcion llamada f2, que recibe dos valore (uno entero y otro
punto flotante) y devuelve un valor punto flotante.
c) void f3(long, short, unsigned);
Declaracion de una funcion llamada f3, la cual recibe tres valores de tipo (largo,
corto, y otro enteros positivos). Y no devuelve ningun valor.
d) char f4();
Declaración de una función llamada f4 que no recibe valores , pero devuelve un
valor de tipo caracter.
e) unsigned f5(unsigned);
Declaracion de una función llamada f5 que recibe un valor de numeros positivos y
devuelve un valor de tipo positivo.

2) Cada una de las siguientes líneas es la primera línea de una definición de función. Explicar el
significado de cada una.
a) float f6(float a, float b)
Función llamada f6, que recibe dos variables de tipos coma flotante (a y b) y
devuelve un valor de tipo coma flotante.
b) long f7(long a)
Función llamda f7 que recibe una variable a de tipo largo y devuelve un valor de
tipo largo.
c) void f8(int a)
Función llamada f8 que recibe una variable a de tipo entero, y no devuelve ningun
valor.
d) char f9()
Función llamda f9 que no recibe variables y devuelve un valor de tipo caracter.

3) Escribir una llamada a función (acceso a función) apropiada para cada una de las siguientes
funciones

a) float formula (float x) b) void escribe (int a, int b)


{ {
float y; int c;
y = 3 * x - 1; c = sqrt(a * a + b * b);
return(y); printf("c = %i\n", c);
} }
If(y>=5) Printf (“los números son:”,&6,7)
Printf(“UNIVERSE”);

4) Escribir la primera línea de la definición de la función, incluyendo las declaraciones de los


argumentos formales, para cada una de las situaciones que se describen a continuación.

a) Una función llamada muestra genera y devuelve una cantidad entera


int f_muestra (int)
b) Una función llamada raiz acepta dos argumentos enteros y devuelve un resultado en coma
flotante.
float f_raiz (int x, int y)
c) Una función llamada convertir acepta un carácter y devuelve un carácter.
Char f_convertir (char);
d) Una función llamada transferir acepta un entero largo y devuelve un carácter.
Char f_transferir (int long);
e) Una función llamada inversa acepta un carácter y devuelve un entero largo.
Int long f_inversa (char);
f) Una función llamada procesar acepta un entero y dos cantidades en simple precisión flotante (en
este orden) y devuelve una cantidad en doble precisión.
Double f_procesar (int, float, float);
g) Una función llamada valor acepta dos cantidades en doble precisión y un entero corto (en este
orden). Las cantidades de entrada se procesan para generar un valor de doble precisión que se
escribe como resultado final.
Double f_valor (double, double, int short);

5) Escribir prototipos de funciones adecuados para cada uno de los esquemas que se muestran a
continuación:
Int func1(int, int) Int func1 (double, double)
a) main() b) main()
{ {
int a, b, c; double a, b, c;
... ...
c = func1(a, b); c = func1(a,b);
... ...
} }

int func1(int x, int y) double func1(double x, double y)


{ {
int z; double z;
z = . . .; z = . . .;
return (z); return (z);
} }

Long int func1(int, float) Double func1 (double, double)


c) main() Double func2 (double, double)
{ d) main()
int a; {
float b; double a, b, c, d;
long int c; ...
... c = func1(a, b);
c = func1(a, b); ...
... d = func2(a + b, a + c);
} }

long int func1 (int x, float y) double func1 (double x, double y)


{ {
long int z; double z;
z = . . .; z = 10 * func2 (x, y);
return (z); return (z);
} }

double func2 (double x, double y)


{
double z;
z = . . .;
return (z);
}

6) Describir la salida generada por cada uno de los siguientes programas:

a) #include <stdio.h> b) Escribir el programa anterior de


int func1 (int cont); alguna forma más concisa.
main()
{ #include <stdio.h>
int a, cont; int func1(int cont);
for (cont = 1; cont <=5; ++cont) main(){
{ int a,cont;
a = func1(cont); for (cont=1; cont<=5; ++cont)
printf("%d ", a); printf("%d",& func1);
} }
} int func1(int x)
{
int func1 (int x) int y=(x*x);
{ return(y);
int y; }
y = x * x;
return (y);
}
Genera los siguientes enteros 1, 4, 9,
16, 25

c) #include <stdio.h> d) #include <stdio.h>


int func1(int n); int func1 (int n);
main()
{ main()
int n = 10; {
printf("%d", func1(n)); int n = 10;
} printf ("%d", func1(n));
}
int func1(int n)
{ int func1(int n)
if (n > 0) {
return (n + func1(n-1)); if (n > 0)
} return (n + func1(n-2));
Genera el numero 55 }
Genera el numero entero 30

7) Problemas: (En lenguaje C)

a) Escribir una función que permita elevar un número en coma flotante a una potencia entera. En
otras palabras, deseamos evaluar la fórmula: y = xn

En donde y y x son variables en coma flotante y n una variable entera.

No se permite utilizar funciones de biblioteca. Esta función la debe incluir en el archivo de


cabecera creado por usted.

b) Escribir un programa completo en C que lea los valores de x y n, evalúe la fórmula y = xn


utilizando la función escrita anteriormente y escriba a continuación el resultado. Comprobar el
programa utilizando los siguientes datos:

x n x N
2 3 1.5 3
2 12 1.5 10
2 -5 1.5 -5
-3 3 0.2 3
-3 7 0.2 5
-3 -5 0.2 -5
c) Utilizando ciclos de repetición (for) y la lectura de valores en forma random, diseñe un
programa en C que le permita leer dos números enteros por cada registro, en un rango de 0 a
5000, y calcule e imprima: suma, diferencia, producto, raíz, residuo y división. Siempre el
primero contra el segundo. Repita para 20 registros.

Ejemplo:

N1 N2 SUMA DIFERENCIA PRODUCTO RAIZ(N1) RESIDUO DIVISION


78 57 135 21 4446 8.83 21 1.37
18 0 18 18 0 4.24
73 7 80 66 511 8.54 3 10.43
0 2 2 -2 0 0.00 0 0
65 44 109 21 2860 8.06 21 1.48

La salida se debe mostrar de forma alineada en cada columna. El resultado de la división y la


raíz, se muestran con 2 posiciones decimales.
CONSIDERACIONES FINALES:
Al realizar esta actividad, tome más practica en lo que era los prototipos y al momento de
realizar una función, de esta actividad el problema 7 parte c no lo logre hacer debido a
que no entiendo muy bien lo que son matrices y se me hizo difícil imprimir cada resultado
en la columna de forma alineada.
RUBRICA DE EVALUACIÓN

Items Puntaje
Presentación del trabajo escrito 10
Resultados del proyecto 70
Consideraciones Finales 15
Ortografía 5

También podría gustarte