You are on page 1of 79

Algoritmo y Programacin

Semestre: 2017-2
Introduccin a Lenguaje de
Programacin
La solucin de problemas mediante el uso de un computador nos lleva a
desarrollar programas o aplicaciones, la construccin de estos programas
debe ser realizada mediante una metodologa, los pasos para la
construccin de programas son:
1. Disear el algoritmo, consiste en analizar el problema y describir los
instrucciones de forma ordenada que resuelven el problema.
2. Codificar de forma sistemtica la secuencia de instrucciones en un lenguaje.
3. Ejecutar y validar el programa en un computador (verificacin)
Qu es un lenguaje de
programacin?
Un lenguaje de programacin es una tcnica estndar de comunicacin
que permite expresar las instrucciones que han de ser ejecutadas en una
computadora. Estas instrucciones permiten la construccin de programas
con los cuales podemos realizar operacin de entrada y salida,
almacenamiento, clculos y lgica de comparacin.
Un lenguaje de programacin permite a un programador especificar de
manera precisa: sobre qu datos una computadora debe operar, cmo
deben ser estos almacenados y transmitidos y qu acciones debe tomar
bajo una variada gama de circunstancias. Todo esto, a travs de un
lenguaje que intenta estar relativamente prximo al lenguaje humano o
natural, tal como sucede con el lenguaje
Clasificacin de los Lenguajes de
Programacin
Segn nivel de abstraccin:
Lenguajes de bajo nivel: Son lenguajes de programacin que se acercan al
funcionamiento de una computadora. El lenguaje de ms bajo nivel es, por excelencia, el
cdigo mquina. A ste le sigue el lenguaje ensamblador, ya que al programar en
ensamblador se trabajan con los registros de memoria de la computadora de forma
directa.
Lenguaje de medio nivel: Hay lenguajes de programacin que son considerados por
algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C al tener
ciertas caractersticas que los acercan a los lenguajes de bajo nivel pero teniendo, al
mismo tiempo, ciertas cualidades que lo hacen un lenguaje ms cercano al humano y,
por tanto, de alto nivel.
Lenguaje de alto nivel: Los lenguajes de alto nivel son normalmente fciles de aprender
porque estn formados por elementos de lenguajes naturales, como el ingls. En Visual
Basic, el lenguaje de alto nivel ms conocido, los comandos como "IF CONTADOR = 10
THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual
a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante,
dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo
hacen en realidad de una forma rgida y sistemtica.
Clasificacin de los Lenguajes de
Programacin
Segn su Paradigma:
Imperativo
Declarativo
Estructurado
Orientado a Objetos
Funcional
Lgico
Clasificacin de los Lenguajes de
Programacin
Segn la forma de ejecucin:
Lenguajes compilados: Los compiladores son aquellos cuya funcin es traducir
un programa escrito en un determinado lenguaje a un idioma que la
computadora entienda (lenguaje mquina con cdigo binario).
Lenguajes Interpretados: Un programa intrprete, almacenado en el sistema
operativo del disco, o incluido de manera permanente dentro de la mquina,
convierte cada proposicin del programa fuente en lenguaje de mquina
conforme vaya siendo necesario durante el proceso de los datos. No se graba
el cdigo objeto para utilizarlo posteriormente.
Y Que es Programar?

Pensar y ordenar las acciones necesarias para realizar un proyecto


Todo lenguaje tiene 3 partes:
Lxico-grfica: Coleccin de vocablos o palabras de una lengua
Sintaxis: Formas en que se combinan las palabras
Semntica: Significado, sentido o interpretacin de signos lingsticos
Matlab Entorno y espacio de trabajo
Todas las sentencias que vamos a utilizar las escribiremos en la ventana command
window (ventana de comandos). Es la ventana de mayor tamao.
Matlab Entorno y espacio de trabajo
Si queremos informacin acerca de las variables que estamos utilizando en
Matlab podemos verlas en la ventana workspace (espacio de trabajo) o usar:
who para obtener la lista de las variables (no de sus valores)
whos para obtener la lista de las variables e informacin del tamao, tipo y
atributos (tampoco da valores) para ver esta ventana tenemos que pinchar
en la ventana que tiene este nombre. Est en la parte superior derecha:
Matlab Entorno y espacio de trabajo

Si lo que queremos es conocer el valor que tiene una variable lo hacemos escribiendo el
nombre de la variable y pulsando enter.

