Está en la página 1de 10

Solucin:

Programacin de Algoritmos Matemticos


1. Escribe y ejecuta los siguientes programas en C.
a. El programa ms corto posible (no ace nada!. "Cuntos caracteres contiene#
#include <stdio.h>
int main()
{
printf("Hola mundo");
return 0;
}
b. $n programa %ue despliegue el mensaje &'ola( mundo.) (incluyendo la diagonal
in*ertida y las comillas!.
+include <stdio.h>
*oid main(){
print, ("%c%s%c\n"!\\!"Hola mundo."!"!);
}
c. $n programa %ue despliegue el mensaje &'ola( mundo.) (incluyendo la diagonal
in*ertida y las comillas! -. *eces.
+include <stdio.h>
*oid main(){
int i"#;
,or (i"#; i<"$0; i%%){
print, ("%c%s%c\n"!\\!"Hola mundo."!"!);
}
}
&os desple'ar( en pantalla lo si'uiente)
\Hola, mundo."
30 veces!!!
*. /ise0a el algoritmo( y luego desarrolla y ejecuta el programa en C para calcular el
,actorial de un n1mero n:
A234567M4
#. +nicio
*. ,sta-lecer la .aria-le contador con .alor de #
$. ,sta-lecer la .aria-le numero con .alor de #
/. ,sta-lecer la .aria-le factorial con .alor de #
0. 1edimos 2ue el usuario introdu3ca al'4n numero
5. 6e 'uarda el dato 2ue el usuario tecleo en la .aria-le numero
7. +niciamos for .erificando 2ue el contador sea menor 2ue el numero in'resado de lo
contrario salta al paso #0
8. 6e multiplica la .aria-le factorial por contador
9. :a .aria-le contador se incrementa en uno ; re'resa al paso 7
#0. +mprime factorial
##. <in
P5435AMA E8 C
+include<stdio.h>
*oid main(){
int contador"# numero"# factorial " #;
print,(",scri-e un numero para calcular su factorial) ");
scan,("%d"=numero);

,or( contador " # ; contador <" numero ; contador%% ){
factorial " factorial>contador;
}

print,(",l factorial de %d " %d\n"numerofactorial);
}
$. /ise0a el algoritmo( y luego desarrolla y ejecuta el programa en C para calcular la
siguiente suma dado un n1mero n:
A234567M4
#. +nicio
*. ,sta-lecemos cont_factorial con .alor de #
$. ,sta-lecemos cont_sumatoria con .alor de #
/. ,sta-lecemos numero con .alor de #
0. ,sta-lecemos factorial con .alor de #
5. ,sta-lecemos sumatoria con .alor de #.0
7. 1edimos al usuario 2ue escri-a un numero
8. 6e inicia el ciclo for .erificando 2ue el contador_sumatoria sea menor 2ue el
numero in'resado de lo contrario salta al paso #0
9. 6e inicia el ciclo for .erificando 2ue el contador_factorial sea menor 2ue el
contador_sumatoria in'resado de lo contrario salta al paso #$
#0. 6e reali3a la multiplicaci?n de la .aria-le factorial por contador_factorial
##. +ncrementamos en uno a contador_factorial ; se reali3a la multi@licacion de
factorial por contador_factorial
#*. 6e suman las .aria-le sumatoria con sumatoria
#$. :a .aria-le contador_sumatoria se incrementa en uno ; re'resa al paso 9
#/. +mprime la .aria-le sumatoria 2ue es el resultado al pro-lema propuesto
#0. <in
P5435AMA E8 C
+include <stdio.h>
*oid main(){
int contAfactorial"# contAsumatoria"# numero"# factorial"#;
,loat sumatoria"#.0;
print,(",scri-a un numero para calcular la sumatoria) ");
scan,("%d" =numero);
,or(contAsumatoria"#; contAsumatoria<"numero; contAsumatoria %%){
,or(contAfactorial"#; contAfactorial<"contAsumatoria; contAfactorial %%){
factorial " factorial > contAfactorial;
}
print,("<actorial de %d " %d\n" contAsumatoria factorial);
sumatoria"sumatoria%#.0Bfactorial;
print,("<umatoria de %d " %f\n" contAsumatoria sumatoria);
factorial"#;
}

print,("6CDEFGH+E FGFE: %d " %f\n" numero sumatoria);
}
9. /ise0a el algoritmo( y luego desarrolla y ejecuta el programa en C para ,actori:ar un
n1mero entero( a partir de la siguiente secuencia de acciones:
a. Establece d( el di*isor de prueba( a ;.
b. Calcula el residuo r de la di*isin de n entre d. (/enotamos esta operacin con n<d( y
la leemos como =n mdulo d). Consulta operadores de C!
c. Si r es igual a cero( entonces
i. /espliega d en la pantalla
ii. 5eempla:a n por n>d
d. Si r no es igual a cero( entonces
i. 5eempla:a d por d?1
e. Si n es igual a uno( entonces
i. @a no ay ms ,actores a ser encontrados( asA %ue termina el programa
,. Si n no es igual a uno( entonces
i. 5egresa al paso b
Hecuerda 2ue tam-iIn puedes leer el n4mero n cuando el pro'rama se eJecute. 1ara la codificaci?n
en K puedes usar la estructura +fLthenLelse. Ctili3a el tipo int para los enteros.
A234567M4
#. +nicio
*. ,sta-lecemos d ( di.isor) con .alor de *
$. ,sta-lecemos r(residuo) sin asi'narle .alor
/. ,sta-lecemos n
0. 1edimos al usuario 2ue escri-a un numero
5. ,mpie3a un ciclo do
7. ,mpie3a el condicional if
8. 6e imprime en pantalla el .alor de d
9. Mi.idimos n entre d
#0. E la .aria-le d le a're'amos un 1
##. <in
P5435AMA E8 C
+include <stdio.h>
*oid main(){
int r d"* n;
print,("+ntrodu3ca un numero para descomponer diferente de #) ");
scan,("%d" =n);
do{
r " n%d;
i,(r""0){
print,("d " %d\n" d);
n " nBd;
} else {
d " d%#;
}
} Bile (n N" #);
}
g. Cambia la codi,icacin en C del programa anterior y esta *e: utili:a long para los
enteros. Ce si se produce alguna di,erencia cuando se ,actori:an n1meros grandes. Comenta por %uD
o por %uD no ubo di,erencias. 8ota %ue a medida %ue aumenta el tama0o de los n1meros a
,actori:ar el programa re%uiere ms tiempo de ejecucin.
P5435AMA E8 C
+include <stdio.h>
*oid main(){
long r d"* n;
print,("+ntrodu3ca un numero para descomponer diferente de #) ");
scan,("%ld" =n);
do{
r " n%d;
i,(r""0){
print,("d " %ld\n" d);
n " nBd;
} else {
d " d%#;
}
} Bile (n N" #);
}
3racias maestro espero su retroalimentacin.
A77E Edgardo olmedo S.