Repetir-hasta
Ejercicio de algoritmo
Un teatro otorga descuentos según la edad del cliente.
Determinar la cantidad de dinero que el teatro deja de percibir
por cada una de las categorías. Tomar en cuenta que los niños
menores de 5 años no pueden entrar al teatro y que existe un
precio único en los asientos. Los descuentos se hacen
tomando en cuenta el siguiente cuadro, Ud define la muestra
Categoría             Edad           Descuento
       1              5-14           35%
       2              15-19          25%
       3              20-45          10%
       4              46-65          25%
       5              66 y más       35%
Repetitivos compuestos

Tarea
Suponga que tiene Ud una tienda y desea registrar las ventas
en una computadora. Diseñe un algoritmo en pseudocódigo
que lea por cada cliente:
1.el monto de la venta
2.calcule e imprima el IVA
3.calcule e imprima en total a pagar
4.lea la cantidad con la que paga el cliente
5.calcule e imprima el cambio
6.imprima un cierre diario con el dinero que debe haber en la caja
por día
Introducción al lenguaje
• Matlab es un lenguaje de programación de alto nivel, que integra
  la computación, la visualización y la programación en un
  ambiente muy fácil de usar. En donde los problemas y las
  soluciones son expresados en una notación matemática muy
  familiar.
• Matlab tiene muy poderosa aplicación en los siguientes campos:
   •   Matemáticas, estadística y computación
   •   Desarrollo de algoritmos
   •   Modelado, simulación y diseño de prototipos
   •   Gráficas científicas y de Ingeniería
   •   Desarrollo de aplicaciones, incluyendo la construcción de la
       interfaz gráfica con el usuario.
• MATLAB, proviene de la simplificación de Matrix laboratory,
  debido a que originalmente fue diseñado para proveer acceso
  fácil al trabajo con matrices
• Desde hace algunos años Matlab se ha convertido en la
  herramienta mas utilizada en el ambiente universitario en cursos
  introductorios y avanzados de Matemáticas e Ingeniería. En la
  industria Matlab es una herramienta muy útil en cuanto a
  análisis, Desarrollo e investigación de la productividad
• Matlab está constituido por una familia de aplicaciones
  específicas llamadas toolboxes. De acuerdo con el campo en el
  cual el usuario va a implementar su aplicación, selecciona la
  Toolbox necesaria.
Sistema Matlab

• El lenguaje de programación: Es un lenguaje de arreglos
  matriciales de alto nivel, con control de flujo de sentencias,
  funciones, estructuras de datos, entradas/salidas, y especiales
  características de programación orientada a objetos
• Ambiente de trabajo: Este es el kit de herramientas que uno
  puede tener disponible como usuario o programador de Matlab.
  Incluye facilidades para manejo de variables en el ambiente de
  trabajo y exportación e importación de datos
• Manejador de Gráficos: Este incluye un elevado nivel de
  comandos para la visualización de datos en dos y tres
  dimensiones, procesamiento de imágenes, animaciones y
  presentación de gráficos
• Librería de funciones matemáticas: Esta es una robusta
  colección de algoritmos computacionales, que reúne desde
  funciones elementales como suma, seno, coseno y aritmética
  compleja, hasta funciones mas sofisticadas como inversas de
  matrices, funciones de Bessel y transformadas rápidas de
  Fourier
• Interfaz con programas: Esta es una librería que permite
  escribir programas en C y Fortran que interactúan con Matlab.
  Incluye facilidades para llamar rutinas desde Matlab (enlace
  dinámico)
SIMULINK
Este es uno de los programas que acompaña a Matlab, es un
sistema interactivo para simulación de sistemas dinámicos no
lineales. Este programa controlado con el mouse nos permite
modelar un sistema dibujando diagramas de bloques en la pantalla

