Taller de Informática I Introducción

Anuncio
Taller de Informática I
Introducción
Año 2010
Lic. Andrea Manna
Presentación
•
•
•
•
Teórico/Práctico
Miércoles 18:00 a 22:00 – Laboratorio 6
2 trabajos prácticos y un coloquio final
Promocional
Docentes
• Profesor: Javier Marenco
(jmarenco@dc.uba.ar)
• JTP: Andrea Manna
(amanna@dc.uba.ar)
• Ay. Primera: Cristian Rocha
(crocha@dc.uba.ar)
• Ay. Primera: Silvana Wider
(swider@dc.uba.ar)
Apuntes
• Página web:
▫ www.dc.uba.ar
▫ http://www-2.dc.uba.ar/materias/t1/index.html
Objetivos
• La intención de la materia es 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. Se buscará
dar una introducción general a la programación para
estudiantes de ciencias (en particular para estudiantes 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 una publicación científica interdisciplinaria entre su
carrera y computación, y
▫ logre relacionar un problema matemático con problemas
computacionales.
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.
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, etc.
• Los procesos son un conjunto de
operaciones a realizarse con los datos,
para obtener resultados
Representación de la información
• Como se ha visto, una computadora es una
máquina capaz de procesar información.
Para realizar este proceso se precisa
información de dos tipos:
Las instrucciones del programa
Los datos a procesar
• Pero…¿Cómo le brindamos esta
información?
Representación de la información
• Normalmente un operador le da a la
computadora los datos en un lenguaje
conocido, utilizando los símbolos del
lenguaje diario. Estos símbolos pueden ser:
Números
Letras
Símbolos
Alfanuméricos
• Obviamente estos símbolos no son los que
utiliza internamente una computadora
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 otorga una persona a la
computadora, a elementos que una computadora
puede ser capaz de almacenar
Representación de la información
Las primeras computadoras eran muy simples:
• Wilhelm Schickard: 1623, primera calculadora automática
(Reloj calculador). La máquina realizaba las 4 operaciones,
basada en “Huesos de Napier” y en un mecanismo de sumas
parciales. Utilizaba números de hasta 6 dígitos.
El prototipo y los planos fueron perdidos hasta el siglo 20,
cuando su diseño fue descubierto entre los papeles de Kepler.
Murió a los 43 años víctima de la peste bubónica
Representación de la información
• Blas Pascal: 1642, sólo suma y resta (Pascalina)
Fue un niño prodigio y matemático de primer orden. Pascalina
se usó para el cálculo de impuestos en Francia hasta 1799.
Ayudó a crear dos grandes areas de investigacion: Geometria
proyectiva y Teoría de Probabilidades. Murió a los 39 años.
Autor del triángulo de Pascal (el triangulo representa los
coeficientes binomiales)
Representación de la información
• Von Leibniz: 1672, las 4 operaciones
Fue filósofo, matemático, jurista, bibliotecario y político alemán,
considerado “El último genio universal” de los siglos XVII y XVIII.
Descubrió el cálculo infinitesimal, el sistema binario, anticipa la
lógica moderna y la filosofía analítica.
La máquina de Leibniz era superior a la de Pascal, ya que
multiplicaba por repetición de sumas y dividía por repetición de
restas
Representación de la información
• En la década del ’40:
▫ Z1: Konrad Zuse, Ing alemán, diseño Z1 en 1936,
considerada la primera computadora programable.
Recibía datos de una cinta perforada y utilizaba
lógica booleana. Hacía cálculos en punto flotante.
▫ Mark1: Usaba el 0 para representar el positivo y
el 9 para el negativo. Procesaba 1 instrucción cada
6 segundos.
▫ ENIAC: Pesaba 30 tn. Tenía 20 registros capaz de
almacenar un número de 10 dígitos. Usaba
aritmética en base 10
Primeras Computadoras
Mark1
Eniac
Z1
Representación de la información
• Despues de mucho investigar, se decidió que la mejor
opción para almacenar la informacion 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 electrico, 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
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 su 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.
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:
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.
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.
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
▫ 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 (16)
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 o 32 bits.
• Las tres formas de codificar tienen el mismo repertorio
de caracteres comunes y es posible cambiar 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/
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.
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.
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
Regrabador de CD
Memoria flash USB
Unidad de discos de 3 1/2
Hardware: Partes de una computadora
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
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.
Trozo JAVA
Fichas estadoTablero[][];
public Tablero(){estadoTablero=new
Fichas [6][7];};
Tablero miTablero = New Tablero();
public Tablero(){estadoTablero=new
Fichas [6][7];};
NombreDeLaClase.nombreDelMetodo(pa
rámetros del método);
Trozo Visual Basic
Open Text1(1) & "\" & nameFile & ".bat" For Append As
#3
i=1
archivoBAT = ("copy /b ") + Chr(34) & (i) & _
(nameFile) + Chr(34) + Chr(32) + Chr(34) +
(nameFile) + Chr(34)
Print #3, archivoBAT
lenResto = tamaño Mod CLng(Combo1)
For i = 1 To CByte(Combo1)
If i = CByte(Combo1) Then
ReDim FileData(CLng(Text1(2)) + lenResto - 1)
Trozo Pascal
PROGRAM Primera_Prueba;
CONST
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
VAR
Entero : Integer;
BEGIN
Write(Mensaje);
ReadLn(Entero);
WriteLn(Respuesta, Entero);
END.
Software: Tipos
▫ Software de aplicación: Son los
programas realizados por las personas con
un fin específico.
Lenguajes 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. Ejemplos:
▫ Pascal, C, Java, Basic, C++…
Entrada
Algoritmo
Salida
Escrito en algún lenguaje de
programación
Lenguajes de programación
• La computadora entiende lenguaje de máquina, o sea,
basado en 0 y 1. Entonces, nuestro algoritmo debe ser
traducido a lenguaje de máquina. Esta traducción puede
hacerse mediante:
Compilación
Interpretación
Lenguajes de programación
• Compilador: programa que recibe como entrada un conjunto de
sentencias escritas en algún lenguaje de alto nivel y produce, como
salida, un programa en lenguaje de máquina (normalmente
denominado ejecutable) que puede ser ejecutado por la máquina
donde fue compilado. Generalmente hay dos pasos: el análisis
sintáctico y la generación de código objeto. Con esta información el
linker se encarga de generar el ejecutable.
• Interprete: En lugar de tomar un código fuente y traducirlo
íntegramente a código ejecutable, el intérprete realiza la doble tarea
de traducir y ejecutar simultáneamente, sin producir un código
objeto ni un ejecutable. Se traduce línea a línea a medida que se
precisa, o sea, al momento de ejecutar
En general, la ejecución de un código interpretado es más
lenta que la de un código compilado (¿Por qué?).
Descargar