Asignatura: Fundamentos de Informática | ![]() |
![]() |
Especialidad: Electrónica - UPV/EHU | ||
Curso académico: 2013-2014 | ||
Profesor: Ismael Etxeberria Agiriano |
Tras leer n
tenemos que verificar que se ha introducido un
número positivo o nulo.
Esto da lugar a una instrucción condicional que realiza la operación deseada
si el valor es correcto y muestra un mensaje de error en caso contrario.
Este bloque se representa de color amarillo pálido en la Figura 7.1.
Tras verifica que n
no es negativa
sabemos de antemano cuántas veces (cero o más)
se quiere escribir la palabra "Hola",
por lo que la estructura iterativa más adecuada es
una estructura for
.
Nos piden que utilicemos una estructura while
, así
que habrá que replicar los componentes de la estructura
for
.
En la figura 7.1. se representan en morado los bloques con
la inicialización del contador previa al bucle
(i
recibe 1
)
y la posterior incrementación del contador
(i
recibe i + 1
)
ya que no están integrados en la estructura repetitiva
(como sucederá en el caso for
).
El bloque de la estructura while
con su cuerpo se representa
en gris oscuro en la Figura 7.1.
Un posible diagrama de flujo sería:
while
Obsérva la diferencia entre el rombo de la instrucción condicional en amarillo, de la que salen dos ramas laterales y el rombo de la instrucción while (similar al for), de la que sale una rama hacia abajo cuando se cumple la condición y una hacia la derecha cuando no se cumple para salir del bucle.
La codificación correspondiente podría ser:
/* 07-001.c (versión laboratorio) * * Leer un número positivo n y escribir la palabra "Hola" n veces utilizando while. * Si el número no es positivo escribir mensaje de error. */ #include <stdio.h> #include <stdlib.h> int main (void) { int i, n; printf ("Introduce un número positivo: "); scanf ("%d", &n); if (n >= 0) { i = 1; while (i <= n) { printf ("Hola\n"); i++; } } else printf ("%d no es un número positivo\n", n); system ("pause"); return 0; }