You are on page 1of 87

Taller de Informática I

Introducción
Año 2015
Horarios y Organización(1)
• Teórico/Práctico. Eso quiere decir que vamos a
presentar conceptos e inmediatamente vamos a
trabajarlos en la computadora.
• Horario: miércoles 17:00 a 21:00 – Laboratorio 4.
• 3 trabajos prácticos: grupales (dos con un
coloquio).
• Dejaremos ejercicios para la semana siguiente que
conformarán los TPs.
• Promoción con 6.
Taller de Informática I Segundo cuatr. 2015
Horarios y Organización(2)
• Es necesario que se armen grupos de tres (3)
alumnos.
• Cada grupo tendrá una cuenta que les permitirá
guardar su trabajo durante el cuatrimestre.
• Las cuentas se denominan taller1-01/25 y la clave
es taller_1108 . Sugerimos que la cambien.
• Tendrán acceso a un directorio público llamado:
\\dc3\Publico
donde encontrarán para cada clase el material
que les daremos interactivamente.
Taller de Informática I Segundo cuatr. 2015
Participación en clase
Esperamos una activa participación en clase:
▪No hay preguntas tontas.
▪Si una explicación no responde a tu pregunta, por favor,
volver a preguntar.
▪Compartí tus dudas. Tus certezas también.
▪Las interrupciones pertinentes no molestan, sobre todo si
son para marcar errores, hacer comentarios o reencausar la
clase.
▪No está permitido permanecer callado en los debates.

Taller de Informática I Segundo cuatr. 2015


Filosofía de enseñanza
• Nosotros tenemos la obligación de enseñar.
• Ustedes tienen el derecho de aprender.
• No somos los dueños del conocimiento y no lo
sabemos todo, así que, quizás más de una vez la
respuesta puede ser “No lo sé” y otras podemos
equivocarnos.
• Defendemos la Universidad Pública, Masiva, Laica y
Gratuita. A veces, por eso, salimos a la calle y
suspendemos clases.

Taller de Informática I Segundo cuatr. 2015


Filosofía de enseñanza
– Enseñar no es transmitir
– conocimientos, sino
– crear las posibilidades
– para su producción
– o su construcción.

Paulo Freire

Taller de Informática I Segundo cuatr. 2015


Docentes

• Profesor: Ricardo Rodriguez (ricardo@dc.uba.ar)


• JTP: María Elena Buemi (mebuemi@dc.uba.ar)

Los dos estaremos en clase asistiéndolos en el


aprendizaje sin jerarquías.

Taller de Informática I Segundo cuatr. 2015


Apuntes y cronograma de clases

• Página web:
– www.dc.uba.ar(Departamento de Computación)
– http://www-2.dc.uba.ar/materias/t1/index.html
(temporariamente)

Taller de Informática I Segundo cuatr. 2015


Cronograma:
En la página de la materia

Taller de Informática I Segundo cuatr. 2015


Objetivos
• Dar una introducción al uso de la computadora para
aplicaciones científicas, que involucren el manejo de
volúmenes de datos, cálculos estadísticos, visualización y
simulación numérica de procesos.
• Dar una introducción general a la programación para
estudiantes de ciencias (en particular de Geología), 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 computación.
▫ entienda los aspectos computacionales en una publicación
científica interdisciplinaria de su carrera.
▫ logre relacionar modelización matemática con resoluciones
computacionales.
▫ pueda realizar pequeños programas.

Taller de Informática I Segundo cuatr. 2015


Taller de Informática I Segundo cuatr. 2015
Conceptos básicos

• Computadora: Una computadora es un dispositivo


capaz de realizar cálculos y tomar decisiones lógicas a
velocidades hasta miles de millones de veces más
rápidas que las alcanzables por los seres humanos.
Básicamente surgen para ayudar a las personas en la
resolución de cálculos matemáticos. De ahí su nombre
computadora que deriva de la palabra “cómputo” o sea
cálculo
• En la actualidad, una computadora es una herramienta
que se utiliza para resolver problemas.

Taller de Informática I Segundo cuatr. 2015


Resolución de problemas

• Requiere una descripción del dominio de


aplicación y de las características de las
soluciones buscadas. Por ej. Raíz cuadrada.
• Luego es necesario encontrar un algoritmo que lo
resuelva. Por ej. Aproximaciones Sucesivas.
• Finalmente debemos programar el algoritmo.

Taller de Informática I Segundo cuatr. 2015


Ejemplo: Torres de Hanoi

http://www.uterra.com/juegos/torre_hanoi.php

Segundo cuatr. 2015


¿Qué es un algoritmo?
• Un algoritmo es una sucesión de pasos
primitivos para resolver un problema.
• Un paso primitivo es aquel que se puede realizar
mecánica y finitariamente.
• ¿Qué problemas podemos resolver?
¿Con qué pasos primitivos contamos?
¿Cómo sabemos si el algoritmo que dimos
resuelve el problema?

Taller de Informática I Segundo cuatr. 2015


