CLASE 3 -...

43
CLASE 3 Fuentes: Department of Computer & Information Science, IUPUI + Farah Fisher

Transcript of CLASE 3 -...

Page 1: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

CLASE 3 Fuentes: Department of Computer & Information Science, IUPUI + Farah Fisher

Page 2: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Más sobre linux – Comando: lpr • Para enviar un archivo a imprimir se usa “lpr”

Page 3: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Comando: lpr

Page 4: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

$ lpr nombre-del-archivo $ lpr –P nombre-de-la-impresora nombre-del-archivo ¿Qué impresoras hay? $ lpstat –a $ lpr –P HP_LaserJet_Professional_M1132_MFP arch1.ps

Comando: lpr

Page 5: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Comando: wget • Se usa para traer archivos a través de la red (no es

interactivo => …)

$ wget [opción] [ URL ] URL: Uniform Resource Locator = cadena de caracteres compacta que representa un recurso disponible por internet. $ wget –r - -tries=10 http://fly.srk.fer.ht/ -o log

-c / -i file

Page 6: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Comandos: gzip gunzip • Para comprimir archivos se usa: $ gzip archivo1 -> archivo1.gz Para descomprimir archivos se usa: $ gunzip archivo-gzippeado.gz

Page 7: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Comando: tar • Para ‘pegar’ un archivo a continuación de otro, en uno

nuevo, se usa “tar”

$ tar –c –v –f archivo.tar arch1 arch2 … -cvf; c: crea un nuevo archivo; v: produce mensajes de salida en terminal f: nombre del archivo a crear(/leer) • Para la operación inversa:

$ tar –xvf archivo.tar

Page 8: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Comandos: mount umount •  $ mount /media/flash

•  $ umount /media/flash

Page 9: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Comandos en ‘segundo plano’ • En linux es posible estar corriendo, en una misma ventana,

un comando –que puede ser interactivo-, mientras uno o más comandos corren en un segundo plano.

Para mandar a segundo plano la ejecución de un comando: •  $ comando & $

Page 10: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Cursores •  Los cursores tienen las siguientes acciones

recorrer el comando escrito invocar el comando anterior invocar el comando siguiente

Tecla TAB: completa lo escrito

Page 11: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

PROGRAMACIÓN

Page 12: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

¿Qué es ‘programar’? • Darle instrucciones a una computadora para que

complete una tarea; PROGRAMA: conjunto de instrucciones.

•  Las instrucciones se tienen que escribir en un lenguaje que la coputadora entienda.

•  Los lenguajes de programación se usan para escribir programas.

• El lenguaje usado no debe tener ambigüedades• El orden de las instrucciones es determinante para la

solución correcta del problema.

Page 13: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

¿Qué es ‘programar’? • Una vez que el código (lenguaje) de un programa ha sido

escrito, se debe ‘ejecutar’ (=correr, hacer funcionar, etc)

• En general, los programas se ejecutan •  tipeando su nombre en una terminal, •  haciendo doble-click con el mouse sobre el nombre/ícono del

programa.

Page 14: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Aspecto de los programas • Set de instrucciones como la siguiente: (para imprimir la palabra HI):

Lenguaje Instrucción

•  Logo PR [HI] •  JavaScript alert(“HI”); •  FORTRAN WRITE(*,*) ‘HI’ •  BASIC PRINT “HI” •  COBOL DISPLAY ‘HI’. •  C++ printf(“HI”); •  Pascal WRITELN(‘HI’); •  Assembler XPRNT MESSAGE1

MESSAGE1 DC ‘HI’

Page 15: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Lenguajes de programación

Ø  De bajo nivel:

Ø  De alto nivel:

00111110 00000001

Assembler: de máquina:

Page 16: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Creación de un programa 1.  Decidir los pasos a seguir para realizar la tarea 2.  Escribir los pasos 3.  Traducir lo anterior al lenguaje de

programación elegido 4.  Probar (= controlar, “chequear”) el programa y

corregirlo en caso necesario.

Page 17: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Creación de un programa

• Al procedimiento que describe, en orden, las acciones a seguir por la computadora para llegar al resultado deseado se lo llama

ALGORITMO (guía de cómo trabajará el programa de computadora)

Page 18: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Bases de la programación

1.  LEER y entender el problema

2.  a. PENSAR las diferentes soluciones al mismo; b. DISEÑAR una estrategia para solucionarlo

3.  IMPLEMENTAR el diseño

4.  PROBAR si funciona (… volver a 2b)

Page 19: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

2.  PENSAR en la solución muchas veces significa separar tareas complejas en otras más sencillas y fáciles de entender

• Estas tareas deben estar bien definidas y ser acotadas y fáciles de entender

• El ORDEN en el cual las tareas se acomodan es muy importante.

Bases de la programación

Page 20: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Orden de las tareas

RESULTADO •  Llegan frescos y ávidos de escuchar la clase

RESULTADO •  Llegan empapados de mal humor.

Venida a la clase del viernes •  Levantarse •  Sacarse el piyama •  Ducharse •  Vestirse •  Desayunar •  Viajar a FCAG

de computación (10:30) •  Levantarse •  Sacarse el piyama •  Vestirse •  Ducharse •  Desayunar •  Viajar a FCAG

Page 21: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Bases de la programación • A veces, el algoritmo se expresa como una serie de

pasos usando algo que se llama pseudocódigo

•  Está escrito en un lenguaje para que se lo entienda fácilmente, pero en un modo similar al que codificaríamos usando un lenguaje de programación moderno.

•  Parece una receta; debe estar en el orden correcto.

Page 22: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Bases de la programación

Ejercicio: crear una serie de instrucciones que nos digan

• Cómo comer una banana

Escribir las instrucciones lo más detalladamente posible, para que alguien que nunca comió una banana las pueda entender

