0% encontró este documento útil (0 votos)
114 vistas

Propuesta Metodològica Programacion Python

Python es un lenguaje de programación gratuito, de código abierto y multiplataforma. Ofrece ventajas como rapidez en el desarrollo de soluciones, sencillez y una gran cantidad de librerías incorporadas. El documento introduce conceptos básicos de Python como tipos de datos, operadores, variables, constantes y expresiones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
114 vistas

Propuesta Metodològica Programacion Python

Python es un lenguaje de programación gratuito, de código abierto y multiplataforma. Ofrece ventajas como rapidez en el desarrollo de soluciones, sencillez y una gran cantidad de librerías incorporadas. El documento introduce conceptos básicos de Python como tipos de datos, operadores, variables, constantes y expresiones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 27

1

FUNDAMENTOS DE PROGRAMACIÓN CON PYTHON

Sintetizado por:
Gildardo Antonio Orrego Villa - Marco Antonio López Ospina

1.1 Introducción

Python es un lenguaje de programación de propósito general, que también puede utilizarse para
el desarrollo web. Python es una apuesta por la simplicidad, versatilidad y rapidez en el desarrollo
de soluciones algorítmicas. Entre otras razones, para su uso actual, por encima de otros
lenguajes tradicionales son las siguientes:

* Es gratuito, por ende facilita su uso en entornos académicos, industriales e incluso para
propósitos empresariales, lo que reduce los costos asociados a licenciamientos, accesos,
disponibilidad y portabilidad.

* Es un lenguaje de tipo intérprete (no se necesita compilar todo el código fuente para poder
ejecutarlo), sino que lo hace línea por línea.

* Ofrece ventajas, tales como: la rapidez de desarrollo; menor velocidad en la implementación


de soluciones; sencillez respecto a la cantidad de líneas de código (puede tener de 3 a 5 líneas
de código menos que su equivalente en Java o en C).

* Es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para


realizar cualquier tipo de programa, desde aplicaciones Windows hasta servidores de red o
páginas web.

* La cantidad de librerías que contiene, tipos de datos y funciones incorporadas facilitan el


desarrollo de muchas tareas habituales, sin necesidad programarlas desde el inicio.

* La cantidad de plataformas en las que se puede desarrollar, como Unix, Windows, OS/2, Mac,
Amiga y otros.

1.2 Instalación y configuración

Le recomiendo ver y practicar la instalación y configuración de Python mediante el siguiente


video: https://www.youtube.com/watch?v=Jcm7oiaH2m8

1.3 Tipos de datos

En Python no es necesario declarar el tipo de dato que se almacenará en una variable, ya que
su tipo lo determinará en tiempo de ejecución, según el valor asignado. A este proceso se
denomina “tipado dinámico”.

Es importante, que al comenzar la etapa de diseño del algoritmo se dedique buena parte al
análisis de los datos y en este caso a la declaración del tipo de dato al cual corresponde cada
variable (como se verá más adelante). El tipo de dato determina el rango de valores al cual
2

corresponde la variable y que podría ser aceptado por la máquina. Los tipo de dato se pueden
clasificar en: datos simples (numéricos, datos lógicos y datos carácter) y estructurados
(cadenas, arreglos, registros, archivos, conjuntos y punteros).

Datos numéricos. Se dice que un dato es de tipo numérico si está en un intervalo con valores
numéricos. Ese conjunto puede subdividirse en enteros y en reales.
● Tipo numérico entero (int). Si el valor del dato no tiene componentes
fraccionarias o decimales se dice que es de tipo entero. Dichos valores pueden
ser positivos o negativos. Ejemplo, la edad, la cantidad de personas, animales o
cosas de algún sitio.
● Tipo numérico real (float o double). Si el valor al cual representa el dato tiene
componentes fraccionarias o decimales se dice que es de tipo real. Dichos valores
pueden ser positivos o negativos. Ejemplo, la estatura en metros, el peso en
kilogramos.

Datos lógicos (bool). Se denomina dato de tipo lógico a aquel que puede tomar solo los valores
False o True (comenzando con mayúscula). Este tipo de dato se utiliza para representar
alternativas o decisiones y comparaciones, de las cuales puede decirse que es falsa o no.
Ejemplo, se pregunta si un valor es positivo o negativo, se responde False o True.

Dato carácter/cadena o texto (char/string). Se dice dato de tipo carácter al conjunto finito y
ordenado de caracteres (letras, símbolos especiales y símbolos que representan números) que
el computador reconoce. Los conjuntos de caracteres o sucesión de éstos se denominan
cadenas (o string) que van entre comillas dobles y los conjuntos de un solo carácter se
denominan simplemente carácter y van entre el comillas simples. Las cadenas se pueden
reconocer también como arreglos de caracteres.

Tanto los datos carácter (char) como las cadenas deben delimitarse entre comillas, ya sean en
comillas simples o en dobles. Ejemplo, “María”, “Buenos días”, ‘2’ (representa el símbolo de
número dos), ‘*’ (representa el carácter * más no al operador de la multiplicación).

1.4 Operadores y Expresiones


1.4.1 Operadores
Son todos aquellos signos que indican la realización de operaciones aritméticas o lógicas
(booleanas). Pueden clasificarse como:

Operador aritmético: +, -, *, / (división), // (división entera), % (módulo), ** (potencia)


Operador relacional: == (igual), < (menor que), <= (menor o igual que), > (mayor que),
>= (mayor o igual que) y != (diferente)
Operador lógico: not, and, or
3

Prioridad Operador aritmético Operador lógico

1 Potencia y radicación Negación – NO: not


2 Multiplicación, división y módulo Conjunción – Y: and
3 Suma y resta Disyunción – O: or
Cuadro 1: Prioridad de los operadores
Cada operador tiene su correspondiente prioridad la cual hay que tenerse en cuenta en el
momento de ir a evaluar una expresión. En efecto, los operadores de igual prioridad se evalúan
de izquierda a derecha cuando coinciden en una operación aritmética o lógica. Si una expresión
(aritmética o lógica) contiene otras expresiones encerradas entre paréntesis, éstas se evaluarán
primero, según su prioridad. Una expresión estará bien escrita siempre que la cantidad de
paréntesis izquierdos sea igual a la cantidad de paréntesis derechos.

1.4.2 Expresiones
Se denomina expresión al grupo de operadores que actúan (separan) sobre una agrupación de
variables. Se pueden clasificar en expresiones aritméticas y lógicas.
Expresión aritmética. Es un conjunto de variables o constantes numéricas separadas o
no por operadores aritméticos. Producen un valor numérico. Ej. (x-y)*(w+z)=v, siendo v,
w, x, y, z variables numéricas declaradas

Expresión booleana. Es un conjunto de variables o constantes lógicas separadas o no