Para recordar rdenes previas usamos las flechas del teclado y . tambin podemos verlas en
la ventana command history, ventana situada en la parte inferior derecha:
Operaciones con Escalares
Un slo valor, llamado escalar, se representa en MATLAB como una
matriz 1 x 1.
En la siguiente tabla se muestran las operaciones aritmticas ms comunes
entre dos escalares:

Operacin Smbolo Expresin en Matlab


Suma + a+b
Resta - ab
Multiplicacin * a*b
Divisin / a/b
Potencia ^ a^b
Operaciones con Escalares
Orden de precedencia:

Matlab no tiene en cuenta los espacios.


Si queremos que matlab evale la lnea pero que no escriba la respuesta, basta escribir punto y
coma (;) al final de la sentencia.
Si la sentencia es demasiado larga para que quepa en una sola lnea podemos poner tres puntos ()
seguido de la tecla enter para indicar que contina en la lnea siguiente.
Ejemplo:
3+5x2+1
(4 + 6) x 2 + 4
8/(10+4) x 2^2
Formato de visualizacin de nmeros
Matlab no cambia la representacin interna de un numero cuando se escogen
distintos formatos, solo se modifica la forma de visualizarlo:
Funciones matemticas bsicas

Redondeo

Funcin Qu hace? Ejm: X = 6.93


Ceil (x) Redondea hacia el entero superior 7
Fix (x) Redondea hacia cero 6
Floor (x) Redondea hacia el entero inferior 6
Round Redondea hacia el entero ms 7
(x) prximo
Funciones matemticas bsicas

Trigonometra
Funciones matemticas bsicas

Algunas Operaciones
Funciones matemticas bsicas

Nmeros Complejos
Variables

Matlab almacena el ultimo resultado en la variable ans. Ejm:


>> 3 + 5*2 + 1
ans = 14
Reglas para nombrar variables
El nombre de una variable puede tener como mximo 63 caracteres (31 en versiones
anteriores), que pueden ser letras, nmeros y el guin de subrayar
El primer carcter tiene que ser una letra.
Las maysculas y las minsculas tienen valor distintivo. La variable Base es distinta de
la variable base.
Dentro de un nombre de variable no puede haber espacios en blanco.
Existen nombres que deben evitarse, porque tienen significado propio en Matlab: ans,
pi, Inf, . . .
Variables

Variables especiales en Matlab


Ejercicio

Realizar las operaciones siguientes y guardar el resultado en la variable


que se indica:
s = 3^2 5 6/3 2
t = 3^2 5 6 /(3 2)
s+t+1
Obtener el valor absoluto de -6
Hallar el mximo comn divisor entre 9 y 12
Hallar el mnimo comn mltiplo de 10 y 25
Hallar el Seno(/2)
Vectores y Matrices

Para crear un vector introducimos los valores deseados separados por


espacios (o comas) todo ello entre corchetes [].
Si lo que queremos es crear una matriz lo hacemos de forma anloga pero
separando las filas con puntos y comas (;).
Generalmente usaremos letras maysculas cuando nombremos a las
matrices y minsculas para vectores y escalares. Esto no es imprescindible
y Matlab no lo exige, pero resulta til.
Ejemplos
Direccionamiento de elementos de
Vectores y Matrices
Para acceder a los elementos individuales de un vector lo haremos
utilizando subndices, as x(n) sera el n-simo elemento del vector x. Si
queremos acceder al ltimo podemos indicarlo usando end como
subndice.
Ejemplo:
x = [5 7 -2 4 -6];
Hallar el segundo elemento del vector x
Hallar el ltimo elemento del vector x
Direccionamiento de elementos de
Vectores y Matrices
Para acceder a un bloque de elementos a la vez, se usa la notacin de
dos puntos (:), as x (m:n) nos da todos los elementos desde el m-simo
hasta el n-simo del vector x. Ejemplo:
x(2:4) % devuelve desde el segundo al cuarto elemento del vector x
Si introducimos un nmero entre el primero y el segundo tambin separado
por dos puntos (:) se mostrarn los elementos del primero al ltimo
indicado, incrementados segn el nmero que aparece en el centro (o
decrementados si el nmero es negativo). Ejemplo:
Hallar el primero, tercero y quinto elemento del vector x
Otra forma de obtener un conjunto concreto de elementos del vector es
indicando entre corchetes [] las posiciones de los elementos que queremos
obtener y finalmente parntesis fuera de los corchetes.
Direccionamiento de elementos de
Vectores y Matrices
Para acceder a los elementos de una matriz necesitamos dar dos valores,
el primero indica la fila y el segundo la columna. Ejm:
Sea la matriz A = [1 2 3; 4 5 6]
Hallar elemento de la matriz que est en la fila 2 y en la columna 1
Si queremos que escriba toda una fila usaremos los dos puntos para indicar
que queremos todos los elementos.
Y similar si queremos que escriba toda una columna pero ahora situamos
los dos puntos en el lugar de las filas para indicar que queremos todas las
filas de esa columna.
Al igual que con los vectores podemos indicar que escriba una serie de
filas o columnas, la manera de hacerlo sera muy parecido.
Construccin abreviada de vectores

