Вы находитесь на странице: 1из 60

UNIVERSIDAD DE SANTIAGO DE CHILE

VICERRECTORA ACADMICA
PROYECTOS DE INNOVACIN DOCENTE

EJERCICIOS DE FUNDAMENTOS DE COMPUTACIN Y


PROGRAMACIN APLICADOS A QUMICA, FSICA,
ECONOMA Y MATEMTICAS

RECOPILACIN Y ADAPTACIN DE EJERCICIOS


Autores
Mg. Andrs Alejandro Rice Mora
PhD. Jos Luis Jara Valencia

SANTIAGO - CHILE
Marzo 2016

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica

Contenido
UNIDAD 1. PRELIMINARES ....................................................................................................................... 5
1.1

Qu es un Algoritmo? ........................................................................................................................... 6

1.2

Qu es la Abstraccin de procesos?..................................................................................................... 6

1.3

Qu es una cifra significativa? .............................................................................................................. 7

1.4

1.3.1

Truncar cifras ...................................................................................................................... 7

1.3.2

Redondear cifras ................................................................................................................. 7

Mdulo MATH ......................................................................................................................................... 8

UNIDAD 2. CONSTANTES Y VARIABLES EN PYTHON........................................................................... 9


Desafio 1.

Usando las operaciones matemticas bsicas ......................................................................... 9

Desafio 2.

Resolviendo una ecuacin bsica .......................................................................................... 10

Desafio 3.

Utilizando las funciones seno (sin) y coseno (cos) del mdulo MATH..................................... 10

Desafio 4.

Conversin de radianes a grados ........................................................................................... 10

Desafio 5.

Conversin de temperaturas .................................................................................................. 10

Desafio 6.

Ley de gases ideales .............................................................................................................. 11

Desafio 7.

Densidad de un gas ............................................................................................................... 11

Desafio 8.

Calculando la constante ...................................................................................................... 12

Desafio 9.

Trabajando con logaritmos ..................................................................................................... 12

Desafio 10.

Clculo con logaritmos ........................................................................................................... 12

Desafio 11.

Ecuacin logartmica equivalente ........................................................................................... 12

Desafio 12.

Trabajando con la constante ................................................................................................ 13

Desafio 13.

Crecimiento exponencial ........................................................................................................ 13

Desafio 14.

Expresiones con races .......................................................................................................... 13

Desafio 15.

Crecimiento exponencial ........................................................................................................ 13

Desafio 16.

Calculo de presin en /, ................................................................................................. 14

Desafio 17.

Determinacin de masa.......................................................................................................... 14

Desafio 18.

Principio de Arqumedes ........................................................................................................ 14

Desafio 19.

Clculo de inters simple ....................................................................................................... 15

UNIDAD 3. MODELANDO FUNCIONES ................................................................................................... 17


Desafio 20.

Llamado a una funcin ........................................................................................................... 18

Desafio 21.

Costo de la rehabilitacin ....................................................................................................... 19

Desafio 22.

Calculo de inters simple ....................................................................................................... 21

Desafio 23.

Proyectil, un movimiento analizado en dos direcciones .......................................................... 23

Desafio 24.

Proyectil, altura y alcance mximo ......................................................................................... 23

UNIDAD 4. LGICA Y BIFURCACIONES ................................................................................................ 24


Desafio 25.

Decil socioeconmico de un grupo familiar ............................................................................. 25

Desafio 26.

Identificar si un color es secundario o primario ....................................................................... 26

Desafio 27.

Nota final de la asignatura ...................................................................................................... 27

Desafio 28.

Clculo de impuesto ............................................................................................................... 27

UNIDAD 5. LISTAS ................................................................................................................................... 29


Desafio 29.

Iterar sobre una lista de forma ascendente, de inicio a fin ...................................................... 30

Desafio 30.

Iterar sobre una lista de forma descendente, de fin a inicio .................................................... 30

Desafio 31.

Intercalar listas ....................................................................................................................... 31

Desafio 32.

Suma de matrices .................................................................................................................. 31

Desafio 33.

Producto de dos matrices ....................................................................................................... 32

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 2

Desafio 34.

Producto de una matriz por un escalar ................................................................................... 32

Desafio 35.

Transpuesta de una matriz ..................................................................................................... 32

UNIDAD 6. ITERACIONES ........................................................................................................................ 33


Desafio 36.

Lgica de un semforo ........................................................................................................... 34

Desafio 37.

Aplicando factorial para el anlisis combinatorio..................................................................... 34

Desafio 38.

Planeacin nutricional (Ecuaciones lineales) .......................................................................... 35

Desafio 39.

Mezcla de productos (Ecuaciones lineales) ............................................................................ 35

Desafio 40.

Clculo de inters compuesto (Economa Finanzas) ........................................................... 35

UNIDAD 7. USO Y GENERACIN DE ARCHIVOS .................................................................................. 37


Desafio 41.

Lectura de un archivo ............................................................................................................. 38

Desafio 42.

Determinando los nmeros ganadores del sorteo................................................................... 39

UNIDAD 8. PRUEBAS SEMESTRES ANTERIORES ............................................................................... 41


Desafio 43.

Prueba Escrita Programada (PEP I - 1/2015) ......................................................................... 42

Desafio 44.

Prueba Acumulativa (PA - 1/2015) ......................................................................................... 48

Desafio 45.

Prueba Escrita Programada (PEP I - 2/2015) ......................................................................... 50

Desafio 46.

Prueba Escrita Programada (PEP II - 2/2015) ........................................................................ 52

Desafio 47.

Prueba Acumulativa (PA - 2/2015) ......................................................................................... 54

UNIDAD 9. INSTRUCCIONES DE PYTHON ............................................................................................. 56


GUA RPIDA ............................................................................................................................................ 56

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 3

Universidad de Santiago de Chile


Facultad de Ingeniera
Departamento de Ingeniera Informtica

PREFACIO
INTRODUCCIN

Para la Facultad de Ingeniera de la Universidad de Santiago de Chile, la


alfabetizacin tecnolgica es parte importante en la formacin de sus futuros
Ingenieros. Hoy el uso creciente de la tecnologa envuelve a toda la sociedad,
todas las ramas del saber y al quehacer profesional. El mundo es, cada vez ms,
consumidor de tecnologas porque les permite mejorar su calidad de vida y
profesional. Hoy la mayora de las cosas estn al alcance de un clic (presionar
un botn) o un toque (presionar un dispositivo tctil), la automatizacin y los
controles productivos producen ventajas competitivas importantes a las
empresas, la cantidad de informacin disponible hacen imposible procesarla sin
el uso de las tecnologas; es un hecho, nuestros futuros ingenieros no pueden
ser analfabetos tecnolgicos, deben tener a lo menos una base que les permita
interactuar en un mundo dominado por las tecnologas.
ORGANIZACIN DEL LIBRO

El libro est diseado para un curso de un semestre y organizado siguiendo los


contenidos y secuencia de la asignatura. Sus ejercicios estn seleccionados
considerando el avance acadmico de los estudiantes que cursan la asignatura.
RESUMEN DE LAS INNOVACIONES

ste libro ofrece ejercicios desarrollados y propuesto relacionados con temas


cercanos a los que el estudiante est aprendiendo. Los ejercicios se han
seleccionado y adaptado para que el aprendizaje adquirido en la asignatura de
Fundamentos de Computacin y Programacin se aplique a casos que son
familiares para el estudiante. El conocimiento aplicado, no abstracto, da la
ventaja de ofrecer una herramienta con sentido til y prctico inmediato para el
estudiante, en una sociedad en que todo es inmediatez este punto no puede
pasar desapercibido.
Para nuestros futuros ingenieros no ser lo mismo ser un usuario consumidor de
tecnologa que usuario demandante de tecnologa, ste ltimo la requiere con el
objetivo de ser aplicada en su quehacer profesional, de ah nace la idea de
ejercicios aplicados.
La innovacin de este libro no est focalizada en el medio sobre el cual est
escrito, sino en la didctica; se disea para estudiantes principiantes en estudio
de ingeniera y se practica la programacin de computadores sobre temas de su
diario quehacer, un libro de ejercicios focalizado en un Aprendizaje Basado en
Problemas (ABP).

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 4

