CLASE 3 -...

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

Transcript of CLASE 3 -...

Page 1: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

Page 2: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

Page 3: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Comando: lpr

Page 4: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

Comando: lpr

Page 5: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

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

Page 6: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

Page 7: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 • Para la operación inversa:

•  $ tar –xvf archivo.tar

Page 8: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Comandos: mount umount •  $ mount /media/flash

•  $ umount /media/flash

Page 9: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

PROGRAMACIÓN

Page 12: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

¿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 de la

solución correcta del problema.

Page 13: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

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

•  Los programas se ejecutan •  tipeando su nombre en una terminal, •  usando una palabra como RUN y el nombre del programa, •  haciendo doble-click con el mouse sobre el nombre/ícono del

programa.

Page 14: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

Lenguaje Instruccion

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

Language MESSAGE1 DC ‘HI’

Page 15: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 16: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 17: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Bases de la programación

1.  LEER y entender el problema

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

3.  IMPLEMENTAR el diseño

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

Page 18: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 19: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 (8:30) •  Levantarse •  Sacarse el piyama •  Vestirse •  Ducharse •  Desayunar •  Viajar a FCAG

Page 20: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 (español), pero en un modo similar al que lo codificaríamos usando un lenguaje de programación moderno.

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

Page 21: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 22: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 23: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 24: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Símbolos del DIAGRAMA DE FLUJO

• START/END (comienzo/fin)

•  INPUT/OUTPUT (entrada/salida de datos)

• PROCESO • DECISIÓN

Page 25: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Símbolos del DIAGRAMA DE FLUJO

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

Page 26: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Símbolos del DIAGRAMA DE FLUJO

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

Page 27: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 28: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Símbolos del DIAGRAMA DE FLUJO

• DECISIÓN • Se usa para mostrar que

el programa debe decidir si algo (en general, una comparación entre números) es verdadero o falso. Del símbolo se dibujan las ramas para el caso verdadero (SÍ o YES), y falso (NO).

Y

N

X>7?

Page 29: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

Bases de la programación

Page 30: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 31: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Bases de la programación COMIENZO

DESAYUNAR

VESTIRSE

DUCHARSE

SACARSE EL PIYAMA

LEVANTARSE

VIAJAR A FCAG

FIN

Page 32: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

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

Page 33: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

El Diagrama de flujo

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

Comienzo

Leer 2 números

Sumarlos

Imprimir elresultado

Fin

Page 34: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Ejemplo: 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 35: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 36: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

• 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 37: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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

para un programa que calcule el promedio de tres notas y lo imprima.

•  La palabra APROBADO debe escribirse si el promedio de las notas es mayor a 8.

Page 38: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

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 39: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Programa (1) para hacerse un té

¿Tiene agua la pava?

Ponerla a hervir

Poner agua hirviendo en la taza

Llenar la pava No

Yes

Poner saquito de té en una taza

Page 40: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

Mejorando el programa

Llenado de la pava

Abrir la canilla

Esperar

¿Está llena la pava?

Yes

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

Yes

Poner la pava a calentar sobre la hornalla

Page 41: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

¿La pava tiene agua?

No

Yes

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

Programa (2) para hacerse un té

Page 42: CLASE 3 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-03-Computacion.pdf · 3. Traducir lo anterior al lenguaje de programación elegido 4. Probar (=controlar,

FIN CLASE 3