A parte de crear vectores introduciendo cada uno de sus elemento, se pueden crear haciendo
uso de las siguientes sentencias:
(a:b) crea un vector que comienza en el valor a y acaba en el valor b aumentando de 1 en 1.
(a:c:b) crea un vector que comienza en el valor a y acaba en el valor b aumentando de c en c.
linspace (a,b,c) genera un vector linealmente espaciado entre los valores a y b con c elementos.
linspace (a,b) genera un vector linealmente espaciado entre los valores a y b con 100 elementos.
logspace (a,b,c) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con c
elementos.
logspace (a,b) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con 50
elementos.
Construccin de algunas matrices
Al igual que pasa con los vectores, existen unas sentencias que nos ayudan a crear algunas matrices que Matlab ya
tiene predefinidas (m y n deben tomar valores naturales):
zeros (n) crea una matriz cuadrada n x n de ceros.
zeros (m,n) crea una matriz m x n de ceros.
ones (n) crea una matriz cuadrada n x n de unos.
ones (m,n) crea una matriz m x n de unos.
rand (n) crea una matriz cuadrada n x n de nmeros aleatorios con distribucin uniforme (0,1).
rand (m,n) crea una matriz m x n de nmeros aleatorios con distribucin uniforme (0,1).
randn (n) crea una matriz cuadrada n x n de nmeros aleatorios con distribucin normal (0,1).
randn (m,n) crea una matriz m x n de nmeros aleatorios con distribucin normal (0,1).
eye (n) crea una matriz cuadrada n x n de unos en la diagonal y ceros el resto.
eye (m,n) crea una matriz m x n de unos en la diagonal y ceros el resto.
magic (n) crea una matriz cuadrada n x n de enteros de modo que sumen lo mismo las filas y las
columnas.
hilb (n) crea una matriz cuadrada n x n de Hilbert, es decir, los elementos (i,j) responden a la
expresin (1/(i+j-1)).
invhilb (n) crea una matriz cuadrada n x n que es la inversa de la matriz de Hilbert.
Operaciones bsicas con matrices
Ejercicios
Crear un vector que comienza en 1, aumenta de 1 en 1 y acaba en 7
Crear un vector que comenzando en 1, aumenta de 3 en 3 hasta el 10
Crear un vector comenzando en 1, aumenta de 4 en 4 hasta el 10
Crear un vector que comenzando en 50, disminuye de 7 en 7 hasta el 1
Genera un vector desde el 2 al 6 con 4 elementos equidistantes
Genera un vector logartmicamente espaciado entre 10^0 y 10^2 con 4 elementos
Crear una matriz cuadrada 3 x 3 de ceros
Crear una matriz 2 x 3 de unos
Crear matriz 2 x 4 de valores aleatorios entre 0 y 1 con distribucin uniforme (0,1)
Crear matriz 2 x 5 de valores aleatorios con distribucin normal (0,1)
Ejercicios
Crear una matriz cuadrada de 4 x 4 de unos en la diagonal y ceros el resto (matriz
identidad o unidad)
Crear una matriz mgica de 4 x 4
Se definen las siguientes Matrices:
A = [1 2; 3 4] B = [1 1; 0 1]
C = [1 + 1.0i 2 + 2.0i; 3 + 1.0i 4 + 7.0i]
Multiplicar las Matrices A x B
Multiplicar elemento a elemento de A x B
Realizar la transpuesta conjugada de C
Realizar la transpuesta de C
Se puede realizar la suma de un numero a una matriz?. Realizar la prueba con el numero 2 a la
matriz A
Funciones para operar con vectores

Ejemplos:
x = [1 2 3]; y = [4 5 6];
cross (x,y) % producto vectorial
dot (x,y) % producto escalar
Funciones para el anlisis de matrices
Otras operaciones con Matrices
Grficos Bidimensionales

La orden plot genera una grfica. Los argumentos deben ser vectores de
la misma longitud.
Ejemplo:
x = [-2 -1 0 1 2 3]; y = [4 1 0 1 4 9];
plot (x,y)
Grficos Bidimensionales