UNIDAD 1. PRELIMINARES
CONTENIDOS

En esta unidad se incorporan y explican varios conceptos necesarios para el


quehacer general de un ingeniero y para el estudio de la asignatura
Fundamentos de Computacin y Programacin (FCyP).

APRENDIZAJE ESPERADO DE LA UNIDAD

a) Comprender conceptos utilizados en el anlisis y en el diseo de


soluciones del mbito de la ingeniera.
b) Conocer algunas funcionalidades propias del lenguaje Python que
facilitaran el desarrollo de algunas tareas especficas dentro de la
programacin.
c) Combinar el uso de funciones propias para resolver problema
propuestos
ORIENTACIN DIDCTICA
d) Evaluar resultados obtenidos luego de uso de funciones propias
Los temas incluidos en esta seccin tienen como objetivo ayudar a facilitar la
comprensin de algunos conceptos que se han observado (en el aula), difciles para
los estudiantes.
Tambin se han incorporado algunas funcionalidades propias de Python que ayudan
y facilitan la programacin.
Esta unidad est pensada como una parte introductoria a los ejercicios que
llamaremos Desafos a la capacidad ingenieril de los estudiantes de ingeniera.
.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 5

1.1

Qu es un Algoritmo?

Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar


la solucin de un problema. Todos los problemas poseen su algoritmo de solucin,
sea de forma explcita o implcita. Por ejemplo, recuerda la secuencia, lgicamente
ordenada y finita, de operaciones que realizas para lavarte los dientes o, la que
necesitan para hacer un queque. Para hacer aseo a la dentadura tienes insumos
(pasta dental, agua, cepillo dental) y procesos (cepillar de forma vertical y horizontal,
cepillar la parte anterior y posterior de la dentadura, enjuagar la cavidad bucal). En
el caso de cocinar un queque, la receta tiene ingredientes y un conjunto lgicamente
ordenado y finito de operaciones (pasos) que permite cocinar y obtener un queque.
Entonces, si consideras ocupar algoritmos (recetas) para cocinar, deberas
considerar ocupar algoritmos para resolver los problemas.

1.2

Qu es la Abstraccin de procesos?

La abstraccin es la accin de abstraer que es una operacin intelectual por el cual


se separa un rasgo o una cualidad de algo para considerarlo en su pura esencia.
La abstraccin se vincula con campos del saber, como la filosofa, la psicologa, la
informtica, la investigacin cientfica, el arte, entre otras.
De esta forma la abstraccin puede referirse a:
(Filosofa) La abstraccin es un acto mental en el que asla conceptualmente un
objeto o una propiedad de un objeto.
(Psicologa) La abstraccin es un proceso que implica reducir los componentes
fundamentales de informacin de un fenmeno para conservar sus rasgos ms
relevantes.
(Ingeniera) La abstraccin es un proceso que pone el nfasis en el "qu
hacer?" ms que en el "cmo se hace?", (caractersticas de la caja negra).
Crema
dental
Agua

Limpieza
Dental

Qu necesita
para el proceso

Qu hacer

Dentadura limpia

Qu entrega
como resultado

Ilustracin 1: Caja negra del proceso "aseo dental"

Por ejemplo, qu hace que una mesa sea lo que se conoce como mesa?, si
comparamos varias mesas obtendremos ms diferencias que similitudes (color,
material, formas, rasgos de deterioro, altos, anchos, espesores, etc.) y sin embargo
y a pesar de sus diferencias, somos capaces de indicar cules objetos son una
mesa y cules no lo son. Aquello que hace que una mesa sea una mesa, no es que
sea cuadrada, redonda, rectangular, de madera, de mrmol, verde, amarilla o roja,
sino que abstraemos (separamos un rasgo o una cualidad) de estos objetos, su
color, su forma, el material del cual estn hechas y nos quedamos con la idea o
el concepto de mesa. Dicho concepto se obtiene del proceso mental de abstraccin
que como resultado nos proporcionan la(s) caracterstica(s) esencial(es) del objeto
y separa lo secundario o accidental.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 6

En ingeniera, cuando realizamos una abstraccin de procesos nos interesa qu se


hace, qu se necesita para hacerlo y cul debe ser el resultado (lo esencial) ms
que el cmo se hace (lo secundario).

1.3

Qu es una cifra significativa?

El considerar el uso de cifras significativas tiene como propsito evitar el trabajo


intil con un gran nmero de guarismos que no tendrn significado para nosotros.
Una cifra significativa es aquella que aporta informacin no ambigua ni superflua
acerca de una determinada medida experimental.
1.3.1 Truncar cifras
La palabra truncar es sinnimo de la palabra cortar, por tanto, se trunca una cifra
cuando se eliminan (cortan) los dgitos que estn a partir de una posicin decimal
de un nmero, por ejemplo: si tenemos la cifra 34,7804581 y deseamos truncar al
4to decimal significativo, los nmeros que estn a partir de la 5ta posicin decimal
(581), se eliminan dejando la cifra como 34,7804 (con 6 cifras significativas).
1.3.2 Redondear cifras
El trmino redondear1 lleva implcito la accin truncar pero, si el primer dgito a
eliminar es igual o mayor a 5, el dgito anterior se incrementa en una unidad, por el
contrario, si el primer dgito a eliminar es menor a 5, los dgitos se eliminan y el digito
anterior queda inalterado.
Ejemplo:
a) Si quisiramos redondear la cifra 34,7806481 al 4to decimal quedara como
34,7806 ya que el primer digito de la cifra a eliminar (481) es menor a 5,
entonces el dgito anterior queda inalterado.
b) Si deseamos redondea la cifra 44,8806581 al 4to decimal quedara como
44,8807 ya que el primer digito de la cifra a eliminar (581) es igual o mayor
a 5, entonces el dgito anterior se incrementa en una unidad.
En Python existe una funcin nativa que nos permite realizar esta operacin
de redondeo, la instruccin es round (requiere indicar el dato a redondear y
la cantidad de decimales a conservar).

RAE: Prescindir, en cantidades, de pequeas diferencias en ms o en menos, para tener en cuenta solamente
unidades de orden superior.
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 7

Redondeo a 4
decimales
Redondeo a 3
decimales
Redondeo a 2
decimales

Ilustracin 2: Uso de la sentencia ROUND(x,d) en Python

1.4

Mdulo MATH

Este mdulo proporciona acceso a las funciones matemticas para operaciones con
potencia, logoritmo, trigonometra, conversin de ngulos, hiperblicas, raz
cuadrada y otras. Para que estn disponibles en el programa, se debe incorporar la
sentencia de importacin from math import funcin, donde funcin puede ser
una, varias o todas las funciones que estn en el mdulo Math.

Incorpora al programa la funcin que


permite calcular races cuadradas (sqrt)

Incorpora al programa varias funciones


que permiten calcular raz cuadrada
(sqrt), seno (sin) y coseno (cos)

Aunque no est recomendado, es


posible incorpora todas las funciones
que tiene el mdulo Math

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 8

UNIDAD 2. CONSTANTES Y VARIABLES EN PYTHON


Los conceptos de variables, constantes, operadores aritmticos en Python y nmeros
se han visto en clases tericas, ahora los aplicaremos.
Muchas de las funciones que utilizaremos en los desafos ocupan funciones del mdulo
MATH, por tanto, para utilizar esas funciones deberemos importarlas por medio de la
sentencia from math import funcin a importar

Desafio 1.

Usando las operaciones matemticas bsicas

Calcular con Python, el saldo en dinero al final del da considerando que los movimientos
econmicos son: recib $3.000 al inicio del da, compre $600 en alimento para el
desayuno, a media jornada compre colacin por $1.800, recib $100 por concepto de
devolucin de dinero prestado a un amigo y gast $420 en movilizacin
Ilustracin 3 - Abstraccin del proceso

Ilustracin 4- Construccin del proceso

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 9

Desafio 2.

Resolviendo una ecuacin bsica

Resuelva la siguiente ecuacin, 5 +1 3 +1 5 +1


Considere

3
4

17
25

Resultado objetivo: -8.84

Desafio 3.
MATH

