Publicado el 12 de Septiembre del 2018
2.516 visualizaciones desde el 12 de Septiembre del 2018
2,3 MB
444 paginas
Creado hace 15a (24/09/2009)
Departamento de Física, Facultad de Ciencias, Universidad de Chile.
Las Palmeras 3425, Ñuñoa. Casilla 653, Correo 1, Santiago
fono: 562 978 7276
fax: 562 271 2973
e-mail: secretaria@fisica.ciencias.uchile.cl
Apuntes de un curso de
PROGRAMACI ÓN Y MÉTODOS
NUMÉRICOS
Novena edición, revisión 090924-02
José Rogan C.
Víctor Muñoz G.
ii
Agradecimientos:
Xavier Andrade.
Denisse Pastén.
De la promoción del 2004 a: Daniel Asenjo y Max Ramírez.
De la promoción del 2005 a: Alejandro Varas y María Daniela Cornejo.
De la promoción del 2006 a: Nicolás Verschueren y Paulina Chacón,
Sergio Valdivia y Elizabeth Villanueva.
De la promoción del 2007 a: Sebastián Godoy y Carola Cerda,
Rodrigo Pedrasa y Felipe Fuentes.
iv
Índice
I Computación.
1
1. Elementos del sistema operativo unix.
1.1.
1.2.
1.3. El Proyecto Debian.
1.4. Archivos y directorios.
1.5. Órdenes básicas.
Órdenes relacionadas con archivos.
Órdenes relacionadas con directorios.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introducción.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ingresando al sistema.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Terminales.
1.2.2. Login.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3. Passwords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4. Cerrando la sesión.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
3
3
4
4
5
5
6
6
7
9
9
1.5.1.
. . . . . . . . . . . . . . . . . . . 10
1.5.2.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.3. Visitando archivos.
. . . . . . . . . . . . . . . . 11
1.5.4. Copiando, moviendo y borrando archivos.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.5. Espacio de disco.
1.5.6. Links.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.7. Protección de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.8. Filtros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.9. Otros usuarios y máquinas . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.5.10. Utilitarios, fecha y calculadora . . . . . . . . . . . . . . . . . . . . . . . 24
1.5.11. Diferencias entre sistemas.
. . . . . . . . . . . . . . . . . . . . . . . . . 25
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6.1. Variables de entorno.
. . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6.2. Redirección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6.3. Ejecución de comandos.
. . . . . . . . . . . . . . . . . . . . . . . . . . 28
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6.4. Aliases.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6.5. La shell bash.
1.6.6. Archivos de script.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.7. Ayuda y documentación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.8. Procesos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.9. Editores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
. . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.10. El sistema X Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.9.1. El editor vi.
1.9.2. Editores modo emacs.
1.6. Shells.
v
vi
ÍNDICE
1.11. Uso del ratón. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.12. Internet.
1.12.1. Acceso a la red. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.12.2. El correo electrónico.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.12.3. Ftp anonymous. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.12.4. WWW.
1.13. Impresión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.14. Compresión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2. Introducción a programación.
45
2.1. ¿Qué es programar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2. Lenguajes de programación.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2.1. Código de Máquina binario. . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2.2. Lenguaje de Ensamblador (Assembler). . . . . . . . . . . . . . . . . . . 46
2.2.3. Lenguaje de alto nivel.
. . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.4. Lenguajes interpretados.
. . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.5. Lenguajes especializados. . . . . . . . . . . . . . . . . . . . . . . . . . . 47
. . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3.1. Lenguajes naturales.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3.2. Lenguajes formales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
. . . . . . . . . . . . . . . . . . . . . . . . . 50
2.4. Desarrollando programas.
2.5. La interfaz con el usuario.
2.6. Sacar los errores de un programa.
2.3. Lenguajes naturales y formales.
3. Una breve introducción a Python.
Interactivo versus scripting.
3.1.1.
3.1.2. Creando un script.
3.1. Python.
Imprimiendo en la misma línea.
Imprimiendo un texto de varias líneas.
51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2. Lenguaje Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
. . . . . . . . . . . . . . . . . . . . . . . . . . . 52
. . . . . . . . . . . . . . . . . . . . . . 54
. . . . . . . . . . . . . . . . . . 54
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
. . . . . . . . . . . . . . . . . . . . . . . . . . 55
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
. . . . . . . . . . . . . . . . . . . . . . . . . 55
. . . . . . . . . . . . . . . . . . . . . . . . . . 56
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.3. Condicionales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
. . . . . . . . . . . . . . . . . . . . . . . . . . . 57
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
. . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.1. Algunos tipos básicos.
3.2.2.
3.2.3.
3.2.4. Variables.
3.2.5. Asignación de variables.
3.2.6. Reciclando variables.
3.2.7. Operaciones matemáticas.
3.2.8. Operaciones con strings.
3.2.9. Composición.
3.2.10. Comentarios.
3.2.11. Entrada (input).
3.3.1. Posibles condicionales.
3.3.2. El if.
3.3.3. El if. . . else.
3.3.4. El if...elif...else.
ÍNDICE
vii
3.4. Funciones Pre-hechas.
3.5. Funciones hechas en casa.
. . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.5. La palabra clave pass.
3.3.6. Operadores lógicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3.7. Forma alternativa.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.1. Algunas funciones incorporadas. . . . . . . . . . . . . . . . . . . . . . . 61
3.4.2. Algunas funciones del módulo math. . . . . . . . . . . . . . . . . . . . . 62
. . . . . . . . . . . . . . . . . . 62
3.4.3. Algunas funciones del módulo string.
3.4.4. Algunas funciones del módulo random.
. . . . . . . . . . . . . . . . . . 62
. . . . . . . . . . . . . . . . . . . . 62
3.4.5. Algunos otros módulos y funciones.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.5.1. Receta para una función. . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.5.2. Variables globales.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
. . . . . . . . . . . . . . . . . . . . . . . 64
3.5.3. Pasando valores a la función.
3.5.4. Valores por defecto de una función.
. . . . . . . . . . . . . . . . . . . . 64
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.5. Argumentos claves.
3.5.6. Documentación de una función, docstrings. . . . . . . . . . . . . . . . . 66
3.5.7. La palabra clave return. . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.5.8. Funciones que tienen un valor de retorno. . . . . . . . . . . . . . . . . . 67
3.5.9. Recursión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Iteraciones con while.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.7.1. Índice negativos.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.7.2. ¿Cuán largo es un string? . . . . . . . . . . . . . . . . . . . . . . . . . 69
. . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.7.3. Recorriendo un string.
3.7.4. Comparando strings.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8. El ciclo for. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8.1. El comando break.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8.2. El comando else. . . . . . . . . . . . . . . . . . .
Comentarios de: Programación y métodos numéricos (0)
No hay comentarios