Si se quiere cambiar la apariencia de la grfica basta dar clic en el ltimo


botn de la barra de herramientas y se abrirn unos cuadros en los
laterales que nos permitirn ir haciendo los cambios deseados como darle
nombre a los ejes.
Grficos Bidimensionales
La funcin plot nos permite otras opciones como superponer grficas sobre
los mismos ejes:
x = [-2 -1 0 1 2 3]; y = [4 1 0 1 4 9]; z = [6 5 3 7 5 2];
plot (x,y,x,z)
Tambin podemos usar distintos tipos de lneas para el dibujo de la grfica:
Grficos Bidimensionales
Adems se puede colocar etiquetas o manipular la grfica:
etiqueta sobre el eje X de la grfica actual: >> xlabel('texto')
etiqueta sobre el eje Y de la grfica actual: >> ylabel('texto')
ttulo en la cabecera de la grfica actual: >> title('texto')
texto en el lugar especificado por las coordenadas: >> text(x,y, 'texto')
texto, el lugar lo indicamos despus con el ratn: >> gtext('texto')
dibujar una rejilla: >> grid
fija valores mximo y mnimo de los ejes: >> axis( [xmin xmax ymin ymax] )
fija que la escala en los ejes sea igual: >> axis equal
fija que la grfica sea un cuadrado: >> axis square
desactiva axis equal y axis square: >> axis normal
abre una ventana de grfico: >> hold on
borra lo que hay en la ventana de grfico: >> hold off
Todas estas rdenes se le puede dar desde la propia ventana de la grfica una vez que
se haya abierto las opciones con el botn indicado anteriormente.
Grficos Bidimensionales
Otros comandos relacionados con las grficas son:
Grficos Bidimensionales
Una ventana grfica se puede dividir en m particiones horizontales y en n
verticales, de modo que cada subventana tiene sus propios ejes, y para hacer esto
vamos a usar subplot (m,n,p) donde p indica la subdivisin que se convierte en
activa. Ejm:
x = 1:360; y1 = sind (x); y2 = cosd (x); y3 = exp (x); y4 = exp (-x);
subplot (2,2,1), plot (x,y1), title ('seno')
subplot (2,2,2), plot (x,y2), title ('coseno')
subplot (2,2,3), plot (x,y3), title ('exponencial')
subplot (2,2,4), plot (x,y4), title ('-exponencial')
Grficos Bidimensionales
Para volver al modo por defecto basta escribir: subplot (1,1,1).
Para dibujar polgonos, usar la funcin plot pero teniendo en cuenta que el ltimo
punto de ambos vectores deben coincidir para que la grfica quede cerrada. Pero
si se quiere que quede coloreado todo el interior del polgono, se debe usar la
funcin fill, tiene tres argumentos, los dos vectores que forman los puntos y un tercer
argumento para indicar el color. Ejm:
Grficos Bidimensionales
x = [-2 0 2 0 -2]; y = [4 8 4 0 4];
fill (x,y,'r') % dibuja el polgono, 'r' indica el color rojo
Grficos Bidimensionales
Compresin mapa de colores:
Algoritmia

Algoritmo:
Secuencia finita de instrucciones, reglas o pasos que describen en forma
precisa las operaciones que una computadora debe realizar para llevar a
cabo una tarea en tiempo finito [Knuth, 1968].
Descripcin de un esquema de comportamiento expresado mediante un
repertorio finito de acciones y de informaciones elementales, identificadas,
bien comprendidas y realizables a priori. Este repertorio se denomina
lxico[Scholl, 1988].
Caractersticas de un algoritmo

Un algoritmo debe tener al menos las siguientes caractersticas:


