Manual programación (Bash, Python, C++, Latex, Octave, HTML...)

  • View
    5.987

  • Download
    8

Embed Size (px)

DESCRIPTION

Completo manual de de Bash, Python, LaTex, Tkinter, Octave, Matlab, L.A.M.P., HTML, y su aplicación a la física mediante métodos numéricos. Realizado por los docentes de la Facultad de Ciencias de la Universidad de Chile, José Rogan y Victor Muñoz.

Text of Manual programación (Bash, Python, C++, Latex, Octave, HTML...)

Departamento de F sica, Facultad de Ciencias, Universidad de Chile. n Las Palmeras 3425, Nuoa. Casilla 653, Correo 1, Santiago fono: 562 978 7276 fax: 562 271 2973 e-mail: secretaria@sica.ciencias.uchile.cl

Apuntes de un curso de

PROGRAMACION Y METODOS NUMERICOSNovena edicin, revisin 090924-02 o o

Jos Rogan C. e V ctor Muoz G. n

ii

Agradecimientos:Xavier Andrade. Denisse Pastn. e De la promocin del 2004 a: Daniel Asenjo y Max Ram o rez. De la promocin del 2005 a: Alejandro Varas y Mar Daniela Cornejo. o a De la promocin del 2006 a: Nicols Verschueren y Paulina Chacn, o a o Sergio Valdivia y Elizabeth Villanueva. De la promocin del 2007 a: Sebastin Godoy y Carola Cerda, o a Rodrigo Pedrasa y Felipe Fuentes.

iv

IndiceI Computacin. o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13 3 4 4 5 5 6 6 7 9 9 10 11 11 12 12 13 16 24 24 25 25 27 27 28 28 28 30 31 31 32 33 35 35

1. Elementos del sistema operativo unix. 1.1. Introduccin. . . . . . . . . . . . . . . . . . . . . o 1.2. Ingresando al sistema. . . . . . . . . . . . . . . . 1.2.1. Terminales. . . . . . . . . . . . . . . . . . 1.2.2. Login. . . . . . . . . . . . . . . . . . . . . 1.2.3. Passwords. . . . . . . . . . . . . . . . . . . 1.2.4. Cerrando la sesin. . . . . . . . . . . . . . o 1.3. El Proyecto Debian. . . . . . . . . . . . . . . . . 1.4. Archivos y directorios. . . . . . . . . . . . . . . . 1.5. Ordenes bsicas. . . . . . . . . . . . . . . . . . . a 1.5.1. Ordenes relacionadas con archivos. . . . . 1.5.2. Ordenes relacionadas con directorios. . . . 1.5.3. Visitando archivos. . . . . . . . . . . . . . 1.5.4. Copiando, moviendo y borrando archivos. 1.5.5. Espacio de disco. . . . . . . . . . . . . . . 1.5.6. Links. . . . . . . . . . . . . . . . . . . . . 1.5.7. Proteccin de archivos. . . . . . . . . . . . o 1.5.8. Filtros. . . . . . . . . . . . . . . . . . . . . 1.5.9. Otros usuarios y mquinas . . . . . . . . . a 1.5.10. Utilitarios, fecha y calculadora . . . . . . . 1.5.11. Diferencias entre sistemas. . . . . . . . . . 1.6. Shells. . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1. Variables de entorno. . . . . . . . . . . . 1.6.2. Redireccin. . . . . . . . . . . . . . . . . . o 1.6.3. Ejecucin de comandos. . . . . . . . . . . o 1.6.4. Aliases. . . . . . . . . . . . . . . . . . . . 1.6.5. La shell bash. . . . . . . . . . . . . . . . . 1.6.6. Archivos de script. . . . . . . . . . . . . . 1.7. Ayuda y documentacin. . . . . . . . . . . . . . . o 1.8. Procesos. . . . . . . . . . . . . . . . . . . . . . . . 1.9. Editores. . . . . . . . . . . . . . . . . . . . . . . . 1.9.1. El editor vi. . . . . . . . . . . . . . . . . . 1.9.2. Editores modo emacs. . . . . . . . . . . . 1.10. El sistema X Windows. . . . . . . . . . . . . . . .v

vi

INDICE 1.11. Uso del ratn. . . . . . . . . o 1.12. Internet. . . . . . . . . . . . 1.12.1. Acceso a la red. . . . 1.12.2. El correo electrnico. o 1.12.3. Ftp anonymous. . . . 1.12.4. WWW. . . . . . . . 1.13. Impresin. . . . . . . . . . . o 1.14. Compresin. . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 37 37 39 40 40 41 41 45 45 45 45 46 46 47 47 48 48 48 48 49 50 51 51 51 52 52 52 54 54 54 55 55 55 56 56 56 57 57 57 58 58 59

