Professional Documents
Culture Documents
Programacion MATLAB
Reporte No. 3
Autores:
Profesor:
Alvaro Suarez
Ing. Eduardo Tusa M.Sc.
Juan Polanco
12 de julio de 2015
Resumen
Esta practica presenta la sintaxis de las estructuras de control condicionales y repeti-
tivas que son el fundamento de muchos lenguajes de programacion. A traves del script de
MATLAB se generaran programas que permitan resolver problemas que sean unicamente
secuenciales.
1. Introduccion
Los algoritmos vistos hasta el momento han consistido en simples secuencias de instruc-
ciones; sin embargo, existen tareas mas complejas que no pueden ser resueltas empleando un
esquema tan sencillo, en ocasiones es necesario repetir una misma accion un numero determina-
do de veces o evaluar una expresion y realizar acciones diferentes en base al resultado de dicha
evaluacion. Para resolver estas situaciones existen las denominadas estructuras de control que
poseen las siguientes caractersticas: Una estructura de control tiene un unico punto de entrada
y un unico punto de salida. Una estructura de control se compone de sentencias o de otras
estructuras de control. Tales caractersticas permiten desarrollar de forma muy flexible todo
tipo de algoritmos aun cuando solo existen tres tipos fundamentales de estructuras de control:
Secuencial. Alternativa. Repetitiva. A lo largo de esta leccion se presentaran las distintas estruc-
turas de control, la forma de representarlas en la notacion algortmica y las correspondientes
sentencias FORTRAN para poder utilizarlas en nuestros programas.
2. Metodologa
1. Estructura Condicionales 1.1. Estructura Condicional Simple IF/END La estructura con-
dicional simple posee la siguiente sintaxis en MATLAB.
1
Figura 2: Estructura Condicional Doble
2.2. Estructura Repetitiva WHILE La estructura repetitiva o de bucle FOR que realiza n
repeticiones o iteraciones, posee la siguiente sintaxis en MATLAB.
2.3. Interrupcion con BREAK La interrupcion con BREAK posee la siguiente sintaxis en
MATLAB.
2.4. Interrupcion con CONTINUE La interrupcion con CONTINUE posee la siguiente sin-
taxis en MATLAB.
1 clc;
2 clear;
3
4 r=input('Radio del Cilindro: ');
5 h=input('Altura del Cilindro: ');
6
7 if h>r
8 volumen= pi* r2 * h;
9 disp('El volumen es: ');
10 disp(volumen);
2
Figura 4: Estructura Condicional SWITCH/CASE
11 else
12 disp('error');
13 end
1 clc;
2 clear;
3
3
Figura 6: Estructura Repetitiva WHILE
1 clc;
2 clear;
3
4 kw=100*d;
5 disp('el consumo en Kw es de: ')
6 disp(kw);
7
8 if kw>700
9 T=(kw*5/100)+kw;
10 disp('Su valor total a pagar es de: ');
11 disp(T);
12 else
13 T=kw;
14 disp('Su valor total a pagar es de: ');
15 disp(T);
16 end
4
Figura 8: Interrupcion con CONTINUE
1 clc;
2 clear;
3
4 disp('Este programa realiza las siguientes operaciones');
5 disp('Si escoge 1 convierte la temperatura t de grados F a grados C');
6 disp('Si escoge 2 convierte la temperatura t de grados C a grados F');
7
8 t = input('Favor ingresar el valor de la temperatura: ');
9
10 switch valor
11 case 1
12 C = (5*t-32)/9;
13 disp('La temperatura en C es: ');
14 disp(C);
15 case 2
16 F = 32+9*t/5;
17 disp('La temperatura en F es: ');
18 disp(F);
19 end
1
2 a
3 b
4 c
5
5
6 if a > b && a > c
7
8 disp(a);
9 elseif b > a && b > c
10
11 disp(b);
12 else
13
14 disp(c);
15 end
1 clc;
2 clear;
3 a = input ('Ingrese el lado a: ');
4 b = input ('Ingrese el lado b: ');
5 c = input ('Ingrese el lado c: ');
6
7 if a == b && a == c
8 disp ('el triangulo es equilatero');
9 elseif a == b | | a == c | | b == c
10 disp ('el triangulo es isosceles');
11 else
12 disp ('el triangulo es escaleno');
13 end
1 clc;
2 clear;
3 a = input ('Ingrese el lado a: ');
4 b = input ('Ingrese el lado b: ');
5 c = input ('Ingrese el lado c: ');
6 d
7 e = sqrt(a2+b2);
8 disp ('la primera diagonal e es: ');
9 disp (e);
10 f = sqrt(c2+b2);
11 disp ('la segunda diagonal f es: ');
12 disp (f);
13 g = sqrt (a2+c2);
14 disp ('la tercera diagonal g es: ');
15 disp (g);
16 if e < f && e < g
17 disp('e es la menor diagonal');
6
18 elseif f < e && f < g
19 disp('f es la menor diagonal');
20 else
21 disp('g es la menor diagonal')
22 end
23
24 if e < d
25
26 elseif f < d
27
28 else
29
30 end
1 clc;
2 clear;
3
4 n = input ('Ingrese el numero de paquetes: ');
5 s = 0;
6 d = Inf; % "Inf" Para mostrar el inferior valor
7
1 clc;
2 clear;
7
3
4 n = input('Ingrese un numero par: ');
5 s = 0;
6
7 if mod (n,2)==0
8 for i = 1:n;
9 sp = 2 * i - 1;
10 s = s + sp;
11 disp('la suma total es igual a: ');
12 disp(s);
13 end
14 else
15
16 end
1 clc;
2 clear;
3 disp('Ingresar los valores');
4 a = input('Ingrese el valor de a: ');
5 b = input('Ingrese el valor de b: ');
6
7 if a > b
8 c = gcd(a,b);
9
10 disp(c);
11 else
12 d = gcd(b,a);
13
14 disp(d);
15 end
1 clc;
2 clear;
3
4 n
5 x = 2;
6
7 while n > 1
8
9 if mod (n,x)==0
10 fprintf('Los factores primos son: %g. \n',x);
11 n = n / x ;
12 else
8
13 x = x + 1;
14 end
15 end
16 %%
17 %3.11 OTRA FORMA
18 clc;
19 clear;
20 n
21 x = 2;
22
23 while n x
24 while mod (n,x)==0
25 disp(x);
26 n = fix (n/x);
27 end
28 x = x + 1;
29 end
1 clc;
2 clear;
3 n = input('ingrese el numero de sufragantes: ');
4 nvotos=0;
5 C=zeros(1,3);
6 nulos=0;
7 blancos=0;
8 while n > nvotos
9 voto=input('Seleccione un candidato: ');
10 switch voto
11 case 1;
12 C(1)=C(1)+1;
13 case 2;
14 C(2)=C(2)+1;
15 case 3;
16 C(3)=C(3)+1;
17 case 0;
18 blancos=blancos+1;
19 otherwise
20 nulos=nulos+1;
21 end
22 nvotos=nvotos+1;
23 end
24 fprintf('\n**** Conteo de votos ****\n');
25 fprintf('\nCandidato 1: %g votos',C(1));
26 fprintf('\nCandidato 2: %g votos',C(2));
27 fprintf('\nCandidato 3: %g votos',C(3));
28 fprintf('\nVotos nulos: %g votos',nulos);
29 fprintf('\nVotos en blanco: %g votos',blancos);
30 [G,I]=max(C);
9
31 fprintf('\n\nEl candidato ganador es el %g con %g votos\n',I,G);
32
33 %%
34 % 3.12 OTRA FORMA
35
36 clc;
37 clear;
38
10
a segunda vuelta');
91 elseif C(1) == C(3)
92 disp ('Hay un empate entre el primer y el tercer candidato, deben ir ...
a segunda vuelta');
93 else
94 disp ('Hay un empate entre el segundo y el tercer candidato, deben ir ...
a segunda vuelta');
95 end
1 clc;
2 clear;
3
4 u= input('ingrese la coordenada en u de la fabrica: ');
5 v= input('ingrese la coordenada en v de la fabrica: ');
6 n=input('Ingrese el numero de sitios de distribucion: ');
7 xi=u;
8 yi=v;
9 d=sqrt((xi-u)2+(yi-v)2);
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);
1 clc;
2 clear;
3
4 x=1;
5 y=sin(x)+log(x);
6 ym=y;
7 while x4
8 x=x+0.1;
9 y=sin(x)+log(x);
10 if yym
11 ym=y;
12 else
11
13 end
14 end
15 disp('El mayor valor de la funcion es: ');
16 disp(ym);
1 clc;
2 clear;
3
4 n = input ('Ingrese los n primeros terminos de la serie: ');
5 a = 1;
6 b = 1;
7 e = 0;
8 x = 2;
9
10 if n == 1
11 e = e + a;
12 elseif n == 2
13 e = a + b;
14 else
15 e = a + b;
16 while x < n
17 c = a + b;
18 a = b;
19 b = c;
20 e = e + c;
21 x = x + 1;
22 end
23 end
3. Resultados
Las figuras (9 a la 23) a continuacion muestran los resultados obtenidos al ejecutar los pro-
gramas:
4. Conclusiones
Se pudo conocer todas las estructuras de control que utiliza Matlab.
12
Figura 9: problema del cilindro
5. Referencias
ESCUELA Superior Politecnica del Litoral de Ecuador. En lnea. Disponible en:http: //www.icm.espol.e
(Consulta 07/06/2015)
13
Figura 10: problema del numero de dos cifras
14
Figura 12: problema de la conversion de la temperatura
15
Figura 14: problema de los triangulos
16
Figura 16: problema del peso de los paquetes
17
Figura 18: problema del maximo comun divisor
18
Figura 20: problema del conteo de votos
19
Figura 23: Suma de los n primeros numeros de la serie
20