Utilizando las funciones seno (sin) y coseno (cos) del mdulo

Para un tringulo rectngulo ABC, se desea


determinar los segmentos
,
. Se
= 4,8 y = 40,6
conoce que

Desafio 4.

Conversin de radianes a grados

Utilizando las funciones radians y degrees del mdulo MATH, realice las siguientes
conversiones de grados a radianes y de radianes a grados; exprese las cifras con un
mximo de 4 decimales:
a)
b)
c)
d)
e)
f)

30 = 0.6632 radianes
2.4 radianes = 137.5099
2 radianes = 360 (utilice la constante definida en mdulo math)
radianes = 180
5.2360 radianes = 300.00 (redondear resultado a dos decimales)
2/2 radianes = 270

g) Calcule las razones trigonomtricas de los siguientes ngulos (considere la


constante definida en Math).
coseno(/10)
R; 0.9510565162951535
seno(1.5)
R; 0.9974949866040544
tangente(2/3) R; -1.7320508075688783
h) para los siguientes clculos, considere las funciones de Math que permiten
convertir grados a radianes y radianes a grados

coseno(47)
seno(105)
tangente(300)

Desafio 5.

Conversin de temperaturas

Desarrolle un ecuacin que permita transformar de grados Celsius (C) a Kelvin(K) y a


Fahrenheit(F) . Revise sus resultados con las siguientes equivalencias:
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 10

Resultados objetivos:
a) 40 C = 104 F = 313.14 K
b) 68 C = 154.4 F = 341.15 K
c) 98 C = 208.4 F = 371.15 K
d) -73.15 C = -99,67 F = 200 K
e) 0 C = 32 F = 273.15 K

Desafio 6.

Ley de gases ideales

Calcule en Python la masa molar para un vapor indeterminado de masa ; que ocupa
un volumen de , a la presin de , y a la temperatura de .
Para probar su desarrollo considere los siguientes datos:
= 0,846

Constante universal de los gases ideales = 8,314472

354
100
100 = 373

Dado que la cantidad de sustancia est dada en masa, se propone ocupar la siguiente
ecuacin:
=


373

100 0,354

0,846 8,314

Donde:

m : masa
R: Constante universal de los gases ideales
T: Temperatura
P : Presin absoluta
V : Volumen

Resultado objetivo; 74,1

Desafio 7.

Densidad de un gas

Calcular la densidad del 2 gaseoso a 101 a 22,0.


=

Donde:

m : masa
R: Constante universal de los gases ideales
T: Temperatura
P : Presin absoluta
V : Volumen

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 11

Desafio 8.

Calculando la constante

Como usted ya sabe, el nmero es una constante cuyo valor aproximado es


3,14159265358979323846 y que se obtiene dividiendo la longitud de una circunferencia
cualquiera con su dimetro. Ejemplo: para = 8 y = 50,27 el resultado de
nuestro clculo debera dar = 3,14

L = 50,27 cms
r = 8 cms

Desarrolle un programa que calcule el valor de la constante , con una aproximacin de


dos decimales, a partir de una longitud y radio de la circunferencia

Desafio 9.

Trabajando con logaritmos

Considere el uso de las funciones y constantes definidas en el mdulo MATH para


completar la siguiente tabla:
a) Logaritmo natural de para los siguientes valores:
0,1
0,5
1
10
100

2.3026

200
5.2983

b) Obtenga el logaritmo de en base e para los siguientes valores:


-1
-0,5
0
1
2
3

0.6065
20.086
=

300

Desafio 10. Clculo con logaritmos


Usando Python, calcule la expresin ln( 2 + 2) ln 2 , redondeando su resultado a un
decimal
Resultado objetivo; 2.0

Desafio 11. Ecuacin logartmica equivalente


Usando Python, calcule la expresin 38 = 6561 y obtenga la ecuacin logartmica
equivalente. Compruebe su resultado.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 12

Desafio 12. Trabajando con la constante


En la funcin () = 1800 , determine (5) considerando la constante del mdulo
MATH
Resultado objetivo: 12,13

Desafio 13. Crecimiento exponencial


Se cree que muchas clases de bacterias tienen un crecimiento exponencial de la forma
= () = 0 donde es la poblacin en el tiempo , 0 indica la poblacin cuando
= 0 y es la constante de crecimiento (tasa porcentual de crecimiento). Usando
Python, determine el periodo que se requiere para que una poblacin inicial de bacterias
duplique su tamao si la constante de crecimiento es 0,4 y se expresa en horas.
Resultado objetivo: 1,733 hrs.

ln 2 0.6932
= ; = 2; = ln 2 ; =
=
= 1,733
0
0.4
0.4

Desafio 14. Expresiones con races


Usando las instrucciones de Python calcule las siguientes expresiones:
a) 14 + 1 + 9
Resultado objetivo; {

b)

1 = 4
2 = 4

11+48
8

Resultado objetivo:{

1 = 1
2 = 34

Desafio 15. Crecimiento exponencial


Muchos procesos naturales se caracterizan por presentar un deterioro o desintegracin
exponencial. Una funcin de decaimiento exponencial tiene la forma = 0 donde
es el valor de la funcin en el tiempo , 0 indica el valor de la funcin cuando = 0 y
es la constante de decaimiento (tasa porcentual de decaimiento). El proceso de
desintegracin de algunas sustancias radioactivas se caracterizan por un
comportamiento de decaimiento (deterioro) exponencial.
Suponiendo que la cantidad de una sustancia radioactiva como el estroncio 90 se puede
determinar por la ecuacin = 0 y cuya constante de decaimiento es 0,0244
calcule en Python en cuntos aos la cantidad de estroncio 90 se reducir a la mitad de
su tamao.
Resultado objetivo: 28,40 aos

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 13

= 0,5 ; = 0,5 ; = ln 0,5 ; =

ln 0,5

; =

ln 0,5
0,0244

; =

0.6932
0,0244

= 28,40

(1)

Desafio 16. Calculo de presin en / ,


Un estanque contiene dos lquidos, y , cuyas
densidades son = 0,70 3 y = 1,5 3. La
presin atmosfrica local es igual a 1.0 .
Desarrolle un programa en Python que permita indicar,
para lquidos con cualquier densidad, la presin en /2 ,
en el punto 1, en el punto 2 y en el punto 3.
Considere = 10 2

= 10

(2)
B

= 8

(3)

Desafio 17. Determinacin de masa


Construya un pequeo programa en Python que permita resolver el siguiente problema:
Una luminaria de nen est hecha con un tubo de dimetro interno 2,00 cm y longitud
de 4,00 m. Si el tubo contiene nen a una presin de 200 Pa a 35 C, determine la masa
de nen que hay en esa luminaria.
a) Datos
= 200 = 0,200
= 2

= 20,2

= 35 = 308

b) Desarrollo
=

0,200 1,257 20,2


8,314


309

Resultado objetivo: 1,98 103

Desafio 18. Principio de Arqumedes


Un cilindro metlico, cuya rea en la base es = 10 2 y cuya altura es = 8.0 ,
flota en mercurio. La parte del cilindro sumergida en el lquido tiene una altura =
6.0 .
a) Qu valor tiene el empuje hidrosttico ascendente sobre el cilindro (considere =
10 2 )?
Sabemos que el empuje est dado por =
En nuestro caso, es la densidad del mercurio. Considerando la densidad del
mercurio como = 13.6 3 tendremos
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 14

= 13.6 3 = 13.6 103 3