Ejemplo: Suma
Algoritmo suma escolar:
• sumo las unidades del primero a las del segundo, después
las decenas, etc., considerando acarreo cuando hace falta.
Algoritmo sucesor:
• sucesivamente voy sumando uno al primero y restando uno
al segundo, así hasta que este último llegue a cero.
Algoritmo moderno:
• escribo el primero en una calculadora, aprieto +, escribo el
segundo, aprieto =
Los tres algoritmos usan distintas operaciones primitivas:
▫ sumar dos dígitos y acarreo, y concatenar resultados.
▫ sumar uno, restar uno y comparar con cero.
▫ apretar teclas en una calculadora.

Taller de Informática I Segundo cuatr. 2015


¿Qué es programar?
• Implementación 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.

Taller de Informática I Segundo cuatr. 2015


Otro ejemplo

Taller de Informática I Segundo cuatr. 2015


Algunos Mitos
• Para ser Geólogo/Biólogo no es necesario saber
programar.
• Programar es difícil.
• Programar bien es cosa de especialista.
• Los Físicos programan bien.
• Si la programación fuera importante para mi
carrera tendría más de una materia.

Taller de Informática I Segundo cuatr. 2015


Funciones
• Una computadora realiza 4 funciones básicas:
▫ Ingreso de datos
▫ Procesamiento de la información
▫ Salida de datos
▫ Almacenamiento de los resultados

• El dato es la información elemental y se pueden distinguir


datos de diferentes tipos: números, caracteres, fechas,
vectores, matrices, etc.

• Los procesos son un conjunto de operaciones a realizarse


con/sobre los datos, para obtener resultados

Taller de Informática I Segundo cuatr. 2015


Representación de la información
• Como mencionamos, una computadora es
capaz de procesar información.
• Este procesamiento requiere de dos cosas:
– Estructuras de datos para representar la
información.
– Las instrucciones para implementar los
algoritmos.

• Pero…¿Cómo le brindamos esta información?

Taller de Informática I Segundo cuatr. 2015


Representación de la información
• Normalmente la computadora “recibe” los
datos en un lenguaje conocido, utilizando los
símbolos del lenguaje diario. Estos símbolos
pueden ser:
– Números
Alfanuméricos
– Letras
– Símbolos
• Obviamente estos símbolos no son los que
utiliza internamente la computadora.

Taller de Informática I Segundo cuatr. 2015


Representación de la información
• Por lo tanto tenemos dos niveles de representación
de la información:
– Externa: Utilizada por las personas e inadecuada para la
computadora.
– Interna: Utilizada por la computadora y no legible
fácilmente por un ser humano.

• De aquí se desprende que hay una transformación de


la información que una persona intenta brindar a la
computadora, a elementos que una computadora
puede ser capaz de almacenar.

Taller de Informática I Segundo cuatr. 2015


Representación de la información
• Después de mucho investigar, se decidió que la mejor
opción para almacenar la información en una
computadora, era utilizando el sistema binario, o sea
basado en 1 y 0.
• Una de las ventajas es que podemos adaptar fácilmente
el sistema electrónico, usando presencia y ausencia de
voltaje para representar físicamente el 1 y el 0.
• Hay una ventaja sustancial en los cálculos, dado que
resultan mucho más simples para una máquina que
usando un sistema en otra base.

Taller de Informática I Segundo cuatr. 2015


Taller de Informática I Segundo cuatr. 2015
Representación de la información:
el sistema binario
• El antiguo matemático hindú Pingala presentó la primera descripción que se
conoce de un sistema de numeración binario en el siglo III a.C., lo cual coincidió
con el descubrimiento del concepto del número cero.
• El sistema binario moderno fue documentado totalmente por Leibniz, en el siglo
XVII, en su artículo "Explication de l'Arithmétique Binaire". En él se mencionan
los símbolos binarios usados por matemáticos chinos. Leibniz usó el 0 y el 1, al
igual que el sistema de numeración binario actual.
• En 1854, el matemático británico George Boole, publicó un artículo que marcó
un antes y un después, detallando un sistema de lógica que terminaría
denominándose Álgebra de Boole. Dicho sistema desempeñaría un papel
fundamental en el desarrollo del sistema binario actual, particularmente en el
desarrollo de circuitos electrónicos. En pocas palabras, es una herramienta
fundamental para el análisis y diseño de circuitos digitales. Se trata de un
conjunto de reglas matemáticas (similares en algunos aspectos al álgebra
convencional), pero que tienen la virtud de corresponder al comportamiento de
circuitos basados en dispositivos de conmutación (interruptores, relevadores,
transistores, etc).
Taller de Informática I Segundo cuatr. 2015
Representación de la información: el sistema
binario
• El sistema binario, en matemáticas e informática, es un sistema de numeración en el
que los números se representan utilizando solamente las cifras cero y uno (0 y 1).
decimal binario hexa • Bit: Es el acrónimo de Binary Digit o dígito
binario. Es la unidad mínima de información
utilizada en informática. Un bit es un dígito del
sistema binario que puede tomar dos valores: 0
ó 1.
• Byte: Es la unidad básica de almacenamiento
de la información. Equivale a 8 bits.
• Otras medidas útiles:

8 bits -> 1 Byte


1KByte -> 1024Byte
1MByte ->1024KByte
1Gbyte ->
1024MByte
Sistema de numeración: como el conjunto de símbolos y reglas que se utilizan para la
representación de cantidades. En ellos existe un elemento característico que define el
sistema y se denomina base, siendo ésta el número de símbolos que se utilizan para la
representación. Taller de Informática I Segundo cuatr. 2015
Primer ejemplo de algoritmo:

• Pasar un número decimal a su expresión binaria.

Taller de Informática I Segundo cuatr. 2015


Representación de la información: caracteres
• Código ASCII (American Standard Code for Information Interchange). Es un código de
caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas
occidentales.

Taller de Informática I Segundo cuatr. 2015


Representación de la información: caracteres
• Unicode: Es propuesto por un consorcio de empresas y entidades que
trata universalizar y hacer compatibles todos los sistemas del mundo
bajo una misma norma
• Inconvenientes del sistema ASCII:
▫ Los símbolos codificados no alcanzan para representar los caracteres
especiales que requieren numerosas aplicaciones
▫ Los símbolos y códigos añadidos en las versiones ampliadas a 8 bits no están
normalizados
▫ Están basados en los caracteres latinos, existiendo otras culturas que utilizan
otros símbolos muy distintos
• Propiedades buscadas:
▫ Universalidad, trata de cubrir la mayoría de lenguajes escritos existentes
en la actualidad: 16 bits ➔ 65.356 símbolos, 32 bits ➔ 4271406736
▫ Unicidad, a cada carácter se le asigna exactamente un único código (sin
importar plataforma ni idiomas)
▫ Uniformidad, ya que todos los símbolos se representan con un número fijo
de bits (8, 16 o 32)

Taller de Informática I Segundo cuatr. 2015


Representación de la información: caracteres

• Características:
▫ Está basado en ASCII (lo cual facilita la migración)
▫ Evita el problema de ASCII que sólo cuenta con caracteres
latinos.
• Actualmente cuenta con tres formas de codificar la
información: en 8, 16, 32 bits.
• Las tres formas de codificar tienen el mismo repertorio
de caracteres comunes y es posible cambiar de una en
otra sin pérdidas de datos.
• Las tres formas son referidas como UTF-8, UTF-16 y
UTF-32
• Link: http://www.unicode.org/charts/

Taller de Informática I Segundo cuatr. 2015


Hardware y Software
• Hardware: Es la parte física de la computadora, es
decir, todo aquello que podamos percibir con el sentido
del tacto, los componentes mecánicos, magnéticos,
electromagnéticos que hacen que la máquina funcione.
El hardware por sí solo no realiza ninguna tarea, sólo
puede llevarlas a cabo a través de un software
adecuado.

• Software: Es la parte lógica 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 física.

Taller de Informática I Segundo cuatr. 2015


Hardware: Partes de una computadora
• Memoria principal: también llamada RAM (Random Access Memory - Memoria de
Acceso Aleatorio), es el almacén primario de la computadora. Esta memoria es la más
importante de la computadora, porque almacena información necesaria para que la
computadora pueda arrancar y funcionar.
• Unidad de Control: Es la que se utiliza para coordinar y controlar las operaciones
que se realizan para procesar la información.
• Unidad Aritmética y Lógica : Es el dispositivo que se encarga exclusivamente de los
cálculos, es decir realiza todas las operaciones artitméticas (suma, resta,
multiplicación, division, etc) y lógicas (mayor, menor, etc)
• Unidad Central de Procesamiento: Es la UC + ALU. Es básicamente el cerebro de la
computadora. Se encarga de supervisar, controlar y regular el procesamiento de todos
los elementos de la computadora.
• Unidades de Entrada: Es la parte de la computadora por la cual ingresa la
información: teclado, mouse, escaner, lápiz óptico, etc.
• Unidades de Salida: Es la parte de la computadora a través de la cual se muestra el
resultado del procesamiento de los datos: impresora, pantalla, parlantes, etc.

Taller de Informática I Segundo cuatr. 2015


Hardware: Partes de una computadora
• Buses: Son las líneas o caminos a través de los cuales la información
fluye desde una parte a otra de una computadora. Básicamente se trata
de un conjunto de cables que sirven para interconectar los diferentes
dispositivos. Se pueden dividir en, según su función:
▫ Internos: a la CPU (transportando datos entre la ALU y los registros)
▫ Externos: Conectan a la CPU con la memoria y con los diferentes
dispositivos de Entrada/Salida
• Memoria Secundaria: Son dispositivos que se utilizan para almacenar
información que debe perdurar a través del tiempo.

Disco duro Memoria flash USB


Unidad de discos de 3 1/2
Regrabador de CD
Taller de Informática I Segundo cuatr. 2015
Hardware: Partes de una computadora

Taller de Informática I Segundo cuatr. 2015


Software: Tipos
• Podemos distinguir tres tipos de software diferentes:

▫ Sistemas Operativos: Tiene por objetivo efectuar la interrelación entre los


elementos físicos de la máquina (hardware) con el entorno (usuario,
periféricos, dispositivos, otros programas, etc.), tendiendo a minimizar las
operaciones humanas y maximizar la utilidad del sistema en función del
tiempo.
▫ El sistema operativo ejecuta las tareas básicas, 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
periféricos como las impresoras.

LINUX

Taller de Informática I Segundo cuatr. 2015


Software: Tipos

▫ Software de aplicación: Son los


programas realizados por las personas con
un fin específico.

Weka

Taller de Informática I Segundo cuatr. 2015


Software: Tipos
▫ Lenguajes de programación: Tienen por objetivo
permitir a un ser humano generar software con un fin
específico. Una definición más estricta sería: es un
conjunto de símbolos y reglas sintácticas y
semánticas que definen su estructura y el significado
de sus elementos y expresiones. Se utiliza para
controlar el comportamiento físico y lógico de una
computadora.

Entrada Salida
Algoritmo

Escrito en algún lenguaje de


programación

Taller de Informática I Segundo cuatr. 2015


Lenguajes de programación
▫ Un lenguaje de programación es un lenguaje diseñado para describir el
conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo
tanto, un lenguaje de programación es un modo práctico para que los
seres humanos puedan dar instrucciones a un equipo.

Trozo JAVA
Trozo Visual Basic
Fichas estadoTablero[][];
public Tablero(){estadoTablero=new Fichas [6][7];}; Open Text1(1) & "\" & nameFile & ".bat" For Append As #3
Tablero miTablero = New Tablero(); i=1
public Tablero(){estadoTablero=new Fichas [6][7];}; archivoBAT = ("copy /b ") + Chr(34) & (i) & _
NombreClase.nombreMetodo(parámetrosMétodo); (nameFile) + Chr(34) + Chr(32) + Chr(34) +
(nameFile) + Chr(34)
Print #3, archivoBAT
Trozo Pascal lenResto = tamaño Mod CLng(Combo1)
For i = 1 To CByte(Combo1)
PROGRAM Primera_Prueba; If i = CByte(Combo1) Then
CONST ReDim FileData(CLng(Text1(2)) + lenResto - 1)
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
VAR
Entero : Integer;
BEGIN
Write(Mensaje);
ReadLn(Entero);
WriteLn(Respuesta, Entero);
END. Taller de Informática I Segundo cuatr. 2015
Lenguajes de programación: Matlab
• MATLAB es la abreviatura de MATrix LABoratory, o
laboratorio de matrices.
• Es un poderoso lenguaje de programación que incluye los
conceptos comunes a la mayoría de los lenguajes de
programación
• Fue creado por Cleve Moler en 1984, surgiendo la primera
versión con la idea de emplear paquetes de subrutinas
escritas en Fortran en los cursos de álgebra lineal y análisis
numérico, sin necesidad de escribir programas en dicho
lenguaje.
• Matlab utiliza el lenguaje de programación M que fue creado
en 1970 para proporcionar un sencillo acceso al software de
matrices sin tener que usar Fortran.
Taller de Informática I Segundo cuatr. 2015
¿Qué es MatLab?

• Un lenguaje de programación.
• Un lenguaje de programación interpretado.
• Un lenguaje de programación interactivo.
Usar Matlab == Programar en Matlab

Taller de Informática I Segundo cuatr. 2015


¿Qué no es MatLab?

• Una hoja de cálculo

• Un programa de cálculo simbólico.

• Matlab puede hacer resolver integrales numéricas


pero no simbólicas.

Taller de Informática I Segundo cuatr. 2015


Lenguajes de programación: Matlab
• MATLAB es un sistema que sirve como herramienta de apoyo para la
resolución de problemas relacionados con el Algebra Lineal y el Cálculo
Numérico.

• El ambiente de trabajo de MATLAB por defecto esta compuesto de tres


ventanas:
▫ La Ventana de comandos, que es facilmente identicable, pues en ella
aparece el indicador de comandos (>>).
▫ El Historial de comandos que almacena los comandos que han
sido escritos en la Ventana de comandos.
▫ El Espacio de trabajo que visualiza las variables creadas en la
Ventana de comandos.

• En 2004, se estimaba que MATLAB era empleado por más de un


millón de personas en ámbitos académicos y empresariales.

Taller de Informática I Segundo cuatr. 2015


Problema

Resolver I(y), la integral de la función de Bessel

con y ∈ [1, 5]
¿Cómo se haría en Fortran?
¿Cómo se haría en Excel?

Taller de Informática I Segundo cuatr. 2015


En Matlab son 6 líneas

No se preocupen si no entienden nada.


Esto es Matlab avanzado.

Taller de Informática I Segundo cuatr. 2015


Introducción
Elementos básicos del escritorio de Matlab

• Command Windows: Donde se ejecutan todas las instrucciones y


programas. Se escribe la instrucción o el nombre del programa y se da
Enter.

• Command History: Muestra los últimos comandos ejecutados en


Command Windows. Se puede recuperar el comando haciendo doble click.

• Current directory: Situarse en el directorio donde se va a trabajar

• Help (también se puede usar desde comand windows)

• Workspace: Para ver las variables que se están usando y sus dimensiones
(si son matrices)

• Editor del Matlab: Todos los ficheros de comandos Matlab deben de


llevar la extensión .m

Taller de Informática I Segundo cuatr. 2015


Ambiente de programación: Matlab

Espacio de trabajo

Ventana de Comandos

Historial de Comandos

Taller de Informática I Segundo cuatr. 2015


Introducción (cont.)
Algunos comentarios sobre la ventana de comandos

▫ Se pueden recuperar instrucciones con las teclas ↓↑

▫ Se puede mover por la línea de comandos con las teclas


→ ←.
▫ Ir al comienzo de la línea con la tecla Inicio y al final con
Fin. Con Esc se borra toda la línea.

▫ Se puede cortar la ejecución de un programa con


Ctrl+C

Taller de Informática I Segundo cuatr. 2015


MatLab como calculadora

• Una primera aproximación al uso de MatLab


podría ser como una calculadora.

• Matlab es un programa command-driven, es


decir, que se introducen las órdenes
escribiéndolas una a una a continuación del
símbolo » (prompt)

Taller de Informática I Segundo cuatr. 2015


Consideraciones generales
• MATLAB distingue entre mayúsculas y
minúsculas.
• La COMILLA ' es la que, en un teclado estándar,
se encuentra en la tecla de la acentuación.
• Los COMENTARIOS deben ir precedidos por %
o, lo que es lo mismo, MATLAB ignora todo lo
que vaya precedido por el símbolo %.
• La AYUDA de MATLAB es bastante útil; para
acceder a la misma basta teclear help. Por ej.
>> help !
devuelve: Operators and special characters.

Taller de Informática I Segundo cuatr. 2015


Números y operaciones
Datos numéricos:
• Son sensibles a las mayúsculas: x=5, X=7

• Información sobre variables que se están usando y sus dimensiones (si son
matrices): Workspace. También tecleando

>> who

>> whos (da más información)

• Para eliminar alguna variable se ejecuta


– >> clear variable1 variable2

• Si se quieren borrar todas las variables: >> clear


• Constantes características: pi=π, NaN (not a number, 0/0), Inf=∞.

• Números complejos: i=sqrt(-1) (sólo se puede usar i o j), z=2+i*4, z=2+4i


▫ Cuidado con no usar luego ‘i’ como contador en un bucle
trabajando con complejos.
Taller de Informática I Segundo cuatr. 2015
Números y operaciones
Operaciones aritméticas elementales:

• Suma: +, Resta -

• Multiplicación: *, División: /

• Potencias: ^

• Orden de prioridad: Potencias, divisiones y multiplicaciones y por


último sumas y restas. Usar () para cambiar la prioridad

– 2 + 3 * 5^2 ?

Taller de Informática I Segundo cuatr. 2015


Recordemos
• Algoritmo: Una secuencia paso a paso de
instrucciones bien definidas que describen como
realizar un cómputo (ej. algoritmo de máximo común
divisor de Euclides).
• Lenguaje de programación: Lenguaje artificial
diseñado para abstraer las instrucciones que puede
ejecutar una computadora (ej. Matlab).
• Programa: La transcripción de un algoritmo en un
lenguaje de programación dado.

Hace falta conocer un lenguaje de programación para


diseñar un algoritmo?

Taller de Informática I Segundo cuatr. 2015


Lenguajes de programación
En los lenguajes de programación se pueden
reconocer dos partes:
• Sintaxis: las posibles combinaciones de
símbolos que se pueden entender como
expresiones correctas.
• Semántica: el significado asociado a una
expresión.

Taller de Informática I Segundo cuatr. 2015


Expresiones válidas

• 1
• I+2
• I + 2 * -3
• (1 + 2) * -3
• 0 == 1 – 1
• [1; 2; 3; 4]
• 2 * [1 0; 0 1]

Taller de Informática I Segundo cuatr. 2015


Expresiones inválidas

• I (1
• I32
• +12
• (1 + 2) ==
• {3; 2}
• ( 3, 2 )
• [0; 2; 4; 6; ....... ; 20]
• [1 0; 0 1] (1)

Taller de Informática I Segundo cuatr. 2015


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.
Taller de Informática I Segundo cuatr. 2015
Variables
Las variables son nombres con los que podemos referirnos
al resultado de cómputos 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 Booleana
es distinta que booleana.

Taller de Informática I Segundo cuatr. 2015


Asignación:
• Es posible guardar el resultado de una operación
cualquiera en una variable.
• Para eso debemos escribir:
>> x = 2 + 2
x =4
• Si una instrucción la finalizamos con punto y
coma el resultado de la misma no se muestra:
>> x=17^(1/3);
>> test=x^3
test = 17.0000
Taller de Informática I Segundo cuatr. 2015
Vectores(1)
Secuencia de valores de un determinado TIPO al que podemos
acceder a sus diferentes partes que llamamos coordenada.

• Vectores fila; elementos separados por blancos o comas


>> v =[0: 2: 8]
v = [0 2 4 6 8]

• Vectores columna: elementos separados por punto y coma (;)


>> w =[2;3;4;7;9;8]

Entonces si escribimos:
>> x = v(3) accedemos a una coordenada.
x = [4]
>> x = v(2:4) o un grupo de coordenadas.
x= [ 2 4 6]
>> x = v(3: end)
x = [ 4 6 8]
Taller de Informática I Segundo cuatr. 2015
Vectores (2)
También podemos cambiar el valor
específico de una coordenada.

Entonces si escribimos:
>> v = (1: 3 : 17)
v = [1 4 7 10 13 16]
>> v(3) = 0
v= [1 4 0 10 13 16]
>> v(3: end) = 0
v = [1 4 0 0 0 0]

>> v(4:5) = [7 8]
v = [1 4 0 7 8 0]

Taller de Informática I Segundo cuatr. 2015


Matrices (1)
No hace falta establecer de antemano su tamaño (se puede definir un
tamaño y cambiarlo posteriormente). Matriz vacía: M=[ ];
• Las matrices se definen por filas; los elementos de una misma fila
están separados por blancos o comas. Las filas están separadas por
punto y coma (;).
– >> M=[3 4 5; 6 7 8; 1 -1 0]

• Se puede acceder:
– a un elemento: M(1,3),
– a una fila M(2,:),
– a una columna M(:,3).

• Cambiar el valor de algún elemento: M(2,3)=1;

• Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];

• Extraer una submatriz de las filas 1 a 2 y las columnas 1 y 3:


>> B=M(1:2, [1,3])
Taller de Informática I Segundo cuatr. 2015
Matrices (2)
Podemos también:

>> B = [ [1 2 3]' [2 4 7]' [3 5 8]'] >> B(1:2 , 3:4)


Da error

B= 1 2 3

2 4 5 >> B(1:2, 2:3)


3 7 8

Extrae en un vector todos los elementos de la matriz que sean mayores a 3:


>> V = find (B > 3)
a
n
Las operaciones en matrices (y vectores) pueden ser de dos tipos: coordenada a
s j), así:
coordenada o según su definición en el álgebra de matrices (fila i x columna
>> C1 = B * B es diferente a C2 = B .* B
=

Taller de Informática I Segundo cuatr. 2015 2


Operaciones con vectores y matrices
Operaciones con escalares:

v: vector, k: escalar:

• v+k adición o suma


• v-k sustracción o resta
• v*k multiplicación
• v/k divide cada elemento de v por k
• k./v divide k por cada elemento de v
• v.^k potenciación de cada componente de v a k
• k.^v potenciación k elevado a cada componente de v
Taller de Informática I Segundo cuatr. 2015
Vectores y matrices

Definición de matrices:

• Generación de matrices:

▫ Generación de una matriz de ceros, zeros(n,m)


▫ Generación de una matriz de unos, ones(n,m)
▫ Inicialización de una matriz identidad eye(n,m)
▫ Generación de una matriz de elementos aleatorios rand(n,m)

• Añadir matrices: [X Y] columnas, [X; Y] filas

Taller de Informática I Segundo cuatr. 2015


Un índice puede ser un intervalo. Para matrices, los
índices de intervalos permiten acceso a submatrices
contiguas y no-contiguas.

Por ejemplo, suponga que A es una matriz 10 por 10.


Entonces

>> A(1:5, 3)

especifica la submatriz 5 x 1, ó vector columna, que


consiste de los primeros cinco elementos en la
tercera columna de A.

También

>> A(1:5, 7:10)

es la submatriz 5 x 4 de las primeras cinco filas y


las últimas cuatro columnas.

Taller de Informática I Segundo cuatr. 2015


También se puede utilizar un vector como un índice.

>> C = A( 2 , [3 4])

que dará como resultado los elementos en las


columnas
3 y 4 de la segunda fila

Utilizando sólo los dos puntos denota todo lo


correspondiente a la fila ó columna. Podríamos
tener una instrucción como:

>> A(:, [3 5 10]) = B(:, 1:3)

que reemplaza la tercera, quinta y décima


columna de A con las primeras tres columnas
de B.

Taller de Informática I Segundo cuatr. 2015


Matrices Transpuestas
El caracter ' (apóstrofe) denota la transpuesta de la
matriz. Si tenemos la matriz A y llamamos B = A', B es
la transpuesta de la matriz A.

Multiplicando Matrices
La operación de multiplicación de matrices está definida
siempre que el número de columnas de la primera matriz
sea igual a el número de filas de la segunda matriz.

Producto escalar
El producto interior (producto escalar ó producto punto)
se consigue de la siguiente manera:

>> x' * y

asumiendo que x y y son vectores columnas. Note que


y' * x produce el mismo resultado.

Taller de Informática I Segundo cuatr. 2015


Ejemplo: producto escalar.

• El producto por un escalar es tan intuitivo como


la suma de vectores:
▫ v=[1 6];
▫ w=-3*v; drawvec(v, 'red', 20);
▫ hold on; drawvec(w, 'blue', 20);

• Obsérvese que -3v es un vector tres veces más


largo que v y apuntando en sentido contrario.

Taller de Informática I Segundo cuatr. 2015


Operaciones con vectores y matrices
• + adición o suma
• – sustracción o resta
• * multiplicación matricial
• .* producto elemento a elemento
• ^ potenciación
• .^ elevar a una potencia elemento a elemento
• \ división-izquierda
• / división-derecha
• ./ y .\ división elemento a elemento
• matriz traspuesta: B=A’ (en complejos calcula la traspuesta
conjugada, sólo la traspuesta es B=A.’)

Ejemplo: main_operaciones_matrices.m

Taller de Informática I Segundo cuatr. 2015


Funciones para vectores y matrices
• sum(v) suma los elementos de un vector

• prod(v) producto de los elementos de un vector

• dot(v,w) producto escalar de vectores

• cross(v,w) producto vectorial de vectores

• mean(v) (hace la media)

• diff(v) (vector cuyos elementos son la resta de los elemento de v)

• [y,k]=max(v) valor máximo de las componentes de un vector (k indica la


posición), min(v) (valor mínimo). El valor máximo de una matriz M se
obtendría como max(max(M)) y el mínimo min(min(v))

• Aplicadas algunas de estas funciones a matrices, realizan dichas operaciones por


columnas.

Taller de Informática I Segundo cuatr. 2015


Funciones para vectores y matrices
• [n,m]=size(M) te da el número de filas y columnas

• matriz inversa: B=inv(M), rango: rank(M)

• diag(M): Obtencion de la diagonal de una matriz. sum(diag(M))


calcula la traza de la matriz A. diag(M,k) busca la k-ésima
diagonal.
• norm(M) norma de una matriz (máximo de los valores absolutos
de los elementos de A)
• flipud(M) reordena la matriz, haciendo la simétrica respecto de un
eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simétrica
respecto de un eje vertical
• [V, landa]=eig(M) da una matriz diagonal landa con los
autovalores y otra V cuyas columnas son los autovectores de M

Ejemplo: main_operaciones_matrices.m
Taller de Informática I Segundo cuatr. 2015
Resumen: vectores y matrices
• MATLAB es un entorno interactivo que utiliza como tipos
de datos básicos vectores y matrices de flotantes que no
requieren ser dimensionados.
• MATLAB permite distinguir vectores fila de vectores
columna y calcular la transpuesta de un vector.
• En MATLAB es posible sumar vectores, multiplicarlos por
un escalar, calcular su módulo o calcular su producto
escalar.
• MATLAB permite definir matrices y acceder a sus
componentes elementales; también es posible extraer
fácilmente submatrices así como multiplicar matrices y
vectores.

Taller de Informática I Segundo cuatr. 2015


Ejercicios con Matrices:
Dada la matriz:

• Guardar en una variable vc el vector columna que surge de la tercera fila.


• Guardar en la variable vf el vector correspondiente a los dos primeros elementos
de la fila 1 y los dos últimos de la fila 4
• Guardar en pv el producto vectorial de vc y vf
• Guardar en la matriz A1 los elementos desde la fila 2 a la 4 y desde la columna 1
a la 3 de la matriz A
• Intentar realizar en M la multiplicación de A*A1. Que sucede? Lea el mensaje e
intente explicarlo con sus palabras
• Modifique el tercer elemento de la fila 4 de la matriz A por el valor 54
• Guardar en la variable Y todos los elementos de A que sean mayores a 35
Taller de Informática I Segundo cuatr. 2015
Funciones

Las funciones son procedimientos con nombres


que pueden requerir múltiples 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 función bien específica

Taller de Informática I Segundo cuatr. 2015


Funciones internas

Ejemplos:

• size( [1 0; 0 1] )
• resul = or( true, false )
• disp( [1 2 3 4])
• sum( [1 2 3 4])

Taller de Informática I Segundo cuatr. 2015


Ventajas de utilizar funciones
• Solamente se escribe una vez. Esto evita errores
involuntarios (pero siempre presentes) de transcripción.
• Si una función es probada y funciona bien, funcionará bien
cada vez que se use (siempre y cuando el uso sea el
correcto). Esta es una ventaja importante cuando estamos
buscando errores presentes en nuestros programas, puesto
que evaluamos pedazos cada vez más pequeños lo que
facilita la detección de errores.
• Son portables. Una misma función puede ser útil para
distintos casos, distintos programas y distintos
programadores
• Código más limpio. Al usar funciones reducimos las líneas
de código de nuestro programa y por lo tanto se hacen
mucho más fáciles de leer y validar su correctitud.
• Parte un programa en varios subprogramas
Taller de Informática I Segundo cuatr. 2015
Partes de una función
Se pueden observar dos lados de una función:

la invocación y la definición.

Invocación: Se refiere a la llamada a la función.

Ejemplo: >> y = sin(pi);

En este caso, sin representa el nombre de la función,


pi es el argumento y la variable y el objeto de salida.

Taller de Informática I Segundo cuatr. 2015


Partes de una función
Definición: Se refiere al texto de la función con el desarrollo
del cuerpo de la misma.

En nuestro caso, se trata de archivos .m donde volcamos, en


sintaxis correcta, el texto de la función como un conjunto de
sentencias válidas:
Ejemplo:
Palabra
reservada
function salida = nombreFuncion (lista_de_parametros)

.. %sentencias
salida = ...
end
Aquí se guarda Argumentos,
el resultado separados
final por coma

Taller de Informática I Segundo cuatr. 2015


Ejemplo
Supongamos que queremos realizar una función que retorne
la suma de dos escalares.

• Generamos la función suma, en un archivo suma.m:


function salida = suma(a,b)
salida = a+b;
end;
• Grabar el archivo
• Invocar a la función desde Matlab:

>> y = suma(2,3)
y=5
Taller de Informática I Segundo cuatr. 2015
Variables de la función
¿Qué sucede si por línea de comandos quiero saber qué valor tienen las
variables a y b de la función o la variable salida?
>> a
error: ‘a' undefined near line 2 column 1

El mensaje de error indica que la variable ‘a’ no es conocida en este


contexto. Es decir, las variables de la función sólo tienen validez dentro
de la función misma.
Se puede realizar el siguiente experimento:
>> a=123
a = 123
>> suma(3,4)
ans = 7
>> a
a = 123 y no 3 que es el valor que toma a dentro de la
función!!!

Esto nos indica que las variables poseen diferentes alcances


Taller de Informática I Segundo cuatr. 2015
Variables de la función
• Las variables declaradas en el intérprete
(por línea de comando) tienen validez en el
intérprete
• Las variables dentro de una función tienen
alcance dentro de la misma función. No
interfieren con variables con el mismo
nombre declaradas fuera de la misma.
• Se dice entonces que las variables son
locales a la función

Taller de Informática I Segundo cuatr. 2015


Ejercitación
1) Realizar una función que dados tres números que representan
notas, retorne el promedio de dichos valores.

