Anda di halaman 1dari 8

Semestre 2013-1

UNIVERSIDAD DE ANTIOQUIA
ALGORITMOS Y PROGRAMACIN
TALLER PARCIAL
PRIMERA PARTE
1. Dadas las siguientes secuencias de 16 bits
1110 1011 0100 1000
1001 0110 1101 0000
0111 1101 1111 1011
0101 1010 1110 1111
Para cada nmero binario hallar:
a. La representacin hexadecimal
b. El valor decimal considerado cmo nmero binario entero representado en
complemento al 2.
c. El valor decimal considerado cmo nmero binario entero representado en signo
magnitud.
2. Cules son los elementos principales de un sistema de computacin
3. Enumero 5 tipos de software comn en un computador e ilustre con ejemplos aplicables a
los computadores de una de las salas del DRAI.
4. La memoria de un computador se clasifica en ___________, ________ y _________, la
memoria principal, generalmente toma valores entre ____________ y ___________
5. El procesador de un computador est formado por: _______________________________
6. La operacin que hace que los datos sean cargado a la memoria del computador es:
___________________________________________________________
7. El nmero decimal -1374,27 en binario es: ______________________ y su representacin
en la memoria del computador segn la IEEE 754 en simple precisin y en doble precisin,
es: _____________________________________________________________________
8. El resultado de la operacin -0x2B + 00001111+ 0254 es:
9. Para digitalizar un video se requiere de los siguientes pasos _______________,
_____________________ , ________________ y tomar mnimo ___________ muestras.
10. Tres formatos para codificar video son: ___________,__________,___________
11. Los tipos de datos elementales son : ________________________________________
12. Los tipos de datos compuestos son : _________________________________________
13. En la memoria del computador un numero se encuentra almacenado como FEAC7, si la
palabra de memoria es de 16 bits y suponiendo que corresponde a un dato de tipo entero,
almacenado con complemento al dos su valor decimal es: _______________________

2013-2

Pgina 1

Semestre 2013-1
2
14. Los pasos necesarios para desarrollar un problema hasta que produzca resultados
utilizando un sistema de computacin son: ________________

SEGUNDA PARTE
1. Pruebe los siguientes segmentos de programas en Python y responda las preguntas
planteadas.
Que se imprime?
Que cambia si el rango es 10,60.
Porque?

for n in range(60):
print n, 2**n

En el lenguaje Python lo falso se


representa por el valor 0 y lo
verdadero por el valor 1. Por
ejemplo, al escribir una
desigualdad, si la comparacin es
cierta Python le asigna el valor 1
(verdadero) y si es falsa Python le
asigna el valor 0. Justifique el
resultado de las siguientes
expresiones lgicas

Que hacen los siguientes


segmentos de programa

not(3>2)

False
>>> (3>2) and (4>5)
0
(3>2) or (4>5)
True
((3>2) or (4>5)) and (2<1)
False
(3>2) ^ (5>4)
False

n=1
p=0
i=0
while n <= 100:
print n,
if n%2 == 0:
x = 10
while x >= 0:
print "x todava no es negativo."
x = x-1
p += n
n=n+1
print "el valor de p es :", p

Cambie las xxx por un mensaje


que explique el resultado del
programa

n=1
p=0
i=0
while n <= 100:
print n,
if n%2 == 0:
p += n
n+=1
print " \n xxxxxxxxxxxxxx", p

Ponga a funcionar el siguiente


programa, diga que hace y quite
unas lneas que se estn
imprimiendo repetidas

2013-2

for n in range(2, 10):


for x in range(2, n):
if n % x == 0:
print n, 'es igual a', x, '*', n/x
break
else:

Pgina 2

