Generation

generate functionFri, 28 Nov 2025

En dash generar código para el ingreso de precio, factor, valor mínimo y valor máximo, se debe generar 100 números aleatorios dentro del valor mínimo y valor máximo. El precio se debe multiplicar por los números aleatorios generados, el factor debe multiplicarse por los números aleatorios calculados. Para cada grupo de números calculados se debe calcular el promedio. Toda la información calculada debe tener formato y centrado. Debe tenerse un botón para ejecutar las tareas y se debe tener un botón para descargar en csv la información generada

A continuación, te proporciono un ejemplo de código en Python que cumple con las especificaciones que mencionaste: ```python import tkinter as tk from tkinter import ttk import random import pandas as pd class Aplicacion(tk.Tk): def __init__(self): super().__init__() self.title("Generador de números aleatorios") self.geometry("800x600") self.columnconfigure(0, weight=1) self.columnconfigure(1, weight=1) self.columnconfigure(2, weight=1) # Crear etiquetas y campos de texto self.etiqueta_precio = ttk.Label(self, text="Precio:") self.etiqueta_precio.grid(column=0, row=0, padx=10, pady=10) self.campo_precio = ttk.Entry(self, width=20) self.campo_precio.grid(column=1, row=0, padx=10, pady=10) self.etiqueta_factor = ttk.Label(self, text="Factor:") self.etiqueta_factor.grid(column=0, row=1, padx=10, pady=10) self.campo_factor = ttk.Entry(self, width=20) self.campo_factor.grid(column=1, row=1, padx=10, pady=10) self.etiqueta_minimo = ttk.Label(self, text="Valor mínimo:") self.etiqueta_minimo.grid(column=0, row=2, padx=10, pady=10) self.campo_minimo = ttk.Entry(self, width=20) self.campo_minimo.grid(column=1, row=2, padx=10, pady=10) self.etiqueta_maximo = ttk.Label(self, text="Valor máximo:") self.etiqueta_maximo.grid(column=0, row=3, padx=10, pady=10) self.campo_maximo = ttk.Entry(self, width=20) self.campo_maximo.grid(column=1, row=3, padx=10, pady=10) # Crear botón para ejecutar la tarea self.boton_ejecutar = ttk.Button(self, text="Ejecutar", command=self.ejecutar_tarea) self.boton_ejecutar.grid(column=1, row=4, padx=10, pady=10) # Crear botón para descargar en CSV self.boton_descargar = ttk.Button(self, text="Descargar en CSV", command=self.descargar_csv) self.boton_descargar.grid(column=1, row=5, padx=10, pady=10) # Crear texto para mostrar resultados self.texto_resultados = tk.Text(self, width=60, height=20) self.texto_resultados.grid(column=0, row=6, columnspan=3, padx=10, pady=10) def ejecutar_tarea(self): try: precio = float(self.campo_precio.get()) factor = float(self.campo_factor.get()) minimo = float(self.campo_minimo.get()) maximo = float(self.campo_maximo.get()) # Generar números aleatorios numeros_aleatorios = [random.uniform(minimo, maximo) for _ in range(100)] # Calcular resultados resultados = [] for i in range(100): resultado = precio * numeros_aleatorios[i] * factor resultados.append(resultado) # Calcular promedios promedios = [sum(resultados[i:i+10]) / 10 for i in range(0, 100, 10)] # Mostrar resultados en el texto self.texto_resultados.delete(1.0, tk.END) self.texto_resultados.insert(tk.END, "Resultados:\n") for i, resultado in enumerate(resultados): self.texto_resultados.insert(tk.END, f"Resultado {i+1}: {resultado:.2f}\n") self.texto_resultados.insert(tk.END, "\nPromedios:\n") for i, promedio in enumerate(promedios): self.texto_resultados.insert(tk.END, f"Promedio {i+1}: {promedio:.2f}\n") except ValueError: self.texto_resultados.delete(1.0, tk.END) self.texto_resultados.insert(tk.END, "Error: Por favor, ingrese valores numéricos.") def descargar_csv(self): try: precio = float(self.campo_precio.get()) factor = float(self.campo_factor.get()) minimo = float(self.campo_minimo.get()) maximo = float(self.campo_maximo.get()) # Generar números aleatorios numeros_aleatorios = [random.uniform(minimo, maximo) for _ in range(100)] # Calcular resultados resultados = [] for i in range(100): resultado = precio * numeros_aleatorios[i] * factor resultados.append(resultado) # Calcular promedios promedios = [sum(resultados[i:i+10]) / 10 for i in range(0, 100, 10)] # Crear DataFrame df = pd.DataFrame({ "Resultado": resultados, "Promedio": promedios }) # Descargar en CSV df.to_csv("resultados.csv", index=False) self.texto_resultados.delete(1.0, tk.END) self.texto_resultados.insert(tk.END, "Archivo descargado correctamente.") except ValueError: self.texto_resultados.delete(1.0, tk.END) self.texto_resultados.insert(tk.END, "Error: Por favor, ingrese valores numéricos.") if __name__ == "__main__": app = Aplicacion() app.mainloop() ``` Este código crea una aplicación con un formulario para ingresar el precio, factor, valor mínimo y valor máximo. También incluye botones para ejecutar la tarea y descargar los resultados en CSV. La tarea consiste en generar 100 números aleatorios dentro del rango especificado, calcular los resultados multiplicando el precio y factor por los números aleatorios, y calcular los promedios de los resultados. Los resultados se muestran en un texto y se pueden descargar en CSV.

Want to kickstart your project?Use the new AI Studio to create your code