Práctica Sem 8

Anuncio
CI2125 Práctica 8: Subprogramas y paso de parámetros por referencia.
1) Ejecute en frío este programa, tome nota de lo que está pasando, y saque
conclusiones en cuanto al pase de parámetros
#include <stdio.h>
#include "triplets.h"
void intercambiar( int a, int b) {
int c;
c = a; a = b; b = c;
return;
}
void swapint( int* a, int* b) {
int c;
c = *a; *a = *b; *b = c;
return;
}
void sorpresa( int* a, int* b) {
*a = *a ^ *b; *b = *a ^ *b;
return;
}
*a = *a ^ *b;
void swapfloat( float* a, float* b) {
float c;
c = *a; *a = *b; *b = c;
return;
}
int main(void) {
int x, y, z;
float a, b, c;
printf("de el valor de x:
printf("de el valor de y:
printf("de el valor de z:
printf("de el valor de a:
printf("de el valor de b:
printf("de el valor de c:
_pre( x>0);
intercambiar(x,y);
intercambiar(y,z);
printf("Sale x = %i, y =
swapint(&x, &y);
swapint(&y, &z);
printf("Sale x = %i, y =
sorpresa(&z, &y);
sorpresa(&y, &x);
printf("Sale x = %i, y =
swapfloat(&c, &b);
swapfloat(&a, &b);
printf("Sale a = %f, b =
return (0);
}
");
");
");
");
");
");
scanf("%i",
scanf("%i",
scanf("%i",
scanf("%f",
scanf("%f",
scanf("%f",
&x);
&y);
&z);
&a);
&b);
&c);
%i,
z = %i\n", x, y, z);
%i,
z = %i\n", x, y, z);
%i,
z = %i\n", x, y, z);
%f,
c = %f\n", a, b, c);
2) Escriba un subprograma Cambio que reciba un monto de dinero (un valor real) y
devuelva dos arreglos, el primero, Billetes[5], con la cantidad de billetes de 100, 50,
20, 10 y 5, y el segundo, Monedas[5], con la cantidad de monedas de 1, 0.50, 0.10,
0.05 y 0.01 restante.
3) Suponga que se repreentan los números complejos como vectores de 2 dimensiones,
de manera que a + bi = v[0..1], con v[0] = a (parte real), y v[1] = b (parte imaginaria).
Haga 2 subprogramas que reciban dos complejos , uno para sumar y otro para
multiplicar complejos.
4) Haga un subprograma (con funciones asociadas) que reciba dos fechas del mismo
año, en el formato “aaaammdd” (ej, 20091110 = 10/11/2009), y transforme un arreglo
de 365 valores (días) negando las celdas en medio de ambas inclusive. El arreglo se
llena previamente con otro subprograma mediante la ecuación Dia[k] = mes*32 + dia.
Ej.
Dia[ 0]
Dia[ 31]
Dia[ 32]
Dia[ 59]
Dia[365]
= 1*32
= 1*32
= 2*32
= 2*32
= 12*32
+ 1 =
+ 31 =
+ 1 =
+ 28 =
+ 31 =
33
63
65
92
415
Si las fechas son 20090128 y 20090204, las celdas Dia[k] para k=28..34 cambian de
signo.
Descargar