representa el volumen de mercurio desplazado por el cilindro. Es obvio que
ser igual al volumen de la parte del cilindro que se encuentra sumergida en el
lquido, por tanto:
= = 10 6.0 o bien, = 60 3 = 60 106 3
Si sustituimos el valor de , , expresados segn el sistema Internacional (SI),
con = obtendremos el valor del empuje, expresado en newtons. As:
= (13.6 103 ) (60 106 ) 10
donde:
= 8.16
b) Cul es el valor del peso del cilindro metlico?
Como el cilindro est flotando en reposo, su peso est siendo equilibrado por el
empuje recibido del mercurio, Por tanto,
=
donde:
= 8.16
c) Cul es el valor de la densidad del cilindro?
La densidad del cilindro estar dada por = , donde es su masa, y ,
su volumen.
La masa del cilindro se obtendr dividiendo su peso , entre la aceleracin de la
gravedad (que consideramos igual a 10 / 2. Entonces,
8.16
= =

10
donde:
= 0.816
(Observe que al tener en y en / 2 , obtendremos en , unidades SI)

El volumen del cilindro ser


= = 10 8.0
donde:
= 80 3 = 80 106 3
Por tanto,
=

0.816
=

80 106

donde:
= 10.2 103 3 = 10.2 3
Desarrolle un programa en Python que permita calcular el Principio de Arqumedes
para cualquier cilindro que flote en un lquido de cualquier densidad.

Desafio 19. Clculo de inters simple


El inters es una cantidad que se paga por utilizar dinero ajeno. Se da el nombre de
Capital al dinero que se presta (prstamo solicitado al banco) o invierte (prstamo
otorgado al banco). Los intereses suelen pagarse en proporcin al capital prestado o
invertido y al periodo en el que se usa ese dinero. El inters se expresa como una tasa
porcentual del capital y el periodo en das, meses o aos. Tanto la tasa de inters y los
periodos deben estar expresados en la misma unidad de tiempo.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 15

El inters que se paga exclusivamente sobre el capital se llama inters simple (veremos
en otros ejercicios el inters compuesto), y su frmula es:
=
donde:

I = Inters simple
K = Capital
i = Tasa de inters
n = nmero de periodos
Es imprescindible que los periodos de i y n sean correspondientes; si i se expresa
como porcentaje anual, n habr que expresarlo en aos. De manera similar si i se
expresa como porcentaje mensual, n deber expresarse en nmero de meses.
Ahora, desarrolle una ecuacin en Python que permita obtener la cantidad de inters
que se pagara por cada mes, por un prstamo de $500.000 solicitado a una
organizacin crediticia que cobra un inters simple a una tasa de 10% al ao. Complete
el siguiente cuadro con el resultado obtenido en Python:

Mes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Cantidad de
inters en
pesos
(Clculo)

Respuesta
correcta
(Seguimiento)

$8.333

$25.000

$54.167

$70.833

Tabla 1 de seguimiento a completar por el estudiante

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 16

UNIDAD 3. MODELANDO FUNCIONES

CONTENIDOS
Problemas resueltos y propuestos que permitirn comprender cmo se
definen funciones propias y cmo se utilizan dentro de un programa.
Estructura de una funcin, parmetros de entrada, funcin propiamente tal y
parmetros de salida.

APRENDIZAJE ESPERADO
a) Analiza un problema y dividirlo en partes significativas
b) Crear funciones propias en Python para resolver tareas especficas
c) Combinar el uso de funciones propias para resolver problema propuestos
d) Evaluar resultados obtenidos luego de uso de funciones propias

ORIENTACIN DIDCTICA
Una funcin es una seccin reutilizable de un programa. Las funciones se crean para
resolver tareas especficas en un programa. El programa puede contener tantas
funciones como tareas a realizar.
En esta seccin trabajaremos con funciones propias, creadas por nosotros y las
utilizaremos de forma combinada para resolver problemas propuestos.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 17

Desafio 20. Llamado a una funcin


Una funcin es un proceso, recuerda la cajita negra?, algo muy parecido pero ahora
nos interesa lo que debe hacer as que la llamaremos, cajita blanca, una cajita donde
se ve el proceso que tiene adentro. Esta funcin (cajita blanca) tiene entrada(s), el
proceso y salida(s). Si es una funcin que genera sus propios resultados podra no tener
entradas por ejemplo, pensemos en una funcin que entrega la hora del momento, no
necesita entradas, obtiene la hora del computador y se la entrega a usted, requiere solo
proceso y salida. Lo que nunca puede faltar, es la salida porque, de qu nos sirve una
funcin que no entrega resultado?, de nada, necesitamos que el proceso nos entregue
un resultado de lo contrario, sera una funcin sin utilidad.

entrada1
entrada2

Qu necesita
para el proceso

salida
funcin

Qu hacer

Qu entrega
como resultado

Como puede observar, la funcin se ha creado, existe dentro del programa pero no es
suficiente, necesitamos llamarla para que se ejecute de lo contrario slo existe porque
est definida pero no presta utilidad. Usted podra tener funciones intiles dentro de
su programa?, la respuesta es SI, tantas como defina en su programa y que nunca las
utilice (las llame). Bien !, hagamos que esta funcin nos preste utilidad, utilicmosla:

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 18

Definicin de la
funcin
La llamamos (ejecutamos) con los
valores 4 y 5. El resultado lo guardamos
en la variable su_nota
La volvemos a llamamos (ejecutamos)
con los valores 1 y 2. El resultado lo
guardamos en la variable su_nota
La volvemos a llamamos (ejecutamos)
con los valores 2 y 1. El resultado lo
guardamos en la variable su_nota

Un error comn de los estudiantes en las pruebas, es definir las funciones pero nunca
utilizarlas (llamarlas). Otro error comn es no definir la salida de la funcin, no incluir la
sentencia return que es la sentencia que entrega el resultado y finaliza el proceso de la
funcin.
Existen varias funciones incorporadas en Python que ayudan a la programacin, esas
funciones ya estn definidas y solo se requiere que usted las ejecute (las llame) cuando
usted las necesite. Estas funciones Nativas o incorporadas estn a su disposicin para
ayudar a hacer ms fcil su programacin, sino, tendra que construirlas usted.

Desafio 21. Costo de la rehabilitacin


A menudo los fisioterapeutas observan que la rehabilitacin de la funcionalidad del
paciente suele aumentar con la duracin del programa teraputico, pero con el tiempo
el mejoramiento es cada vez menor en relacin con los esfuerzos adicionales del
programa. Para una incapacidad particular, los terapeutas han propuesto una funcin
matemtica que describe el costo de un programa teraputico en funcin del
porcentaje de la funcionalidad recuperada, . La funcin es racional y presenta la forma
=

5
120

0 100

Donde se expresa en miles de dlares (para convertirlo a pesos, multiplique la


cantidad de dlares por el valor del dlar ($715))
Para completar el ejercicio, evale la funcin con los valores de rehabilitacin 10, 15,
20, 25,, 100 y registre el resultado en la siguiente grfica:

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 19

Desarrollo
Paso 1)

Paso 2)

Identificando las entradas al proceso


Porcentaje de la funcionalidad a recuperar, la identificaremos con la
variable funcionalidad
Valor actual del dlar o paridad cambiaria, la identificaremos con la
variable paridad
Definamos el proceso (funcin) que utilizaremos para hacer varias
evaluaciones

Por qu es necesario
agregar una cifra con
decimales al clculo?

Paso 3)

Ahora, ejecutemos (evaluemos) la funcin para cada uno de los valores de


rehabilitacin solicitados (10, 15, 20, 25,,100) y paridad cambiaria de
$711/dlar

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 20

Cuando se define una funcin


slo sucede eso, la definicin, no
se ejecuta.

Para que se ejecute la funcin es necesario


llamarla con los valores de sus parmetros. Aqu
se ha llamado varias veces y con distintos
valores de sus parmetros.

Hasta aqu pareciera que todo funcion muy bien, sin embrago, existe un detalle
importante que debemos considerar. Las cifras obtenidas en cada evaluacin
de la funcin estn con decimales y, en la moneda peso no existen las
fracciones de peso, por ejemplo $1,5 o $273,6 todo se aproxima a la unidad
monetaria, el peso ($, CLP). Para ello debemos utilizar la funcin round de
Python que nos permite redondear las cifras a los decimales que indiquemos.

Ahora, complete el grfico con los resultados obtenidos para cada valores de
rehabilitacin solicitados (10, 15, 20, 25,,100) y observe qu tipo de curva
representa.

Desafio 22. Calculo de inters simple


En el Desafo N 19 usted formul una ecuacin en Python para calcular el inters
simple de un prstamo. Ahora, se requiere que esa ecuacin la transforme en una
funcin denominada interesSimple y cuyos parmetros formales sean capital,
tasa_interes y periodo; recuerde que la tasa de inters y el periodo deben estar
expresados en la misma unidad de medida. Construya un programa que utilice la funcin
interesSimple creada por usted, ejecute el programa y complete el siguiente recuadro y
grfico:

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 21