2. Introduccin a programacin. o o 2.1. Qu es programar? . . . . . . . . . . . . . . . e 2.2. Lenguajes de programacin. . . . . . . . . . . o 2.2.1. Cdigo de Mquina binario. . . . . . . o a 2.2.2. Lenguaje de Ensamblador (Assembler). 2.2.3. Lenguaje de alto nivel. . . . . . . . . . 2.2.4. Lenguajes interpretados. . . . . . . . . 2.2.5. Lenguajes especializados. . . . . . . . . 2.3. Lenguajes naturales y formales. . . . . . . . . 2.3.1. Lenguajes naturales. . . . . . . . . . . 2.3.2. Lenguajes formales. . . . . . . . . . . . 2.4. Desarrollando programas. . . . . . . . . . . . 2.5. La interfaz con el usuario. . . . . . . . . . . . 2.6. Sacar los errores de un programa. . . . . . . . 3. Una breve introduccin a Python. o 3.1. Python. . . . . . . . . . . . . . . . . . . . . . 3.1.1. Interactivo versus scripting. . . . . . . 3.1.2. Creando un script. . . . . . . . . . . . 3.2. Lenguaje Python. . . . . . . . . . . . . . . . . 3.2.1. Algunos tipos bsicos. . . . . . . . . . a 3.2.2. Imprimiendo en la misma l nea. . . . . 3.2.3. Imprimiendo un texto de varias l neas. 3.2.4. Variables. . . . . . . . . . . . . . . . . 3.2.5. Asignacin de variables. . . . . . . . . o 3.2.6. Reciclando variables. . . . . . . . . . . 3.2.7. Operaciones matemticas. . . . . . . . a 3.2.8. Operaciones con strings. . . . . . . . . 3.2.9. Composicin. . . . . . . . . . . . . . . o 3.2.10. Comentarios. . . . . . . . . . . . . . . 3.2.11. Entrada (input). . . . . . . . . . . . . 3.3. Condicionales. . . . . . . . . . . . . . . . . . . 3.3.1. Posibles condicionales. . . . . . . . . . 3.3.2. El if. . . . . . . . . . . . . . . . . . . 3.3.3. El if. . . else. . . . . . . . . . . . . . . 3.3.4. El if...elif...else. . . . . . . . . .

INDICE 3.3.5. La palabra clave pass. . . . . . . . . . . . 3.3.6. Operadores lgicos. . . . . . . . . . . . . . o 3.3.7. Forma alternativa. . . . . . . . . . . . . . 3.4. Funciones Pre-hechas. . . . . . . . . . . . . . . . 3.4.1. Algunas funciones incorporadas. . . . . . . 3.4.2. Algunas funciones del mdulo math. . . . . o 3.4.3. Algunas funciones del mdulo string. . . o 3.4.4. Algunas funciones del mdulo random. . . o 3.4.5. Algunos otros mdulos y funciones. . . . . o 3.5. Funciones hechas en casa. . . . . . . . . . . . . . 3.5.1. Receta para una funcin. . . . . . . . . . . o 3.5.2. Variables globales. . . . . . . . . . . . . . 3.5.3. Pasando valores a la funcin. . . . . . . . o 3.5.4. Valores por defecto de una funcin. . . . . o 3.5.5. Argumentos claves. . . . . . . . . . . . . . 3.5.6. Documentacin de una funcin, docstrings. o o 3.5.7. La palabra clave return. . . . . . . . . . . 3.5.8. Funciones que tienen un valor de retorno. . 3.5.9. Recursin. . . . . . . . . . . . . . . . . . . o 3.6. Iteraciones con while. . . . . . . . . . . . . . . . 3.7. Los strings. . . . . . . . . . . . . . . . . . . . . . 3.7.1. Indice negativos. . . . . . . . . . . . . . . 3.7.2. Cun largo es un string? . . . . . . . . . a 3.7.3. Recorriendo un string. . . . . . . . . . . . 3.7.4. Comparando strings. . . . . . . . . . . . . 3.8. El ciclo for. . . . . . . . . . . . . . . . . . . . . . 3.8.1. El comando break. . . . . . . . . . . . . . 3.8.2. El comando else. . . . . . . . . . . . . . . 3.9. Listas. . . . . . . . . . . . . . . . . . . . . . . . . 3.9.1. Rebanando listas. . . . . . . . . . . . . . . 3.9.2. Mutabilidad. . . . . . . . . . . . . . . . . 3.9.3. Modicando listas. . . . . . . . . . . . . . 3.9.4. Agregando a una lista. . . . . . . . . . . . 3.9.5. Borrando items de una lista. . . . . . . . . 3.9.6. Operaciones con listas. . . . . . . . . . . . 3.9.7. Qu contiene una lista? . . . . . . . . . . e 3.9.8. Un ciclo for y las listas. . . . . . . . . . . 3.9.9. Otros trucos con listas. . . . . . . . . . . . 3.9.10. Generando listas de nmeros. . . . . . . . u 3.10. Tuplas. . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Parmetros desde la l a nea de comando. . . . . . . 3.12. Ejemplos de funciones: ra cuadrada y factorial. . z 3.12.1. Ra cuadrada. . . . . . . . . . . . . . . . z 3.12.2. Factorial. . . . . . . . . . . . . . . . . . . 3.13. Trabajando con a