por operadores lógicos o también expresiones aritméticas separadas por operadores
relacionales. Producen un valor lógico. Ejemplo, (x-y)>(w+z), siendo w, x, y, z variables
numéricas declaradas.
Otro ejemplo de expresión lógica sería: ((not x or y) and (w and not y)) or not z, siendo w,
x, y, z variables lógicas declaradas.

PROBLEMAS RESUELTOS

Ejemplo 1.1: Calcule el valor de:


a) (True and not True) o not(not(not False o True) y (not False or True))== False or
not(not True y True)= True
b) ((4*3-5)-7)//2= ((12-5)-7)//2 = (12-5-7)/2 = 0/2 = 0
c) ((4**2 -7)*3)/9-15 = -12
d) (((6**2 -15)/3)**2+15)**(½) – (9**(1/2) –4*(5-1)** 2 + (16*4)) = 8 –(3-64+64)= 5

1.5 Concepto de variable y constante

Cuando en la vida real se dice que "las cosas cambian o no con el tiempo", en lo concerniente al
argot de programación podremos hablar de "variables" o "constantes", respectivamente.

1.5.1 Variable
4

Una variable es un espacio en la memoria del computador que sirve para almacenar datos. En
efecto, una variable puede tomar distintos valores durante el transcurso de la ejecución del
algoritmo o programa, pero que en un momento determinado posee el mismo valor.
Toda variable consta de dos características básicas: su nombre y su valor. El nombre debe ser
mnemotécnico, es decir, que al leerlo fácilmente se entienda o al menos se pueda intuir; no debe
llevar caracteres en blanco ni especiales y en lo posible evitar que sean muy cortos o muy largos.

1.5.2 Constante

Cuando no cambia de valor durante la ejecución del algoritmo se dice entonces que es una
"Constante". El nombre también debe ser mnemotécnico; el valor puede ser numérico, booleano
o una cadena de caracteres, la cual debe ir entre comillas. En Python escriba las variables con
minúsculas; si el nombre de esta es compuesto, separe dichas palabras con el guión bajo (_).
No debe utilizar caracteres especiales.

Ejemplo 1.2:
nombre variable Valor
color_cabello negro, castaño oscuro, castaño claro, rubio, blanco,
gris.
valor_verdad falso, verdadero
edad_Ingreso 6, 7, 8
Sexo femenino, masculino
estatura_persona 160, 180, 190, 203
Cuadro 2: Variables
Ejemplo 1.3:
Nombre constante Valor
salario_mes 250000
valor_verdad verdadero
Despedida “ADIOS”
Cuadro 3: Constantes

1.5.3 Clasificación de las variables

Las variables se pueden clasificar por su contenido y por su uso.

Variables por su contenido. Se clasifican en numéricas (reales o enteras), alfabéticas,


alfanuméricas, lógicas (booleanas)

Variables por su uso. Se subdividen en variable contadora, variable acumuladora y variable


suiche (averigua si algo pasó u obliga a pasar algo), variable bandera o centinela (definida por el
5

programador para que cumpla una condición determinada).

Variable contadora. Es una variable de tipo entero que se incrementa o disminuye manera
constante en cada iteración. Se utiliza para controlar ciclos en procesos repetitivos.
contador =contador + k
La variable contador se incrementa k (siendo k un valor constante). También,
contador = contador - k
Con lo cual contador se disminuye (siendo k un valor constante)

Variable acumuladora. Tiene como fin almacenar cantidades variables de tipo entero o real
resultantes de sumas sucesivas. Observe que tiene la misma función de un contador, pero se
diferencia en que el incremento o disminución de cada suma es variable.
Variable_acumulador = Variable_acumulador + v
La variable acumulador se incrementa v (siendo v un valor variable) y se escribe
Variable_acumulador = Variable_acumulador – v

donde v disminuye a la variable acumulador (siendo v un valor variable)

Variable suiche. Algunos programadores también la denominan interruptor, conmutador.


Corresponde a un espacio de memoria que puede tomar dos valores a largo de la ejecución del
programa y que permite llevar información de una parte a otra. Son de tipo lógico o booleano.
Su utilización se hace de la siguiente manera: se inicializa en un valor determinado (0 ó 1, false
o true, apagado o encendido, cerrado o abierto, sí o no) y luego se modifica por la otra opción.

Variable bandera o centinela. Tiene aplicación en la ejecución de alternativa de acciones


diferentes dentro de un ciclo, para interrumpir alternativas o para rompimiento de control. Para
tal fin, se pone como condición de un ciclo la variable centinela que puede ser de cualquier tipo
(entero, real, lógico o carácter), dependiendo de la necesidad para lo cual la tenga el
programador.

Las variables nombre, edad, peso y suiche se denominan centinelas y se inicializan antes de
cada ciclo y se vuelven a leer antes de cerrar el ciclo. Cuando toma el valor que el programador
ha determinado, se rompe el control del ciclo. En el último caso, se inicializa el suiche como
verdadero y, para romper el control, se cambia a falso.

1.6 Comentarios

Con el fin de hacer comentarios de las instrucciones o líneas de comando se utiliza la siguiente
instrucción que no es ejecutable, solo sirve para documentar el programa:
#comentario
6

1.7 Instrucciones de entrada y de salida

Los datos que entrarán corresponderá a los insumos para que sea funcional la solución. En
efecto, haga una lista de los insumos debajo de la figura que indica entrada de datos. Las
variables que determine como entrada corresponden a las que el usuario tendrá que ingresar
input(): es una función utilizada para ingresar y asignar datos por teclado a una variable.

Sintaxis:
nombre_variable=input(“mensaje”)
variable_entero=int(input()) #ingresar número entero
variable_real=float(input()) # ingresar número real
variable_caracter=char(input()) #ingresar carácter
variable_cadena=input() #recibe cadena
variable_cadena=bool(input()) #recibe un valor lógico

Se recomienda que cada vez que en Python se use este comando, lo acompañe de un mensaje,
pues de tal manera el usuario sabrá lo que tiene que ingresar. El mensaje tendrá que ser tan
claro que el usuario no debería dar pie a confusiones. Piense que lo que se está haciendo es
para un usuario y no para usted.

print(): en función empleada para sacar resultados por pantalla. Para tal fin, si es para mostrar
mensajes se ponen paréntesis y dentro de ellos se escribe el mensaje entre comillas dobles.
print (Lista de variables)
print (“MENSAJE”)
print (“MENSAJE”, NombreVariable)
print (NombreVariable ,“MENSAJE”)

EJERCICIO 1
1. Escriba cada una de las siguientes expresiones utilizando los operadores de Python

a)

b)
7

Parte 2: ESTRUCTURAS DE PROGRAMACIÓN EN PYTHON

2.1 Estructuras de un programa en Python

