0% encontró este documento útil (0 votos)
91 vistas29 páginas

Matlab Int S5 PDF

Cargado por

ronaldo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
91 vistas29 páginas

Matlab Int S5 PDF

Cargado por

ronaldo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SESIÓN 05: SUBFUNCIONES Y

SUBPROGRAMAS

CONTENIDO

OBJETIVO ................................................................................................................ 3
CONTENIDO............................................................................................................ 4
INTRODUCCIÓN ..................................................................................................... 5
CONCEPTOS TEÓRICOS........................................................................................ 6
Subfunciones ...................................................................................................... 6
Subprogramas.................................................................................................... 7
Comandos en M-Files ....................................................................................... 9
BIBLIOGRAFÍA ....................................................................................................... 15
INTRODUCCIÓN

Los subprogramas son rutinas, procedimientos o conjuntos de


instrucciones que realizan una labor específica. Los subprogramas se
realizar para no repetir innecesariamente un proceso ya hecho.
Pueden invocarse desde el programa principal cuantas veces se
desee.
CONCEPTOS TEÓRICOS

SUBFUNCIONES

Las funciones definidas mediante M-ficheros pueden contener código


para más de una función. La función principal en el M-fichero se
denomina función primaria, que es precisamente la función que invoca
el M-fichero. Pero adicionalmente puede haber subfunciones colgando
de la función primaria y que solo son visibles para dicha función primaria
o para otra subfunción dentro del mismo M-fichero. Cada subfunción
comienza con su propia línea de definición de función.

Ejemplo:

Crear una función 𝒕𝒆𝒏𝒅𝒆𝒏𝒄𝒊𝒂_𝒄𝒆𝒏𝒕𝒓𝒂𝒍(𝒗) que tenga dos subfunciones


𝑚𝑒𝑑𝑖𝑎(𝑣) y 𝑚𝑒𝑑𝑖𝑎𝑛𝑎(𝑣) que calculen la 𝒎𝒆𝒅𝒊𝒂 y la 𝒎𝒆𝒅𝒊𝒂𝒏𝒂 del vector 𝑣.

Imagen N° 01 – Ejemplo de subfunciones


Imagen N° 02 - Ejecución

SUBPROGRAMAS

Los subprogramas son como dice su propio nombre son subprogramas de


algún programa principal.

Ejemplo:

Escribir un programa que obtenga a partir de una serie de 15 datos


estadísticos 𝑥𝑖 , las siguientes medidas:

𝟏
a. Media aritmética 𝒙 = 𝒏 ∑ 𝒙𝒊

