Está en la página 1de 87

Salvaguardar el medio ambiente. . .

Es un principio rector
de todo nuestro trabajo en el apoyo del desarrollo
sostenible; es un componente esencial en la
erradicación de la pobreza y uno de los
cimientos de la paz”.

Kofi Annan
Facultad de Ingeniería Mecánica y Eléctrica
Ing. Carlos A. Mora Barradas

Algoritmos
computacionales y
programación
Objetivos

Codificar en un
Diseñar el algoritmo
Analizar un problema Construir el diagrama lenguaje de
para resolver el
para su resolución de flujo del Algoritmo programación el
problema
Algoritmo
Algoritmos y su
representación
Objetivo

Desarrollar algoritmos como herramienta en la


representación la solución matemática de problemas
científicos y de ingeniería.
Definición

ALGORITMO
Procedimiento para la resolución de problemas de
cualquier tipo mediante una determinada secuencia de
pasos simples y no ambiguos.

Utilizado originalmente para el cálculo matemático pero ahora es


ampliamente usado en programación
Estructura de la solución de un problema

Datos de
Proceso Resultados
entrada

Datos de entrada: Datos o condiciones iniciales con los que


contamos para resolver el problema.

Proceso: Secuencia de pasos para resolver el problema.

Resultados: Es la consecuencia de la aplicación del proceso


a los datos de entrada.
Características del Algoritmo

Definido: Indica el orden de los paso (secuencia).

Finito: Se integra por un número n de pasos.

Válido: Que haga lo que se pretende y devuelva los


resultados esperados.

Eficiente: Da una solución en un tiempo razonable.

Eficaz: Utiliza los recursos mínimos para dar el


resultado.
Premisa

¡¡¡EL ALGORITMO DEBE SER


REPRESENTADO PARA SER LEIDO
POR OTRAS PERSONAS!!!
Representación

Pseudocódigo: lenguaje PROPIO para la


codificación

Algoritmo
Diagrama de flujo: Gráfica de un
procedimiento para la resolución de un
problema
Ejemplo de diagramas de flujo
Clasificación de las partes de un script

Estructuras
Estructuras Estructuras
de
Secuenciales de selección
repetición.
Simbología

Objeto de Inicio de Algoritmo

Objeto de Fin de Algoritmo

Objeto de asignación
Simbología

Objeto Lectura

Objeto Salida

Objeto Decisión
Simbología

Objeto Ciclo Para

Objeto Ciclo Mientras


Objeto de Asignación

El objeto Asignación asigna valores a campos variables.


Objeto de Lectura

• El objeto Lectura permite la entrada de valores desde el teclado y se


los asigna a variables.
• Podrá ser leída cualquier cantidad de variables utilizando un solo
objeto Lectura.
Objeto de Salida

• El objeto Salida muestra valores en pantalla.

• Puede ser visualizada cualquier cantidad de valores utilizando un


solo objeto Salida.
Objeto Decisión

• Selecciona el flujo a seguir de acuerdo al valor lógico de una


condición.
• La condición debe ser siempre una expresión que al ser evaluada de
como resultado un valor de tipo de dato Lógico.
Objeto Ciclo Para

• Contiene un valor inicial que será asignado para iniciar la ejecución del ciclo, un valor
final y un valor de incremento.

• Ejecuta un bloque de objetos mientras que la variable contadora no alcance el límite


establecido por el valor final.

• Si el contador excede el valor final, la ejecución continuará a partir del objeto que
sigue al Cierre.

• En caso contrario, se ejecutará el cuerpo del ciclo y el contador será incrementado en


el valor indicado por el incremento.
Objeto Ciclo Mientras

• Tiene la función de ejecutar un bloque de objetos mientras que una


condición sea verdadera.
• La condición debe ser siempre una expresión que al ser evaluada de
como resultado un valor de tipo Lógico.
Estructuras secuenciales

Son listas de comandos


que se ejecutan uno
después de otro
Estructura de selección

• Permite ejecutar un comando (o conjunto de comandos) si una condición


lógica es verdadera, y un segundo comando o conjunto de comandos si la
condición lógica es falsa.

• Las condiciones lógicas que se evalúan con frecuencia contienen


operadores tanto relacionales como lógicos.

• Las estructuras de selección pueden contener múltiples estructuras,


inclusive otras estructuras condicionales o bucles anidados unos dentro de
otros.
Operaciones relacionales
Operaciones Boolenas

AND
Operaciones Boolenas

OR
Operaciones Boolenas