2) Realizar una función que reciba como argumento N y retorne


como salida la matriz de NxN con cincos en la diagonal y ceros en
el resto de las componentes.

3) El número combinatorio (n,k) se define como n!/(k!*(n-k)!).


Realizar una función que reciba como parámetros n y k y retorne
el combinatorio. USAR: FACTORIAL(n)

4) El área de un triángulo de lados a, b, c está dada por la ecuación


de Herón:

area = s (s − a)(s − b)(s − c) donde s = (a + b + c ) / 2.

Escribir una función que acepte a, b y c como argumentos de entrada


y retorne el área del triángulo como salida

Taller de Informática I Segundo cuatr. 2015


Expresión Condicional
Es de especial interés que un programa pueda
tomar distintas decisiones a medida que evalúa los
valores de las expresiones que lo conforman.
La sintaxis del condicional requiere dar una
expresión lógica, a continuación todo el código que
debe ejecutarse si la condición resulta verdadera y
finalmente la palabra clave end para marcar el final.

v = [1 2 3];

B = v' * v;

d = det(B);

if d == 0

disp('Determinante es cero');

end
Taller de Informática I Segundo cuatr. 2015
Expresión Condicional
Si deseamos elegir un comportamiento
alternativo cuando la condición es falsa
podemos usar el if en conjunción con el else:
– v = [1 2 3];
– B = v' * v;
– d = det(B);
– if d == 0
– disp('Determinante es cero');
– else
– disp('Determinante no es cero');
– B = zeros(3,3);
– end

Taller de Informática I Segundo cuatr. 2015


Ejercitación
1) Escribir un programa que dados los goles del equipo local y los goles del
equipo visitante de un partido de futbol, indique que equipo ha ganado
(resultados posibles: “local”, “visitante” y “empate”).

2) El cuadrante de un punto (x; y) se puede determinar a partir del signo de x e


y. Escribir un programa que pida al usuario las coordenadas x e y y que
especifique a que cuadrante pertenece el punto

3) Se desea representar con una letra la calificación de un alumno. Las


calificaciones son notas entre 1 y 10. Escribir un programa que pida la nota y
que indique la letra correspondiente:
– A para calificaciones mayores o iguales a 9

– B para calificaciones mayores o iguales a 8


– C para calificaciones mayores o iguales a 7
– D para calificaciones mayores o iguales a 6
– F para las demás calificaciones.

Taller de Informática I Segundo cuatr. 2015


Ejercitación (cont.)
4) Dados el valor anterior y el actual del medidor de la luz, escribir un
programa que determine a cuanto asciende la factura de la luz. El importe
es la suma de $12 de cuota fija más una cuota variable que depende del
consumo y se calcula por tramos:
• Los primeros 100 Kw se cobran a $0.06 el Kw.
• Los 150 Kw siguientes se cobran a $0.04 el Kw.
• El excedente de 250 Kw se cobra a $0.02 el Kw.

Taller de Informática I Segundo cuatr. 2015

You might also like