Mes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Cantidad
de inters
en pesos
(Clculo)

Respuesta
correcta
(Seguimiento)

$8.333

$25.000

$54.167

$70.833

Tabla 2 de seguimiento a completar por el estudiante

Grfico 1 a completar por el estudiante

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 22

Desafio 23. Proyectil, un movimiento analizado en dos direcciones


Considere un proyectil que es lanzado
desde el punto O, a una velocidad
inicial
0 y un ngulo de elevacin con
la horizontal.
Construya un programa con funciones que
permita calcular, para un instante lo
siguiente:
a) Velocidad del proyectil a lo largo del eje OX: = 0
b) Velocidad del proyectil a lo largo del eje OY: = 0
c) Magnitud de la velocidad : = 2 + 2

d) Desplazamiento del proyectil a lo largo del eje OX: = (0 )


1

e) Posicin del proyectil a lo largo del eje OY: = (0 ) (2) 2


f)

y que indique si el proyectil va en ascenso o en descenso

Ejemplo:
Una persona lanza oblicuamente una pelota con una
velocidad inicial 0 = 60 . Suponga que = 10 2 ,
desprecie la resistencia del aire y considere el
momento del lanzamiento como el origen del conteo
del tiempo ( = 0). En el instante = 0,50 la
velocidad de la pelota es:
a) = 0 cos = 10 cos 60 = 5,0
b) = 0 sin = 10 sin 60 10
0,50 = 3,6
c) = 2 + 2 = 5,02 + 3,62 = 6,1
d) = (0 cos ) = 10 cos 60 0,50 = 2,5
1
1
e) = (0 ) 2 2 = 10 60 0,50 2 10 0,502 = 3,1
f)

El proyectil va en ascenso

Desafio 24. Proyectil, altura y alcance mximo


Considere el desafo anterior y agregue a su
programa las funciones para determinar:
a) El instante en el que la pelota llega al punto
ms alto de su trayectoria
b) La altura mxima alcanzada
c) El tiempo que transcurre, desde el instante
del lanzamiento hasta que el proyectil llega
al punto P
d) Determinar el alcance del proyectil

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 23

UNIDAD 4. LGICA Y BIFURCACIONES


CONTENIDOS
La unidad plantea problemas que requieren del uso de operadores de comparacin,
conjuncin, disyuncin y negacin para condicionar la ejecucin de un programa o
parte de ste.
APRENDIZAJE ESPERADO
Construccin de expresiones lgicas combinando operadores de comparacin,
negacin disyuncin y conjuncin
Construccin de ejecucin condicionada dependiendo del contenido de su(s)
varable(s)
ORIENTACIN DIDCTICA
Una bifurcacin es la divisin de un camino en dos o ms. El programa podra
continuar su ejecucin por cualquiera de esos caminos pero para que tome una
decisin usted deber proveer las condiciones que debe evaluar y en virtud de su
resultado decidir qu hacer.
Un programa puede contener tantas evaluaciones o bifurcaciones como sean
necesarias, la cantidad depender del problema y su complejidad.
En esta unidad trabajaremos con evaluaciones usando operadores de comparacin
complementadas con conectores lgicos de disyuncin y conjuncin

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 24

Desafio 25. Decil socioeconmico de un grupo familiar


En el marco de la reforma educacional, el Gobierno anunci que para el ao 2016
estudiarn gratis en educacin superior los alumnos que pertenezcan al 50% de la
poblacin ms vulnerable, es decir, aqullos que sean de familias que se ubiquen entre
el primer y quinto decil socioeconmico.
El decil al que pertenece el grupo familiar se calcula con el promedio de ingresos que
recibe una familia. Para saber a qu decil perteneces, debes sumar todos los ingresos
monetarios (sueldos, etc., restando los descuentos legales de salud y previsin social)
que reciben cada mes todos los integrantes de tu familia, y luego esa suma la divides
por el total de integrantes que tenga el grupo familiar (incluyndote) para obtener el
ingreso per cpita (por persona).
Los deciles considerados por el ministerio de educacin son los siguientes2:
1 decil: desde $0 a $48.750 ingresos por persona.
2 decil: $48.751 a $74.969 ingresos por persona.
3 decil: $74.970 a $100.709 ingresos por persona.
4 decil: $100.710 a $125.558 ingresos por persona.
5 decil: $125.559 a $154.166 ingresos por persona.
6 decil: $154.167 a $193.104 ingresos por persona.
7 decil: $193.105 a $250.663 ingresos por persona.
8 decil: $250.664 a $352.743 ingresos por persona.
9 decil: $352.744 a $611.728 ingresos por persona.
10 decil: $611.729 y ms.
Construyamos un programa que permita determinar si un(a) estudiante puede acceder
a la educacin gratuita dado los ingresos familiares, la cantidad de integrantes y al decil
al que pertenece.
Desarrollo:
#----------------------------------------------------------------------# Este ejercicio est referido a los deciles para el ao acadmico 2016.
#----------------------------------------------------------------------# DEFINICION DE CONSTANTES
#------------------------DECIL1 = 48750
Se definen los
DECIL2 = 74969
valores mximos
DECIL3 = 100709
para cada decil
DECIL4 = 125558
DECIL5 = 154166
DECIL6 = 193104
DECIL7 = 250663
DECIL8 = 352743
Se definen una
DECIL9 = 611728
funcin que solicite
#-----------------------------------------los datos de entrada
# SOLICITUD DEL TOTAL DE INGRESOS FAMILIAR
al proceso
# ENTRADA: no tiene
# SALIDA : total de ingresos
#-----------------------------------------def obtenerIngreso():
totalIngresos=input("ingrese el total de ingresos familiar: ")
totalPersonas= input("Indique el total de personas que componen el grupo familiar: ")
ingresoPorPersona = round(totalIngresos / totalPersonas,0)
return ingresoPorPersona

2 Fuente: BioBioChile http://www.biobiochile.cl/2015/08/06/averigua-a-que-decil-socioeconomico-perteneces.shtml

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 25

#----------------#BLOQUE PRINCIPAL
#----------------#------#ENTRADA
#------ingreso = obtenerIngreso()
#-----------------#PROCESO PRINCIPAL
#-----------------if ingreso <= DECIL1:
decilFamliar = 1
tope = DECIL1+1
elif ingreso <= DECIL2:
decilFamiliar = 2
tope = DECIL2+1
elif ingreso <= DECIL3:
decilFamiliar = 3
tope = DECIL3+1
elif ingreso <= DECIL4:
decilFamiliar = 4
tope = DECIL4+1
elif ingreso <= DECIL5:
decilFamiliar = 5
tope = DECIL5+1
elif ingreso <= DECIL6:
decilFamiliar = 6
tope = DECIL6+1
elif ingreso <= DECIL7:
decilFamiliar = 7
tope = DECIL7+1
elif ingreso <= DECIL8:
decilFamiliar = 8
tope = DECIL8+1
elif ingreso <= DECIL9:
decilFamiliar = 9
tope = DECIL9+1
else:
decilFamiliar = 10

Se ejecuta la funcin obtenerIngreso.

Se compara el ingreso por persona del


grupo familiar para determinar a qu
decil pertenece

#------#SALIDA
#------print ""
print ""
print "RESULTADO DE LA CONSULTA"
print "------------------------"
if decilFamiliar < 6 :
print "El total de ingresos familiar pertenece al decil N", decilFamiliar, "inferior a $",
tope, "por persona"
print "FELICIDADES !!!!, usted TIENE DERECHO a la educacin superior gratuita con recursos
del estado"
else:
print "El total de ingresos familiar pertenece al decil N", decilFamiliar, "superior a $",
DECIL5, "por persona"
print "por lo tanto, usted NO tiene derecho a la educacin superior gratuita"
print " "

Desafio 26. Identificar si un color es secundario o primario