La estructura de un programa en Python es:


def main(): #comienza el programa
Conjunto de Instrucciones
main() #cierra el programa
Figura 2.1: estructura de un programa en Python

2.2 Estructuras de programación

Bohm y Jacopini1 demostraron que todos los programas de computación podían ser escritos bajo
tres estructuras básicas de control:
● Estructura secuencial
● Estructura selectiva
● Estructura repetitiva
Dichas estructuras se utilizan para diseñar algoritmos y para codificar programas.

2.1.1 Estructura secuencial


Dicha estructura se utiliza para asignar un nuevo valor a una variable. Para la sintaxis
correspondiente tanto en diagramas de flujo como en pseudocódigo se utilizará la flecha dirigida
hacia la izquierda “=”. Dicha flecha significa que se va a actualizar una variable o que una variable
toma un valor inicial. Recuerde que cuando una variable no toma un valor inicial, el sistema le
pone un valor al azar, con lo cual se logran resultados inesperados. La variable de la izquierda
recibe el valor o los valores de la expresión del lado derecho.
Su sintaxis será:
Variable = Valor
Variable = Expresión
Figura 2.2: estructura secuencial de un programa en Python

Ejemplo 2.1: diseñe el algoritmo, utilizando la estructura de algoritmo en pseudocódigo y su


código en Python, que describa los pasos de lo que hace cada instrucción del algoritmo.
A=5
B = A+4
C = B-6
B = B*3
C = B-12
A = C+B-A
Solución algorítmica:

Algoritmo operaciones

1
Bohm, C y Jacopini, G. “Flow Diagrams, Turing Machines, and Languages with Only Two Formation
Rules”, Communications of the ACM, Vol.9,No.5, mayo 1966, pp.336-371.
8

Var
A,B,C: entero
INICIO
A=5
B=A+4
C=B-6
B=B*3
C=B-12
A=C+B-A
Muestre(“A=”,A,“B=”,B,“C=”,C)
FIN

Codificación en Python:

def main(): #comienzo de un programa en Python


….A=5
….B=A+4
….B=B-6
….B=B*3
….C=B-12
….A=C+B-A
….print (“A=”, A, “B=”, B, “C=”, C)
main() #fin de un programa en Python

Ejemplo 2.2: diseñe un algoritmo y codifique en Python una solución que muestre el valor de la
expresión la (4-3x)(6+5y). Clasifique las variables de entrada de salida y de proceso.
x: variables numérica real de entrada
y: variables numérica real de entrada
c: variables numérica real de proceso y de salida a la vez, donde c=(4-3*x)*(6+5*y)

Solución algorítmica:

Algoritmo expresion
Var
x,y,c:real
INICIO
Muestre(“Entre el valor de x: ”)
Lea(x)
Muestre(“Entre el valor de y: ”)
Lea(y)
c=(4-3*x)*(6+5*y)
Muestre(“El valor de c es: ”,c)
FIN

Codificación en Python:

def main():
….x=int(input(“Entre el valor de x”))
….y=int(input(“Entre el valor de y”))
….c=(4-3*x)*(6+5*y)
….print(“El valor de c es:”,c)
main()
9

Ejemplo 2.3: Diseñe un algoritmo y haga su código en Python, que lea 2 valores, encuentre la
suma de ellos y la imprima.
Solución algorítmica:

Algoritmo suma
Var
v1, v2, suma : real
INICIO
Muestre (‘Ingrese el primer valor’)
Lea v1
Muestre (‘Ingrese el segundo valor’)
Lea v2
suma=v1+v2
Muestre (‘La suma de los dos valores es:..’,suma)
FIN

Codificación en Python:
# v1 --> Primer valor entero ingresado por teclado.
# v2 --> Segundo valor entero ingresado por teclado.

def main():
….v1=int(input("Ingrese el primer valor...:")) #Esta es una forma de leer valores
….print("Ingrese el segundo valor...:",end="")
….v2= int(input()) #Esta es otra forma de leer valores
….print ('El resultado de la suma es ..:',v1+v2)
main()

Ejemplo 2.4: Diseñe un algoritmo y desarrolle su código en Python que lea para una compra,
cantidad y precio unitario de un producto, calcule el total a pagar y lo muestre.

Solución Algorítmica
Algoritmo compra
Var cantidad: entero
vu, tc: real
INICIO
Muestre(‘Ingrese la Cantidad de Producto’)
Lea (cantidad)
Muestre(‘Ingrese el precio unitario del producto’)
Lea (vu)
tc=cantidad*vu
Muestre(‘El valor de la compra es….’,tc)
FIN

Codificación en Python:
# cantidad --> Cantidad del producto
# vu --> Valor unitario del producto
# tc --> Total de la compra

def main():
….cantidad=int(input("Ingrese la cantidad de producto...:")) #Lectura de un entero
….vu=float(input("Ingrese el valor unitario del producto...:")) #Lectura de un real
….tc=cantidad*vu
….print ('El valor de la compra es ..:',tc)
main()
10

TALLER 2.1
A) Desarrolle la solución del ejemplo 3 en Python.

B) Algoritmos para uso de la estructura secuencial.


Diseñe algoritmos que resuelvan cada uno de los siguientes problemas:
1. Calcule y muestre el área de un cuadrado
2. Calcule y muestre el área de un triángulo
3. Calcule y muestre el área de un trapecio
4. Calcule el volumen de una esfera (4/3 de pi por el cubo del radio).
5. Calcule la base mayor de un trapecio dadas su área, su base menor y su altura. Se sabe
que el área de un trapecio es igual al producto de la semisuma de sus bases (menor y mayor)
por la altura.

Para un movimiento uniformemente acelerado (de aceleración constante), sea VI: velocidad
inicial, VF: velocidad final, T: tiempo, A:aceleración y S: distancia. Entonces, sus fórmulas
cinemáticas son:

A=(VF-VI)/T (1)
VF2=VI2+2AS (2)
2
S=VI.T+0.5AT (3)
Resuelva los problemas del 6 al 9 utilizando la(s) correspondiente(s) fórmula(s) cinemática(s):
6. Calcule la velocidad V de un móvil que recorre una distancia S en un tiempo T. Los valores
T y S son ingresados por el usuario.
7. Calcule la velocidad VF con la que llega un móvil que parte con una velocidad inicial VI y
con una aceleración constante A recorre una distancia S. Los valores VI, A, S son ingresados
por el usuario.
8. Calcule la aceleración constante A de un móvil, dado que parte con una velocidad inicial
VI y llega con una velocidad final VF después de recorrer una distancia S en un tiempo T. Los
valores VI, VF, T, S son ingresados por el usuario.
9. Calcule la distancia recorrida por un móvil que se desplaza durante un tiempo T,
partiendo con una velocidad inicial VI hasta alcanzar una velocidad final VF.
10. Determine el valor de a y b dado que a=x2-3x+5 y b= 2t2-4x-11
11. Determine el valor de c dado que c=a-b y se sabe que a=x2-3x+5 y b= 7t2-3t+15
Sea C el capital inicial y Q el capital alcanzado en un tiempo n a un interés I. Entonces
Q=C(1+n*I/100) capitalización al cabo de n tiempo a un interés simple I.
Q=C(1+I/100)n capitalización al cabo de n tiempo a un interés compuesto I

