Académique Documents
Professionnel Documents
Culture Documents
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?
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:
Redondeo
Trigonometra
Funciones matemticas bsicas
Algunas Operaciones
Funciones matemticas bsicas
Nmeros Complejos
Variables
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
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
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
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.
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
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
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
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);