Implementación de Algoritmos en Python: Conversión de Tiempo, Arrays y Números Perfectos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,33 KB

Ejercicios de Programación en Python para Informática y Telecomunicaciones

A continuación, se presentan varios ejercicios de programación implementados en Python, cubriendo temas fundamentales como la manipulación de tiempo, la gestión de arrays (vectores) y la identificación de propiedades numéricas especiales.

1. Comparación de Tiempos de Atletas

Este segmento de código define una función para convertir una cantidad de segundos en horas, minutos y segundos, y luego compara los tiempos de dos atletas para determinar el ganador.

Código Python: Conversión y Comparación de Tiempo

def tiempo(segundos):
    horas = segundos // 3600
    segrestantes = segundos % 3600
    minutos = segrestantes // 60
    segundosfinales = segrestantes % 60
    return horas, minutos, segundosfinales

a = int(input("Introduce el tiempo en segundos del atleta A: "))
b = int(input("Introduce el tiempo en segundos del atleta B: "))

horasA, minutosA, segundosfinalesA = tiempo(a)
horasB, minutosB, segundosfinalesB = tiempo(b)

print("Atleta A: ", horasA, "horas,", minutosA, "minutos y", segundosfinalesA, "segundos")
print("Atleta B: ", horasB, "horas,", minutosB, "minutos y", segundosfinalesB, "segundos")

if a > b:
    print("El atleta B ha ganado")
elif a == b:
    print("Los atletas han quedado empate")
else:
    print("El atleta A ha ganado")

2. Operaciones con Arrays: Máximo, Mínimo y Búsqueda de Número Perfecto

Este ejercicio requiere la carga de datos desde un archivo (utilizando la librería NumPy), la búsqueda del primer número perfecto dentro del array y la determinación de los valores máximo y mínimo.

Descripción del Requisito

Construye una función que recibe un array y su tamaño, y devuelve su máximo y mínimo. Luego busca el primer número perfecto que contenga.

Código Python: Array Processing y Números Perfectos

import numpy as np

v = np.loadtxt("datos.txt/csv", dtype=int)
v = v.tolist()
lon = len(v)
numdatos = lon - 1

def esPerfecto(n):
    divisor = 1
    suma = 0
    perfecto = False
    while divisor < n:
        if n % divisor == 0:
            suma += divisor
        divisor += 1
    if suma == n:
        perfecto = True
    return perfecto

i = 0
es_perfecto = False
while i < numdatos and es_perfecto == False:
    if esPerfecto(v[i]) == True:
        es_perfecto = True
    else:
        i += 1

print ("El primer número perfecto es el dato número ", i)
print ("El primer número perfecto es: ", v[i])

def max_min(v):
    j = 0
    maximo = v[j]
    minimo = v[j]
    while j <= numdatos:
        if v[j] > maximo:
            maximo = v[j]
        if v[j] < minimo:
            minimo = v[j]
        j += 1
    return maximo, minimo

maximo, minimo = max_min(v)
print ("El máximo es: ", maximo)
print ("El mínimo es: ", minimo)

4. Búsqueda de Números Perfectos en un Rango

Este fragmento de código, posiblemente parte de un Examen 2023, implementa una función para verificar si un número es perfecto y la aplica para encontrar todos los números perfectos dentro de un rango definido por el usuario.

Código Python: Rango de Números Perfectos

n1 = int(input("Introduce el número menor: "))
n2 = int(input("Introduce el número mayor: "))

def es_perfecto(n):
    suma = 0
    for j in range(1, n):
        if n % j == 0:
            suma += j
    if suma == n:
        return True
    else:
        return False

for i in range(n1, n2 + 1):
    if es_perfecto(i):
        print(i)

5. Verificación de Frecuencia en un Vector

Este último ejercicio determina si un número específico (N) aparece al menos una cantidad de veces (X) dentro de un vector cargado desde un archivo.

Código Python: Contar Ocurrencias en un Array

import numpy as np

v = np.loadtxt("datos1.txt", dtype=int)
v = v.tolist()
lon = len(v)

def numeros_veces (N, X):
    cont = 0
    for i in range (lon):
        if v[i] == N:
            cont += 1
    if cont >= X:
        return True
    else:
        return False

N = int(input("Número que quieres saber si está: "))
X = int(input("Veces que quieres saber que está el número N en el vector: "))

res = numeros_veces (N, X)

if res:
    print("Sí")
else:
    print("No")

Entradas relacionadas: