Documente Academic
Documente Profesional
Documente Cultură
Introduccin
Ao 2016
Presentacin
Terico/Prctico. Eso quiere decir que vamos a
presentar conceptos e inmediatamente vamos a
trabajarlos en la computadora.
Mircoles 16:00 a 20:00 Laboratorio. Es
necesario que cada alumno abra un cuenta que le
permitir guardar su trabajo durante la clase.
2 trabajos prcticos cada uno con coloquio. A
veces dejaremos ejercicios para la semana.
Promocional.
Docentes
Jefe de ctedra: Enrique Carlos Segura
(esegura@dc.uba.ar)
JTP: Andrea Manna
(amanna@dc.uba.ar)
Apuntes
Pgina web:
http://www.dc.uba.ar/materias/t1/2015/c2/
Objetivos
La intencin de la materia es dar una introduccin al uso de la
computadora para aplicaciones cientficas, que involucren el
manejo de volmenes de datos, clculos estadsticos,
visualizacin y simulacin numrica de procesos. Se buscar
dar una introduccin general a la programacin para
estudiantes de ciencias (en particular para estudiantes de
Geologa), de modo tal que comprendan las potencialidades y
limitaciones de la computadora.
Como objetivos formativos, se pretende que luego de cursar la
materia el estudiante:
entienda de qu se tratan las ciencias de la computacin,
entienda una publicacin cientfica interdisciplinaria entre su
carrera y computacin, y
logre relacionar un problema matemtico con problemas
computacionales.
Participacin en clase
Esperamos una activa participacin en clase:
No hay preguntas tontas.
Si una explicacin no responde a tu pregunta, por favor,
volver a preguntar.
Compart tus dudas. Tus certezas tambin.
Las interrupciones pertinentes no molestan, sobre todo si
Resolucin de problemas
Requiere una descripcin del dominio de aplicacin y
de las caractersticas de las soluciones buscadas. Por ej.
Raz cuadrada.
Luego es necesario encontrar un algoritmo que lo
resuelva. Por ej. Aproximaciones Sucesivas.
Finalmente debemos programar el algoritmo.
Qu es un algoritmo?
Un algoritmo es una sucesin de pasos primitivos para
resolver un problema.
Un paso primitivo es aquel que se puede realizar
mecnica y finitariamente.
Qu problemas podemos resolver?
Con qu pasos primitivos contamos?
Cmo sabemos si el algoritmo que dimos resuelve el
problema?
Qu es programar?
Implementacin de un algoritmo en un lenguaje formal
que la Computadora (directa o indirectamente) pueda
ejecutar.
Eso requiere fijar representaciones/estructuras para los
datos de entrada, salida y temporarios, y un conjunto de
instrucciones para operar sobre las mismas.
Representacin de la informacin
Una computadora es una mquina capaz de
procesar informacin. Para realizar este
proceso se precisa informacin de dos tipos:
Las instrucciones del programa
Los datos a procesar
Representacin de la informacin
Normalmente un operador le da a la
computadora los datos en un lenguaje
conocido, utilizando los smbolos del
lenguaje diario. Estos smbolos pueden ser:
Nmeros
Letras
Smbolos
Alfanumricos
Representacin de la informacin
Por lo tanto tenemos dos niveles de representacin
de la informacin:
Externa: Utilizada por las personas e inadecuada para la
computadora
Interna: Utilizada por la computadora y no legible
fcilmente por un ser humano
Representacin de la informacin
Despues de multiples procesos y maduraciones, se
lleg a adoptar universalmente, para almacenar la
informacion en una computadora, el sistema binario, o
sea basado en 1 y 0.
Una de las ventajas es que podemos adaptar fcilmente
el sistema electrico, usando presencia y ausencia de
voltaje para representar fsicamente el 1 y el 0.
Hay una ventaja sustancial en los clculos, dado que
resultan mucho ms simples para una mquina que
usando un sistema en otra base
Hardware y Software
Hardware: Es la parte fsica de la computadora, es
decir, todo aquello que podamos percibir con el sentido
del tacto, los componentes mecnicos, magnticos,
electromagnticos que hacen que la mquina funcione.
El hardware por s solo no realiza ninguna tarea, slo
puede llevarlas a cabo a travs de un software
adecuado.
Software: Es la parte lgica de la computadora, los
procedimientos que el hardware realiza inducidos por el
software y este a su vez por nosotros. El software es
como un traductor que hace que nuestras rdenes se
conviertan en realidad, manipulando el hardware o la
parte fsica.
Software: Tipos
Podemos distinguir tres tipos de software diferentes:
Sistemas Operativos: Tiene por objetivo efectuar la interrelacin entre los elementos
fsicos de la mquina (hardware) con el entorno (usuario, perifricos, dispositivos, otros
programas, etc.), tendiendo a minimizar las operaciones humanas y maximizar la utilidad
del sistema en funcin del tiempo.
El sistema operativo ejecuta las tareas bsicas, como de reconocer entradas desde el
teclado, enviar mensajes a pantalla, manteniendo rastro de los archivos y directorios en el
disco, y controlar los dispositivos perifricos como las impresoras.
LINUX
Software: Tipos
Software de aplicacin: Son los
programas realizados por las personas con
un fin especfico.
Software: Tipos
Lenguajes de programacin: Tienen por objetivo
permitir a un ser humano generar software con un
fin especfico. Una definicin ms estricta sera: es
un conjunto de smbolos y reglas sintcticas y
semnticas que definen su estructura y el
significado de sus elementos y expresiones. Se
utiliza para controlar el comportamiento fsico y
lgico de una computadora.
Entrada
Algoritmo
Salida
Lenguajes de programacin
Un lenguaje de programacin es un lenguaje diseado para describir el
conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo
tanto, un lenguaje de programacin es un modo prctico para que los
seres humanos puedan dar instrucciones a un equipo.
Trozo Visual Basic
Trozo JAVA
Fichas estadoTablero[][];
public Tablero(){estadoTablero=new Fichas [6][7];};
Tablero miTablero = New Tablero();
public Tablero(){estadoTablero=new Fichas [6][7];};
NombreClase.nombreMetodo(parmetrosMtodo);
Trozo Pascal
PROGRAM Primera_Prueba;
CONST
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
VAR
Entero : Integer;
BEGIN
Write(Mensaje);
ReadLn(Entero);
WriteLn(Respuesta, Entero);
END.
Open Text1(1) & "\" & nameFile & ".bat" For Append As #3
i=1
archivoBAT = ("copy /b ") + Chr(34) & (i) & _
(nameFile) + Chr(34) + Chr(32) + Chr(34) +
(nameFile) + Chr(34)
Print #3, archivoBAT
lenResto = tamao Mod CLng(Combo1)
For i = 1 To CByte(Combo1)
If i = CByte(Combo1) Then
ReDim FileData(CLng(Text1(2)) + lenResto - 1)
Qu es Matlab?
Un lenguaje de programacin
Un lenguaje de programacin interpretado
Un lenguaje de programacin interactivo
Qu es Matlab?
MATLAB es un sistema interactivo que sirve como herramienta de apoyo para la
resolucin de problemas relacionados con el Algebra Lineal y el Calculo
Numrico
El ambiente de trabajo de MATLAB est compuesto de algunas ventanas:
La Ventana de comandos, donde se ejecutan todas las instrucciones y
programas. Se escribe la instruccin o el nombre del programa y se da a
Enter. Es facilmente identicable, pues en ella aparece el indicador de
comandos (>>).
El Historial de comandos Muestra los ltimos comandos ejecutados en
Command Windows. Se puede recuperar el comando haciendo doble click.
El Espacio de trabajo que visualiza las variables creadas en la Ventana de
comandos.
Current directory: Situarse en el directorio donde se va a trabajar
Editor del Matlab: Todos los ficheros de comandos Matlab deben de llevar
la extensin .m
Qu es Matlab?
Algunos comentarios sobre la ventana de comandos
Se pueden recuperar instrucciones con las teclas
Se puede mover por la lnea de comandos con las teclas
Ir al comienzo de la lnea con la tecla Inicio y al final con Fin. Con Esc se
borra toda la lnea.
Se puede cortar la ejecucin de un programa con Ctrl+C
Consideraciones generales
MATLAB distingue entre maysculas y minsculas.
La COMILLA ' es la que, en un teclado estndar, se encuentra en la tecla de la
acentuacin.
Los COMENTARIOS deben ir precedidos por % o, lo que es lo mismo, MATLAB
ignora todo lo que vaya precedido por el smbolo %.
La AYUDA de MATLAB es bastante til; para acceder a la misma basta teclear
help. Por ej.
>> help !
devuelve: Operators and special characters.
Nmeros y Operaciones
Datos numricos:
Son sensibles a las maysculas: x=5, X=7
Informacin sobre variables que se estn usando y sus dimensiones (si son
matrices): Workspace. Tambin tecleando
>> who
>> whos (da ms informacin)
Nmeros y Operaciones
Operaciones aritmticas elementales:
Suma: +, Resta
Multiplicacin: *, Divisin: /
Potencias: ^
Orden de prioridad: Potencias, divisiones y multiplicaciones y por ltimo sumas
y restas. Usar () para cambiar la prioridad
Lenguajes de Programacion
Algoritmo: Una secuencia paso a paso de instrucciones bien definidas
que describen como realizar un cmputo (ej. algoritmo de divisin de
Euclides).
Lenguaje de programacin: Lenguaje artificial diseado para
abstraer las instrucciones que puede ejecutar una computadora (ej.
Matlab).
Programa: La transcripcin de un algoritmo en un lenguaje de
programacin dado.
Lenguajes de Programacion
En los lenguajes de programacin se pueden reconocer dos
partes:
Sintaxis: las posibles combinaciones de smbolos que se
pueden entender como expresiones correctas.
Semntica: el significado asociado a una expresin.
Expresiones vlidas
1
I+2
I + 2 * -3
(1 + 2) * -3
0 == 1 1
[1; 2; 3; 4]
2 * [1 0; 0 1]
Expresiones no vlidas
I (1
I32
+12
(1 + 2) ==
{3; 2}
( 3, 2 )
[0; 2; 4; 6; ....... ; 20]
[1 0; 0 1] (1)
Tipos
Los tipos son los conjuntos de los distintos valores
posibles.
Integer: 1, 2, 3, etc.
Float-Point: 0.5, 1.7, 42.0, pi, etc.
Logical: true, false.
Character: a, b, c, etc.
Matrix: [1.7], [ h, o, l, a]; [1 0; 0 1]; etc.
En general cada tipo de dato tiene asociadas
ciertas operaciones.
Variables
Las variables son nombres con los que podemos
referirnos al resultado de cmputos anteriores.
Tres_x_pi = 3.0 * pi
Booleana = false
cadenaHola = 'hello
Matriz_Identidad = [1 0; 0 1]
Las variables nos abstraen del manejo de la memoria de la
computadora. Los valores asignados en una variable son
almacenados en la memoria.
Matlab es case-sensitive por lo que la variable cadenaHola
es distinta que CADENAHola.
Asignacin
Es posible guardar el resultado de una operacin
cualquiera en una variable.
Para eso debemos escribir:
>> x = 2 + 2
x =4
Si una instruccin la finalizamos con punto y coma el
resultado de la misma no se muestra:
>> test=x^3;
>> test=x^3
test = 17.0000
Vectores
Vectores fila: elementos separados por blancos o comas
>> v =[2 3 4 7 9 8]
Vectores columna: elementos separados por punto y coma (;)
>> w =[2;3;4;7;9;8]
En MATLAB es posible transformar un vector fila en un vector columna y
viceversa (hallar su traspuesta) empleando una comilla simple:
>> vt = v
Dimensin de un vector w: length(w) numelem(w)
Generacin de vectores fila:
Especificando el incremento h de sus componentes v=a:h:b
Linealmente espaciados n: linspace(a,b,n) (por defecto n=100)
Componentes logartmicamente espaciadas logspace(a,b,n) (n puntos
logartmicamente espaciados entre 10a y 10b. Por defecto n=50)
Matrices
No hace falta establecer de antemano su tamao (se puede definir un
tamao y cambiarlo posteriormente).
Las matrices se definen por filas; los elementos de una misma fila
estn separados por blancos o comas. Las filas estn separadas por
punto y coma (;).
>> M=[3 4 5; 6 7 8; 1 -1 0]
Matriz vaca: M=[ ];
Informacin de un elemento: M(1,3), de una fila M(2,:), de una columna
M(:,3).
Cambiar el valor de algn elemento: M(2,3)=1;
Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];
El siguiente cdigo extrae una submatriz formada por elementos de las
filas 1 a 2 y las columnas 1 y 3:
>> B=M(1:2, [1,3])
Vectores y Matrices
Definicin de matrices:
Generacin de matrices:
Generacin de una matriz de ceros, zeros(n,m)
Generacin de una matriz de unos, ones(n,m)
Inicializacin de una matriz identidad eye(n,m)
Generacin de una matriz de elementos aleatorios
rand(n,m)
Aadir matrices: [X Y] columnas, [X; Y] filas
+ adicin o suma
sustraccin o resta
* multiplicacin matricial
.* producto elemento a elemento
^ potenciacin
.^ elevar a una potencia elemento a elemento
\ divisin-izquierda
/ divisin-derecha
./ y .\ divisin elemento a elemento
matriz traspuesta: B=A (en complejos calcula la
traspuesta conjugada, slo la traspuesta es B=A.)
Funciones
Las funciones son procedimientos con nombres
que pueden requerir mltiples argumentos y
retornar distintos resultados dependiendo de los
valores de los argumentos.
Es una tarea independiente que puede o no
depender de variables externas. Lo ideal es que
funcione como caja negra, es decir, que se la
pueda invocar desde cualquier programa cada vez
que se la necesite y que realice una funcin bien
especfica
Funciones Internas
Ejemplos:
size( [1 0; 0 1] )
resul = or( true, false )
disp( [1 2 3 4])
sum( [1 2 3 4])
la invocacin y la definicin.
Invocacin: Se refiere a la llamada a la funcin.
Ejemplo: >> y = sin(pi);
En este caso, sin representa el nombre de la funcin, pi
es el argumento y la variable y el objeto de salida.
Ejemplo
Supongamos que queremos realizar una funcin que retorne la suma
de dos escalares.
Generamos la funcin suma, en un archivo suma.m:
function salida = suma(a,b)
salida = a+b;
end
Grabar el archivo
Invocar a la funcin desde Matlab:
>> y = suma(2,3)
y=5
Variables de la funcin
Qu sucede si por lnea de comandos quiero saber qu valor tienen las
variables a y b de la funcin o la variable salida?
>> a
error: a' undefined near line 2 column 1
Variables de la funcin
Las variables declaradas en el intrprete (por lnea de
comando) tienen validez en el intrprete
Las variables dentro de una funcin tienen alcance
dentro de la misma funcin. No interfieren con variables
con el mismo nombre declaradas fuera de la misma.
Se dice entonces que las variables son locales a la
funcin
Espacio de trabajo
Ventana de Comandos
Historial de Comandos