Cuando dibujamos un bloque en la pantalla, Simulink genera un
programa en C
•   Mandatos básicos
•   Variables
•   Funciones
•   Complejos
•   Vectores
•   Matrices
•   Polinomios
•   Gráficas
•   Programación
Mandatos básicos

   » help, help tema, help win
   » dir
   » diary fichero (formato de texto)
• Comentarios: %
• Edición de líneas de comando
• Cortar y Pegar
Variables

• Asignar           • Guardar
   » a = 3, b = 4      » save fichero
• Listar            • Recuperar
   » ans               » load fichero
   » who
   » whos
• Eliminar
   » clear b
Constantes y cadenas

• Número π:     pi         • Formatos numéricos
                              »format long
• Unidad imaginaria: i,j
                              »format short
• Precisión:         eps      »format rat
• Infinito:          Inf • Cadenas de caracteres
• Indeterminación:   NaN    »'Esto es una cadena’
                            »Esto no
Funciones
                              (x3+1)/x
• help elfun
                    8
   x   sin
                    6
   x   cos
                    4
   x   tan
                    2
   x   exp          0

• ezplot (x3+1)/x   -2
                    -4
                    -6
                         -2      0       2
                                 x
Números Complejos

• Forma binómica            • Módulo y argumento
» z = 3 + 4i                » abs(z)
• Parte real e imaginaria   » angle(z)
» real(z)                   • Representación gráfica
» imag(z)                   » plot(z,'*')
• Complejo conjugado        » compass(z)
» conj(z)
Vectores
• Edición            •   Normas
» u = [1 2 3]        »   norm(v,2)
» v = [1,2,3]        »   norm(v,1)
» w = [1;2;3]        »   norm(v,inf)
                            1
» w =[1 2 3]              0.8
                          0.6

• Progresivos             0.4
                          0.2

» 0:0.1:10                  0
                          -0.2
                          -0.4
» linspace(0,1,11)        -0.6
                          -0.8
                           -1
                                 -1   -0.6   -0.2   0.2   0.6   1
Operaciones con vectores

• Suma:             u+v        • Transpuesta: u'
   • de comps.:     sum(u)     • Voltear