12. Calcule el capital Q obtenido a partir de un capital C al cabo de un tiempo n a un interés


simple I%.
13. Calcule el tiempo n al cual se dejó un capital C para obtener un capital Q a un interés
11

simple I%.
14. Calcule el tiempo en que ha de imponerse un capital C al I% para que se convierta en
un capital Q.
15. Halle el tiempo en que se triplica un capital C, puesto a un interés I%.
16. Halle el interés producido durante n años, por un capital de C, al I%.
17. Solucione una ecuación de primer grado con una incógnita.
18. Un inversionista tiene un capital X y lo presta durante 20 meses a una tasa de interés de
Z% mensual. ¿cuál es su capital al recibir el dinero?
19. ¿Cuál es el costo después de descuento y cuanto el descuento de las entradas para 15
personas que van a cine?, si se conoce el precio de la boleta y se tiene en cuenta que recibirán
un 25% de descuento por ser más de 10.
20. Un estudiante presenta 3 trabajos, con los siguientes porcentajes 50%, 30% y 20%,
conociendo las notas de los 3 trabajos. Se pide calcular el promedio.
21. Un empleado trabaja 120 horas ordinarias en un mes y 20 horas extras diurnas. La hora
normal es n pesos y la extra tiene un 25% de incremento, ¿cuánto recibe el empleado y cuánto
le descuentan, si aporta el 8% de su salario para seguridad y social y el 5% para una
cooperativa?
22. Un colegio tiene matriculados para los n estudiantes distribuidos en: preescolar, básica y
media. Se pide calcular el porcentaje por cada nivel, conocida la cantidad de estudiantes por
nivel.
23. Se quiere saber cuánto pagar por un pasaje aéreo, dado que tiene un descuento del 18%
y se aplica el IVA (16%) antes del descuento del tiquete.
24. Un viajero requiere 2.800 dólares y desea saber ¿cuántos pesos colombianos necesita?,
si debe pagar una comisión del 2%, y el valor actual del dólar es $2.925.

2.2.2 Estructura selectiva


Esta estructura permite tomar una decisión. Está formada por una decisión lógica, llamada
condición; de allí salen dos posibles alternativas de secuencia: una de ellas toma la decisión
verdadera, y la otra cuando es falsa. Finalmente, se unifican las salidas de las alternativas,
cumpliendo así con la característica de cada estructura: producir una sola salida.

Es importante saber que la condición siempre llevará una expresión relacional (una comparación)
o una expresión lógica, de tal manera producirá un resultado lógico. La variable utilizada en la
condición se denomina variable de control.

2.2.1 Estructura condicional simple


Esta estructura selectiva se conoce como alternativa o condicional. Se encarga de evaluar una
situación llamada condición, la cual lleva una o más expresiones relacionales con sus
correspondientes operadores lógicos. En caso de verificarse como verdadera, se realizan unas
acciones, y en caso contrario se evalúan otras acciones. Debe tenerse en cuenta en la sintaxis
12

en pseudocódigo que, comienza con “if” y al terminar la última instrucción del conjunto de
acciones debe ponerse con indentación.

Figura 2.3: Condicional en pseudocódigo

En Python la sintaxis de la estructura selectiva es:


if Condición:
…. “Acciones”
else:
…. “Acciones”

Figura 2.4: Condicional en Python

Tenga en cuenta dejar siempre la sangría de cada línea de código del condicional. Genere
errores.

Ejemplo 2.5: haga un algoritmo que determine si un número ingresado por el usuario es par o
impar. Se sabe que un número es par si al dividir un número por 2 su residuo es 0. En efecto, se
toma el número y se opera con el módulo (que es no negativo) y se iguala a 0 (numero mod 2=0).
Algoritmo ParImpar
Var
numero: entero
INICIO
Muestre(“Entre un numero entero”)
Lea(numero)
Si numero Mod 2=0 Entonces
Muestre(numero, “ es par”)
Sino
Muestre(numero, “ es impar”)
finSi
FIN

Código en Python:

def main():
….numero=int(input(“Entre un número entero”))
….if numero mod 2=0
……..print numero, “es positivo”
else:
……..print numero, “es negativo”
main()

Ejemplo 2.6: Elaborar un programa que lee 2 valores enteros, si el primero es mayor que el
segundo los suma, de lo contrario los multiplique.

Solución algorítmica
13

Algoritmo SumaProd
Var
n1, n2: entero
INICIO
Muestre(‘ Ingrese un valor entero…’)
Lea (n1)
Muestre(‘ Ingrese otro valor entero…’)
Lea (n2)
Si n1>n2 entonces
Muestre(‘La suma es..:’,n1+n2)
Sino
Muestre(‘El producto es..:n1*n2)
Finsi
FIN

Codificación en Python:

# n1 --> Primer valor entero ingresado por teclado.


# n2 --> Segundo valor entero ingresado por teclado.

def main():
n1=int(input("Ingrese el primer valor...:"))
n2=int(input("Ingrese el primer valor...:"))
if n1>n2:
print('La suma es ...:',n1+n2)
else:
print('El producto es ...:',n1*n2)
main()

2.2.5 Condicionales anidados

Muchas veces los algoritmos o programas tienen bifurcaciones en los condicionales, que
terminan, en algunos casos, teniendo la siguiente forma:

Figura 2.5: estructura condicional anidado en pseudocódigo

Ejemplo 2.7: Diseñe un algoritmo que lee dos valores enteros, si el primero es mayor que el
segundo los suma; si el segundo es mayor que el primero los eleva al cuadrado y los suma, de
lo contrario los multiplica

Solución Algorítmica:
14

Algoritmo Comparar
Var
n1, n2: entero
INICIO
Muestre(‘ Ingrese un valor entero…’)
Lea (n1)
Muestre(‘ Ingrese otro valor entero…’)
Lea (n2)
Si n1>n2 entonces
Muestre(‘El resultado es..:’,n1+n2)
Sino
Si n2>n1 entonces
Muestre(‘El resultado es..:n1*n1+ n2*n2)
Sino
Muestre(‘El resultado es..:n1*n2)
Finsi
FIN

Codificación en Python:

# n1 --> Primer valor entero ingresado por teclado.


# n2 --> Segundo valor entero ingresado por teclado.