Construya un programa en Python que solicite un color desde la entrada estndar
(teclado), valide si el color ingresado pertenece a la carta de colores (definida por usted),
y de ser un color no vlido, indicar error en color, de lo contrario indicar si es un color
primario o secundario

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 26

Desafio 27. Nota final de la asignatura


Al finalizar el semestre acadmico, los estudiantes tendrn la necesidad de calcular su
nota de cada asignatura. La forma de obtener la nota final est reglamentada e indica
que el estudiante, durante el semestre, obtendr 3 notas PEP ms una nota PA que es
coeficiente dos, de las 5 notas debe considerar las 4 mayores y calcular el promedio.
Aquellos estudiantes que obtengan nota promedio igual o mayor a 4,0 aprobarn la
asignatura.
Construya un programa en Python que facilite este proceso considerando los siguientes
procesos:
a) Solicitar las notas involucradas en el clculo. Las notas deben ser validadas para
asegurar que estn en el rango de 1 a 7, de estar fuera del rango, indicar el error
y solicitar otra nota. Esta operacin se debe hacer hasta completar el total de
notas requeridas para el clculo.
b) Calcular la nota final de la asignatura, considerando que el clculo se hace con
las 4 mayores notas, se excluye una nota, la de menor valor.
c) Si la nota final es igual o superior a 4,0, indicar el valor de la nota final y la
condicin Aprobado(a). Si la nota es inferior a 4,0, indicar la nota final y la
condicin Reprobado(a).

Desafio 28. Clculo de impuesto


Todos los empleados en Chile estn afectos a un pago de impuesto por las rentas
obtenidas mensualmente. Todos tributan en Chile, las empresas tributan segn una
tabla de primera categora u las personas tributan segn lo indicado en una tabla de
segunda categora. La tabla para el pago de impuesto de trabajadores es la que se
muestra en el cuadro siguiente:
Impuesto nico de segunda categora
TRAMO
1
2
3
4
5
6
7
8

Monto de la Renta
Desde
Hasta
Factor
Rebaja
1
611.766
0
0
611.767 1.359.480
0,04
24.471
1.359.481 2.265.800
0,08
78.850
2.265.801 3.172.120
0,135
203.469
3.172.121 4.078.440
0,23
504.820
4.078.441 5.437.920
0,304
806.625
5.437.921 6.797.400
0,355 1.083.959
6.797.401
y ms
0,4 1.389.842
Cuadro : Impuesto nico de trabajadores 3

Para calcular el impuesto se toma la renta imponible (renta total descontado las
imposiciones AFP y Salud), esa renta imponible se compara con los Monto de la Renta
y se obtiene el tramo al que pertenece. Luego, se multiplica la renta imponible por el
factor correspondiente al tramo, se descuenta la rebaja y se obtiene el valor de impuesto
a pagar.
Ejemplo:
a) Renta Imponible: 824.576 (por comparacin, se busca el tramo al que
pertenece pertenece al tramo 2)
3

La tabla pertenece a Mayo de 2015. Cada mes el Servicio de Impuestos Internos calcula una nueva tabla
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 27

b) Se obtiene el Factor: 0,04 (Factor correspondiente al tramo 2)


c) Se obtiene la rebaja: 24.471 (Rebaja correspondiente al tramo 2)
d) Se obtiene el impuesto a pagar

=
8.512 = 824.576 0,04 24.471
El desafo consiste en construir un programa que permita calcular el impuesto a pagar.
Debe solicitar e ingreso de un sueldo imponible (por entrada estndar) y determinar el
impuesto considerando la tabla anterior y la ecuacin de clculo.
El Desafo consiste en construir un programa que permita

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 28

UNIDAD 5. LISTAS
CONTENIDOS
La unidad ejercita el uso de estructuras de datos conocidas como LISTAS. Las Listas
son secuencias de datos

APRENDIZAJE ESPERADO
Construccin de programas que utilicen la estructura de datos LISTAS.

ORIENTACIN DIDCTICA
Las Listas son secuencias de datos mutables o sea, posibles de alterar o cambiar
sus contenidos. La lista se puede recorrer desde el principio hacia el final como
tambin desde el final hacia el principio, de posicin en posicin o alternando
posiciones, no tiene restricciones en la forma de recorrerla.
Se puede iterar sobre una lista utilizando las sentencias WHILE y FOR

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 29

Desafio 29. Iterar sobre una lista de forma ascendente, de inicio a fin
Construyamos un programa sencillo para ver cmo recorrer una lista, observe el
siguiente programa que recorre una lista de dos formas, la primera utilizando un for y
la segunda usa un while

Las dos formas entregan el mismo resultado:

Slo que el uso del for tiene la particularidad de no requerir ni el largo de la lista ni un
ndice para indicar la posicin a consultar.

Desafio 30. Iterar sobre una lista de forma descendente, de fin a inicio
Construya un programa que pida al usuario que ingrese una lista, y recorra esa lista
mostrando los valores por pantalla. Se pide recorrer la lista con for y con while,
desde el final de la lista hasta el inicio.
Observe el desafo anterior y considrelo como base para este desafo.
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 30

Desafio 31. Intercalar listas


Construya un programa que reciba dos listas A y B, y genere une tercera lista que
contenga todos los elementos de las listas A y B. Los elementos de la lista resultante
mustrelos de forma ascendente (de menor a mayor) y luego, de forma descendente
(de mayor a menor).
Ejemplo:
Lista A : [1, 8, 4, 2, 3]
Lista B : [5,9, 6, 0, 7]
Lista C : [0,1,2,3,4,5,6,7,8,9] ascendente
Lista C : [9,8,7,6,5,4,3,2,1,0] descendente

Desafio 32. Suma de matrices


Construya un programa que solicite por pantalla dos matrices de , verifique que
sean del mismo tamao y luego si es posible, sume ambas matrices.
Por ejemplo, sumar dos matrices:
1
=(
4

2 3
3 0
) =(
5 6
7 1

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

2
)
8

4 2 5
+ =(
)
3 6 2

Pg. 31

Desafio 33. Producto de dos matrices


Construya un programa que solicite por pantalla dos matrices de , verifique que
sean del mismo tamao y luego si es posible, obtenga el producto de ambas matrices.

Desafio 34. Producto de una matriz por un escalar


Construya un programa que solicite por pantalla un escalar y una matriz de y
obtenga la matriz resultante.

Desafio 35. Transpuesta de una matriz


Construya un programa que solicite por pantalla un escalar y una matriz de y
obtenga la matriz resultante.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 32

UNIDAD 6. ITERACIONES
CONTENIDOS

En sta unidad se plantean problemas que requieren de la construccin de


procesos iterativos, sean estos definidos dentro de la lgica principal del
programa o al interior de funciones propias.

APRENDIZAJE ESPERADO

Aplicar la abstraccin de procesos para descomponer el problema y


reconociendo aquellas partes que son repetitivas y que pueden ser
construidas como procesos iterativos
ORIENTACIN DIDCTICA
Una iteracin es el acto de repetir un proceso hasta alcanzar un objetivo definido.
Por lo general, los procesos iterativos son una parte del programa, un programa
puede contener muchos procesos iterativos dependiendo de la complejidad del
problema a resolver.
Por ejemplo, piense en un hervidor elctrico de agua:

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 33

Desafio 36. Lgica de un semforo


Construya un programa que modele el funcionamiento de un semforo. Considere que
la luz roja y verde tienen un tiempo de permanencia de 1 segundo y la luz amarilla un
tiempo de permanencia de 2 segundos. La secuencia de funcionamiento es: luz roja,
verde, amarilla, roja, verde, amarilla, roja, verdeEl funcionamiento se debe ejecutar
veces.
Para construir su programa considere:
a) Incluya import time en su programa para tener acceso a funciones relacionadas con
tiempo
b) La instruccin time.sleep() permite esperar tiempo antes que el programa
contine
c) Cada vez que cambie el estado del semforo usted debe informar por pantalla el
estado al cual cambia (Verde, Amarilla, Roja)
d) Cuando se alcance las n veces de ejecucin, ndice por pantalla Semforo
apagado

Desafio 37. Aplicando factorial para el anlisis combinatorio


