Diseno de algoritmos y su codificacion en lenguaje C
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.6 Estructura <strong>de</strong> control repetitiva o <strong>de</strong> iteración condicional 87<br />
En el ejercicio 4 introdujimos el concepto <strong>su</strong>mar o acumular varios números <strong>en</strong> una sola variable; <strong>en</strong> este<br />
ejercicio se introduce el concepto <strong>de</strong>l producto <strong>de</strong> varios números. La condición revisa que el número que<br />
capturó el u<strong>su</strong>ario sea difer<strong>en</strong>te <strong>de</strong> 0 ya que si es cero el producto que t<strong>en</strong>gamos se haría 0. Se <strong>de</strong>claran dos<br />
variables reales num para almac<strong>en</strong>ar los difer<strong>en</strong>tes números que capture el u<strong>su</strong>ario, y prod para que se vayan<br />
multiplicando estos números; se inicializa la variable prod con 1 para que el primer número que capture se<br />
multiplique por la unidad, esta variable se que<strong>de</strong> con ese valor y a partir <strong>de</strong> ahí continúe realizando el producto.<br />
Se captura un número y se almac<strong>en</strong>a <strong>en</strong> num 5 8, se revisa la condición como (8 ,. 0) y <strong>en</strong>tra al ciclo<br />
prod 5 prod * num, es <strong>de</strong>cir prod 5 1 * 8, prod 5 8; se lee otro número y se almac<strong>en</strong>a <strong>en</strong> num 5 12, se revisa<br />
la condición como (12 ,. 0) y <strong>en</strong>tra al ciclo prod 5 prod * num, es <strong>de</strong>cir prod 5 8 * 12, prod 5 96; se lee<br />
otro número y se almac<strong>en</strong>a <strong>en</strong> num 5 2, se revisa la condición como (2 ,. 0), <strong>en</strong>tra al ciclo prod 5 prod *<br />
num, es <strong>de</strong>cir prod 5 96 * 2, prod 5 192; se lee otro número y se almac<strong>en</strong>a <strong>en</strong> num. Si el num 5 0, se revisa<br />
la condición como (0 ,. 0), se sale <strong>de</strong>l ciclo y se pasa a la sigui<strong>en</strong>te instrucción que está <strong>de</strong>spués <strong>de</strong>l fin <strong>de</strong>l<br />
bloque <strong>de</strong> instrucciones <strong>de</strong>l ciclo “mi<strong>en</strong>tras”, e imprimirá El producto es: 192.<br />
Nota: Cabe m<strong>en</strong>cionar que si cualquier ejercicio <strong>de</strong> los que se han visto no tuviera inicio-fin ({-}) sólo se realizaría la<br />
primera instrucción que se <strong>en</strong>cu<strong>en</strong>tra <strong>de</strong>spués <strong>de</strong>l ciclo mi<strong>en</strong>tras (while); por ejemplo:<br />
Pseudocódigo L<strong>en</strong>guaje C Re<strong>su</strong>ltado<br />
leer num<br />
scanf(“%f”,&num);<br />
Si el primer número que se capturó<br />
mi<strong>en</strong>tras ( num ,. 0 ) while ( num !5 0 )<br />
fue difer<strong>en</strong>te <strong>de</strong> 0, por ejemplo 8;<br />
prod 5 1 * 8 5 8, y vuelve a revisar<br />
prod ← prod * num<br />
prod 5 prod * num;<br />
la condición <strong>de</strong>l mi<strong>en</strong>tras; como el<br />
imprimir “Dame otro número” printf(“dame otro número\n”); número no cambia y siempre es 8,<br />
leer num<br />
scanf(“%f”,&num);<br />
la condición siempre se cumplirá<br />
ya que es 8 ,.0 y se hace un ciclo<br />
in<strong>de</strong>finido.<br />
Ejercicio 6. Sumar los números pares y multiplicar los números impares hasta que la <strong>su</strong>ma sea mayor que<br />
50 o el producto mayor que 150.<br />
Pseudocódigo<br />
L<strong>en</strong>guaje C<br />
#inclu<strong>de</strong> <br />
#inclu<strong>de</strong> <br />
principal ()<br />
main()<br />
inicio {<br />
<strong>en</strong>tero num, <strong>su</strong>ma, prod int num, <strong>su</strong>ma, prod ;<br />
<strong>su</strong>ma ← 0 <strong>su</strong>ma 5 0;<br />
prod ← 1 prod 5 1;<br />
mi<strong>en</strong>tras (<strong>su</strong>ma ,5 50 y prod ,5 150) while (<strong>su</strong>ma ,5 50 && prod ,5 150)<br />
inicio {<br />
imprimir “Dame un número <strong>en</strong>tero “<br />
pr intf (“Dame un número <strong>en</strong>tero \n”);<br />
leer num<br />
scanf(“%d”,&num);<br />
si ( num mod 2 5 0 ) if ( num % 2 5 5 0 )<br />
<strong>su</strong>ma ← <strong>su</strong>ma 1 num<br />
<strong>su</strong>ma 5 <strong>su</strong>ma 1 num;<br />
si no<br />
else<br />
prod ← prod * num<br />
prod 5 prod * num;<br />
fin }<br />
imprimir “La <strong>su</strong>ma es: ” , <strong>su</strong>ma<br />
printf(“La <strong>su</strong>ma es: %d\n” , <strong>su</strong>ma);<br />
imprimir “El producto es: ” , prod<br />
printf(“El producto es: %d”, prod);<br />
getch(); return 0;<br />
fin }