1 a

Anuncio
Fundamentos de Informática – Electrónica – Febrero
2008-2009
1.
Orden
Expresión
Valor
a
b
c
–
?
?
?
0
0
1
a = ‘\0’
0
2
b = 1.97
1
3
c = 012
10
4
a++
0
1
5
--a
0
0
6
b^c
11
7
a += b
1
8
c%a
0
9
0x10 && 1
1
10
0x10 & 1
0
11
~1+1
-1
12
010 | 3
11
13
0101 || 010
1
14
!-1
0
15
0x58>>3
11
1
10
1
2.
a. double Euros (int divisa, double cantidad);
divisa: entero
cantidad: real
Euros
real
b. void Euros (int ddo, int dsr, int *coc, int rst);
ddo, dsr: enteros
DivEntera
coc, rst: enteros
c. long EdadDoble (long nacm, long nach);
nacm, nach: largo
EdadDoble
largo
d. void EscribeFechaSis (void);
EscribeFechaSis
1 de 5
2008-2009
3.
a. (0,5 puntos)
int Signo (int exp)
{
Dos opciones propuestas
if (i % 2 == 0) return 1;
return i % 2 == 0? 1:-1;
else
return -1;
}
b. (1 punto)
int Signo (int exp);
double CalPi (int n)
{
int i;
double pi;
pi = 0;
for (i = 0; i <= n; i++)
pi = pi + Signo(i) / (2.*i + 1.); /* Operación double */
return pi * 4;
}
c. (1 punto)
#include <stdio.h>
double CalPi (int n);
void AnalizaCal (int n, int m)
{
int i;
m += n;
for (i = n; i < m; i++)
printf ("%d: %.12lf\n", i, CalPi (i));
}
d. (1 punto)
#include <stdio.h>
void AnalizaCal (int n, int m);
void main(void)
{
int n, m;
printf ("Iteraciones de partida: ");
scanf ("%d", &n);
printf ("Cantidad de pruebas: ");
scanf ("%d", &m);
AnalizaCal (n, m);
}
2 de 5
Fundamentos de Informática – Electrónica – Febrero
2008-2009
4.
a. (2 puntos)
fnac, fpro: largo
entero
Edad
dn, mn, an: enteros
dp, mp, ap: enteros
ed: entero
DiaGrg (fnac, dn, mn, an);
DiaGrg (fpro, dp, mp, ap);
mp > mn Or
mp = mn And dp ≥ dn
no
sí
ed ← ap - an
ed ← ap – an - 1
no
ed < 0
sí
Edad ← 0
Edad ← ed
Fin
int Edad (long fnac, long fpro)
{
int dn, mn, an; /* fecha nacimiento */
int dp, mp, ap; /* fecha propuesta */
int ed;
DiaGrg (fnac, &dn, &mn, &an);
DiaGrg (fpro, &dp, &mp, &ap);
if (mp > mn || mp == mn && dp >= dn)
ed = ap - an;
else
ed = ap - an - 1;
if (ed < 0)
return 0;
else
return ed;
}
3 de 5
2008-2009
fnac, fpro: largo
entero
Edad
dn, mn, an: enteros
dp, mp, ap: enteros
no
fnac < fpro
sí
DiaGrg (fnac, dn, mn, an);
DiaGrg (fpro, dp, mp, ap);
Edad ← 0
no
mp > mn Or
mp = mn And
dp ≥ dn
Edad ← ap – an - 1
sí
Edad ← ap - an
Fin
a. (alternativa)
int Edad (long fnac, long fpro)
{
int dn, mn, an; /* fecha nacimiento */
int dp, mp, ap; /* fecha propuesta */
if (fnac < fpro) {
DiaGrg (fnac, &dn, &mn, &an);
DiaGrg (fpro, &dp, &mp, &ap);
if (mp > mn || mp == mn && dp >= dn)
return ap - an;
else
return ap - an - 1;
}
else
return 0;
}
b. (1 punto)
void main(void)
{
long fn, fh;
int d, m, a;
printf ("Introduce la fecha dd-mm-aaaa"
" de tu nacimiento: ");
scanf ("%d-%d-%d", &d, &m, &a);
printf ("%d-%d-%d\n", d, m, a);
4 de 5
Fundamentos de Informática – Electrónica – Febrero
fn = DiaJul
DiaSis (&d,
fh = DiaJul
printf ("Tu
2008-2009
(d, m, a);
&m, &a);
(d, m, a);
edad hoy: %d\n", Edad (fn, fh));
}
1.
int suma(char str[])
{
int i;
int s;
s = 0;
Dos opciones propuestas (2ª típica pero no “ortodoxa”)
for (i = 0; str[i]; i++)
i = 0;
while (str[i] != ‘\0’) {
s += str[i];
s += str[i];
i++;
}
return s;
}
5 de 5
Descargar