Semestre 2013-1
3
Ponga a funcionar el siguiente
programa y haga que calcule el
mximo comn divisor.
# hallar el mximo comn divisor
entre dos
nmeros
""" El mximo comn divisor es el
nmero mayor
que sea al mismo tiempo divisor
de un grupo de
dos o ms nmeros. Para hallar
dicho mcd, se
requiere:
*descomponer dichos nmeros
en sus factores
primos de los cuales se toman los
factores
comunes con menor exponente.
*El mximo comn divisor
(m.c.d.) de dos o ms
nmeros es el mayor de los
divisores comunes.
Por ejemplo para m.c.d. (12, 18)
=2x3=6
12 2
62
33
1
18 2
93
33
1
12 = 2^2 x 3
18 = 2 x 3^2

print n, 'es primo'


a = int(raw_input("Introduce un nmero entero: ---> "))
b = int(raw_input("Introduce otro numero ---------> "))
while a != 0:
a, b = b%a, a #doble asignacin el resultado es: a=b%a y b=a
print "El mcd es ------------->", b

Para los siguientes ejercicios escriba el algoritmo en diagrama de flujo y codifquelo en


Python.
2. Las campanas del Reloj.
Resolver el problema de las Campanas del Reloj: Leer 2 valores que indican hora de inicio y
hora de fin (Ej.: 9:30 y 12:18), e imprimir la cantidad de veces que un reloj de iglesia da sus
campanadas. Generalmente los relojes de las iglesias suenan las campanas en los minutos:
0, 15, 30 y 45. Los valores para las horas estn en el rango 0..23 y para los minutos en 0..59.
El programa debe verificar que la hora de inicio sea menor que la hora de final y ambas
pertenezcan al mismo da.
Por ejemplo:
Si hora de comienzo es 9:44 y hora de fin es 10:01: hay que informar 2 campanadas.
Si hora de comienzo es 9:50 y hora de fin es 10:07: hay que informar 1 campanada.
Si hora de comienzo es 8:00 y hora de fin es 10:07: hay que informar 8 campanadas.
Si hora de comienzo es 8:00 y hora de fin es 5:07: hay que informar un error
3. Se perdi Pedro!!!

2013-2

Pgina 3

Semestre 2013-1
4
Pedro vive en una calle en la cual los nmeros de las casas son 1, 2, 3, etc. La suma de los
nmeros de las casas menores que el nmero de la casa de Pedro, es igual a la suma de los
nmeros de las casas mayores. El nmero de su casa posee tres cifras. Pedro olvid su
direccin y debe hacer un clculo para saber cul es su direccin y al mismo tiempo
determinar el nmero de casas que hay en la calle. Ud. debe decirle a Pedro cul es el
nmero de su casa.
4. Determinar el rea de la superficie lateral y el volumen de un cilindro conocido su radio y
su altura.
5. Calcular el rea de un tringulo en funcin de las longitudes de sus lados, verificando si
esas longitudes forman un tringulo.
6. Escribir un algoritmo en diagrama de flujo que realice mnimo 10 conversines de longitud
usadas en la antigedad.
7. Escribir un algoritmo en pseudocodigo y codificarlo en Python, que dado el ao de
nacimiento y el mes de una persona diga cuantos meses tena en diciembre del 2013
8. El siguiente programa dibuja un tringulo con un carcter dado:
x = int(raw_input("Introduce un nmero entero: "))
y = str(raw_input("Introduce caracter: "))
if x <= 0:
print 'No se puede dibujar triangulo'
else:
i=1
while i <=x:
print '\n'
while j<=i:
print y,
j=j+1
i=i+1
print '\n fin'
Modifquelo para que dibuje tres tringulos en posiciones diferentes a la del ejemplo.
Modifquelo para que dibuje un tringulo pero no recto.
Modifquelo para dibujar un polgono
9. Cuando en un nmero la diferencia entre cada par de dgitos consecutivos es uno, se le
llama nmero "step", por ejemplo 123234, el 9876787654. Cuntos nmeros "step"
menores a un milln existen? El siguiente programa es una solucin al problema, ejectelo
y explique cada una de las instrucciones.
def isStep(num):
digitos = [int(x) for x in str(num)]
ant = digitos[0]
for num in digitos[1:]:
if num != ant+1 and num != ant-1:
return False
ant = num
return True
Programa principal

2013-2

Pgina 4

Semestre 2013-1
5
cant = 0
for n in xrange(1000000):
if isStep(n):
cant += 1
print n
print "Total numeros step

1. Escriba un algoritmo que calcule la siguiente serie:


m
2
x 2n
x4
x6
Y e x ( 1) n
1 x2

.....
n!
2 *1 3 * 2 *1
n 0
El algoritmo debe recibir como entradas un nmero real x y un entero m0, se deben
utilizar mnimo dos funciones, de las hechas en clase, una de ellas para hallar el
exponente que se debe hacer con multiplicaciones sucesivas.
10. La capacidad de un depsito es de V litros. Mediante una vlvula se introducen LE litros
por segundo en el depsito. Mediante un desage, se extraen LS litros por to tiene
inicialmente L0 litros, disear un programa que muestre, segundo a segundo, durante un
minuto, el volumen de agua almacenada. Al final debe indicar si se rebasar la capacidad
de almacenamiento del depsito, si permanecer siempre con la misma cantidad de agua
o si se vaciar.
11. Se dispone de un vector de tipo entero, parcialmente ocupado por nmeros clasificados en
orden ascendente. Se desea conocer si un nmero introducido por teclado se encuentra
en el vector, en caso afirmativo se mostrar su posicin, y en caso negativo se insertar
en la posicin que le corresponda. Si se intenta insertar y el vector est lleno, se mostrar
un mensaje de error.
12. Escriba un algoritmo que efecte la normalizacin de una coleccin de nmeros reales.
Para llevar a cabo esta normalizacin, se debe en primer lugar encontrar el nmero mayor
de la coleccin; luego se divide cada nmero por dicho valor mximo, de forma que los
valores resultantes (normalizados) estn comprendidos en el intervalo del 0 al 1.
13. La numerologa es una ciencia metafsica muy popular. Tiene como punto de partida el
nmero personal que se halla con base en los nmeros correspondientes al nacimiento y
mediante el siguiente algoritmo:

Leer la fecha de nacimiento (MM DD AAAA)


Suma=Sumar_dgitos_Fecha(MM,DD,AAAA)
MientrasQue( Suma> 9)
Suma=SumarDigitos(Suma)
FinMQ
Imprima su nmero personal es , Suma
Las funciones Sumar_digitos hacen eso, sumar cada uno de los dgitos del
nmero que se pasa como parmetro. Haga un programa que calcule su
numero personal
14. Los nmeros triangulares son nmeros que se pueden representar mediante un tringulo
equiltero. En este problema el usuario digita un nmero y se imprimen los nmeros

2013-2

Pgina 5

Semestre 2013-1
6
triangulares menores o iguales al nmero digitado representndolos como una coleccin
de puntos, como se muestra en la figura

10

Pueden ser volteados tambin.


15. Imprimir un tringulo con los caracteres de una cadena ingresada por el usuario, por
ejemplo si el usuario ingreso Hola*Mundo quedara:

H
Ho
Hol
Hola
Hola*
Hola*M
Hola*Mu
Hola*Mun
Hola*Mund
Hola Mundo
Hola*Mund
Hola*Mun
Hola*Mu
Hola*M
Hola*
Hola
Hol
Ho
H
Imprimir un tringulo con los caracteres de una cadena as para la cadena HOLA
MUNDO quedar:
H
HOL
HOLA M
HOLA MUN
HOLA MUNDO

16. Escribir un programa en python que dibuje el tringulo de Pascal.


17. Dado una fecha de nacimiento calcular la edad en aos con mese y con das
18. Disee un programa donde dados dos polinomios p y q, de cualquier grado los sume.

2013-2

Pgina 6

Semestre 2013-1
7
19. Ingresar N puntos (Xi,Yi) del plano, y determine cuntos de los puntos estn en el 1er,
2do, 3er y 4to. cuadrante, y cuntos en algn de los ejes. Las coordenadas se deben
almacenar en un vector X y en un vector Y respectivamente.
20. Escriba un programa que calcule el volumen molar V de un gas, utilizando la ecuacin de
estado de Van der Wals para un gas no ideal.
21. Ley de Ohm: La ley de Ohm establece relacin proporcional entre la intensidad de
corriente (I) que circula por un circuito, la diferencia de potencial (V) y la resistencia del
mismo (R). Su frmula es I= V/R. Escribir un programa con interfaz grfica que permita
calcular I, V o R. el programa solicitara los datos requeridos y har el clculo de la
magnitud requerida.
22. Criba de Eratstenes: Eratstenes un filsofo plante el siguiente mtodo para el clculo
de los nmeros primos:
a. Pone en una lista todos los nmeros que quiere analizar
b. Tacha todos los mltiplos de cada primo: Empiece con dos y elimine los
mltiplos, pues dos es primo, sigue con tres y as hasta que termine
c. Al final solo quedan los primos
Escriba un programa para calcular los primos existentes entre 1 y 1000. Utilice un
vector y ponga 0 donde hay un mltiplo. Imprima luego los nmeros primos.
23. Raz cuadrada: El clculo de la raz cuadrada de x puede realizarse de forma aproximada
mediante un mtodo iterativo. Investigue el mtodo y escriba un programa que calcule al
raz cuadrada de un valor dado pro teclado. Calcule tambin la raz mediante la funcin
sqrt y compare los dos resultados.
24. El mtodo Trachtenberg es un sistema de clculo mental, desarrollado por el ingeniero
ruso Jakow Trachtenberg con el fin de mantener su mente ocupada cuando era prisionero
en un campo de concentracin nazi. El sistema consiste de un nmero de patrones
memorizables con gran facilidad que permiten realizar computaciones aritmticas sin
ayuda de calculadora, lpiz y papel. El mtodo tiene reglas para clculos con diferentes
nmeros, por ejemplo:
Regla para multiplicar por 12:
Regla: para multiplicar por 5:
Duplicar el dgito antes de sumarlo 1. Si el nmero es impar tomar cinco (5) y
al dgito a su derecha
sumar la "mitad" del vecino derecho
Y luego volver a copiar el primer 2. Si el nmero es par tomar cero (0) y
dgito:
sumar la "mitad" del vecino. La "mitad"
del vecino significa, la mitad sin
Ejemplo: 314 12 = 3.768:
decimales, ejemplo la "mitad" de 5 es 2
4 2 =8
1 2 + 4 =6
Ejemplo:1.683 5 = 8.415
32+1=7
3 es impar y su vecino es cero poner 5
Volver a copiar 3
8 es par, toma 0 y la "mitad" de su vecino 3
es 1, sumando el resultado es: 1
6 es par, toma 0 y la "mitad" de su vecino 8
es 4, sumamos y el resultado es 4
1 es impar, toma 5 y la "mitad" de su vecino
6 es 3, sumamos y el resultado es 8.

Regla: para multiplicar por 6:


Regla: para multiplicar por 11.
Vuelva a copiar el ltimo dgito. 1. Agregar la mitad del vecino a cada
Luego, dos por dos, aada los
dgito.

2013-2

Pgina 7

Semestre 2013-1
8
dgitos uno al otro. Vuelva a copiar el
primer dgito.
Ejemplo: 3.422 11 = 37.642
Volver a copiar 2
2 + 2 =4
4 + 2 =6
3 + 4 =7
Volver a copiar 3

2. Si el dgito es impar, reducirlo al


nmero entero ms bajo.
3. Si el resultado es impar, agregar 5.
Ejemplo:657.832 6 = 3.946.992
Volver a copiar 2
3 + (2 / 2) + 5 =9; 3 es impar se suma 5
8 + (3 / 2) = 9; 3 es impar se reduce a 2
7 + (8 / 2) + 5 = 16; 7 es impar se suma 5, y
se lleva 1
5 + (7 / 2) + 1 + 5 = 14; 5 es impar se suma
5, y 1 que se llevaba. 7 es impar se reduce
a6
6 + (5 / 2) + 1 = 9; se suma 1 que se
llevaba. 5 es impar se reduce a 4
6 6 = 36

Escriba un programa que multiplique dos nmeros usando estas reglas.

2013-2

Pgina 8

Anda mungkin juga menyukai