Vous êtes sur la page 1sur 19

Universidad Tecnica de Machala

Unidad Academica de Ingeniera Civil

Programacion MATLAB
Reporte No. 6

Estructuras de Control: Repetitivas

Autor: Profesor:
Alexander Joel Garca C. Ing. Eduardo Tusa M.Sc.

31 de enero de 2017
Resumen
Resumen....

1. Ejercicios de Estructuras de Control


1.1. Calcule el promedio del menor y mayor valor de los pesos de n
paquetes en una bodega. Estos datos se ingresan uno a la vez
dentro de un ciclo. n es un dato ingresado al inicio.
a) Diagrama de Flujo

Figura 1: Diagrama de Flujo

1
b) Script realizado en Matlab

1 disp('Este programa calcula el promedio del menor y mayor valor de los ...
pesos de n paquetes en una bodega');
2 n = input ('Ingrese el numero de paquetes: ');
3 a = 0;
4 b = Inf;
5
6 for i = 1:n
7 peso = input ('Ingrese el valor de peso: ');
8 if peso > a
9 a = peso;
10 end
11 if peso < b
12 b = peso;
13 end
14 end
15
16 disp ('El peso mayor es: ');
17 disp (a);
18 disp ('El peso menor es: ');
19 disp (b);
20
21 p = (a+b)/2;
22 disp ('El promedio del menor y mayor valor del pesos de los paquetes ...
es: ');
23 disp (p);

c) Prueba de Validacion

Figura 2: Prueba de validacion.

2
1.2. Dado un numero par n, sume los primeros n numeros impares.
Si n = 4, entonces s = 1 + 3 + 5 + 7 = 16. Verifique si esta suma s
es igual n2 y muestre un mensaje.
a) Diagrama de Flujo

Figura 3: Diagrama de Flujo

3
b) Script realizado en Matlab

1
2 disp('Este programa verifica si dado un numero par n, la suma de los ...
primeros n numeros impares de este es igual a n2');
3 n = input('Ingrese un numero:');
4 suma = 0;
5 i = 1;
6
7 while i < n
8 nimpar = 2*i-1;
9 suma = suma + nimpar;
10 i = i+1;
11 disp(nimpar);
12 end
13

14 disp('La suma es :');


15 disp(suma);
16
17 if suma == n2
18 disp('Si cumple la Condicion');
19 else
20 end

c) Prueba de Validacion

Figura 4: Prueba de validacion.

4
1.3. Dados dos numeros enteros a, b, determine su maximo comun
divisor m. Si a = 36, b = 45 entonces m = 9.
a) Diagrama de Flujo

Figura 5: Diagrama de Flujo

5
b) Script realizado en Matlab

1 disp('Este programa determina el maximo comun divisor entre dos numeros');


2 a = input('Ingrese el primer numero: ');
3 b = input('Ingrese el segundo numero: ');
4
5 for m = gcd(a, b);
6
7 end
8

9 disp('El m.c.d. de estos numeros es: ');


10 disp(m);

c) Prueba de Validacion

Figura 6: Prueba de validacion.

6
1.4. Dado un numero entero positivo n, descompongalo en sus facto-
res primos. Si n = 72, entonces los factores primos son 2, 2, 2, 3, 3.
a) Diagrama de Flujo

Figura 7: Diagrama de Flujo

7
b) Script realizado en Matlab

1 disp('Este programa descompone un numero entero positivo en sus ...


factores primos');
2 n = input ('Ingrese el numero entero: ');
3 p = 2;
4
5 while p < n
6 while mod (n,p)==0
7 disp (p);
8 n = fix (n /p);
9 end
10 p = p + 1;
11 end

c) Prueba de Validacion

Figura 8: Prueba de validacion.

8
1.5. Lea los votos de n personas. Cada voto es un numero 1, 2 o 3
correspondiente a tres candidatos. Si el dato es 0 es un voto en
blanco. Si es otro numero es un voto nulo. Determine el total
de los votos de cada candidato y el total de votos blancos y
nulos.
a) Diagrama de Flujo

Figura 9: Diagrama de Flujo

9
b) Script realizado en Matlab

1 disp('Este programa determina el total de votos');