NOT
Operaciones relacionales y Booleanas
Programación
Objetivo

Proporcionar una guía básica para el uso de


Matlab como herramienta de alto nivel en la
solución y representación de problemas
técnicos, científicos y de ingeniería a través de
cálculos con vectores y matrices.
Alcance

El alcance y el poder de Matlab muy grande;


dispone de un código básico y de varias librerías
especializadas (toolboxes).

En este curso se hará referencia exclusivamente


al código básico. Sin embargo, se pretende que el
alumno sea capaz de resolver problemas más
complejos haciendo uso del entorno intuitivo
que ofrece Matlab.
Contenido

1. Primera parte. Conociendo MATLAB


2. Segunda parte. Los objetos de MATLAB
3. Tercera parte. Inicialización de variables en
MATLAB
4. Cuarta parte. Operaciones con MATLAB
5. Quinta parte. Funciones en MATLAB
6. Sexta parte. Programación en Matlab
7. Octava parte Graficación
Primera parte
CONOCIENDO MATLAB
Conociendo Matlab

Sistema interactivo de
cómputo científico.

Entorno de Matlab Entorno de visualización


Gráfica.

Lenguaje de
programación (M-file
editor).
Conociendo Matlab

El indicador (prompt) (>>) nos dice que Matlab está listo y a la espera de
que el usuario teclee un comando ó dato.
Conociendo Matlab

La ventana Gráfica
aparece cuando el
usuario introduce
comandos propios
de la graficación.
Conociendo Matlab

La ventana del m-file


editor aparece cuando el
usuario crea o modifica
un archivo .m (programa
o script Matlab)
Conociendo Matlab

Ventanas auxiliares de más uso:

• Historial de comandos (command history)


• Entorno de trabajo (workspace)
• Directorio de trabajo actual (current directory)
• Ayuda (help window).
Conociendo Matlab

También podemos
accesar al menú help
tecleando la
instrucción:
>>help
Ó
>>help tópico
Conociendo Matlab

Comencemos a trabajar con MATLAB.


Escribamos la siguiente línea. Al final hay que pulsar Enter.

» A=rand(6), B=inv(A), B*A


Conociendo Matlab
Conociendo Matlab

Otra de las fortalezas de MATLAB es la graficación, que se verá


posteriormente con más detalle.

Ejemplo:

» x=-4:.01:4; y=sin(x); plot(x,y), grid, title('Función seno(x)')


Conociendo Matlab
Tercera parte
INICIALIZACION DE VARIABLES EN
MATLAB
Inicialización de variables en Matlab

Tres métodos para asignar valores:

1. Listas de valores explícitos


2. El Operador Dos-Puntos
3. Entrada interactiva del usuario
Listas de valores explícitos

>>A = 2 (escalar)
>>B = [ 3 , -6.2 ] (vector)
>>C = [1 2 3;4 5 6 ;7 8 9] (matriz)

Lado Receptor Lado Emisor

Asignación
Inicialización de variables en Matlab

Tres los métodos para asignar valores:

1. Listas de valores explícitos


2. El Operador Dos-Puntos
3. Entrada interactiva del usuario
El Operador Dos-Puntos (:)

>>R = 1 : 10 ; Genera el nuevo vector R que


contiene los números del 1 al
10.

>>T = 0.0 : 0.5 : 5.0 ; Generará un nuevo vector T


con valores de 0.0, 0.5, 1.0,
1.5, ... , 4.5 y 5.0.

>>V = 1.5 : -0.25 : 0.0 ; Resulta en un nuevo vector V


con los elementos 1.5, 1.25,
1.0, ... , 0.25 y 0.0.
Inicialización de variables en Matlab

Tres los métodos para asignar valores:

1. Listas de valores explícitos


2. El Operador Dos-Puntos
3. Entrada interactiva del usuario
Entrada interactiva del usuario

Los valores pueden ser introducidos a través del teclado


usando los siguiente comandos:

Para variables numéricas:

>>x = input (‘mensaje’ ) ;

Para variables alfanuméricas (texto)

>>x = input ( ‘mensaje’, ‘s’ ) ;


Cuarta parte
OPERACIONES CON MATLAB
Operaciones básicas con escalares, vectores y matrices
en Matlab

Suma +
Resta -
Multiplicación *
División /
Potenciación ^
Radicación sqrt( )
Agrupación ()
Asignación =
Operaciones con vectores y matrices como ARREGLOS

Para indicar que queremos realizar operaciones de tipo


