Sei sulla pagina 1di 28

ACTIVIDAD FORMATIVA NRO 1:

ELABORAR EL RESPECTIVO PROGRAMA EN PYTHON DE CADA UNO DE LOS


ENUNCIADOS PROPUESTOS.
INSTRUCCIONES:
 Analiza el problema planteado.
 Considera el diseño de la solución planteado y elabora el programa en Python
respectivo.
 Envía tus soluciones al aula virtual en un único archivo comprimido.

1. Diseñar un algoritmo para calcular el área y el perímetro de un rectángulo


Definición del problema
Calcular área y perímetro de un rectángulo
Análisis del problema
Para desarrollar este problema es necesario conocer las fórmulas para obtener tanto el área
como el perímetro de un rectángulo.

Sea b = base y h = altura, las fórmulas a utilizar son:


Área = b * h
Perímetro = 2 * (b + h)

Datos de entrada: Se requiere se entreguen como datos b y h (base y altura)


Datos de salida: Se deben dar como respuestas el área y perímetro
Procesos: Se requiere procesar de acuerdo a las siguientes fórmulas
Área = b * h
Perímetro = 2 * (b + h)
Diseño de la solución
Inicio
Entero: b, h, a, p
Leer b, h
a=b*h
p = 2 (b + h)
Escribir “área:”, a
Escribir “perímetro:”, p
Fin algoritmo
Programa en Python:

Prueba:

2. Calcular el área de un triángulo.


Datos de entrada: Se requiere se entreguen como datos b y h (base y altura)
Datos de salida: Se deben dar como respuestas el área del triangulo
Procesos: Se requiere procesar de acuerdo a las siguientes fórmulas
Área = (b * h) /2e:
Diseño de la Solución:
Programa en Python:

Prueba:

3. Un maestro desea saber qué porcentaje de hombres y que porcentaje de


mujeres hay en un grupo de estudiantes.
Definición del problema
Calcular porcentaje de hombres y mujeres en un grupo

Análisis del problema


Datos a tener en cuenta:
Número hombres
Número mujeres
Total estudiantes
Porcentaje hombres
Porcentaje mujeres

Datos de Entrada: número hombres, número mujeres


Datos salida: porcentaje hombres, porcentaje mujeres
Procesos:
tot estudiantes = núm. hombres + núm. Mujeres
Porc.hombres = núm. Hombres / tot estudiantes*100
Porc.hombres = núm. mujeres / tot estudiantes*100
Diseño de la solución
Inicio
Entero: num_m, num_h, tot_est
Real: porc_h, porc_m
Leer num_m, num_h
tot_est = num_m + num_h
porc_m = num_m / tot_est * 100
porc_h = num_h / tot_est * 100
Escribir “porcentaje Mujeres:”, porc_m
Escribir “porcentaje hombres:”, porc_h
Fin algoritmo
Programa en Python:

Prueba:

4. Un profesor prepara tres cuestionarios para una evaluación final: A, B y C. Se sabe


que se tarda 5 minutos en revisar el cuestionario A, 8 en revisar el cuestionario B y 6
en el C. La cantidad de exámenes de cada tipo se entran por teclado. ¿Cuántas horas
y cuántos minutos se tardará en revisar todas las evaluaciones?

Definición del problema


Calcular el tiempo, en horas y minutos, requerido para calificar exámenes.

Análisis del problema


Se tienen tres tipos de examen A, B, C y el tiempo en minutos requerido para cada tipo son:
A=5
B=8
C=6
El tiempo en minutos debe ser convertido a horas,
1 hora = 60 minutos
Para pasar de minutos a horas se realiza operación división entera, para conocer los minutos
excedentes se utiliza la operación módulo.

Datos de entrada: número exámenes tipo A, B y C


Datos de salida : horas y minutos requeridos
Procesos :
Total A = número tipo A * 5
Total B = número tipo B * 8
Total C = número tipo C * 6
Tiempo total = total A + total B + total C
Horas = tiempo total / 60
Minutos = tiempo total Mod 60

Diseño de la solución
Inicio
Entero: numa, numb, num, tota,totb, totc, totmin, horas, minutos
Leer numa, numb, numc
tota = numa * 5
totb = numb * 8
totc = numc * 6
totmin = tota + totb + totc
horas = totmin / 60
minutos = totmin Mod 60
Escribir “tardará:”,horas, “horas y”, minutos, “minutos”
Fin algoritmo