2 disp ('Elija 0 su voto sera en blanco');
3 disp ('Elija 1 su voto sera por el primer candidato');
4 disp ('Elija 2 su voto sera por el segundo candidato');
5 disp ('Elija 3 su votos sera por el tercer candidato');
6 disp ('Elija cualquier otro valor su voto sera nulo');
7 n = input('Ingrese el numero de votantes: ');
8 nvotos = 0;
9 C = zeros(1,3);
10 b = 0;
11 nu = 0;
12 while n > nvotos
13 voto = input('Seleccione un candidato: ');
14 switch voto
15 case 1
16 C(1) = C(1)+1;
17 case 2
18 C(2) = C(2)+1;
19 case 3
20 C(3) = C(3)+1;
21 otherwise
22 if voto == 0;
23 b = b+1;
24 else
25 nu = nu+1;
26 end
27 end
28 nvotos = nvotos+1;
29 end
30 disp ('Conteo de votos');
31 disp ('El numero de votos blancos es: ');
32 disp (b);
33 disp ('El numero de votos por el primer candidato es: ');
34 disp (C(1));
35 disp ('El numero de votos por el segundo candidato es: ');
36 disp (C(2));
37 disp ('El numero de votos por el tercer candidato es: ');
38 disp (C(3));
39 disp ('El numero de votos nulos es: ');
40 disp (nu);
41 if C(1) > C(2) && C(1) > C(3)
42 disp ('El ganador es el primer candidato');
43 elseif C(2) > C(1) && C(2) > C(3)
44 disp ('El ganador es el segundo candidato');
45 elseif C(3) > C(1) && C(3) > C(2)
46 disp ('El ganador es el tercer candidato');
47 elseif C(1) == C(2) && C(1) == C(3)
48 disp ('Hay un triple empate, deben ir a segunda vuelta');
49 elseif C(1) == C(2)
50 disp ('Hay un empate entre el 1er y el 2do candidato, deben ir a ...
segunda vuelta');
51 elseif C(1) == C(3)
52 disp ('Hay un empate entre el 1er y el 3er candidato, deben ir a ...
segunda vuelta');
53 else
54 disp ('Hay un empate entre el 2do y el 3er, deben ir a segunda vuelta');
55 end

10
c) Prueba de Validacion

Figura 10: Prueba de validacion.

11
1.6. Lea las coordenadas (u,v) de la ubicacion de una fabrica y las
coordenadas (x,y) de n sitios de distribucion. Encuentre cual
es la distancia del sitio mas alejado de la fabrica.
a) Diagrama de Flujo

Figura 11: Diagrama de Flujo

12
b) Script realizado en Matlab

1 disp('Este programa determina la distancia entre sitios en una fabrica ...


con coordenadas');
2
3 u= input('Ingrese la coordenada en u de la fabrica: ');
4 v= input('Ingrese la coordenada en v de la fabrica: ');
5 n=input('Ingrese el numero de sitios de distribucion: ');
6 xi=u;
7 yi=v;
8 d=sqrt((xi-u)2+(yi-v)2);
9
10 disp('La ubicacion del primer sitio de distribucion es: ');
11 for i=1:n
12 x=input('Ingrese la coordenada en x del sitio de distribucion: ');
13 y=input('Ingrese la coordenada en y del sitio de distribucion: ');
14 a=sqrt((x-u)2+(y-v)2);
15 disp('La ubicacion del siguiente sitio de distribucion es: ');
16 if a>d
17 d=a;
18 end
19 end
20 disp('La distancia del sitio mas alejado de la fabrica es: ');
21 disp(d);

c) Prueba de Validacion

Figura 12: Prueba de validacion.

13
1.7. Encuentre el mayor valor de la funcio f (x) = sen(x) + ln(x) para
los valores x = 1, 0, 1, 1, 1, 2, 1, 3, ..., 4
a) Diagrama de Flujo

Figura 13: Diagrama de Flujo

14
b) Script realizado en Matlab

1
2 disp('Este programa encuentra el mayor valor de una funcion');
3
4 x = 1;
5 y = sin(x)+log(x);
6 ym = y;
7
8 while x 4
9 x = x+0.1;
10 y = sin(x)+log(x);
11 if y ym
12 ym = y
13 else
14 end
15
16 end
17 disp('El mayor valor de la funcion y = sin(x)+log(x) es: ');
18 disp(ym);

c) Prueba de Validacion

Figura 14: Prueba de validacion.

15
1.8. Determine la suma de los n primeros numeros de la serie:
1, 1, 2, 3, 5, 8, 13, 21, ... En la cual cada termino, a partir del ter-
cero, se obtiene sumando los dos terminos anteriores.
a) Diagrama de Flujo

Figura 15: Diagrama de Flujo

16
b) Script realizado en Matlab

1 disp('Este programa determina la suma de los n primeros numeros de una ...


serie');
2
3 n = input ('Ingrese los n primeros numeros de la serie: '); a = 1;
4 b = 1;
5 e = 0;
6 x = 2;
7

8 if n == 1
9 e = e + a;
10 elseif n == 2
11 e = a + b;
12 else
13 e = a + b;
14 while x < n
15 c = a + b;
16 a = b;
17 b = c;
18 e = e + c;
19 x = x + 1;
20 end
21 end
22
23 disp('La suma de los n primeros numeros de la serie son: ');
24 disp(e);

c) Prueba de Validacion

Figura 16: Prueba de validacion.

17
2. Conclusiones
Conclusiones...

18

Vous aimerez peut-être aussi