arreglo (elemento a elemento) entre vectores o matrices
utilizamos un punto que precede al operador
aritmético:

Suma +
Resta -
Multiplicación .*
División ./
Potenciación .^
Precedencia de las operaciones aritméticas

Usualmente combinamos varias operaciones en una sola expresión


aritmética, por lo tanto es importante conocer en que orden se
realizarán las operaciones (por prioridad)

Agrupación () (prioridad 1)
Exponenciación ^ (prioridad 2)
Mult. y div. */ (prioridad 3)
Suma y resta +- (prioridad 4)
Valores y operaciones especiales en Matlab

pi Almacena el valor de


i,j Representan la unidad imaginaria √-1
inf Representa infinito y es la división entre cero (x/0)
NaN Indica Not-a-Number (No-es- número) 0/0
ans Es la respuesta más reciente derivada de un cálculo, que no
fue almacenada en ninguna variable.
% Representa comentario. Sirve para documentar las
operaciones y programas. Lo que se escriba a la derecha del %
se ignora por Matlab como cálculo.
Operadores Relacionales

< Menor que


> Mayor que
<= Menor o igual que
>= Mayor o igual que
== Igual. Idéntico.
~= Distinto.
Operadores Relacionales

Ejemplo:

x<=y donde si x y y son escalares, el valor que regresa


esta expresión será 1 (verdadero) sólo si x es menor o
igual que y; de lo contrario, se obtiene 0 (falso)
cuando x es mayor que y.

Si en lugar de escalares x y y fueran vectores, por ejemplo:

x=[246];y=[143];

Entonces, el resultado de la expresión x<=y, es el vector [ 0 1 0 ],


en tanto que el resultado de x~=y es el vector [ 1 0 1 ],
y el de x>=y proporciona [ 1 1 1 ].
Operadores Lógicos

También con precedencia:

~ Not. Negación ( no )
& And. Conjunción ( y )
&& And Breve. Si el 1er. Operador es falso ya no se realiza.
| Or. Disyunción ( o )
|| Or Breve. Si el 1er. Operador es true ya no se realiza.
xor(x,y) Or exclusivo. Si los dos son 1 o 0 regresa 0.

A B ~A ~B A|B A&B
0 0 1 1 0 0
0 1 1 0 1 0
1 0 0 1 1 0
1 1 0 0 1 1
Quinta parte
FUNCIONES CON MATLAB
Funciones en Matlab

• Función algebraica

• Función predefinida o de biblioteca

• Funciones definidas por el usuario


Función algebraica

El concepto función lo conocemos todos

y = f(x) ó z = f(x, y);

que es cuando existe una relación dependencia entre variables y que


da lugar a valores en un dominio y su contradominio. Para Matlab
ambos son vectores o matrices de las mismas dimensiones.
Función algebraica

y = Sen(x)

z = x^2-3x+2

var = exp(y)

F = 1.8C + 32
Función predefinida o de biblioteca

Se refiere a un procedimiento o programa que ha sido


almacenado previamente en Matlab. Operan recibiendo
argumentos ó parámetros (Datos de entrada) y regresando
como resultado algún tipo específico de dato (valores de
retorno).

Estas funciones pueden tener cero, uno ó múltiples argumentos. Por


ejemplo, pi (no recibe ningún argumento) regresa 3.141592...

>>nombre_de_función( arg1, arg2, ... ) ;

>>y = sin( abs( x ) ) ;


Las funciones matemáticas comunes en Matlab

• Valor Absoluto de x >>abs ( x ) ;


• Raíz cuadrada de x >>sqrt ( x ) ;
• Exponencial base e ( ex ) >>exp ( x ) ;
• Redondear x al entero mas cercano >>round ( x ) ;
• Truncar decimales de x >>fix ( x ) ;
• Redondear al entero inferior a x >>floor ( x ) ;
• Redondear al entero superior a x >>ceil ( x ) ;
• Residuo entero de x/y. >>rem ( x , y ) ; ó mod ( x , y ) ;
• Logaritmo natural de x >>log ( x ) ;
• Logaritmo base diez de x >>log10 ( x ) ;
• Signo indicador del valor de x >>sign ( x ) ; (devuelve –1 si x es
menor que cero, 0
si x es igual a cero
y 1 si x es mayor
que cero)
Las funciones matemáticas comunes en Matlab