Desarrolle una funcin que determine la cantidad de formar que se pueden colocar las
letras de una palabra cualquiera. Por ejemplo, una palabra como uso, sus letras se
pueden colocar como: uso, uos, suo, sou, osu, ous.
La ecuacin general que permite determinar la cantidad de permutaciones4 es:

!
1 ! 2 !

Donde ! es el factorial del nmero total de letras de la palabra y 1 , 2 son el


nmero de letras que son iguales.
Ejemplo: el nmero de permutaciones de la palabra paraleleppedo es
Letra Veces
p
3
a
2
r
1
l
2
e
3
i
1
d
1
o
1

14!
= 605.404.800
3! 2! 1! 2! 3! 1! 1! 1!

Desarrollo
Los procesos propuestos para resolver el desafo son:
4

RAE : Cada una de las ordenaciones posibles de los elementos de un conjunto finito.
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 34

Solicitar la palabra a analizar


Determina la cantidad total de letras
Determinar la cantidad de veces que est cada letra en la palabra
Determinar la cantidad de permutaciones posibles
Informar al usuario del resultado obtenido

Desafio 38. Planeacin nutricional (Ecuaciones lineales)


El dietista de una escuela est planeando los mens del almuerzo. Cuenta con ocho
opciones de alimentos que pueden servir en una comida. Una de sus preocupaciones
consiste en satisfacer las necesidades nutricionales de los alumnos. El dietista desea
determinar las cantidades de cada uno de los ocho alimentos que suministren
exactamente 45 mg de vitamina requerida. El contenido vitamnico de los ocho alimentos
se muestra en la siguiente tabla:

Tipo
alimento
mg/porcin

7,5

4,5

10

2,5

Recuerde que un problema de este tipo se representa grficamente en un hiperplano de


8 espacios o en ocho dimensiones.
Construya un programa que muestre por pantalla el conjunto solucin.

Desafio 39. Mezcla de productos (Ecuaciones lineales)


Una empresa fabrica tres productos. El producto A requiere 1 horas de tiempo de
elaboracin, el producto B requiere 2 horas y el producto C requiere 3 horas por
cada unidad. Si se cuenta con H horas durante la prxima semana, determine la
ecuacin cuyo conjunto solucin defina todas las cantidades posibles de los tres
productos que pueden fabricarse usando las H horas. Construya un programa que
muestre el conjunto solucin por pantalla.

Desafio 40. Clculo de inters compuesto (Economa Finanzas)


Considerando la explicacin del ejercicio 13, el inters compuesto difiere con el inters
simple en que para cada periodo el inters de ese periodo se reinvierte, o sea, pasa a
formar parte del capital (se capitaliza formando el nuevo capital) con el propsito de
calcular el del siguiente periodo. La cantidad de los intereses obtenida con este
procedimiento recibe el nombre de inters compuesto. De esta forma operan la
mayora, por no ser absoluto y decir todos, los prstamos en Chile.
Con un ejemplo sencillo se explicar este procedimiento. Suponga que hemos solicitado
un crdito de $100 en un Banco que cobra el 10% trimestral, capitalizable
trimestralmente, a un periodo total de 6 trimestres (18 meses). Supongamos que
queremos calcular cunto dinero tendremos que pagar al final del plazo:

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 35

TABLA DE DESARROLLO
Capital Tasa Inters
nuevo Capital

Periodo
1
2
3
4
5
6

100
110
121
133
146
161

10%
10%
10%
10%
10%
10%

10
11
12
13
15
16

110
121
133
146
161
177

De lo que se puede concluir:


a) Para un capital de $100 a una tasa nominal del 10% se pagara un total de $77 de
intereses lo que equivale a un inters efectivo del 77%.
Capital inicial
Total intereses
Tasa nominal
Costo del crdito
Monto final a pagar

$ 100
$ 77
10%
77%
$ 177

b) El inters compuesto es mayor que el inters simple, ello se debe a que el inters
ganado produce tambin inters despus.
Existe una forma directa para obtener el monto final:

= (
+ 1)
100

Donde :
: Valor futuro o final
: Valor presente o monto inicial
: tasa de inters
: plazo
6
10
= 100 (
+ 1) = $177
100

Bien!, internalizado el conocimiento, ahora construya un programa que utilice funciones


e iteraciones para generar la tabla de desarrollo indicada arriba, para un prstamo de
capital , a una tasa de inters y un plazo . Tome como ejemplo para comprobar su
programa, la tabla de desarrollo indicada arriba. Ah, recuerde que en Chile no existen
los centavos, la unidad monetaria menor es el peso !

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 36

UNIDAD 7. USO Y GENERACIN DE ARCHIVOS


CONTENIDOS
En sta unidad se plantean problemas que requieren el uso de archivos para obtener
informacin de entrada y tambin grabar informacin resultante de los procesos.
APRENDIZAJE ESPERADO
Trabajar con archivos como fuente de informacin, utilizndola como datos de datos
al proceso o como dato de salida del proceso y que requiere ser almacenar para
futuros usos.
ORIENTACIN DIDCTICA
Un archivo es un medio que puede guardar informacin de forma permanente, ms
all del tiempo que el programa demora en ejecutarse. Los datos no slo se ingresan
a travs de una sentencia de entrada como INPUT, cuando estos son masivos, ser
comn encontrarlos almacenados en archivos. Del mismo modo, cuando se obtienen
gran cantidad de datos resultantes de los procesos, ser necesario guardarlos en un
archivo para su posterior uso o consulta. Cualquier proceso que requiera o genera
datos masivos tendr la necesidad de utilizar archivos.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 37

Desafio 41. Lectura de un archivo


Se requiere construir un programa Python que permita leer un archivo y mostrar por
pantalla su contenido.

Copia este contenido en el editor de Python:


El algoritmo para trabajar con archivos es : abrir, leer/escribir, cerrar
------------------------------------------------------------------------------------------Desde el punto de vista de la programacin, los archivos son objetos en los
que podemos escribir y/o leer informacin. El trabajo con archivos obliga a
seguir siempre una secuencia de tres pasos:
1

Abrir el archivo indicando su nombre y el modo de trabajo. Recuerde que


hay varios modos de trabajo:
a) Lectura: es posible leer informacin del archivo, pero no modificarla ni aadir
nueva informacin.
b) Escritura: slo es posible escribir informacin en el archivo. Por regla general, la
apertura de un
archivo en modo escritura borra todo el contenido previo del mismo.
c) Lectura/escritura: permite leer y escribir informacin del archivo. Adicin: permite
aadir nueva
informacin al archivo, pero no modificar la ya existente.
2. Leer o escribir la informacin que desees.
3. Cerrar el archivo.
Es importante que sigas siempre estos tres pasos. Es probable que olvides cerrar el
archivo, Python no detectar
esa circunstancia como un fallo del programa, sin embargo, no cerrar un archivo se
considera un error grave
de programacin y en una prueba te restar puntos.
Debera queda de la siguiente forma:

Luego, graba el archivo en tu disco con el nombre archivo.txt, tal como se indica a
continuacin:

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 38

Lo guardaremos con
el nombre archivo.txt

Desafio 42. Determinando los nmeros ganadores del sorteo


Polla chilena de beneficencia ha solicitado la construccin de un programa que permita
obtener los nmeros ganadores de los sorteos de LO-TITO. El programa debe usar la
siguiente funcin para obtener los nmeros ganadores:
# Funcin que permite obtener nmeros al azar entre 1 y 42
# Entrada : no requiere
# Salida : entrega un nmero al azar
def sacar_bolita():
return random.randrange(1,42,1)
y para obtener la fecha y hora la funcin que se indica a continuacin:
Mdulo Bsico de Ingeniera
Fundamentos de Computacin y Programacin

Pg. 39

# Funcin que permite obtener el da de la semana, fecha y hora actual


# Entrada : no requiere
# Salida : entrega el da de la semana, fecha y hora actual
def obtener_fecha():
return time.strftime("%A %d/%m/%y %H:%M:%S")
Al finalizar el programa debe informar por pantalla la fecha, hora y los nmeros
ganadores del sorteo similar a la que se indica a continuacin:
Para el da Monday 22/02/16 14:59:03
los nmeros ganadores del sorteo LOTO son

[5, 6, 7, 21, 22, 24]