Ser preciso
Ser definido
Ser finito
Presentacin formal: Las formas de presentacin de algoritmos son: el
pseudo cdigo, diagrama de flujo y diagramas de Nassi/Schneiderman,
entre otras.
Correccin
Eficiencia
Propiedades de los Algoritmos
Especificacin precisa de la entrada: El algoritmo debe dejar claro el nmero y tipo de
datos de entrada y las condiciones iniciales que deben cumplir esos valores de entrada
para conseguir que las operaciones tengan xito.
Especificacin precisa de cada instruccin: cada etapa del algoritmo debe estar
definida con precisin, no debe haber ambigedades sobre las acciones que se deben
ejecutar en cada momento.
Un algoritmo debe ser exacto y correcto: Un algoritmo se espera que resuelva un
problema y se debe poder demostrar que eso ocurre. Si las condiciones de entrada se
cumplen y se ejecutan todos los pasos el algoritmo entonces debe producir la salida
deseada.
Un algoritmo debe tener etapas bien definidas y concretas, un nmero finito de pasos,
debe terminar y debe estar claro la tarea que el algoritmo debe ejecutar.
Debe ser fcil de entender, codificar y depurar.
Debe hacer uso eficiente de los recursos de la computadora
Finitud: en longitud y duracin.
Precisin: Determinar sin ambigedad las operaciones que se deben ejecutar.
Efectividad: las reglas pueden ejecutarse sin el ordenador obtenindose el mismo
resultado.
Generalidad: Resolver una clase de problema y no un problema particular. Entradas y
salidas: puede tener varias entradas pero una sola salida, el resultado que se debe
obtener
Fases para elaborar un programa de
computador
Diagrama de Flujo
El Diagrama de Flujo es una herramienta grfica para la representacin
esquemtica de la secuencia de instrucciones de un algoritmo o de los
pasos de un proceso.
Reglas para elaborar Diagramas de
Flujo
Poner un encabezado que incluya un ttulo que identifique la funcin del algoritmo; el nombre del autor; y la fecha de
elaboracin
Slo se pueden utilizar smbolos estndar (ISO 5807)
Los diagramas se deben dibujar de arriba haca abajo y de izquierda a derecha
La ejecucin del programa siempre empieza en la parte superior del diagrama
Los smbolos de Inicio y Final deben aparecer solo una vez
La direccin del flujo se debe representar por medio de flechas (lneas de flujo)
Todas las lneas de flujo deben llegar a un smbolo o a otra lnea
Una lnea de flujo recta nunca debe cruzar a otra. Cuando dos lneas de flujo se crucen, una de ellas debe incluir una lnea
arqueada en el sitio donde cruza a la otra
Se deben inicializar las variables que se utilicen o permitir la asignacin de valores mediante consulta al usuario
Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetra
Cada rombo de decisin debe tener al menos dos lneas de salida (una para SI y otra para NO)
Las acciones y decisiones se deben describir utilizando el menor numero de palabras posible; sin que resulten confusas o
poco claras
Si el Diagrama se vuelve complejo y confuso, es mejor utilizar smbolos conectores para reducir las lneas de flujo
Todo el Diagrama debe ser claro, ordenado y fcil de recorrer
El Diagrama se debe probar recorrindolo con datos iniciales simples (prueba de escritorio).
Ejemplo
Disear un algoritmo (seudocdigo y diagrama de flujo) para hallar el rea
de un tringulo rectngulo cuya Base mide 3 cm, la Altura 4 cm y la
Hipotenusa 5 cm.
ANLISIS DEL PROBLEMA
Formular el problema: Ya se encuentra claramente planteado.
Resultados esperados: El rea de un tringulo rectngulo.
Datos disponibles: Base, Altura, Hipotenusa, tipo de tringulo. La incgnita es el rea y
todos los valores son constantes. El valor de la hipotenusa se puede omitir. El estudiante
debe preguntarse si sus conocimientos actuales de matemticas le permiten resolver
este problema; de no ser as, debe plantear una estrategia para obtener los
conocimientos requeridos.
Determinar las restricciones: Utilizar las medidas dadas.
Procesos necesarios: Guardar en dos variables (BASE y ALTURA) los valores de Base y
Altura; Guardar en una constante (DIV) el divisor 2; aplicar la frmula BASE*ALTURA/DIV
y guardar el resultado en la variable AREA; comunicar el resultado (AREA).
Ejemplo

Algoritmo en SEUDOCDIGO
Paso 1: Inicio
Paso 2: Asignar el nmero 2 a la constante "div"
Paso 3: Asignar el nmero 3 a la constante base
Paso 4: Asignar el nmero 4 a la constante altura
Paso 5: Guardar en la variable "rea" el resultado de base*altura/div
Paso 6: Imprimir el valor de la variable "rea"
Paso 7: Final
Ejemplo
Algoritmo en diagrama de flujo
Ejemplo 2
Elaborar un Algoritmo para calcular el rea de cualquier tringulo
rectngulo y presentar el resultado en pantalla.
SEUDOCDIGO
Paso 1: Inicio
Paso 2: Asignar el nmero 2 a la constante "Div"
Paso 3: Conocer la base del tringulo y guardarla en la variable "Base"
Paso 4: Conocer la altura del tringulo y guardarla en la variable "Altura"
Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base por "Altura"
Paso 6: Guardar en la variable "Area" el valor de dividir "Area entre "Div"
Paso 7: Reportar el valor de la variable "Area"
Paso 8: Final
Ejemplo 2
Algoritmo en diagrama de flujo
Ejercicios

