UNIVE RSIDAD DE CUENCA CUENCA FACULTAD FACULTAD DE CI ENCI AS QU QUI MI CAS CARRERA CARRERA DE I NGENI NGENI ERÍ A QU QUÍ MICA TRABAJO DE I NVESTI GACI ÓN COMPU COMPUTACIÓN TACIÓN LE NGUAJE NGUAJE S Y PROGRAMACI PROGRAMACI ÓN Trabajo de Investigación José Luis Ayora, Stalin Coronel 1
1 Universidad de Cuenca, Facultad de Ciencias Químicas, Carrera de Ingeniería Química. Cuenca-Ecuador
Autores para correspondencia: correspondencia:
[email protected] [email protected] [email protected] Fecha de recepción 18 de abril de 2016 1. Introducción
En este trabajo de investigación i nvestigación se dará a conocer algunas de las funciones y estructuras que se pueden utilizar en MATLAB, así como sus funciones y algunos ejemplos prácticos y sencillos. 2. Función fpri fprint ntf f
Es una función para mostrar un mensaje o un resultado, pero que a diferencia de la función display permite mezclar texto y valores numéricos de las variables y también se puede ajustar el formato de los números. La forma general de la función fprintf es la siguiente: ('texto %5.2f texto ('texto fprintf adicional', variable)
% es el símbolo que indica formato -, alinea el número hacia la izquierda +, imprime el signo (+ si es positivo y - si es negativo) 0, añade ceros 5, indica cinco caracteres que es el ancho del campo donde ese imprime el valor numérico, si el número es más corto se añaden
espacios o ceros delante del número. 2, indica la precisión, indica el número de decimales que se mostrarán a la derecha del punto decimal f, indica que se utilizará la notación (entero.decimal) e, indica que se utilizará la notación exponencial i, indica entero g, formato corto
E j emplos: PROGRAMA QUE RECIBE Y ESCRIBE LOS DATOS PERSONALES a=input('Ingrese su nombre:','s'); b=input('Ingrese su dirección: ','s'); c=input('Ingrese su número telefónico: '); fprintf('Nombre: %s Dirección: %s Número: %d ',a,b,c)
UNIVE RSIDAD DE CUENCA FACULTAD DE CI ENCI AS QUI MI CAS CARRERA DE I NGENI ERÍ A QUÍ MICA TRABAJO DE I NVESTI GACI ÓN COMPUTACIÓN LE NGUAJE S Y PROGRAMACI ÓN PROGRAMA PARA CALCULAR LAS RAICES DE UNA ECUACIÖN DE LA FORMA ax^2 +bx + c disp('Ingrese los coeficientes de su ecuación de la forma : ax^2+bx+c=0 ') a=input('Ingrese "a" :'); b=input('Ingrese "b" :'); c=input('Ingrese "c" :'); d='Número imaginario'; e='Número imaginario'; x1=(-b+sqrt(b^2-4*a*c))/(2*a); x2=(-b-sqrt(b^2-4*a*c))/(2*a);
E jemplos: PROGRAMA QUE MULTIPLICA POR 2 LOS NUMEROS ANTERIORES AL NÙMERO INGRESADO POR TECLADO num=input('Ingrese el numero en los que se multiplicará por los dos los números anteriores: '); x=0; y=x*2; while x
if b^2-4*a*c>=0 fprintf(' x1= %f \n',x1,x2)
x2= %f
else fprintf(' x1= %s
x2= %s \n',d,e)
end
3. Estructura Condicional If
La sentencia if, actúa como cabría esperar. Si la condición es verdadera, la sentencia se ejecuta, de otro modo, se salta dicha sentencia, continuando la ejecución del programa con otras sentencias a continuación de ésta. La forma general de la sentencia if es: if condicion sentencia 1 sentencia 2 ... sentencia n end
PROGRAMA QUE LEE FORMULA DE OPERACIONES BÀSICAS CON UN MÁXIMO DE TRES VARIABLES Y RESPUESTA EN VALORES POSITIVOS x=input('ingrese x: '); y=input('ingrese y: '); z=input('ingrese z: '); formula=input('Ingrese la fórmula:'); respuesta=formula; if respuesta>0 respuesta=formula; disp('La respuesta es: ') disp(respuesta) end
UNIVE RSIDAD DE CUENCA FACULTAD DE CI ENCI AS QUI MI CAS CARRERA DE I NGENI ERÍ A QUÍ MICA TRABAJO DE I NVESTI GACI ÓN COMPUTACIÓN LE NGUAJE S Y PROGRAMACI ÓN 4. Estructura Condicional Else
La sentencia if/else completa la sentencia if, para realizar una acción alternativa if condicion sentencias_1 else sentencias_2
PROGRAMA QUE INDICA LA POSICIÓN DE UNA PARTÍCULA CON UN RADIO Y UN ÁNGULO disp('Ingrese el radio y el ángulo en radianes para calcular la posición de la particula') radio=input('Ingrese el radio:'); angulo=input('Ingrese el angulo:');
end
x=(radio)*cos(angulo);
E jemplos:
y=(radio)*sin(angulo);
PROGRAMA QUE SUMA TODOS LOS NUMEROS ANTERIORES AL INGRESADO POR TECLADO HASTA UN LÍMITE DE 500
if radio>0 x=(radio)*cos(angulo);
num=input('Ingrese número : '); x=0;
y=(radio)*sin(angulo);
y=0;
fprintf(' La coordenada en x es : %f La coordenada en y es : %f ',x,y)
z='Supera el limite';
else disp('NO ingrese radio negativo')
while x
end
y=y+x;
5. Estructura Repetitiva F or
end if y<500 disp('La suma es igual a:
El formato de los bucles for en MATLAB es el siguiente: For variable = inicio:paso: final
');
sentencia 1
disp(y)
sentencia 2
else
...
disp(z) end
sentencia n end
Una de las características principales de los bucles for, la constituye la variable del bucle (variable). Esta variable va
UNIVE RSIDAD DE CUENCA FACULTAD DE CI ENCI AS QUI MI CAS CARRERA DE I NGENI ERÍ A QUÍ MICA TRABAJO DE I NVESTI GACI ÓN COMPUTACIÓN LE NGUAJE S Y PROGRAMACI ÓN
tomando valores entre inicio y final de paso en paso. Cada vez que se ejecuta el bucle, variable toma un valor diferente. Al inicio del bucle, variable es igual a inicio. La segunda vez, variable es igual a inicio+paso, y así sucesivamente, hasta que al final variable es igual a final. Si se omite el paso, MATLAB entiende que el paso es igual a uno.
E jemplos: PROGRAMA QUE CALCULA EL FACTORIAL DE UN NÚMERO INGRESADO POR TECLADO n= input ('Ingrese un número:'); factorial=1; for x=1:n factorial=x*factorial; end fprintf('El factorial de %i es %i\n',n,factorial)
PROGRAMA QUE DESPLIEGA LA TABLA DE EXPONENTES DE UN NÚMERO INGRESADO POR TECLADO numero= input ('Tabla de exponentes del número:'); for x=1:12 producto=numero^x; fprintf('%i ^ %i = %i \n',numero,x,producto) end
6. Estructura Repetitiva While
Los bules while-end se utilizan cuando se necesita un proceso iterativo, pero se desconoce previamente el número de iteraciones que hay que realizar. En este tipo de bucles el número de pasos no se especifica al principio, por ende el proceso iterativo continúa mientras se
satisface una condición determinada. En MATLAB la estructura es la siguiente While (expresión condicional)
sentencia 1 sentencia 2 ... sentencia n End
La primera línea de un bucle de este tipo incluye una expresión condicional. Cuando el programa llega a esa línea, comprueba dicha expresión. Si esta resulta falsa Matlab salta directamente al final del bucle, a la sentencia end. Por el contrario, si la expresión condicional es verdadera ejecuta el grupo de comandos que se encuentran entre la sentencia while y end.
E jemplos: PROGRAMA QUE SUMA N NÚMEROSS INGRESADOS POR TECLADO disp ('Ingrese los números que desee sumar, cuando haya terminado digíte 0') numero=1; sum=0; while (numero~=0) numero=input(' '); sum=sum+numero; end fprintf('La suma de los números ingresados es: %i \n',sum)
UNIVE RSIDAD DE CUENCA FACULTAD DE CI ENCI AS QUI MI CAS CARRERA DE I NGENI ERÍ A QUÍ MICA TRABAJO DE I NVESTI GACI ÓN COMPUTACIÓN LE NGUAJE S Y PROGRAMACI ÓN PROGRAMA QUE DESPLIEGA LAS TABLAS DE MULTIPLICAR: m=0; while (m<12) n=0; m=m+1; while (n<12) n=n+1; p=m*n; fprintf('%4i x %i = %i\n',m,n,p) end end
7. Bibliografía
[1]"Entrada/salida", MATLAB para el Grado en Ingeniería de Energías Renovables, 2016. [Online]. Available: http://www.sc.ehu.es/sbweb/energiasrenovables/MATLAB/basico/vectores/s alida.html. [Accessed: 14- Apr- 2016]. [2]"Sentencias Condicionales", MATLAB para el Grado en Ingeniería de Energías Renovables, 2016. [Online]. Available:
•
http://www.sc.ehu.es/sbweb/energiasren ovables/MATLAB/basico/condicional/c ondicional_1.html. [Accessed: 14- Apr2016]. [3]A. Gilat and J. Mac ́as Iglesias, Matlab. Barcelona: Revert e ́, 2006. [4]X. Dominguez Perez, APUNTES DE MATLAB Fundamentos Matemáticos de la Ingeniería, 1st ed. A Coruña, 2006.