fund

Page 141

Yetodología de Desarrollo de Programa.<¡ (n )

Imprimir el número k

131

-------i>

Saltar de línea, si es necesario

Iprintf(

"%5d". k );

&:l este planteamiento los saltos de línea no se producen en cuanto se llega al &naJ. de la línea, sino cuando se va a escribir el siguiente valor. Esto quiere decir que el último número impreso dentro del bucle no irá seguido de salto de Enea, y que habrá que completar la última línea como acción de terminación , lDera del bucle; es decir , la escritura del triángulo terminará con una acción adicional:

Completar la última línea Refinaremos la acción de saltar de línea en forma de esquema de selección:

Saltar de línea, si es necesario --+ i f (el número anterior fue el último de su línea) {

printf( "\0" ); }

El refinamiento de la condición va a exigir introducir nuevos elementos. Para upresar dicha condición como una expresión en C± nccesitaremos mantener .-::tualizacla la indicación de cuál es el último valor de cada línea. En todo GISO necesitaremos conocer cuántos números han de imprimirse en la línea en cmso (recordemos que en la línea k habrá k números) . ('"saremos una variable linea como contador de líneas y otra variable ultimo ..,-a contener el último número de la línea. Estas variables habrán de actualiazse cada vez que se cambie de línea. Reescribiremos el refinamiento anterior de la forma siguiente:

Saltar de línea, si es necesario --+ if (k > ultimo) { printf( "\n" ); linea++; ultimo = ultimo + linea; }

"

mismo tiempo hay que anlpliar la inicialización del bucle de escribir números uyendo el dar valores iniciales a las nuevas variables, en concreto:

linea = 1; t:U!o = 1;

lAta inicialización es la adecuada incluso en el caso de escribir O números, ya

.-e los valores corresponden al primer número que completa línea, tras el cual llabrá que saltar de línea si se imprimen más números.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.