Elaborar en Seudocdigo y luego en diagrama de flujo cada uno de los


siguientes ejercicios:
1. Hallar el rea de un cuadrado cuyo lado mide 5 cm.
2. Hallar uno de los lados de un rectngulo cuya rea es de 15 cm2
y uno de sus lados mide 3 cm.
3. Hallar el rea y el permetro de un crculo cuyo radio mide 2 cm.
4. Hallar el rea de un pentgono regular de 6 cm de lado y con 4 cm de
apotema.
Creacin de archivos Scripts

Hasta ahora los comandos MATLAB que hemos visto se ejecutaban en Ia


Ventana de Comandos. Aunque todos los comandos MATLAB se pueden
ejecutar de esta forma, la utilizacin de la Ventana de Comandos se
restringe normalmente a Ia ejecucin de un nmero pequeo de
comandos con salidas bien controladas.
Otra forma de ejecutar comandos en MATLAB es crear un archivo con los
comandos para ejecutarlo posteriormente.
Archivos M

Un script es una secuencia de comandos MATLAB, tambin denominada


programa. Los scripts tambin se denominan archivos M, ya que la
extensin *.m es Ia que ms se utiliza.
Cuando se ejecuta un script, MATLAB ejecuta los comandos en el orden
en que estos han sido escritos, igual que si se ejecutaran uno a uno en la
Ventana de Comandos.
Si un script contiene un comando que produce una salida (p/e una
asignacin de variable sin un punto y coma al final), Ia salida se visualiza
en la Ventana de Comandos.
Archivos M

En MATLAB, los scripts se crean y editan con Ia Ventana del


Editor/Depurador. Para abrir esta ventana ir al menu File New M-file.
Los comandos, dentro del script, se teclean lnea por lnea. Estas lneas se
enumeran automticamente.
Los comandos tambin se pueden escribir en cualquier editor o
procesador de textos.
Las primeras lneas de un script suelen ser comentarios que describen de
forma resumida la funcionalidad del cdigo que sigue a continuacin.
Ejecucin de archivos M

Antes de ejecutar un script se tiene que guardar en disco.


Las reglas de asignacin de nombres para los scripts son las mismas que para
variables, ya que estos deben comenzar por una letra y pueden incluir dgitos y
el guin bajo, hasta un mximo de 63 caracteres. No se pueden utilizar como
nombres para scripts las variables ya definidas por el usuario, as como los
nombres de variables predefinidas y comandos y funciones existentes en
MATLAB.
Un script se puede ejecutar:
o Tecleando su nombre en la Ventana de Comandos (y pulsando Ia tecla Enter)
o Desde Ia Ventana del Editor a travs del icono Run (Ejecutar),
Sin embargo, antes de hacer esto el usuario debe asegurarse de que MATLAB
puede encontrar o tener acceso al archivo. Para ello, el archivo debe estar:
o Almacenado en el directorio actual por defecto
o Almacenado en Ia ruta de bsqueda de archivos.
Directorio de trabajo actual

El directorio de trabajo actual se muestra en el campo "Current Directory" y


se puede cambiar desde la Ventana del Directorio Actual o tecleando el
comando cd en Ia Ventana de Comandos.
Ejemplo.
Una vez que se utilizan dos o mas directorios de trabajo en una sesin, es
posible cambiar de uno a otro en el campo de Directorio Actual de la
Ventana de Comandos.
Cuando el usuario ejecuta un script o una funcin, MATLAB busca el
archivo en los directorios que se encuentran en la ruta de bsqueda.
Una vez abierta esta ventana, se pueden aadir nuevos directorios o
borrar los existentes, modificando la ruta de bsqueda de archivos en
MATLAB
Variables Globales

Las variables globales son variables que, una vez creadas en MATLAB, son
reconocidas en cualquier parte, incluidos todos los script.
Cuando una variable se define en un script esta puede ser usada en Ia
Ventana de Comandos. En otras palabras, cualquier variable creada
existe, y por lo tanto puede ser manipulada tanto en scripts como en la
Ventana de Comandos.
Entrada y salida de datos Valores de
entrada
1. Variable definida y asignada en el script
En este caso, la asignacin del valor a la variable forma parte del script. Si el
usuario quiere ejecutar el script con un valor diferente para esa variable, el script
debe editarse para asignarle un nuevo valor.

2. Variable definida y asignada en Ia Ventana de Comandos