Page 23: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

CÓMO COMER UNA BANANA: LISTA DETALLADA DE INSTRUCCIONES 1.  Usando su mano, tome una fruta amarilla, con

forma de luna creciente, que se llama “banana” 2.  Pele la piel exterior o cáscara de la banana

(rompiendo el piquito superior y tirando) 3.  Coma la banana

1.  Ponga una porción pequeña de la banana en su boca 2.  Muerda la banana 3.  Mastique la banana abriendo y cerrando la boca 4.  Una vez que está toda masticada, trague la banana 5.  Repita hasta que la banana se termine

4.  Tire a la basura la cáscara de la banana

Page 24: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Bases de la programación

•  El algoritmo también puede escribirse como un DIAGRAMA DE FLUJO

•  El DIAGRAMA DE FLUJO es un esquema o dibujo que ayuda a organizar las ideas

•  Usa una colección de símbolos básicos que sirven para organizar el algoritmo

•  Estos símbolos se conectan entre sí por flechas que muestran cómo el algoritmo “fluye”

Page 25: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Símbolos del DIAGRAMA DE FLUJO

• START/END (comienzo/fin)

•  INPUT/OUTPUT (entrada/salida de datos)

• PROCESO • DECISIÓN

Page 26: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Símbolos del DIAGRAMA DE FLUJO

• START/END • Se usa al comienzo y al final de cada diagrama de flujo

Page 27: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Símbolos del DIAGRAMA DE FLUJO

•  INPUT/OUTPUT • Muestra cuándo el programa pide información o datos, y cuándo arroja resultados.

Page 28: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Símbolos del DIAGRAMA DE FLUJO

• PROCESO • Se usa para mostrar cálculos, almacenamiento de datos en “variables”, y otros procesos que tienen lugar durante un programa.

Page 29: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Símbolos del DIAGRAMA DE FLUJO

• DECISIÓN • Se usa para mostrar que

el programa debe decidir si algo (muchas veces, una comparación entre números) es verdadero o falso. Del símbolo se dibujan las ramas por las que seguirá el programa para el caso verdadero (SÍ o YES: Y), y falso (NO: N).

Y

N

X>7?

Page 30: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Ejercicio: construir un diagrama de flujo para que se lea un valor, se lo multiplique por 2, y se muestre el valor entrado y el resultado.

Bases de la programación

Page 31: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Bases de la programación COMIENZO

LEER UN VALOR

MULTIPLICAR EL VALOR POR 2 Y GUARDARLO EN

EL LUGAR X

MOSTRAR EL VALOR INGRESADO Y X

FIN

Page 32: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Bases de la programación COMIENZO

DESAYUNAR

VESTIRSE

DUCHARSE

SACARSE EL PIYAMA

LEVANTARSE

VIAJAR A FCAG

FIN

Page 33: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Ejemplo de pseudocódigo •  Tarea: sumar dos números • Pseudocódigo:

•  Comienzo •  Leer dos números •  Sumarlos •  Imprimir el resultado •  Fin

Page 34: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

El Diagrama de flujo

• El pseudocódigo de la diapositiva anterior tendrá la forma:

Comienzo

Leer 2 números

Sumarlos

Imprimir elresultado

Fin

Page 35: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Ejemplo: Según el año de nacimiento, calcular la edad y escribir ‘anciano’ si es mayor a 90

• Pseudocódigo: •  Comienzo •  Leer el año de nacimiento •  Calcular la edad •  Imprimir la edad •  Si edad > 90 imprimir ANCIANO •  Fin

Page 36: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Ejemplo: Calcular la edad y escribir ‘anciano’ si es mayor a 90

• Pseudocódigo: •  Comienzo •  Leer el año de nacimiento •  Calcular la edad •  Mostrar la edad •  Si edad > 90 imprimir ANCIANO •  Fin

Page 37: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

• Pseudocódigo: •  Comienzo •  Leer el año de nacimiento •  Calcular la edad •  Mostrar la edad •  Si edad > 90 imprimir ANCIANO •  Fin

Leer año denacimiento

Calcular edad

Imprimir edad

Edad>90?ANCIANOY

N

Comienzo

FIN

Ejemplo: Calcular la edad y escribir ‘anciano’ si es mayor a 90

Page 38: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Tarea • Escribir un pseudocódigo y crear un diagrama de flujo

para un programa que calcule el promedio de tres notas y lo imprima; y que se escriba la palabra APROBADO si el promedio de las notas es mayor a 8.

Page 39: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Ejemplo

•  Problema: ¿cómo hacer una taza de té? •  Idear un algoritmo para la solución.

RECORDAR: planear el algoritmo ANTES de empezar a codificar (escribir en lenguaje de programación)

1.  Hervir el agua 2.  Poner té en la taza 3.  Poner el agua

hirviendo en la taza

Page 40: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Programa (1) para hacerse un té

¿Tiene agua la pava?

Ponerla a hervir

Poner agua hirviendo en la taza

Llenar la pava No

Poner saquito de té en una taza

Page 41: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

Mejorando el programa

Llenado de la pava

Abrir la canilla

Esperar

¿Está llena la pava?

No

Cerrar la canilla

Poner la pava bajo la canilla

¿Hirvió el agua?

Poner el agua en la taza

Hervor

Encender el gas

Esperar

No

Poner la pava a calentar sobre la hornalla

Page 42: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

¿La pava tiene agua?

No

Yes

Poner té en la taza Poner agua hirviendo en la taza

Programa (2) para hacerse un té

Page 43: CLASE 3 - valhalla.fcaglp.unlp.edu.arvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2018-SS/Clase-03... · (rompiendo el piquito superior y tirando) 3. Coma la banana 1. Ponga una

FIN CLASE 3