𝒙(𝒏+𝟏) , 𝑛 𝑒𝑠 𝑖𝑚𝑝𝑎𝑟
𝟐
b. Mediana 𝑴𝒆 = {𝒙(𝒏) +𝒙(𝒏+𝟏)
𝟐 𝟐
, 𝑛 𝑒𝑠 𝑝𝑎𝑟
𝟐

Cada una de estas medidas debe de ser llamadas desde el programa


principal.
Imagen N° 03 – Función media

Imagen N° 04 – Función mediana

Imagen N° 05 – Subprogramas
COMANDOS EN M-FILES

MATLAB ofrece ciertos comandos de procedimiento que se utilizan muy


a menudo en la escritura de M-ficheros. Entre ellos tenemos los siguientes:

El comando echo controla la visualización (o eco) de las


𝑒𝑐ℎ𝑜
declaraciones en una función durante su ejecución.
𝑒𝑐ℎ𝑜 𝑜𝑛 Activa el eco.
𝑒𝑐ℎ𝑜 𝑜𝑓𝑓 Desactiva el eco (por defecto).
Causa la interrupción de la ejecución de un M-file hasta
𝑝𝑎𝑢𝑠𝑒
que el usuario pulse una tecla para continuar.
Causa la interrupción de la ejecución de un M-file durante
𝑝𝑎𝑢𝑠𝑒(𝑛)
𝑛 segundos.
𝑝𝑎𝑢𝑠𝑒 𝑜𝑓𝑓 Deshabilita 𝑝𝑎𝑢𝑠𝑒 y 𝑝𝑎𝑢𝑠𝑒(𝑛)
Causa la interrupción de la ejecución de un M-file y pasa el
control al teclado para que el usuario realice otras tareas.
𝑘𝑒𝑦𝑏𝑜𝑎𝑟𝑑
Para finalizar la interrupción usar dbcont.
Para finalizar la interrupción y salir del archivo usar dbquit.
Desplaza el texto visible en la ventana de comandos y
ℎ𝑜𝑚𝑒
fuera de la vista. Para ver el contenido que estaba

Instituto Científico del Pacífico


www.icip.edu.pe
previamente en la pantalla podemos usar la barra de
desplazamiento.
Permite elegir entre varios tipos de menú para el input del
𝑚𝑒𝑛𝑢
usuario.

Ejemplo 1:

En el siguiente ejemplo se muestra un programa que realiza los cálculos


hasta antes del comando 𝑒𝑐ℎ𝑜 𝑜𝑛, luego muestra las operaciones que
realiza hasta el comando 𝑒𝑐ℎ𝑜 𝑜𝑓𝑓, y después continua con el programa.

Imagen N° 06 – Ejemplo de comando 𝑒𝑐ℎ𝑜


Imagen N° 07 – Ejecución de comando 𝑒𝑐ℎ𝑜

Ejemplo 2:

En la siguiente figura se muestra el código de un programa antes de ser


ejecutado.

Imagen N° 08 – Ejemplo de comando 𝑘𝑒𝑦𝑏𝑜𝑎𝑟𝑑


Luego de ejecutarlo aparece una flecha al lado de 𝒌𝒆𝒚𝒃𝒐𝒂𝒓𝒅. Y en la
línea de comandos se antecede la letra 𝑲 que indica la interrupción en
el código, permitiéndonos realizar en esta línea otros cálculos. Para
continuar con el programa debemos ingresar 𝒅𝒃𝒄𝒐𝒏𝒕.

Imagen N° 09 – Ejecución de comando 𝑘𝑒𝑦𝑏𝑜𝑎𝑟𝑑


Imagen N° 10 – Ejemplo de comando 𝑚𝑒𝑛𝑢
Imagen N° 11 – Ejecución 1 de comando 𝑚𝑒𝑛𝑢

Imagen N° 12 – Ejecución 2 de comando 𝑚𝑒𝑛𝑢


EJEMPLO 01: SENO HIPERBÓLICO INVERSO

OBJETIVO

El objetivo principal del ejemplo es crear una


función que aproxime el arco seno hiperbólico
y un programa que realice la gráfica usando
dicha función.

PLANTEAMIENTO

1. Crear una función 𝑎𝑟𝑐_𝑠𝑒𝑛ℎ(𝑥, 𝑡𝑜𝑙) que


aproxime la función sinh−1 (𝑥) =
(−1)𝑛 (2𝑛)!
∑∞
𝑛=0 𝑥 2𝑛+1 , |𝑥| < 1.
4 𝑛 (𝑛!)2 (2𝑛+1)

2. Crear un 𝑆𝑐𝑟𝑖𝑝𝑡 que realice la gráfica de


𝑎𝑟𝑐_𝑠𝑒𝑛ℎ.
DESARROLLO

1. Creamos la función 𝑎𝑟𝑐_𝑠𝑒𝑛ℎ.


Ejecución de la función:

2. Programa que llame a la función 𝑎𝑟𝑐_𝑠𝑖𝑛ℎ:


La gráfica es:
EJEMPLO 02: SISTEMA DE TEMPERATURA

OBJETIVO

El objetivo principal del ejemplo es crear


subfunciones que conviertan de un sistema de
temperatura a otro sistema.

PLANTEAMIENTO

1. Crear una subfunción 𝑘𝑒𝑙𝑣𝑖𝑛𝐴𝑐𝑒𝑙𝑠𝑖𝑢𝑠(𝐾)


que convierta la temperatura 𝐾 de grados
Kelvin a grados Celsius.

2. Crear una subfunción 𝑘𝑒𝑙𝑣𝑖𝑛𝐴𝑓𝑎ℎ𝑟𝑒𝑛ℎ𝑒𝑖𝑡(𝐾) que convierta la


temperatura 𝐾 de grados Kelvin a grados Fahrenheit.

3. Crear una función 𝐾𝑒𝑙𝑣𝑖𝑛_𝑎_𝐶𝑒𝑙𝑠𝑖𝑢𝑠_𝑦_𝐹𝑎ℎ𝑟𝑒𝑛ℎ𝑒𝑖𝑡(𝐾) que tenga


como argumento de entrada a la temperatura 𝐾 en grados Kelvin
y como argumentos de salida a la conversión de Kelvin a Celsius y
Fahrenheit, para ello usará las subfunciones anteriores.
DESARROLLO

Creando las subfunciones 𝑘𝑒𝑙𝑣𝑖𝑛𝐴𝑐𝑒𝑙𝑠𝑖𝑢𝑠(𝐾) y 𝑘𝑒𝑙𝑣𝑖𝑛𝐴𝑓𝑎ℎ𝑟𝑒𝑛ℎ𝑒𝑖𝑡(𝐾)


que realizan la conversión de Kelvin a Celsius y Kelvin a Fahrenheit,
espectivamente.

Ejecución:
EJEMPLO 03: OPERACIONES MATEMÁTICAS

OBJETIVO

El objetivo principal del ejemplo es crear un


programa que contenga 4 subprogramas de
operaciones matemáticas básicas.

PLANTEAMIENTO

Realizar un programa que contenga


subprogramas, los cuales realicen la resta, suma,
multiplicación y división de dos números.
DESARROLLO

Subprograma de la resta:

Subprograma de la suma:

Subprograma de la multiplicación:
Subprograma de la división:

Programa:

Ejecución:
EJEMPLO 04: GRÁFICO DE LA FUNCIÓN
EXPONENCIAL

OBJETIVO

El presente ejemplo tiene por objetivo el uso de


subprogramas para resolver problemas con
mayor complejidad.

PLANTEAMIENTO

Comparar las gráficas generadas por la función


𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑐𝑖𝑜𝑛𝐸( ) con 𝑡𝑜𝑙 = 0.01 (sesión 8) y la
función exp( ) de MATLAB. Considere −2 ≤ 𝑥 ≤ 2
DESARROLLO

Primero se crea la función para obtener la aproximación del


número 𝑒, luego se evalúa en el intervalo dado, y se realiza el gráfico.
EJEMPLO 05: DIVISORES PROPIOS

OBJETIVO

El presente ejemplo tiene por objetivo mostrar


la ventaja de usar subfunciones.

PLANTEAMIENTO

Dos números son amigos cuando la suma de


divisores propios de uno de ellos es igual al otro
número y viceversa.

Un ejemplo es el par de naturales (220, 284), ya que:

 Los divisores propios de 220 son: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110,
que suman 284.

 Los divisores propios de 284 son: 1, 2, 4, 71, 142 que suman 220.

Escribir una función, 𝑠𝑢𝑚𝑎_𝑑𝑖𝑣𝑖𝑠𝑜𝑟𝑒𝑠 que devuelva la suma de los divisores


propios de un número. Luego, escribir otra función 𝑎𝑚𝑖𝑔𝑜𝑠( ) que acepte
dos números como parámetros de entrada y devuelva True o False según
sean o no números amigos.
DESARROLLO

Se puede escribir subfunciones en el mismo archivo de una


función principal. Donde la función principal es la primera función
que aparece en el archivo.

Instituto Científico del Pacífico


www.icip.edu.pe
EJEMPLO 06: CONTADOR DE VOCALES

OBJETIVO

El objetivo del presente ejemplo es mostrar la


utilidad de subfunciones y subprogramas.

PLANTEAMIENTO

Escribir una función que compruebe si un


carácter dado es una vocal minúscula, después,
usar la función creada para realizar el conteo de
vocales minúsculas que hay en una cadena
ingresada por el usuario.
DESARROLLO

Se crea una función que verifica si un carácter dado es una vocal


minúscula, devuelve 𝑡𝑟𝑢𝑒 o 𝑓𝑎𝑙𝑠𝑒 según sea el caso.

Para verificar la cantidad de vocales minúsculas en una cadena de texto


ingresada por el usuario.
SESIÓN 05

RECOMENDACIONES

 En la resolución de cada uno de los ejercicios debe indicar los


pasos realizados con capturas de pantalla.
 También adjunte los archivos trabajados para dar seguimiento y
para mejor corrección de la tarea.
 Todo lo solicitado debe encontrarse dentro de una carpeta
comprimida con su nombre:

TAREA

1. En electrónica, las resistencias suelen ir identificadas por un código


de colores que permite definir su valor en Ohmios (Ω) y su tolerancia
(%). Este código de colores está representado por la siguiente
tabla:

1era y 2da banda 3era banda 4ta banda


Color Factor
Dígito Tolerancia
Multiplicador (𝛀)
Ninguno 20%
Plata 0.01 10%
Oro 0.1 5%
Negro 0 1
Marrón 1 10
Rojo 2 102 2%
Naranja 3 103
Amarillo 4 104
Verde 5 105
Azul 6 106
Violeta 7 107
Gris 8
Blanco 9
Cada banda tiene un significado, que depende de cada color:

 Las primeras 2 bandas indican un número de 2 dígitos: Esos dos


dígitos vienen dados por el color de esas bandas, según la columna
"Dígito" de la tabla.

 La tercera banda es un valor por el que se multiplicará el número


obtenido por las bandas anteriores. Una vez multiplicados ambos
valores, obtenemos el valor de la resistencia en Ohmios (Ω).

 La cuarta banda indica la tolerancia de la resistencia y, como


puede verse en la tabla, no puede ser de cualquier color.

a. Crear una función 𝑟𝑒𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑖𝑎_𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎(𝑐𝑜𝑙𝑜𝑟, 𝑏𝑎𝑛𝑑𝑎) que reciba


como argumentos de entrada un color y el número de banda que
ocupa en la resistencia y devuelva la información siguiente: el dígito,
su factor multiplicador y/o tolerancia que le corresponda.

b. Usar la función de a) y luego implemente un programa que pida los


colores de las 4 bandas y muestre los valores devueltos por la función
anterior. El programa nos debe indicar el valor de la resistencia en
Ohmios (Ω) y la tolerancia (%). (Ver Ejemplo).

Ejemplo:

Unas resistencias con los siguientes colores, tienen los siguientes


valores de resistencia y tolerancia:
𝑽𝒆𝒓𝒅𝒆 − 𝑨𝒛𝒖𝒍 − 𝑨𝒎𝒂𝒓𝒊𝒍𝒍𝒐 − 𝑶𝒓𝒐: 56 × 104 Ω y 5% ⟹ 560𝑘Ω y 5%
𝑹𝒐𝒋𝒐 − 𝑵𝒆𝒈𝒓𝒐 − 𝑹𝒐𝒋𝒐 − 𝑹𝒐𝒋𝒐: 20 × 102 Ω y 2% ⟹ 2𝑘Ω y 2%
𝑹𝒐𝒋𝒐 − 𝑹𝒐𝒋𝒐 − 𝑴𝒂𝒓𝒓ó𝒏 − 𝑷𝒍𝒂𝒕𝒂: 22 × 10 Ω y 10% ⟹ 220Ω y 10%

Sugerencia:

Relacionar los colores Oro, Plata y Ninguno a los valores 10, 11 y 12


respectivamente.

También podría gustarte