def main():
n1=int(input("Ingrese el primer valor...:"))
n2=int(input("Ingrese el primer valor...:"))
if n1>n2:
print('La suma es ...:',n1+n2)
else:
if n2>n1:
print('El producto es ...:',n1*n1+n2*n2)
else:
print('El resultado es ...:',n1*n2)
main()

En un mismo bloque pueden tenerse varias instrucciones, pero con la misma sangría o
indentación. No se permite que en un mismo bloque haya instrucciones con distintos sangrados.
Dependiendo del orden de la indentación, el mensaje de error al intentar ejecutar el programa
será diferente:
● En el primer caso, la primera instrucción determina el sangrado de ese bloque, por lo que
al encontrar la segunda instrucción, con un sangrado mayor, se produce el error
"unexpected indent" (sangrado inesperado).
if condición:
acción 1
acción 2
else:
acciones

● En el segundo caso, la primera instrucción determina el sangrado de ese bloque, por lo


que al encontrar la segunda instrucción, con un sangrado menor, Python entiende que
esa instrucción pertenece a otro bloque, pero como no hay ningún bloque con ese nivel
de sangrado, se produce el error "unindent does not match any outer indentation
15

level" (el sangrado no coincide con el de ningún nivel superior). Veamos:


if condición:
acción 1
acción 2
else:
acciones

● En el tercer caso, como la segunda instrucción no tiene sangrado, Python entiende que
la bifurcación, así:
if condición:
acción 1
acción 2
else:
acciones

Es decir, else está sin su if correspondiente, produciéndose el error "invalid syntax" (sintaxis no
válida).

Ejemplo 2.8: Haga la prueba de escritorio al siguiente algoritmo mostrando, Sexo, Edad y
plataforma.
Algoritmo prueba
Var
Edad: entero
Sexo: carácter
INICIO
Muestre(“Ingrese sexo: 1. Hombre 2. Mujer”)
Lea(sexo)
Muestre(“Ingrese Edad”)
Lea(edad)
Si edad>=18 y edad <50 Entonces
Si sexo=2 Entonces
Muestre(“Vaya a Plataforma 1.”)
Muestre(“Deténgase allí!”)
Sino
Si (sexo=1) Entonces
Muestre(“Vaya a Plataforma 2.”)
Muestre(“No se detenga!”)
FinSi
FinSI
Sino
Muestre(“Vaya a plataforma 3.”)
Muestre(“Tenga mucho cuidado!”)
FInSI
FIN

Codificación en Python

def main():
….sexo=char(input (“Ingrese sexo: 1. Hombre 2. Mujer”))
….edad=int(input(“Ingrese Edad”))
….if edad>=18 and edad <50:
……..if sexo==2:
…………print (“Vaya a Plataforma 1.”)
…………print (“Deténgase allí!”)
16

……..else:
…………if sexo==1:
…………….print (“Vaya a Plataforma 2.”)
…………….print (“No se detenga!”)
…………….else:
………………..print (“Vaya a plataforma 3.”)
………………..print (“Tenga mucho cuidado!”)
main()

2.2.2 Estructura condicional múltiple


Esta estructura evalúa la expresión dada en función de un valor constante, resultante. De tal
manera realiza una tarea determinada. La estructura selectiva múltiple se da tanto en cualquier
herramienta de programación y en especial, en pseudocódigo.

Figura 2.6: Condición múltiple en pseudocódigo

Sintaxis en Python
if expresión 1:
acción 1
elif expresión 2:
acción 2
elif expresiones 3
acción 3
.
.
.
Else:
acción n
Figura 2.7: Condición múltiple en Python