Programa en Python:

Prueba:
5. Desarrollar un programa en el cual se ingrese el número de horas transcurridas en
un proceso en formato real, a continuación el programa deberá mostrar el número de
horas, minutos y segundos que se han ingresado.

Definición de problema:

Convertir un valor de horas en formato decimal a horas, minutos y segundos.

Análisis del problema:

Se tiene el valor decimal en horas.

Para saber el valor de horas transcurridas se obtiene el valor entero del valor real.
Para saber el valor de minutos transcurridos se resta el valor en decimales con las horas, luego
se multiplica por 60.
Para saber el valor de segundos transcurridos se resta el valor en decimales de minutos menos
el valor entero de minutos para multiplicarlo por 60.
Luego se imprimen los valores enteros de horas minutos y segundos.

Datos de Entrada: horas en formato decimal (total_tiempo)


Datos de Salida: Enteros de Horas: minutos: segundos en formato “00:00:00”.
Procesos:
H=entero (total_tiempo)
M= (total_tiempo – H) * 60
S= (decimal (M) – entero (M)) * 60

Programa en Python:

Prueba:

ACTIVIDAD FORMATIVA Nº 2
ELABORAR EL DIAGRAMA DE FLUJO Y EL PROGRAMA EN PYTHON
INSTRUCCIONES:
En los siguientes ejercicios se muestra el problema propuesto y su respectiva solución en
pseudocódigo, analiza cual es el planteamiento de solución y luego:
Diseña el diagrama de flujo equivalente a la solución planteada
Implementa en el lenguaje de programación Python el programa correspondiente.
1) Dados dos puntos de una recta en el plano, hallar su pendiente.
El algoritmo toma como entrada las coordenadas de los dos puntos en el plano (x1, y1, x2, y2) y devuelve
la pendiente (m). En el caso en que ésta sea infinito se indica con un mensaje de error.

Acción Principal
Entorno
x1, y1, x2, y2:
real m: real error:
lógico Inicio
leer(x1, y1, x2, y2)
Si (x2 – x1) == 0.0
Error ← V
Sino
error ← F
m ← (y2 - y1) / (x2 –x1)
Fin de si Si error
escribir (“Pendiente infinito”)
sino
escribir (m)
Fin de si
Fin

Diagrama de Flujo:
Programa en Python:

Prueba:

2) Hallar el valor absoluto de la suma de dos números.


El algoritmo toma como entrada dos números (x, y) y devuelve la salida (abs).

Acción Principal
Entorno x, y:
real abs: real
Inicio
leer(x, y)
abs ← x + y
Si (abs) < 0.0
abs ← -abs
Fin de si
escribir (abs)
Fin

Diagrama de Flujo:
Programa en Python:

Prueba:

3) Dados dos números enteros determinar si el primero es divisible entre el segundo.


el algoritmo toma como entradas los dos números enteros (x, y) y muestra un mensaje en pantalla con la
solución.
Acción Principal
Entorno x, y:
entero d:
lógico
Inicio
leer(x, y)
Si xMody = 0
escribir(“Son divisibles”)
Sino
escribir(“No son divisibles”)
Fin de si
Fin

Recuerde que el operador resto de la división (Mod) solo admite operandos de tipo
entero.
Diagrama de Flujo:

Programa en Python:

Prueba:
4) Dada una recta de la forma y = ax + b y un intervalo numérico, determinar si la recta corta
al eje X para alguno de los valores del intervalo.
El algoritmo toma como entrada los datos de la recta (a, b) y del intervalo (x1, x2), devolviendo la salida
(corta).
Acción Principal
Entorno a, b, x1, x2:
real
corta: lógico
fx1, fx2: real
Inicio
leer(a, b)
leer(x1, x2)
fx1 ← a * x1 + b
fx2 ← a * x2 + b
Si fx1*fx2 < 0.0
corta ← V
Sino
corta ← F
Fin de si
escribir (corta)
Fin

Como puede apreciarse, el algoritmo comprueba si hay cambio de signo en los valores de Y para
cada valor de X (límite inferior y superior del intervalo), sustituyéndolos en la ecuación de la
recta.
Diagrama de Flujo:
Programa en Python:

Prueba:

5) Determinar el mayor de tres números.


El algoritmo toma como entrada tres números (a, b, c) y devuelve el mayor (mayor).
Este algoritmo puede ser resuelto de varias formas, mostrándose a continuación tres de ellas en los
programas Mayor_de_tres_1, Mayor_de_tres_2 y Mayor_de_tres_3.

Acción Principal (Mayor_de_tres _1)


Entorno a, b, c:
real mayor:
real Inicio
leer(a, b, c)
Si a >= b y a >=c
mayor ← a

Sino
Si b >= a y b >= c
mayor ← b
Sino
mayor ← c
Fin de si
Fin de si
escribir (mayor)
Fin

Diagrama de Flujo:
Programa en Python:

Prueba:
6) Determinar hasta dónde puede llegar un viajero con una determinada cantidad en soles si el
precio de los billetes es el siguiente: Mala: 50, Cañete: 80, Ayacucho: 150, Villa Rica: 170
Este algoritmo debe tomar como entrada la cantidad en soles del viajero (cantidad) y devolver a la
salida un número (destino) que indica hasta dónde puede llegar. Los números que puede devolver el
algoritmo son: 0-Ningún destino, 1-Mala, 2-Cañete, 3-Ayacucho, 4-Villa Rica
Acción Principal Otra forma de resolver este mismo problema, sería:
Entorno cantidad:
entero Acción Principal
destino: entero Entorno cantidad:
Inicio entero
leer(cantidad) destino: entero
Si cantidad >= 17000
Inicio
destino ← 4
leer(cantidad)
Sino Si cantidad >= 17000
Si cantidad >= 15000
destino ← 4
destino ← 3
Fin de si
Sino
Si cantidad >= 15000 y cantidad < 17000
Si cantidad >= 8000
destino ← 3
destino ← 2
Fin de si
Si cantidad >= 8000 y cantidad < 15000
Sino destino ← 2
Fin de si
Si cantidad >= 5000 Si cantidad >= 5000 y cantidad < 8000
destino ← 1 destino ← 1
Fin de si
Si cantidad < 5000
Sino destino ← 0
destino ← 0 Fin de si
Fin de si escribir(destino)
Fin de si Fin
Fin de si
Fin de si
escribir(destino)

Diagrama de Flujo:
Programa en Python:
Prueba:

7) Determinar la cantidad a pagar por una llamada telefónica, teniendo en cuenta lo siguiente:
a) Toda llamada que dure tres minutos o menos tiene un coste de 10 céntimos
b) Cada minuto adicional cuesta 5 céntimos.
El algoritmo tomará como entrada el número de minutos (minutos), devolviendo la cantidad a pagar
(cantidad).
Acción Principal
Entorno
minutos: entero
cantidad: entero
Inicio
leer (minutos)
Si minutos <= 3
cantidad ← 10
Sino
cantidad ← 10 + (minutos–3)*5
Fin de si
escribir(cantidad)
Fin

Diagrama de Flujo:

Programa en Python:
Prueba:

8) Calcular el importe total de una factura para un solo artículo, considerando que se pueden
adquirir varias unidades, el IGV a aplicar es el 18%, y si el precio bruto (precio de venta +
IGV) es mayor de 5000 soles, se debe aplicar el 5% de descuento.
Este algoritmo tomará como entradas el precio sin i.v.a. del artículo (precio) y el número de unidades
(unidades), a partir de los cuales calculará el importe final de la factura (imp_final)

Accion Principal
Entorno
precio, unidades: entero imp_final: real
precio_bruto: real
Inicio
leer(precio, unidades)
precio_bruto ← unidades *precio * 1.18
Si precio_bruto > 5000
imp_final ← precio_bruto * 0.95
Sino
imp_final ← precio_bruto
Fin de si
escribir(imp_final)
Fin

Diagrama de Flujo:
Programa en Python:

Prueba:

9) Dado un punto en el plano determinar en qué cuadrante se encuentra.


El algoritmo tomará como entradas las coordenadas de un punto (x, y) y devuelve el cuadrante donde se
encuentra (cuadrante). En el caso en que el punto esté en los ejes se devolverá el número 5. Una forma
posible de resolver este problema es:
Accion Principal
Entorno
x, y: real
cuadrante: entero
Inicio
Leer(x, y)
Si x = 0.0 ó y = 0.0
cuadrante ← 5
Sino
Si x > 0.0
Si y > 0.0
cuadrante ← 1
Sino
cuadrante ← 4
Fin de si
Sino
Si y > 0.0
cuadrante ← 2
Sino
cuadrante ← 3
Fin de si
Fin de si
Fin de si
escribir (cuadrante)
Fin
Diagrama de Flujo:
Programa en Python:

Prueba:
10) Se desea diseñar un algoritmo para determinar de qué forma se deberá realizar la devolución
del cambio en una máquina. La máquina dispone de monedas de 5, 25 y 100 pesos, y
devolverá siempre el menor número de monedas posible.
El algoritmo tomará como entradas el importe (importe) a devolver y el número de monedas disponibles
de cada tipo (num100, num25, num5), obteniendo como salida el número mínimo de monedas de 100, 25
y 5 (sal100, sal25, sal5). En caso de que la devolución no sea posible se mostrará un mensaje indicativo.
Acción Principal sal100 ← sal100 – dif100
Entorno sal25 ← sal25 + dif100*4
importe, num100, num25, num5, resto, Fin de si
dif100, dif25: entero sal100, Si sal25 > num25
sal25, sal5: entero dif25 ← (sal25 – num25)
error:lógico sal25 ← sal25 – dif25
Inicio leer (importe) leer
sal5 ← sal5 + dif25*5
(num100, num25, num5)
Fin de si
resto = importe Mod 5
Si sal5 > num5
si resto > 2
importe = importe - resto + 5 error ← V
sino Sino
importe = importe – resto error ← F
Fin de si Fin de si
sal100 ← importe/100 si no error
sal25 ← (importe - sal100 * 100) / 25 escribir(“Las monedas de 100, 25 y 5 son: ”,
sal100, sal25, sal5)
sal5 ← (importe - sal100 * 100 - sal25 * 25) / 5
sino
Si sal100 > num100
escribir (“no hay suficientes monedas”)
dif100 ← (sal100 - num100)
fin de si Fin
Para comprender el algoritmo debe recordarse que las divisiones entre enteros dan como resultado un
entero (la parte entera de la división).
Se ha dividido el algoritmo en 1ªParte y 2ªParte que explicamos a continuación:
• 1ªParte: En ella se calculan los valores de las variables de salida sin considerar que existe una
limitación en el número de monedas de cada tipo.
• 2ªParte: A partir de los valores de salida calculados en 1ªParte, éstos se reajustan según el
número de monedas disponibles de cada tipo.

Diagrama de Flujo:
Programa en Python:
Prueba:
11) Una determinada empresa de seguros de automóviles aplica los siguientes descuentos a sus
clientes de más de 3 años en la compañía.
Calcular el descuento aplicable a un cliente conociendo el importe en bruto del seguro, el número
de años que lleva en la compañía, la edad, y el sexo.
Para distinguir el sexo se utiliza un entero, de forma que el valor 1 indica mujer y otro valor indica hombre.

Acción Principal menor de de 25 a 40 mayor de


Entorno 25 años años 40 años
importe_bruto, años, edad, sexo: entero hombre 5% 10% 30%
descuento: real mujer 10% 15% 30%
Inicio
leer(importe_bruto)
leer(años), leer(edad), leer(sexo)
importe_bruto*0.1
Si años <= 3
descuento ← 0.0
Sino
Si sexo <> 1
Si edad < 25
descuento (real)importe_bruto * 0.05
Sino
Si edad >= 25 y edad <= 40
descuento ← importe_bruto*0.1
Sino
descuento importe_bruto * 0.3
Fin de si
Fin de si
Sino
Si edad < 25
descuento (real)importe_bruto*0.1
Sino
Si edad >= 25 y edad <= 40
descuento (real)importe_bruto*0.15
Sino
descuento (real)importe_bruto*0.3
Fin de si
Fin de si
Fin de si
Fin de si
escribir (descuento)
Fin

Diagrama de flujo:
Programa en Python:

Prueba:

Potrebbero piacerti anche