taller de informática i introducción - dc.uba.ar · pdf filetaller de...

87
Taller de Informática I Introducción Año 2015

Upload: lamkiet

Post on 02-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Taller de Informática IIntroducciónAño 2015

Page 2: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 3: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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\Publicodonde encontrarán para cada clase el material

que les daremos interactivamente.

Page 4: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Participación en claseEsperamos 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.

Page 5: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 6: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 7: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Docentes

• Profesor: Ricardo Rodriguez ([email protected])

• JTP: María Elena Buemi ([email protected])

Los dos estaremos en clase asistiéndolos en el aprendizaje sin jerarquías.

Page 8: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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)

• Página web:

Page 9: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Cronograma:En la página de la materia

Page 10: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 11: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Page 12: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 13: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 14: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015

Ejemplo: Torres de Hanoi

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

Page 15: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

¿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?

Page 16: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 17: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

¿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.

Page 18: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Otro ejemplo

Page 19: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 20: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 21: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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?

Page 22: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

– Letras

– Símbolos

• Obviamente estos símbolos no son los que utiliza internamente la computadora.

Alfanuméricos

Page 23: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 24: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 25: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Page 26: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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).

Page 27: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

• 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 Byte1KByte -> 1024Byte1MByte ->1024KByte1Gbyte -> 1024MByte

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).

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.

decimal binario hexa

Page 28: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Primer ejemplo de algoritmo:

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

Page 29: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

• 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.

Representación de la información: caracteres

Page 30: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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)

Page 31: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

• 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/

Representación de la información: caracteres

Page 32: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 33: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 34: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Unidad de discos de 3 1/2 Regrabador de CD

Memoria flash USB Disco duro

Page 35: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Hardware: Partes de una computadora

Page 36: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 37: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Software: Tipos

▫ Software de aplicación: Son los programas realizados por las personas con un fin específico.

Weka

Page 38: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Algoritmo

Escrito en algún lenguaje de programación

Entrada Salida

Page 39: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Fichas estadoTablero[][]; public Tablero(){estadoTablero=new Fichas [6][7];}; Tablero miTablero = New Tablero(); public Tablero(){estadoTablero=new Fichas [6][7];}; NombreClase.nombreMetodo(parámetrosMétodo);

Trozo JAVA

Open Text1(1) & "\" & nameFile & ".bat" For Append As #3i = 1archivoBAT = ("copy /b ") + Chr(34) & (i) & _ (nameFile) + Chr(34) + Chr(32) + Chr(34) + (nameFile) + Chr(34)Print #3, archivoBATlenResto = tamaño Mod CLng(Combo1)For i = 1 To CByte(Combo1) If i = CByte(Combo1) Then ReDim FileData(CLng(Text1(2)) + lenResto - 1)

Trozo Visual Basic

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.

Trozo Pascal

Page 40: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 41: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

¿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

Page 42: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

¿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.

Page 43: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 44: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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?

Page 45: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

En Matlab son 6 líneas

No se preocupen si no entienden nada. Esto es Matlab avanzado.

Page 46: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

IntroducciónElementos 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

Page 47: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Ambiente de programación: Matlab

Ventana de Comandos

Historial de Comandos

Espacio de trabajo

Page 48: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 49: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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)

Page 50: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 51: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Números y operacionesDatos 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.

Page 52: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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 ?

Page 53: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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?

Page 54: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 55: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Expresiones válidas

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

Page 56: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Expresiones inválidas

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

Page 57: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 58: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

VariablesLas 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.

Page 59: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 60: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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]

Page 61: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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]

Page 62: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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])

Page 63: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Matrices (2)Podemos también:

>> B = [ [1 2 3]' [2 4 7]' [3 5 8]']

● B = 1 2 3 ● 2 4 5 ● 3 7 8

>> B(1:2 , 3:4) Da error

>> B(1:2, 2:3)●

ans = 2 3

● 4 5

Extrae en un vector todos los elementos de la matriz que sean mayores a 3:>> V = find (B > 3)

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

Page 64: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 65: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 66: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 67: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

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

que dará como resultado los elementos en las columnas3 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.

Page 68: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Matrices Transpuestas

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.

Multiplicando Matrices

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.

Producto escalar

Page 69: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 70: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 71: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 72: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 73: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 74: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 75: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 76: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Funciones internas

Ejemplos:

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

Page 77: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 78: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.

Page 79: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Partes de una funciónDefinició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: function salida = nombreFuncion (lista_de_parametros)

.. %sentencias salida = ...end

Palabra reservada

Argumentos, separados por coma

Aquí se guarda el resultado final

Page 80: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 81: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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?>> aerror: ‘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=123a = 123>> suma(3,4)ans = 7>> aa = 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

Page 82: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 83: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Ejercitación1) 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

Page 84: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Expresión CondicionalEs 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

Page 85: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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

Page 86: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

Ejercitación1) 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.

Page 87: Taller de Informática I Introducción - dc.uba.ar · PDF fileTaller de Informática I Segundo cuatr. 2015 Horarios y Organización(1) ... fundamental para el análisis y diseño de

Segundo cuatr. 2015Taller de Informática I

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.