Ejemplo 2.9: Diseñe un algoritmo que imprima las fechas (día y mes) entre las que transcurre
cada una de las estaciones del año en el hemisferio norte. Para tal fin, cree un menú para que
el usuario seleccione la estación deseada. El algoritmo debe dar la opción para que el usuario
pueda ver reiterativamente todas las estaciones y salirse cuando él lo quiera.
Algoritmo Estaciones
Var
opcion:caracter
INICIO
Muestre("DIGITE LA OPCION DESEADA: 1. PRIMAVERA 2. VERANO 3. OTONO 4.
INVIERNO 5. SALIR=>")
Lea(opcion)
Mientras no(opcion="1" o opcion="2" o opcion="3" o opcion="4" o opcion="5")
17

Muestre("DIGITE LA OPCION DESEADA: 1. PRIMAVERA 2. VERANO 3.


OTONO 4. INVIERNO 5. SALIR=>")
Lea(opcion)
FinMientras
En caso de opcion haga
"1":Muestre("22 de marzo hasta junio 21")
"2": Muestre("22 de junio hasta septiembre 21")
"3": Muestre("22 de septiembre hasta diciembre 21")
"4": Muestre("22 de diciembre hasta marzo 21")
“5”: Muestre("adios-adios")
FIN

El código en Python corresponde a:

def main():
opcion=input("DIGITE LA OPCION DESEADA: 1. PRIMAVERA 2. VERANO 3. OTONO 4.
INVIERNO 5. SALIR=>")
while not(opcion=="1" or opcion=="2" or opcion=="3" or opcion=="4" or opcion=="5"):
opcion=input("DIGITE LA OPCION DESEADA: 1. PRIMAVERA 2. VERANO 3. OTONO 4.
INVIERNO 5. SALIR=>")
if opcion=="1":
print("22 de marzo hasta junio 21")
elif opcion=="2":
print("22 de junio hasta septiembre 21")
elif opcion=="3":
print("22 de septiembre hasta diciembre 21")
elif opcion=="4":
print("22 de diciembre hasta marzo 21")
else:
print("adios-adios")
main()

TALLER 2.2

Algoritmos con condicionales


1. Lea e imprima dos números y calcule la suma la resta, el producto, la división y el residuo.
Imprima los resultados con los respectivos números.

2. Ingrese el nombre, el sexo (masculino o femenino), la edad y el estado civil (soltero, casado,
unión libre, viudo separado) y mostrar el nombre, sexo, su estado civil y si es menor o mayor
de edad.

3. Muestre la hora un segundo después cada vez (para un reloj de 12 horas).

4. Genere tres números enteros y determine si un número de ellos impar e igual a la suma de
los otros dos, con sus respectivos mensajes.

5. Determine el rango en que está un número ingresado por el usuario, según los límites inferior
y superior de los rangos de la tabla 1.
Rango
18

Entre 0 y 50
Entre 51 y 100
Entre 101 y 150
Mayor que150
Tabla 1
6. Resuelva completamente una ecuación cuadrática. Dicho programa debe mostrar el valor
(real o imaginario) con su respectivo mensaje; ponga además un mensaje para solicitar el
valor de los coeficientes.

7. En un gimnasio, su deportólogo ha analizado la cantidad mínima y máxima de ejercicios que


deben realizar los adultos de este lugar, según el sexo, como se dan en la tabla 2.
Sexo Cantidad mínima de flexiones Levantamiento en Kgs.
Masculino 60-100 60-80
Femenino 40-80 30-40
Tabla 2
Quienes estén por debajo de estos límites se califican como “diezmados”; dentro del rango, se
llamarán “optimizados” y si se encuentran por encima se denominan “potenciados”. Haga un
algoritmo que determine el tipo de deportista practicante.

8. Muestre el mensaje y el valor del premio que se gana un jugador según el puntaje alcanzado
(entre 0 y 100 puntos) en una prueba, teniendo en cuenta la tabla 3:
Puntaje Mensaje Premio ($)
Menos de 20 Deficiente 0
Entre 20 y 45 Insuficiente 1000
Entre 46 y 70 Aceptable 10000
Entre 71 y 90 Sobresaliente 20000
Más de 90 Excelente 50000
Tabla 3

9. Se sabe que el trabajador tiene un salario básico a la semana el cual está basado en el número
de horas ordinarias trabajadas y el valor fijo por hora ordinaria de $10500, y que su pago total
a la semana tiene bonificaciones y descuentos (deducciones). Las bonificaciones se dan en
la tabla 4:
Bonificaciones
Opción Horas semanales Porcentaje adicional
1 Horas extras diurnas 25%
2 Horas nocturnas ordinarias 35%
Tabla 4
La empresa tiene como política asignar solamente horas extras diurnas cuando sea necesario y
19

trabajar algunas horas nocturnas ordinarias, más no horas extras nocturnas


Las deducciones son para salud y pensión, como se da en la tabla 5

Deducción salud y pensión


Concepto Porcentaje descuento
Salud 4%
Pensión 5%
Tabla 5
Liquidación del salario semanal: Se determina a partir del salario básico semanal y este podría
ser: Liquidación = (Salario básico semanal + Bonificaciones – Deducción salud – Deducción
Pensión).

17. Se requiere saber cuánto se debe pagar un cliente por una compra de una cantidad
desconocida de artículos, conociendo la cantidad y precio unitario, además que si el valor total
es superior a $ 100, tiene un descuento del 10%, de lo contrario el descuento es del 6%.

18. Se requiere verificar si un joven es apto para conformar un equipo de basquetbol; teniendo
en cuenta que la edad debe estar entre 18 y 25 años, la estatura debe ser superior a 1,90
mts. y el peso entre 80 y 100 kilos. La edad, estatura y peso son datos conocidos; debe
mostrar un mensaje de apto o no apto.

19. Un empleado gana un salario básico conocido y comisiones por cantidad de ventas, así:
de 1 a 5 el 7%, de 6 a 10 el 9% y de 11 a 15 el 12%, si el número de ventas es superior, su
comisión será del 15%; el porcentaje se aplica al total del monto las ventas, es decir, si por
ejemplo las ventas son 20, por valor de 30 millones; se le aplica el 15% al valor de todas la
ventas. El número y total de ventas, son valores conocidos y se requiere calcular el salario
teniendo en cuenta que debe aportar el 8% para la seguridad social y si el salario resultante
es mayor a 4 millones, se le descuenta el 1% de retención en la fuente.

20. Elabore un algoritmo que lea el nombre y la edad de una persona y si la edad es mayor
o igual a 18 años, muestre el nombre y el mensaje: usted es mayor de edad, de lo contrario,
muestre el nombre y el mensaje: le falta para la mayoría de edad.

21. Elabore un programa que leídos los valores de 3 tres segmentos que forman un triángulo,
averigüe qué tipo de triángulo se puede formar con ellos.

23. Una tienda vende artículos, elabore un algoritmo que pida al usuario el nombre del artículo,
su descripción, la cantidad requerida y el precio unitario. Si el usuario necesita entre 100 y 500
unidades, aplique un descuento del 10%, si requiere más de 500 unidades, el descuento sería
20

del 12%, si el usuario requiere menos de 100 unidades, el descuento es del 6%. También debe
adicionar el IVA al precio total. Se requiere imprimir el nombre, la descripción, el precio unitario
y total antes de IVA y el precio total con IVA incluido.

24. Tres autos se desplazan de Medellín a Sabaneta en tiempos X, Y, Z respectivamente; los


tres tiempos son diferentes, encontrar el tiempo de desplazamiento mayor y el menor.

25. Dada la duración en minutos de una llamada, calcular el costo. Considerando que hasta tres
minutos el costo es $200, por encima de tres minutos es $200 más el 12%, por cada minuto
adicional a los tres primeros.

26. Elabore un programa que lea 4 valores que representan segmentos de recta y averigüe: si
con ello se forma un cuadrado, un rectángulo u otro cuadrilátero y lo haga saber con un mensaje.

27. Elabore un algoritmo que lea de un tiquete aéreo, el valor y el destino (Nacional o
Internacional). Si el destino es nacional, el descuento será: del 5%, de lo contrario, el descuento
será del 10%; imprima toda la información, teniendo en cuenta el valor antes del descuento y el
valor con descuento.

2.3.1 Estructura Repetitiva

Esta estructura también conocida como bucle o ciclo; es utilizada cuando una de las actividades
o instrucciones se deben repetir varias veces (repeticiones que deben ser determinadas),
siempre que se cumpla una condición dada.

Cada evaluación de la condición se denomina paso o iteración de ciclo, y en el momento en


que no se cumpla la condición dada, se da el llamado “rompimiento de control“ del bucle o ciclo
y hasta ahí se ejecutarán las instrucciones que están dentro de él.

Dentro de la condición del ciclo se debe utilizar una variable o variables que denominaremos
variables de control. Si dicha condición está bien planteada se obtendrá el rompimiento de
control del ciclo, en caso contrario el ciclo será infinito y, por lo tanto, se ejecutará
indefinidamente, lo cual es un error de ejecución delicado.

Una variable de control debe cumplir con 3 acciones: inicializar antes del ciclo, controlar
mediante la condición del ciclo y actualizar dentro de las acciones del ciclo (siempre antes de
cerrar el ciclo).

Una estructura repetitiva o ciclo consta de tres partes básicas:

● La condición del ciclo. Como ya se mencionó es fundamental analizar cómo y qué se va a


poner allí para no producir errores en el funcionamiento del algoritmo. Pueden tener condición
21

simple o múltiple. En el caso de condición múltiple, podrá haber rompimiento de control


cuando no se cumpla cualquiera de esas situaciones (si es conjunción) o cuando no se
cumplan todas las condiciones (si es disyunción).

● El cuerpo del ciclo. Es el conjunto de instrucciones que deben ser ejecutadas siempre que
se cumple la condición. Acá debe existir una instrucción que inicializa y actualiza la variable
de control (para ciclos diferentes al “para”).

● La salida del ciclo. Es la señal que se pone para producirse la salida en el momento de
terminar la ejecución del cuerpo del ciclo, cuando ya no se cumpla la condición, la cual puede
darse con la palabra Fin del ciclo en el caso de tenerse varias instrucciones dentro del cuerpo
del ciclo.

2.3.2 Clasificación de los ciclos


Los ciclos se clasifican dependiendo del tipo de dato de la variable de control, En tal caso se
pueden dividir en dos tipos:

● ciclos de tipo contador.

● ciclos de tipo centinela

2.3.3 Ciclo Contador

Es aquel ciclo que realiza el control mediante una variable contador; también se denomina ciclo
contador; por ejemplo, el ciclo mientras, el ciclo repita y el ciclo para. Este último es el ciclo de
tipo contador por excelencia.

Ciclo para. Se le reconoce como un ciclo automático debido a que se ejecuta las veces que el
programador le indique. Utiliza como parámetros un intervalo que dice cuantas veces se realizará
el cuerpo del ciclo. Para tal fin utiliza una variable contador que controlará la secuencia de las
órdenes el cual toma incrementos o decrementos automáticos determinados.

Sintaxis en Python
For control in secuencia:
Instrucciones que se ejecutarán
Figura 2.6: Ciclo for en Python

Se diferencia de otros ciclos porque no se inicializa antes de comenzar el ciclo ni se actualiza


antes de cerrarse el ciclo, sino que todo lo hace dentro de la parte condicional del ciclo. En el
cuerpo del ciclo solamente van las instrucciones que va a efectuar durante sus iteraciones.
22

Ejemplo 2.10: programa en Python que muestra los 10 primeros número enteros NO negativos.

def main():
for i in range(10): #esta función range(10) arranca en 0 y llega hasta 9
print("dato ",i)
main()

Los números se mostrarán de manera vertical. Si se quieren mostrar horizontalmente escriba


como instrucción print del for, la instrucción print("dato ",i, " ",end=" ")

Ejemplo 2.11: programa en Python que suma los 10 primeros números enteros positivos

def main():
suma=0 #inicializa el acumulador
for i in range(1,11): #esta función range(1,11) arranca en 1 y llega hasta 10
suma=suma + i
print("suma= ",suma)
main()

Ejemplo 2.12: Diseñe un algoritmo que calcule cuánto se debe pagar por una compra que
contiene N productos, se conoce la cantidad de cada producto y precio unitario, debe mostrar el
total de la compra.

Solución Algorítmica utilizando ciclo para:

Algoritmo compra
Var
n,c,i:entero
vu,compra:real
INICIO
Muestre('Ingrese la cantidad de productos diferentes comprados..:')
Lea(n)
suma=0
Para i desde 1 hasta n haga
Muestre('Ingrese la cantidad del producto..:')
Lea(c)
Muestre('Ingrese valor unitario del producto..:')
Lea(vu)
suma=suma+c*vu
fin para
Muestre('El total de la compra es..:',compra)
FIN

Codificación en Python utilizando ciclo para:

# n cantidad de productos diferentes


# c cantidad de unidades de cada producto
# vu valor unitario de cada producto
# compra valor total de la compra realizada

def main():
….n=int(input("Ingrese la cantidad de productos comprados...:"))
….compra=0
….for i in range(n):
….c=int(input("Ingrese la cantidad de unidades...:"))
….vu=int(input("Ingrese el costo unitario...:"))
….compra=compra+c*vu
23

……..print('El valor total de la compra es..:',compra)


main()

2.4.1 Ciclos centinela

Son aquellos que usan una bandera o centinela con el fin hacer el rompimiento de control, es
decir, para poder salirse del ciclo. Un tipo de este ciclo es el ciclo mientras y el repita.

Ciclo mientras. Permite realizar varias veces el cuerpo del ciclo, mediante una expresión lógica
llamada condición que permitirá decidir las veces que deberá ejecutarse o cuándo se ejecuta (si
la condición es verdadera y rompe el ciclo cuando ésta sea falsa). Si se utiliza variable contador
esta irá como control del ciclo y tendrá que ser incrementada o disminuida por el programador,
según el caso. Si la variable es centinela, deberá inicializarse antes del ciclo y se vuelve a leer
antes de cerrarse.

Sintaxis de while en Python:


while condición:
Cuerpo del ciclo
Figura 2.7: sintaxis del ciclo centinela en Python

Ejemplo 2.13: resuelva el problema 2.12 utilizando el ciclo mientras

solución algorítmica utilizando ciclo mientras:

Algoritmo compra
Var
n,c,i:entero
vu,compra:real
INICIO
Muestre('Ingrese la cantidad de productos diferentes comprados..:')
Lea(n)
suma=0
i=0
Mientras i<n haga
Muestre('Ingrese la cantidad del producto..:')
lea(c)
Muestre('Ingrese valor unitario del producto..:')
Lea(vu)
suma=suma+c*vu
i=i+1
Fin mientras
Muestre('El total de la compra es..:',compra)
FIN

Codificación en Python utilizando ciclo mientras:

# n cantidad de productos diferentes


# c cantidad de unidades de cada producto
# vu valor unitario de cada producto
# compra valor total de la compra realizada
24

def main():
n=int(input("Ingrese la cantidad de productos comprados...:"))
compra=0
i=0
while i<n:
c=int(input("Ingrese la cantidad de unidades...:"))
vu=int(input("Ingrese el costo unitario...:"))
compra=compra+c*vu
i=i+1
print('El valor total de la compra es..:',compra)
main()

Ejemplo 2.14: programa en Python que muestra los 10 primeros número enteros NO negativos.

def main():
i=0
while i<=9:
i=i+1
print("dato ",i)
main()

Si quiere mostrar horizontalmente los datos del while en vez del print escriba la instrucción

print("dato ",i, ", ",end=" ").

2.4.2 Ciclos anidados

Tal como los condicionales, los ciclos también se anidan. En tal caso, el ciclo más interno se
procesa más rápidamente que los demás y, por lo tanto, para ejecutar el ciclo externo espera
que rompa el control el ciclo interno y luego continúa con la iteración correspondiente del ciclo
externo. En efecto,
For control in secuencia:
For control in secuencia:
For control in secuencia:
.
.
.
Instrucciones que se ejecutarán
Figura 2.9: Ciclo for anidado en Python

while condición:
while condición:
while condición:
.
.
.
Instrucciones que se ejecutarán

Figura 2.10: Ciclo while anidado en Python


Ejemplo 2.15: diseñe un algoritmo que muestre la hora en un reloj funciona con hora militar
(00:00:00 a 23:59:59)
El segundero va desde 0 hasta 59 y en ese caso pasará al minuto siguiente.
25

El minutero va desde 0 hasta 59 y en ese último caso pasará a la hora siguiente.


El horario va desde 0 hasta 24 y en ese caso pasará a la hora 00:00:00.
def main():
horas=0
while horas<=23:
minutos=0
while minutos<=59:
segundos=0
while segundos<=59:
print(horas, “:”, minutos,“:”, segundos)
segundos=segundos+1
minutos=minutos+1
horas=horas+1
main()

Ejemplo 2.16: Haga un algoritmo que muestre la tablas de multiplicar de un número ingresado
por el usuario
def main():
n=int(input(“ENTRE EL NUMERO PARA LA TABLA DE MULTIPLICAR”))
multiplicando =1
for multiplicando in range(1,n+1):
for multiplicador in range(1,n+1):
producto= Multiplicando* Multiplicador
print (Multiplicando, “X”, Multiplicador, “= ”, Producto)
main()

TALLER 2.3

Haga programas en Python que resuelvan los siguientes problemas:


1. Genere números aleatorios enteros y determine el mayor y el menor de dichos números.
2. Diseñe un algoritmo que muestre el valor a pagar por cada uno de los 200 clientes que
van cierto día a una viejoteca, quienes pagan así: si es hombre, el valor del cover
individual es $10000 y por la cada mujer su cover es $7000. Se quiere conocer:
a) el total pagado por los hombres
b) el total pagado por las mujeres
c) el porcentaje pagado por las mujeres respecto al total recaudado
d) de quién se recaudó más dinero (de los hombre o de las mujeres)?
3. Diseñe un algoritmo que muestre el valor a pagar por 50 clientes que van a una heladería
a comprar paletas para grupos de niños. El administrador les ofrece lo siguiente: cada
paleta le cuesta a $800; pero si me compra entre 20 y 40 paletas, se las pongo a $650;
ahora en caso tal que me compre más de 40 y hasta 50 paletas, se las pongo a $700,
más un descuento $4000 del total de la compra. Pero por compras superiores a 50 paletas
su precio será de $600 por cada paleta más un descuento del 10% sobre el valor total a
pagar.

4. El propietario de una pequeña empresa con 10 taxis acostumbra anotar en un cuaderno


26

el móvil y el kilometraje recorrido antes de entregar cada taxi; igualmente, cuando le


regresan el taxi, anota el kilometraje recorrido durante el día. De tal manera le lleva ese
récord a cada uno. Se quiere un algoritmo que determine:
● El móvil del taxi que ha realizado el mayor recorrido
● El móvil del taxi que ha realizado el menor recorrido
● Promedio recorrido por los 10 taxis
● El porcentaje de taxis que recorren más de 350 kilómetros al día

5. Un centro asistencial para lisiados recibe varios pacientes por semana, con el fin de que
les hagan alguna prótesis. Teniendo en cuenta que el estado laboral de los asistentes
puede ser: empleado, desempleado o pensionado, diseñe un algoritmo que determine:
● El porcentaje de hombres empleados que allí han asistido en una semana respecto al
total de hombres asistentes.
● La edad promedio de mujeres mayores de edad que sean desempleadas.
● ¿Qué porcentaje de mujeres mayores de edad, pero menores de 25 años y de
pensionadas, respecto al total de asistentes, han ido a dicho centro?.
● ¿El asistente de más edad es hombre o mujer?, ¿cuál es su estado laboral?
● El porcentaje de hombres empleados mayores de 30 años, respecto al total de
asistentes.
● El porcentaje de mujeres entre 26 y 38 años, respecto al total de mujeres, que son
pensionadas.

6. Los Hospitales reciben 2 tipos de pacientes a saber: 1) Remitidos, son afiliados de alguna
EPS; 2) Independientes, van por su cuenta.
Para los pacientes remitidos, la cuota moderadora depende de su salario así:
Hasta $1’400.000 paga $3.200
De $1’401.000 a $2’800.000, paga $5.600
De $2’800.001 a $4’200.000, paga 11.000 y de $4’200.000, paga 25.000
Para los pacientes independientes, la cuota depende del nivel del SISBEN así:
Niveles de 1 a 3, pagan $2.500
Niveles 4 y 5, pagan $5.000 y del 5 en adelante, pagan $ 8.000
Durante el día se atienden N pacientes. Calcule el total recaudado y el promedio del recaudo,si
se sabe de cada paciente, a qué tipo pertenece, su salario y nivel de SISBEN.

7. Leídos N números, determine la cantidad de números divisibles por 8 o por nueve.

8. Una empresa de servicios estadísticos, es contratada para calcular el flujo vehicular por un
puente; ellos capturan de cada vehículo, el tipo y la velocidad, los tipos son:
1. Liviano 2. Utilitario 3. Público 4. Carga
27

Se tienen los datos de N vehículos y se pide la cantidad y promedio de velocidad, de cada tipo.

9. Una empresa tiene N empleados y desea calcular su nómina. De cada empleado se ingresa
el código, salario base, las horas extras y los descuentos; el valor de la hora extra tiene un
recargo del 20% sobre la hora normal; para saber el valor de la hora ordinaria, se divide el salario
base entre 160. Calcule el valor total a pagar por empleado y muestre código y total a pagar;
también se debe calcular el total de la nómina, de las horas extras y los descuentos realizados e
imprimirlos.

10. Lea N números enteros. Se pide encontrar el promedio de los positivos y el porcentaje de los
negativos, respecto al total de números diferentes de 0.

11. Una empresa de se dedica a la comercialización de Propiedad raíz, vehículos y


electrodomésticos; sus empleados ganan comisión así:
1. Por venta de propiedades el 2% del valor de la venta
2. Por venta de vehículos el 8% del valor de la venta
3. Por venta de electrodomésticos el 20% del valor de la venta
La empresa tiene N empleados y cada uno hace m ventas en el mes; calcule el salario mensual
por empleado y muéstrelo, de cada venta se ingresa el tipo de producto y el valor.

12. Una Empresa de transporte, tiene clasificados sus transportes en 1:Vip, 2:Turista y
3:Económico, los viajes en Vip con valor superior a 1 millones tiene un descuento del 5%, de lo
contrario del 3% Los viajes en Turista con valor superior a 700 mil, tienen un descuento del 4%,
de lo contrario del 2% y los viajes en Económico con valor superior a 500 mil, tienen un descuento
del 3%, de lo contrario el 2%. Se requiere calcular el valor de los viajes en un periodo de tiempo
por tipo de transporte y global, también el valor promedio de los viajes vendidos, por tipo de
transporte y global

En total se movilizaron N pasajeros y de cada pasajero, se ingresa el tipo de transporte y su


costo.

También podría gustarte