Diferencia entre revisiones de «PrInf13: Interrumpir bucles»

De MateWiki
Saltar a: navegación, buscar
(Contenido de la práctica)
Línea 23: Línea 23:
  
 
== Contenido de la práctica ==
 
== Contenido de la práctica ==
 +
Vamos a ver primero un pequeño ejemplo de un programa que usa un bucle con interrupción, para ilustrar su uso. Primero, creamos un vector aleatorio con 20 elementos, entre 0 y 10 y sin parte decimal. Luego usamos un bucle para recorrer el vector y buscar la primera posición que contiene un número impar. Mientras el bucle no encuentre un número impar, sigue funcionando, escribiendo los números que va encontrando en la pantalla:
 +
{{ matlab | codigo=
 +
v = fix(rand(1,20)*10); % Vector con 20 elementos entre 0 y 10
 +
n = length(v); % Número de elementos del vector
 +
 +
for k=1:n
 +
  disp(k);
 +
  if rem(v(k),2) ~= 0
 +
    fprintf('He encontrado el primer número impar en la posición %d\n', k);
 +
    break; % El bucle termina aquí
 +
  end
 +
end
 +
}}
  
 
== Ejercicio post-práctica ==
 
== Ejercicio post-práctica ==
  
 
[[Categoría:Prácticas de Informática]]
 
[[Categoría:Prácticas de Informática]]

Revisión del 12:30 2 ago 2013

Práctica de Informática
Cómo interrumpir bucles
Práctica anterior Siguiente práctica
Este artículo es un guión de prácticas de Informática


Warning.png Este artículo está en versión beta. El autor de este artículo no lo ha terminado todavía, por favor no lo edites hasta que elimine este mensaje.

Algunos métodos numéricos intentan buscar la solución a un problema entre los elementos de una matriz y un vector, que contienen todas las posibles soluciones. Una vez que se ha encontrado la solución, el bucle continuará inspeccionando el resto de los elementos que todavía no hayan sido evaluados. Pero si solo hay una solución, estas iteraciones del bucle son innecesarias, ya que sabemos que la solución no estará en esos valores. En este tipo de programas, es mejor interrumpir el bucle y dejar de hacer iteraciones. El uso de interrupciones de bucles debería ser minoritario. Los programas que abusan del uso de interrupciones son más difíciles de entender, y más propensos a contener fallos.

1 Requisitos previos

Es importante haber realizado las dos prácticas sobre bucles con anterioridad a esta práctica:

2 Vídeos posteriores

Tras realizar esta práctica, el siguiente vídeo te ayudará a afianzar conocimientos:

3 Comandos que se aprenderán en esta práctica

break continue

4 Contenido de la práctica

Vamos a ver primero un pequeño ejemplo de un programa que usa un bucle con interrupción, para ilustrar su uso. Primero, creamos un vector aleatorio con 20 elementos, entre 0 y 10 y sin parte decimal. Luego usamos un bucle para recorrer el vector y buscar la primera posición que contiene un número impar. Mientras el bucle no encuentre un número impar, sigue funcionando, escribiendo los números que va encontrando en la pantalla:

v = fix(rand(1,20)*10); % Vector con 20 elementos entre 0 y 10
n = length(v); % Número de elementos del vector

for k=1:n
  disp(k);
  if rem(v(k),2) ~= 0
    fprintf('He encontrado el primer número impar en la posición %d\n', k);
    break; % El bucle termina aquí
  end
end


5 Ejercicio post-práctica