5.3 Lazos de Control

31
Software para Ingeniería EL120 Unidad 5.3: Lazos de control

description

Matlab

Transcript of 5.3 Lazos de Control

Software para Ingeniera EL120Unidad 5.3: Lazos de controlLazos de repeticin o bucles2Los lazos de repeticin o bucles permiten ejecutar una o varias lneas de instruccin ms de una vez.El lazo puede tener un nmero fijo de repeticiones o depender de una condicin para ejecutarse un determinado nmero de veces.for-end3Formato:for k = p:in:uendp: primer elementou: ltimo elementoin: incrementofor-end4for k = 1:10grupo de instruccionesend*En un lazo for se conoce de antemano el nmero de iteraciones.La variable k indica queel grupo de instrucciones se repetir 10 vecesk toma valores desde 1 hasta 10for-end5for a = 1:2:10grupo de instruccionesendLa variable a indica queel grupo de instrucciones se repetir 5 vecesa toma valores 1, 3, 5, 7, 9Ejemplo6a = 0;for k = 1:10a = a + 2;endk a1 22 43 64 85 106 127 148 169 1810 20En este ejemplo veamos como varan los valores de a y k.Ejemplo 7Calcular la siguiente sumatoria usando for2 2 2 2 21 2 3 4 ... 65Ejemplo8Generar la siguiente sucesin de nmeros usando for1 1 1 11, , , , ...2 4 8 1024*Generar la sucesin como un vectorwhile-end9Formato:while {condicin lgica}grupo de instruccionesendEl grupo de instrucciones se ejecutar una o ms veces, mientras la {condicin lgica} sea verdadera.while-end10Lazo infinitowhile 1grupo de instruccionesendLa {condicin lgica} es 1, siempre verdadera, por tanto, este lazo se ejecuta infinitas veces.Ejemplo11Calcular la suma de los 30 primeros trminos de la siguiente serie matemtica2 2 2 2 21 3 5 7 ... (2 1) nEjemplo12Generar la siguiente sucesin con los primeros 40 trminos1 3 5 7, , , , ...2 4 6 8*Generar la sucesin como un vectorRuptura de lazo: break13Formato:for k = a:bif {condicin lgica}breakendgrupo de instruccionesendendSlo si {condicin lgica} es verdaderase ejecuta break y finaliza totalmente el lazo forEjemplo14Escribir un programa que genere, uno a uno, 10 valores aleatorios enteros diferentes y los acumule en un vector. Los valores estn entre 1 y 10.El programa termina antes, si sale un valor repetido. 15%VALORES ALEATORIOS DIFERENTESclear all; close all;clc;%Inicializar variablesfor k =%10 valores aleatoriosvalor = %Generar un valor aleatorio entre 1 y 10if %Verificar si es un valor repetidobreakend%Generar vectorend%Mostrar vectorRuptura de lazo: continue16Formato:for k = a:bif {condicin lgica}continueendgrupo de instruccionesendendSlo si {condicin lgica} es verdaderase ejecuta continue y el programa salta al siguiente valor de k.Ejemplo17Escribir un programa que genere un vector de 20 valores aleatorios enteros diferentes entre s. Los valores estn entre 1 y 20. 18%VALORES ALEATORIOS DIFERENTESclear all; close all;clc;%Inicializar variables{while o for}valor = %Generar valor aleatorio entre 1 y 20if %Verificar si es un valor repetidocontinueend%Generar vector %Contar elementosend%Mostrar vectorEjercicios19Escribir un programa, factorial_n.m, que permita hallar el factorial de un nmero que se introducir desde teclado.1!=1 2!=1x2 = 1!x23!=1x2x3 = 2!x3n!=1x2x3x(n-1)xn = (n-1)!xnfactorial_n.m20%FACTORIAL DE UN NMEROclear all; close all; clc%Ingresar el nmero:disp('Calcular el factorial de:')n = {escriba lo que corresponde}%Clculo del factorialfact = 1;for k = {qu valores toma k}fact = {genere el factorial};endclcfprintf('factorial(%i) = %i\n',n,fact)Ejercicio21Escribir un programa, decabin.m, que permita convertir un nmero de base 10 a base 2.El nmero 23 en base 2 es: 10111Divisiones sucesivas 2223 21 11 21 5 21 2 20 1 21 0Uso de divisiones sucesivas para convertir 23 a base 2:El nmero es 23 en base 2 es:1011123%PASAR DE DECIMAL A BINARIOclear all; close all; cc%Ingresar el nmero:disp('Ingresar el nmero a convertir')n = input('n = ');%Proceso de conversin a base 2{inicializar variables}while {condicin lgica}{divisiones sucesivas}{formar el nmero binario}endclcfprintf('El nmero %i en base 2 es %i\n,n,numbin)decabin.mProblema Propuesto24Escribir un programa, prob_dados.m, que muestre en un grfico de barras la distribucin de probabilidad de los resultados de lanzar n dados. Se debe de ingresar el numero de jugadas y el numero de dados.25Experimento aleatorio: Lanzamiento de una monedaEspacio muestral: {cara(c)sello(s)}Evento A: que salga cara.# elementos de evento 1( )# elementos de espacio muestral 2p AProbabilidadProbabilidad de A26Experimento aleatorio: Lanzamiento de dos monedasEspacio muestral: { (c,c) (c,s) (s,c) (s,s) }Evento A: que salga cara en ambas monedas.# elementos de evento 1( ) 0, 25# elementos de espacio muestral 4p AProbabilidadProbabilidad de A27Experimento aleatorio: Lanzamiento de dos monedasEspacio muestral: { (c,c) (c,s) (s,c) (s,s) }Evento B: que salga cara en una de las monedas.# elementos de evento 3( ) 0, 75# elementos de espacio muestral 4p BProbabilidadProbabilidad de B28Experimento aleatorio: Lanzamiento de un dadoEspacio muestral: { 123456 }Evento C: que salga par.# elementos de evento 3( ) 0, 5# elementos de espacio muestral 6p CProbabilidadProbabilidad de C29Experimento aleatorio: Lanzamiento de dos dados1-1 2-1 3-1 4-1 5-1 6-11-2 2-2 3-2 4-2 5-2 6-21-3 2-3 3-3 4-3 5-3 6-31-4 2-4 3-4 4-4 5-4 6-41-5 2-5 3-5 4-5 5-5 6-51-6 2-6 3-6 4-6 5-6 6-6ProbabilidadEspacio muestral:30Evento D: que la suma de los dados sea 7# elementos de evento 6( ) 0,1667# elementos de espacio muestral 36p DProbabilidadProbabilidad de D31Evento D1: que la suma de los dados sea 2, 3 o 121 2 1 4( 1) (2) (3) (12)36 36 36 36p D p p pProbabilidadProbabilidad de D1: Es la probabilidad que sea igual a la suma de las probabilidades que salga 2, 3 o 12.