Sunteți pe pagina 1din 4

1.

- Dado el siguiente programa que calcula la suma de una secuencia de enteros hasta
encontrar el cero, realice uno equivalente pero utilizando un do-while.
main() {
int num, suma;

suma=0;
scanf(“%d”,&num);
while (num<>0) {
suma += num;
scanf(“%d”,&num);
}
printf(“suma=%d”,suma);
}
Respuesta:
main(){
int num, suma;
suma=0;
do {
scanf(“%d\n”,&num);
suma += num;
} while (num<>0)
printf(“suma=%d”,suma);
}

2.- Dado el siguiente programa que calcula la suma de los primeros N naturales
#define N 4
main() {
int cont,sum;

sum=0;
for (cont=N; cont>0; cont--)
sum+=cont;
printf(“suma=%d”,sum);
}

a) Realice la “corrida en frio” y diga cual es el resultado del programa


Respuesta:
suma = 10

b) escriba un programa equivalentes usando un while


Respuesta:
#define N 4
main() {
int cont,sum;

sum=0;
cont=N;
while (cont>0)
{
sum+=cont;
cont--;
}
printf(“suma=%d”,sum);
}
c) escriba un programa equivalentes usando un for y el operador ++
Respuesta:
#define N 4
main() {
int cont,sum;

sum=0;
for (cont=1; cont<=N; cont++)
sum+=cont;
printf(“suma=%d”,sum);
}

3.- Dado el siguiente programa


#define M 3
main() {
int x,y;

scanf(“%d %d”,&x,&y);
while (x!=y) {
if (x<y)
x*=(-1)
else
x=y+M;
}
}
indique valores para x e y tal que:
a) El ciclo sea ejecutado al menos una vez
Respuesta: x, y diferentes, por ejemplo x=3,y=4, o x=5, y=2

b) El programa termine
Respuesta: x = 5, y=5 (ambos iguales) termina porque no entra al ciclo. x=-3, y=3
termina en la primera vuelta pues x cambia de signo.

c) El programa caiga en ciclo infinito.


Respuesta: En todos los demás casos cae en ciclo infinito, pues x nunca llega a ser igual a
y. Ejemplos: x < y, x=3,y=4, x cambia de signo pero mantiene la condición x<y. Si x=5,
y=2, en cada vuelta x =y+M =2+3=5. Si x=-5, y=-2, en la primera vuelta x cambia de
signo, y luego se queda en x=-2+1=-1
4.- Hacer un programa que dado el valor de n, calcule la suma de la serie:
(1/1)+(1/2)+(1/3)+...+(1/n)

Respuesta:
main() {
int n,i;
float serie;

serie=0.0;
printf(“introduzca el valor de n : ”);
scanf(“%d”,&n);
sum=0;
for (i=1; i<n; i++)
serie+=(1/i);
printf(“serie=%f”,serie);
}

5.- Hacer un programa que lea una lista de números enteros, precedida del número total de
enteros a leer. El programa debe calcular el total de números pares, el total de números
impares, y el promedio de todos los números.
Respuesta:
main() {
int num,suma,ptotal,itotal,total,i;

printf(“cantidad de números a procesar? ”);


scanf(“%d”,&total);
suma=0;
ptotal=0;
itotal=0;
i=0;
while (i<total)
{
scanf(“%d”,&num);
if (num%2==0) /* Es par */
ptotal++;
else
itotal++;
suma+=num;
i++;
}
printf(“total de pares=%d”,ptotal);
printf(“total de impares=%d”,itotal);
printf(“promedio=%f”,suma/total);
}

6.- La función ln x (logaritmo neperiano) puede aproximarse por Series de Taylor como
sigue:
n
ln(x + 1) = ∑ ((− 1) k −1 x k / k )
k =1
donde X es un número real entre -1 y 1, y n es un valor entero que indica el número de
términos a considerar en Serie. Elabore un programa en C que tome como entrada el valor
de X y de n, y produzca como salida la aproximación para la función ln (X+1). Utilice
para ello un ciclo for.

Respuesta:
main() {
int n,k;
float x,potx,lnep ;

printf(“x? ”);
scanf(“%f”,&x);
printf(“n? ”);
scanf(“%d”,&n);
lnep=0.0;
potx=x;
for (k=1; k<n; k++)
{
lnep+=potx/k ;
potx*=(-1)*x;
}
printf(“ln(x+1)=%f”,lnep);
}

S-ar putea să vă placă și