En este caso, la asignacin de un valor a la variable se realiza en Ia Ventana de
Comandos (recuerde que la variable es reconocida sin problemas dentro del
script). Si el usuario quiere ejecutar el script con un valor diferente para esta
variable, se debe asignar el nuevo valor en la Ventana de Comandos, y
despus ejecutar el script de nuevo.
Entrada y salida de datos Valores de
entrada
3. Variable definida y asignada en el script, pero adems se introduce un
valor concreto para Ia variable cuando se ejecuta el script
En este caso, la variable se define en el script y cuando se ejecuta se le pide al
usuario un valor concreto, a travs de la Ventana de Comandos, para
asignrselo a la variable del script. Para hacer esto se utiliza el comando input.
nombre_variable=input ('Mensaje ')

En este caso, la cadena se puede introducir sin comillas simples.


Ejemplo

Calcular el rea de un rectngulo:


area1.m
b = 6; %se da el valor de la base del rectngulo
h = 4; %se da el valor de la altura del rectngulo
area=b*h %se calcula el rea y se imprime
area2.m
area3.m
b = input('Ingrese la base: ') %pide el valor de la base
h = input('Ingrese la altura: ') %pide el valor de la altura
area=b*h
Comando de salida

Adems de esta forma de mostrar datos como salida, MATLAB posee


varios comandos que pueden ser utilizados para generar mensajes y
salidas mas elaboradas. Esto es necesario cuando, aparte del valor de una
variable y su nombre, es necesario mostrar mensajes informativos sobre Ia
naturaleza de ciertos datos de salida y/o grficos.
MATLAB posee varios comandos que pueden ser utilizados para generar
mensajes y salidas mas elaboradas, los comandos de uso muy frecuente
son:
o fprintf
o disp
El comando disp muestra Ia salida en la pantalla, mientras que el
comando fprintf se puede usar para visualizar un resultado en Ia pantalla o
para guardarlo en un archivo.
Comando disp

El comando disp se utiliza para visualizar un texto o el contenido de una


variable sin mostrar su nombre. El formato de este comando es:
disp(nombre de variable) o disp('Mensaje')
Cada vez que se ejecuta el comando disp, la salida aparece en una
nueva lnea. Slo se puede visualizar una sola variable en un comando
disp.
En algunos casos es necesario visualizar datos en forma de tabla. Esto se
puede hacer definiendo una variable de tipo array con los elementos a
visualizar y luego utilizar el comando disp para mostrar el array.
Ejemplo

Ejemplo: salida1.m
x =[1 2 3 4 5]; disp('Los valores en la matriz x son:');
disp(x);
Ejemplo: salida2.m
x =[1 2 3 4 5];
disp(['los valores en el arreglo x son: ' num2str(x)])
Ejemplo

Ejemplo: platica.m
disp('Hola, Buenos das!');
disp('Soy el programa MATLAB');
nombre=input('Quin eres tu? ','s');
disp(['Hola ',nombre] );
respuesta=input('Las computadoras son adorables, no? ', 's');
disp([respuesta, '?'] );
disp('Las computadoras son muy tiles.');
disp('Las vas a usar mucho durante tus estudios. ');
disp('Buena suerte con ellas.')
pause(2);
disp('Bye, bye')
Comando fprintf

El comando fprintf se utiliza para visualizar salidas de programas (texto y


datos) en Ia pantalla, o bien para almacenarlas en un archivo, a
diferencia de disp, Ia salida puede tener un formato preestablecido.
Gracias a su expresividad, el comando fprintf es til en Ia visualizacin de
salidas, pero esta misma razn hace que este comando sea un tanto
complejo y con una sintaxis larga en algunos casos. Pero nos permitir
visualizar mensajes de texto, nmeros y cadenas en la salida, dar formato a
la visualizacin y almacenar datos en disco. Matlab Comando fprintf
Comando fprintf

Para la visualizacin de texto, el comando fprintf se utiliza de la siguiente forma:


fprintf('Mensaje en forma de cadena')
Es posible empezar una nueva lnea insertando \n antes del carcter que va a
empezar en la lnea siguiente.
Carcteres utilizados para controlar Ia salida.
\n salto de lnea
\r regreso de carro
\ t tabulador
\b retroceder un espacio
Cuando un programa tiene varios comandos fprintf, la salida es continua (no
salta automticamente de lnea).
Ejemplo

fprintf('El problema no tiene solucin.')


fprintf('Por favor:\r \t Compruebe los datos de entrada.\n')
fprintf('\t \bCambie los datos de entrada.\n')
Comando fprintf

Para visualizar texto y datos (valores de variables) juntos, el comando