• Productos                    » fliplr(x)
   • por escalar:   2*u        » flipud(x')
   • escalar:       dot(u,v)   • Funciones
   • elemental:     u.*v       » x = -1:0.01:1
   • matricial:     u*w, w*u   » y = tanh(x)
   • de comps.:     prod(u)    » plot(x,y)
Matrices

 • Edición             • Bloques

 » A = [1,2;3,4]       » M = [A,B;B,A]

 » B=[-1-2-3-4]        • Submatrices
                       » M41= M(1:3,2:4)
 • Elemento: A(2,1)
                       » fil = [1,2,4]
 • Fila:      A(2,:)
                       » col = [1,3,4]
 • Columna: A(:,1)     » M32= M(fil,col)
Operaciones con matrices

• Suma y resta:      +        -   • Determinante

                                  » det(A)
• Producto: *        .*
                                  • Inversa
• Potencia: ^        .^
                                  » inv(A)
• Cociente izq.: /       ./
                                  • Rango
• Cociente der.:        .
                                  » rank(A)
• Transpuesta: '         .'
Matrices usuales

 • Identidad de orden n:   eye(n)

 • Nula de tamaño m×n:     zeros(m,n)

 • Matriz de unos:   ones(m,n)

 • Matriz aleatoria: rand(m,n)

 • Matriz de Hilbert: hilb(n)

 • Matriz de van der Monde: vander(x)
Polinomios

         p( x ) = 2 x 3 − 5x 2 + 34 x − 7
                  3               3

 • Coeficientes            p=[2/3 -5 34/3 -7]
 • Valor de p en x:        polyval(p,x)
 • Raíces:                 roots(p)
 • Multiplicación:         conv(p,q)
 • División con resto: [q,r] = deconv(p,d)
Formato gráfico
 • Estilo de línea
    • Trazo: ·, o, x, +, –, *, :, –
      ·, – –
    • Color: r, g, b, y, m, c, w, k
 • Títulos
                       8
                       6

    • title,           4
                       2      Máximo
    • xlabel, ylabel    0
                       -2              Mínimo
    • text, gtext      -4
                       -6
                       -8 0   1   2     3   4   5
Curvas planas

 • Cartesianas                  90         1
                          120                  60
   • ezplot                           0.75

   • fplot          150              0.5             30
                                  0.25
   • plot
 • Polares        180                                      0


   • polar
                    210                              330
 • Paramétricas
   • plot                 240                  300
                                270
Funciones de dos variables

• Crear la malla de puntos en el plano XY
  »x =-1:0.1:1; y =x;
  »[X,Y] = meshgrid(x,y);
• Evaluar la función sobre X, Y
  » z = X .* Y;
• Representar z respecto a X e Y
  » surf(x,y,z)
Opciones gráficas 3D
• Malla transparente
  »mesh(x,y,z), hidden off
• Superficie color degradado sin malla
  »surf(x,y,z), shading interp
• Mapa físico
  »pcolor(x,y,z),hold on
  »contour(x,y,z,'k') % k es negro
Curvas en 3D y superficies

• Curvas en 3D
  » t = 0:pi/500:4*pi;
  » x = sin(t); y = cos(t); z = t;
  » plot3(x,y,z)% Hélice
• Superficies de revolución
  » cylinder(x);
• Esfera
  » sphere
Programación

• Lenguaje de programación más limitado que C
• IF
» If condicion; sentencias; end
» If condicion 1; bloque 1;elseif
  condicion   2;      bloque     2;    else
  bloque 3; end
• Switch (análoga un conjunto if...elseif)
» Switch switch expresion;case,
 bloque    n;   otherwise   bloque   n+1,
 end
• For
» For For i=1:m
     For j=1:n
         Sentencias
     end
   end
• While
» while condición; sentencias; end
• Break
• Try... Catch... End (gestión de errores)
» try sentencia1; catch sentecia 2;
 end
• Input
» n = input (‘teclee un número’)
• Disp
» disp (‘el programa ha terminado’)
Ficheros *.m
• Son ficheros de texto (ASCII) que constituyen el centro
  de la programación en Matlab
• Existen 2 tipos, de comando y de funciones
• Fichero de comando contiene una sucesión de
  comandos que se ejecutan al teclear su nombre, puede
  llamar a otros ficheros de comando
• Fichero de funciones permite definir funciones análogas
  a las de Matlab, con su nombre, sus argumentos y sus
  valores de retorno (comienza siempre por function)

Ca 3

  • 2.
    Repetir-hasta Ejercicio de algoritmo Unteatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro, Ud define la muestra Categoría Edad Descuento 1 5-14 35% 2 15-19 25% 3 20-45 10% 4 46-65 25% 5 66 y más 35%
  • 3.
    Repetitivos compuestos Tarea Suponga quetiene Ud una tienda y desea registrar las ventas en una computadora. Diseñe un algoritmo en pseudocódigo que lea por cada cliente: 1.el monto de la venta 2.calcule e imprima el IVA 3.calcule e imprima en total a pagar 4.lea la cantidad con la que paga el cliente 5.calcule e imprima el cambio 6.imprima un cierre diario con el dinero que debe haber en la caja por día
  • 4.
  • 5.
    • Matlab esun lenguaje de programación de alto nivel, que integra la computación, la visualización y la programación en un ambiente muy fácil de usar. En donde los problemas y las soluciones son expresados en una notación matemática muy familiar. • Matlab tiene muy poderosa aplicación en los siguientes campos: • Matemáticas, estadística y computación • Desarrollo de algoritmos • Modelado, simulación y diseño de prototipos • Gráficas científicas y de Ingeniería • Desarrollo de aplicaciones, incluyendo la construcción de la interfaz gráfica con el usuario.
  • 6.
    • MATLAB, provienede la simplificación de Matrix laboratory, debido a que originalmente fue diseñado para proveer acceso fácil al trabajo con matrices • Desde hace algunos años Matlab se ha convertido en la herramienta mas utilizada en el ambiente universitario en cursos introductorios y avanzados de Matemáticas e Ingeniería. En la industria Matlab es una herramienta muy útil en cuanto a análisis, Desarrollo e investigación de la productividad • Matlab está constituido por una familia de aplicaciones específicas llamadas toolboxes. De acuerdo con el campo en el cual el usuario va a implementar su aplicación, selecciona la Toolbox necesaria.
  • 7.
    Sistema Matlab • Ellenguaje de programación: Es un lenguaje de arreglos matriciales de alto nivel, con control de flujo de sentencias, funciones, estructuras de datos, entradas/salidas, y especiales características de programación orientada a objetos • Ambiente de trabajo: Este es el kit de herramientas que uno puede tener disponible como usuario o programador de Matlab. Incluye facilidades para manejo de variables en el ambiente de trabajo y exportación e importación de datos • Manejador de Gráficos: Este incluye un elevado nivel de comandos para la visualización de datos en dos y tres dimensiones, procesamiento de imágenes, animaciones y presentación de gráficos
  • 8.
    • Librería defunciones matemáticas: Esta es una robusta colección de algoritmos computacionales, que reúne desde funciones elementales como suma, seno, coseno y aritmética compleja, hasta funciones mas sofisticadas como inversas de matrices, funciones de Bessel y transformadas rápidas de Fourier • Interfaz con programas: Esta es una librería que permite escribir programas en C y Fortran que interactúan con Matlab. Incluye facilidades para llamar rutinas desde Matlab (enlace dinámico)
  • 9.
    SIMULINK Este es unode los programas que acompaña a Matlab, es un sistema interactivo para simulación de sistemas dinámicos no lineales. Este programa controlado con el mouse nos permite modelar un sistema dibujando diagramas de bloques en la pantalla Cuando dibujamos un bloque en la pantalla, Simulink genera un programa en C
  • 10.
    Mandatos básicos • Variables • Funciones • Complejos • Vectores • Matrices • Polinomios • Gráficas • Programación
  • 11.
    Mandatos básicos » help, help tema, help win » dir » diary fichero (formato de texto) • Comentarios: % • Edición de líneas de comando • Cortar y Pegar
  • 12.
    Variables • Asignar • Guardar » a = 3, b = 4 » save fichero • Listar • Recuperar » ans » load fichero » who » whos • Eliminar » clear b
  • 13.
    Constantes y cadenas •Número π: pi • Formatos numéricos »format long • Unidad imaginaria: i,j »format short • Precisión: eps »format rat • Infinito: Inf • Cadenas de caracteres • Indeterminación: NaN »'Esto es una cadena’ »Esto no
  • 14.
    Funciones (x3+1)/x • help elfun 8 x sin 6 x cos 4 x tan 2 x exp 0 • ezplot (x3+1)/x -2 -4 -6 -2 0 2 x
  • 15.
    Números Complejos • Formabinómica • Módulo y argumento » z = 3 + 4i » abs(z) • Parte real e imaginaria » angle(z) » real(z) • Representación gráfica » imag(z) » plot(z,'*') • Complejo conjugado » compass(z) » conj(z)
  • 16.
    Vectores • Edición • Normas » u = [1 2 3] » norm(v,2) » v = [1,2,3] » norm(v,1) » w = [1;2;3] » norm(v,inf) 1 » w =[1 2 3] 0.8 0.6 • Progresivos 0.4 0.2 » 0:0.1:10 0 -0.2 -0.4 » linspace(0,1,11) -0.6 -0.8 -1 -1 -0.6 -0.2 0.2 0.6 1
  • 17.
    Operaciones con vectores •Suma: u+v • Transpuesta: u' • de comps.: sum(u) • Voltear • Productos » fliplr(x) • por escalar: 2*u » flipud(x') • escalar: dot(u,v) • Funciones • elemental: u.*v » x = -1:0.01:1 • matricial: u*w, w*u » y = tanh(x) • de comps.: prod(u) » plot(x,y)
  • 18.
    Matrices • Edición • Bloques » A = [1,2;3,4] » M = [A,B;B,A] » B=[-1-2-3-4] • Submatrices » M41= M(1:3,2:4) • Elemento: A(2,1) » fil = [1,2,4] • Fila: A(2,:) » col = [1,3,4] • Columna: A(:,1) » M32= M(fil,col)
  • 19.
    Operaciones con matrices •Suma y resta: + - • Determinante » det(A) • Producto: * .* • Inversa • Potencia: ^ .^ » inv(A) • Cociente izq.: / ./ • Rango • Cociente der.: . » rank(A) • Transpuesta: ' .'
  • 20.
    Matrices usuales •Identidad de orden n: eye(n) • Nula de tamaño m×n: zeros(m,n) • Matriz de unos: ones(m,n) • Matriz aleatoria: rand(m,n) • Matriz de Hilbert: hilb(n) • Matriz de van der Monde: vander(x)
  • 21.
    Polinomios p( x ) = 2 x 3 − 5x 2 + 34 x − 7 3 3 • Coeficientes p=[2/3 -5 34/3 -7] • Valor de p en x: polyval(p,x) • Raíces: roots(p) • Multiplicación: conv(p,q) • División con resto: [q,r] = deconv(p,d)
  • 22.
    Formato gráfico •Estilo de línea • Trazo: ·, o, x, +, –, *, :, – ·, – – • Color: r, g, b, y, m, c, w, k • Títulos 8 6 • title, 4 2 Máximo • xlabel, ylabel 0 -2 Mínimo • text, gtext -4 -6 -8 0 1 2 3 4 5
  • 23.
    Curvas planas •Cartesianas 90 1 120 60 • ezplot 0.75 • fplot 150 0.5 30 0.25 • plot • Polares 180 0 • polar 210 330 • Paramétricas • plot 240 300 270
  • 24.
    Funciones de dosvariables • Crear la malla de puntos en el plano XY »x =-1:0.1:1; y =x; »[X,Y] = meshgrid(x,y); • Evaluar la función sobre X, Y » z = X .* Y; • Representar z respecto a X e Y » surf(x,y,z)
  • 25.
    Opciones gráficas 3D •Malla transparente »mesh(x,y,z), hidden off • Superficie color degradado sin malla »surf(x,y,z), shading interp • Mapa físico »pcolor(x,y,z),hold on »contour(x,y,z,'k') % k es negro
  • 26.
    Curvas en 3Dy superficies • Curvas en 3D » t = 0:pi/500:4*pi; » x = sin(t); y = cos(t); z = t; » plot3(x,y,z)% Hélice • Superficies de revolución » cylinder(x); • Esfera » sphere
  • 27.
    Programación • Lenguaje deprogramación más limitado que C • IF » If condicion; sentencias; end » If condicion 1; bloque 1;elseif condicion 2; bloque 2; else bloque 3; end
  • 28.
    • Switch (análogaun conjunto if...elseif) » Switch switch expresion;case, bloque n; otherwise bloque n+1, end • For » For For i=1:m For j=1:n Sentencias end end • While » while condición; sentencias; end
  • 29.
    • Break • Try...Catch... End (gestión de errores) » try sentencia1; catch sentecia 2; end • Input » n = input (‘teclee un número’) • Disp » disp (‘el programa ha terminado’)
  • 30.
    Ficheros *.m • Sonficheros de texto (ASCII) que constituyen el centro de la programación en Matlab • Existen 2 tipos, de comando y de funciones • Fichero de comando contiene una sucesión de comandos que se ejecutan al teclear su nombre, puede llamar a otros ficheros de comando • Fichero de funciones permite definir funciones análogas a las de Matlab, con su nombre, sus argumentos y sus valores de retorno (comienza siempre por function)