// //Programacion con Scilab // //Operadores logicos y de comparacion 3 > 2 //mayor que pause 3 < 2 //menor que pause 3 <> 2 //diferente (no igual) pause 3 == 3 //igual pause (2>1)&(3>1) //Operador AND pause (2>1)&(3>5) // pause (2>1) | (3>1) //Operador OR pause (2>1) | (3>5) // pause (2<1) | (3>5) // pause ~(2<1) //Operador NOT (no) pause //Lazos (loops) en SCILAB //"for" en una sola linea r = 1; for k = 1:0.5:4, r = r+k, end //Ejemplo 1 pause for m = 1:10, a(m) = m^2, end //Ejemplo 2 a pause // //"for" en multiples lineas // //Ejemplo 1 r = 1; for k = 1:0.5:4 r = r+k end pause //Ejemplo 2 m=[]; for m = 1:10 a(m) = m^2 end a pause //"while" en una sola linea s = 100; while s>50, disp(s^2),s =s -5,end pause //Usando multiples lineas s = 100; while s>50 disp(s^2) s = s - 5 end pause //Terminacion anticipada del lazo "for" con el comando "break" for j = 1:10 disp(j) if j>5 then break end end pause //Condicional //"if...then...else" //Instrucciones en lineas multiples (tambien puede efectuarse en una sola linea) //Ejemplo 1 x = 10; y = 5; if x> 5 then disp(y) end pause //Ejemplo 2 x = 3 ; y = 5; if x>5 then disp(y) else disp(x) end pause //Ejemplo 3 (elseif) // Dependiendo del valor de x imprimir x, y o z // Si x< 5 -> imprimir x // Si 5<= x < 10 -> imprimir y // Si x>= 10 -> imprimir z // Para interrumpir introducir x = 0 x= 1; y = 100; z = 400; while x<>0 x=input('Introduzca el valor x = '); if x<5 then disp(x) elseif x>=10 then disp(z) else disp(y) end end pause // //Ejemplo 4 "select-case" // //'Introduzca dos valores en un vector[x1 x2]' //'Si x1 = -1 -> y = x2 - 2' //'Si x1 = 1 -> y = x2^2' //'Si x1 = 2 -> y = ln(x2)' //'Para interrumpir apriete Enter' [z]=input('Introduzca un vector [x y]= ') x1 = z(1); x2 = z(2); while ~isempty(z) select x1 case -1 y = x2 - 2 case 1 y = x2^2 case 2 y = log(x2); end [z]=input('Introduzca un vector [x1 x2]= '); x1 = z(1); x2 = z(2); end pause // //Ejercicio: preparar un programa que calcule el valor promedio de los elementos de un vector //(Ayuda: para determinar el tamano (No. de elementos de un vector) se puede usar el comando "size" // pause // //Funciones en Scilab //Ejemplo: Funcion llamada "gauss" //Funcion para un escalar deff('y=gauss(x)','y=exp(-x^2)') x = 0; y = gauss(0) pause x = [-2:0.1:2]; y = gauss(x) pause //Otro ejemplo deff('[r,theta]=cartpol(x,y)',['r=sqrt(x^2+y^2)'; 'theta=180/%pi*atan(y,x)']) [radius,angle] = cartpol(3., 4.) pause //Input-output en Scilab //Grabando variables A = [1. 2. 3.; -3. 4. 5.; 2. 4. 5.; 1. 3. 2.] b = 1:10 save('Ab.dat', A,b) //Intente ver el contenido de 'Ab.dat' //Recuerde que .dat es un archivo en formato binario pause clear //Limpiando memoria who pause load('Ab.dat') //Cargando datos del archivo 'Ab.dat' A b pause //Archivo de salida (sin formato) print('datos1.txt',A,b) //Imprimir en un archivo de salida //Intentar abrir dicho archivo usandoo un editor de texto pause //Creando archivos de salida //Ejemplo 1 u = file('open','datos2.txt','new') write(u,A,'(3f10.6)') //%3 veces: elemento con formato de coma flotante (10 caracteres, 6 decimales) file('close',u) //Verifique el contenito del archivo recien creado pause //Ejemplo 2 x1 = 0:0.5:10; x2 = x1^2; B = [x1',x2'] m = file('open','datos3.txt','new') write(m,B,'(2(f10.6,2x))') //%2 veces: elemento con formato floating: 10 caracteres, 6 decimales; seguido de 2 espacios file('close',m) //Verifique el contenito del archivo recien creado pause //Incluyendo leyenda A = 5*rand(2,3), B = rand(2,3), C =A +B u = file('open','datos4.txt','new') write(u,'Matriz A','(a)') write(u,A,'(3(f10.6,2x))') write(u,'Matriz','(a)') write(u,B,'(3(f10.6,2x))') write(u,'Matriz suma C =A +B','(a)') write(u,C,'(3(f10.6,2x))') file('close',u) //Verifique el contenido del archivo recien creado pause //Incluyendo leyenda en la pantalla t = [0.25:0.25:3]; d = 1/2*t.^2; [n m] = size(d); for j = 1:m 'Distancia para t = ' + string(t(j))+' es ' +string(d(j)) end pause //Usando la funcion 'disp' for j=1:m disp('Distancia para t = '+ string(t(j)) + ' es ' + string(d(j)) ) end pause //Fin de clase