fprintf debe utilizarse siguiendo la sintaxis:
Comando fprintf

Elementos de formato

El flag o bandera,
(signo menos) Justificacin izquierda dentro del campo.
+ (signo ms) Visualiza el signo (+ o -) delante del nmero
0 (cero) Aade ceros si el nmero es mas pequeo que el campo.
Comando fprintf

La especificacin del ancho y precisin del campo


El primer nmero es el ancho del campo, el cual nos indica el menor nmero
de dgitos en la visualizacin. Si el nmero es menor se aadirn ceros o
espacios delante.
La precisin corresponde al segundo nmero y especifica el nmero de dgitos
que se mostrarn a la derecha del punto.
Formato de conversin
e Notacin exponencial en minsculas (ej. 1.709098e+001).
E Notacin exponencial en maysculas (ej. 1.709098E+001).
f Notacin de punto fijo (ej. 17.090980).
g Formato corto de las notaciones e o f.
G Formato corto de las notaciones E o f.
i Entero.
Comando fprintf

Con el comando fprintf es posible insertar tantos valores numricos


(variables) como se quiera dentro del texto.
Es necesario teclear % (seguido del formato del elemento) en tantos sitios
como se desee dentro de la cadena de texto, poniendo adems despus
de Ia cadena, y separadas por comas, las variables a las que se hacen
referencia. Debe haber una por cada %, ordenadas de izquierda a
derecha por orden de aparicin en el texto.
fprintf('...texto...%f...%f...%f...', variable1, variable2, variable3)
Comando fprintf

Si se desea introducir una comilla simple dentro del texto, debe teclearse
doblemente dentro de la cadena.
Si se desea introducir un smbolo de % dentro del texto, debe teclearse
doblemente dentro de la cadena.
El comando fprintf permite vectorizacin. Esto significa que cuando se
introduce una variable de tipo array para ser visualizada, el comando
muestra tantos elementos como haya en el array, utilizando incluso una
visualizacin apropiada, en forma de columnas y filas, para el caso de las
matrices.
Ejemplo

Ejemplo: impresion.m
voltaje = 3.1;
fprintf('El voltaje es %8.2f milivolts \n',voltaje);
fprintf('El voltaje es %8.2e milivolts \n',voltaje);
fprintf('El voltaje es %i milivolts \n',3);
a=1.2; b=3;c=0.0000000000123;
fprintf('ejemplo a=%g b=%i y c=%1.2e...', a, b, c);
x = 1:5;
fprintf('%8.2f \n' , x);
feet = 1:3;
inches = feet.*12;
table = [feet;inches];
fprintf('%4.0f %7.2f \n' , table);
Comando fprintf

Adems de poder visualizar la salida en la Ventana de Comandos, el


comando fprintf nos da Ia posibilidad volcar esta salida a un archivo. La
ventaja es que, guardando el resultado, es posible reutilizarlo en MATLAB o
en otras aplicaciones.
Para guardar la salida en un archivo se requieren los siguientes pasos:
a) Abrir el archivo utilizando el comando fopen.
b) Escribir la salida al archivo utilizando el comando fprintf.
c) Cerrar el archivo utilizando el comando fclose.
Comando fprintf

Paso a:
El comando fopen, que crea un archivo nuevo vaco o abre un archivo ya
existente en disco para trabajar con el
f_id=fopen( 'nombre_archivo', 'permisos')
f_id es una variable denominada identificador de archivo.
El nombre del archivo se escribe junto con su extensin.
Los permisos corresponden a una serie de cdigos que le dicen al sistema
cmo abrir el archivo.
'r' Indica que el archivo se abre para leer (por defecto).
'w' Indica que el archivo se abre (o crea) para escritura.
'a' Indica Io mismo que 'w', excepto que si el archivo existe entonces los datos
son aadidos al final del archivo.
Comando fprintf

Paso b:
Una vez que el archivo est abierto, se utiliza el comando fprintf para
escribir la salida en el archivo, slo que es necesario poner el identificador
de archivo (f_id) antes del texto de Ia siguiente forma:
fprintf(f_id,'texto %-5.2f texto adicional', variable)
Paso c:
Cuando se ha terminado de escribir los datos en el archivo, este debe ser
cerrado utilizando el comando fclose. La sintaxis de este comando es la
siguiente:
fclose(f_id)
Ejemplo

escritura.m
arch1=fopen( 'ejemplo.txt', 'w');
feet = 1:3;
inches = feet.*12;
table = [feet;inches];
fprintf(arch1,'%4.0f %7.2f \n' , table);
fclose(arch1);