• Seno de x >>sin ( x ) ;
• Arco seno de x >>asin ( x ) ;
• Coseno de x >>cos ( x ) ;
• Arco coseno de x >>acos ( x ) ;
• Tangente de x >>tan ( x ) ;
• Arco tangente de x >>atan ( x ) ;
• Secante de x >>sec ( x ) ;
• Arco secante de x >>asec ( x ) ;
• Cosecante de x >>csc ( x ) ;
• Arco cosecante de x >>acsc ( x ) ;
• Cotangente de x >>cot ( x ) ;
• Arco cotangente de x >>acot ( x ) ;
Funciones Especiales de Matlab

Para generar matrices de ceros:

>>zeros (dimensión);

En donde dimensión es un número escalar. El comando zeros generará


una matriz cuadrada de ceros

También dimensión podría referirse a dos argumentos escalares como


en zeros(m, n). Entonces, se generará una matriz de ceros con m
filas y n columnas.
Funciones Especiales de Matlab

Para generar matrices con unos:

>>ones (dimensión) ;

Generación de matrices identidad:

>>eye (dimensión) ;
Funciones Especiales de Matlab

Números aleatorios en Matlab:

>>rand ( n ) ; genera una matriz de n x n que


contiene números aleatorios entre 0 y
1
ó

>>rand ( m, n ) ; genera una matriz de tamaño m x n


que contiene números aleatorios entre
0y1
Funciones matemáticas adicionales

Sumar los elementos de un vector o matriz x


>>sum ( x ) ;
Ordenar los elementos de un vector o matriz x
>>sort ( x ) ;
Valor del elemento más grande de un vector o matriz x
>>max ( x ) ;
Valor del elemento más pequeño de un vector o matriz x
>>min ( x ) ;
Máximo común divisor de los enteros x y y
>>gcd ( x , y ) ;
Funciones matemáticas adicionales

Mínimo común múltiplo de los enteros x e y


>>lcm ( x , y ) ;
Parte real del número complejo x
>>real ( x ) ;
v Parte imaginaria del número complejo x
>>imag ( x ) ;
Angulo de fase del complejo x
>>angle ( x ) ;
Obtener la magnitud del número complejo x
>>abs ( x ) ;
Sexta parte
PROGRAMACIÓN EN MATLAB
Comandos de
Programación
Asignación de valores a variables

N=N+1;
≈ X=0;
y=sin(x);
Entrada de valores desde teclado

≈ x = input(‘Dame x’);
Entrada de valores desde teclado

Variante de la sentencia input

• Permite imprimir un mensaje en la línea de comandos de MATLAB y


recuperar como valor de retorno un valor alfanumérico (texto).

• » nombre = input('¿Cómo te llamas?','s')


Entrada de valores desde teclado

≈ nombre= input(‘Dame tu nombre’,’s’);


Salida de mensajes

disp(‘Mensaje’)


fprintf(‘Mensaje’)
Salida de resultados

≈ fprintf(‘Result = %d’,x)
Sentencia fprintf

• Nos da una salida formateada


• fprintf('El número de ecuaciones es: %d\n',n)
• fprintf('El determinante es: %lf10.4\n',n)
• %s para cadenas de caracteres
• %d para variables enteras
• %f para variables de punto flotante
• %lf para variables de doble precisión
• fprintf('\n\nSe cumplió el Error Permisible.\n');
• fprintf('Método de Newton-Bayle\n\n');
Decisión

if Condición
Bloque de
objetos 1
2 1 ≈ else
Bloque de
objetos 2
end
Sentencia elseif (Bifurcación Múltiple)

if Cond 1
bloque 1

bloque 1 ≈ elseif Cond 2


bloque 2
else % opción por defecto
bloque 3 bloque 2
bloque 3
end
Selector de opciones

switch variable
case 1
disp(' Bloque de opciones 1')
case 2
disp(' Bloque de opciones 2')
otherwise
disp(‘Bloque de opciones 3')
end
Ciclo for

for Var = Ini:1:Fin;


≈ Bloque de objetos
end
Ciclo while

While (N ~= 0) & (x>0)


≈ Bloque de objetos
end
Referencias

• Rafael Campillo Rodríguez


Notas del Curso de Programación
Xalapa, 2002

• Javier García de Jalón, José Ignacio Rodríguez, Jesús Vidal


Aprenda Matlab 7.0 como si estuviera en primero
Madrid, 2005

• Carlos A. Mora Barradas


Notas del Curso de Programación
Xalapa, 2015
GRACIAS POR SU ATENCIÓN

Carlos Alberto Mora Barradas


carlos.mora@hotmail.com

También podría gustarte