08.09.2017 Views

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 }

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!