Los mismos datos deben ser grabados en un archivo llamado LO_TITO_ddmmaa.txt


donde ddmmaa (da, mes,ao) corresponde a la fecha del sorteo.
Consideraciones importantes:
a) se deben obtener 6 nmeros distintos. Si la funcin sacar_bolita entrega un
nmero repetido, ste debe ser ignorado
b) Los nmeros seleccionados deben ser almacenados en una lista
c) Al finalizar el proceso, los elementos de la lista deben estar ordenados de
menor a mayor, para ello utilice la instruccin list.sort()

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 40

UNIDAD 8. PRUEBAS SEMESTRES ANTERIORES


CONTENIDOS
En sta unidad se incorporan preguntas contenidas en las pruebas de semestres
anteriores. Algunas de las preguntas tienen el desarrollo hecho.

APRENDIZAJE ESPERADO
Conocer el tipo de preguntas que el estudiante puede enfrentar en las futuras
pruebas, analizar la forma en que se han resuelto algunas preguntas y aprender de
ello.

ORIENTACIN DIDCTICA
Existen varias forma para resolver un problema mediante la programacin, la
solucin no es nica, depende ms del ingenio de la persona que de la rigurosidad
con que se utilizan las sentencias.
Los desarrollos de las preguntas son autora de la coordinacin.

con las que se puede encontrar un estudiante al enfrentar las actividades evaluadas,
observar cmo se han resuelto algunas preguntas y orientar el estudio de los
estudiantes.
Trabajar con archivos como fuente de informacin, utilizndola como datos de datos
al proceso o como dato de salida del proceso y que requiere ser almacenar para
futuros usos.

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 41

Desafio 43. CONTROL N1 (2/2014)

Desafio 44. CONTROL N3 (2/2014)

Desafio 45. PRUEBA ESCRITA PROGRAMADA (PEP II 2/2014)


Desafio 46. CONTROL N1 (1/2015)

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 42

Desafio 47. Prueba Escrita Programada (PEP I - 1/2015)

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 43

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 44

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 45

Desarrollado

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 46

Desarrollo

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 47

Desafio 48. Prueba Acumulativa (PA - 1/2015)

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 48

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 49

Desafio 49. Prueba Escrita Programada (PEP I - 2/2015)

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 50

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 51

Desafio 50. Prueba Escrita Programada (PEP II - 2/2015)

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 52

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 53

Desafio 51. Prueba Acumulativa (PA - 2/2015)

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 54

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 55

UNIDAD 9. INSTRUCCIONES DE PYTHON


GUA RPIDA
Operadores
Operadores aritmticos

Operadores de
comparacin

Conectores lgicos

**

Exponenciacin

Identidad

Cambio de signo

Multiplicacin

Divisin

Mdulo

Suma

Resta

<

Menor

>

Mayor

<=

Menor o igual

>=

Mayor o igual

==

Igual

!=

Distinto

Not

negacin

And

conjuncin

Or

disyuncin

Instrucciones de Entrada / Salida en Python


input

Ingresa al programa lo escrito por el teclado

raw_input

Ingresa al programa como un string, lo escrito por el


teclado

print

Muestra por la salida estndar del equipo, la expresin


(Imprime en pantalla)

open

Vincula un archivo con el programa para poder trabajar


con su contenido

close

Desvincula el archivo del programa, lo cierra.

readline

Lee el contenido de una lnea del archivo

readlines

Lee todas las lneas de un archivo y las devuelve en una


lista

write

Escribe un string en un archivo

writelines

Escribe una secuencia de string en un archivo

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 56

Instrucciones para iterar en Python


for

Devuelve un elemento de un objeto iterable (string,


lista, archivo) por cada ciclo del proceso

while

Permite ejecutar un trozo de programa mientras se cumpla


una condicin

map

Aplica una funcin a cada elemento de un objeto


iterable y entrega una lista con el resultado

filter

Para cada elemento de la secuencia verifica que se


cumpla una condicin. Devuelve otra secuencia con los
elementos que cumplen la condicin.

Instrucciones para trabajar con string en Python


len(x)

Retorna la cantidad de caracteres que contiene el string


(largo)

str(x)

Permite transformar un dato al tipo string

String + string

Concatena dos o ms string

String * x

Duplica el string tantas veces como indica la

x.isalnum()

Revisa si el string es alfanumrico (contiene mezcla


de letras, nmeros o smbolos). Su respuesta es True o
False

x.isalpha()

Revisa si el string es alfabtico, contiene solo


letras. Su respuesta es True o False

x.isdigit()

Revisa si el string es numrico, contiene solo


nmeros. Su respuesta es True o False

.islower()

Revisa si el string est contenido solo por letras


minsculas. Su respuesta es True o False

.isupper()

Revisa si el string est contenido solo por letras


mayscula. Su respuesta es True o False

.isspace()

Revisa si el string contiene solo espacios. Su


respuesta es True o False

.lower()

Convierte todas las letras maysculas del string , en


minscula

.upper()

Convierte todas las letras minsculas del string , en


maysculas

.split()

Devuelve una lista conteniendo substring del string y


separados por el contenido de

.strip()

Devuelve un substring de sin los caracteres indicados


en

.rstrip()

Devuelve un substring de sin los caracteres indicados


en ubicados a la derecha de

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 57

.lstrip()

Devuelve un substring de sin los caracteres indicados


en ubicados a la izquierda de

.replace(,[,])

Reemplaza del string , lo indicada en por lo indicado


en , tantas veces como indique

in

Busca el substring en el string y dependiendo de la


existencia o inexistencia responde True o False

.index()

Busca en el string la posicin donde est el substring


, su respuesta es la posicin o de lo contrario genera
un error. Se recomienda buscar la existencia del
substring ( in ) y si existe, preguntar por la
posicin

.find([, [,]])

Busca desde la izquierda si el substring se


encuentra contenido en el string . Si existe devuelve
la ubicacin posicional, si no existe devuelve -1. Se
puede indicar posicin de inicio y trmino de la
bsqueda (, ), si no se indica busca en todo el
string

.rfind([, [,]])

Busca desde la derecha si el substring se encuentra


contenido en el string . Si existe devuelve la
ubicacin posicional, si no existe devuelve -1. Se puede
indicar posicin de inicio y trmino de la bsqueda (,
), si no se indica busca en todo el string

.capitaize()

Devuelve una copia del string con el primer carcter


en mayscula y el resto en minsculas.

x.count([, [,]])

Devuelve el nmero de ocurrencias del substring que


existen en el string o en el rango [, ] del
string . Los argumentos de inicio y fin son opcionales

max()

Devuelve el mayor elemento del string

min()

Devuelve el menor elemento del string

Instrucciones para trabajar con LISTAS en Python


list[i] = x

Reemplaza el elemento que est en la posicin i por el


contenido en x

list[i:j] = t

El tramo desde i hasta j es reemplazado por el contenido en t

del s[i:j]

Elimina los elementos contenidos en la posicin i hasta la


posicin j 1. Considere que 0 corresponde a la primera
posicin de la lista

s.append(x)

Agrega a la lista el contenido de x

s.count(x)

Cuenta las veces que est el contenido de x en la lista

s.index(x)

Entrega la posicin de la lista en la que se encuentra el


contenido de x

s.insert(i, x)

Agrega a la posicin i de la lista, el elemento contenido en x

s.pop([i])

Entrega el elemento i y lo elimina de la lista

s.remove(x)

Elimina de la lista el elemento indicado en x

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 58

s.reverse()

Invierte el orden del contenido de la lista

s.sort([cmp[, key[, reve


rse]]])

Ordena el contenido de la lista

x = []

Crea un dato tipo lista con el nombre X

max(list)

Devuelve el mayor elemento en la lista

min(list)

Devuelve el menor elemento en la lista

len(x)

Devuelve el nmero de elementos que existen en la lista

Instrucciones para el control del flujo en Python


if elif - else

Permite evaluar una condicin para condicionar el


control del flujo de ejecucin de un programa

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 59

REFERENCIAS
Python Documento de Python

Mdulo Bsico de Ingeniera


Fundamentos de Computacin y Programacin

Pg. 60