elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19
51  Programación / Programación General / Re: lenguajes programacion en: 29 Marzo 2023, 18:22 pm
Es una buena pregunta, pero son cosas distintas.

Hasta donde sé, un framework incluye un lenguaje o una serie de lenguajes, tecnologías y practicas de codigo, etc. Es una forma de arquitectura de software. Por ejemplo, el framework de Microsoft Windows es .NET

Un IDE es simplemente un programa para desarrollar programas (escribir, depurar, compilar y ejecutar) y no tiene nada que ver con cómo luego esas tecnologías van a actuar en conjunto para formar un programa.

Que hay IDEs que son los mas utilizados para trabajar con un determinado framework eso sí es cierto. Por ejemplo para trabajar con el framework .NET se utiliza el IDE Visual Studio (tambien de Microsoft).
52  Programación / Programación General / Re: lenguajes programacion en: 29 Marzo 2023, 03:04 am
Hola el código es esencialmente texto y puede escribirse en un bloc de notas, no importa el lenguaje. Pero nadie en general utiliza el block de notas, ya que es muy incomodo escribir tu codigo ahi.  (No confundir block de notas con notepad++, este ultimo sí es para programadores).

Luego, para hacer un programa necesitas el codigo fuente (el texto) pero además necesitas convertir ese texto a código máquina y además unir todos los archivos relacionados. Entonces tampoco puedes utilizar el block de notas para esto, necesitas hacer otros pasos luego de tener tu codigo escrito para convertirlo en un programa.

Para codificar programas se utiliza un IDE, que es un programa para escribir, depurar, (buscar y quitar errores) compilar y ejecutar tus codigo. Hay varios IDE, aunque uno muy popular es Visual Studio Code. Y en este IDE puedes codificar cualquier lenguaje, sin embargo, tenes que investigar como configurar este IDE para el lenguaje en que quieras programar. Para esto hay muchos videos de youtube al respecto.

53  Programación / Scripting / Re: Función en Python en: 29 Marzo 2023, 02:52 am
Oye pues bien que te funcionó lo de python, saludos  ;D
54  Programación / Scripting / Re: Función en Python en: 25 Marzo 2023, 01:29 am
mm ya veo, pues en realidad el problema sigue siendo este: el alcance de tus variables o donde las variables pueden utilizarse, tenes que organizar tu codigo en bloques para que te guies qué datos le estas enviando a las funciones.

Python no te impone ninguna forma de codear pero en general siempre es mejor utilizar una estructura en tus programas. Es decir, tendrias que organizar tu codigo en funciones o clases.

considera este refactor, le agregue las explicaciones en forma de comentarios, la funcion main() es la principal y llama agregar_cliente, en agregar_cliente se ingresan los datos pero a diferencia de antes, una mejor opcion es encapsularlos en una unidad tipo cliente, por ejemplo un diccionario. Este cliente (encapsulado) se manda a la funcion alta o baja, de manera que estas funciones pueden procesar al cliente.

pruebalo y me comentas si tienes dudas:

Código
  1. import tkinter
  2. import sqlite3
  3. '''from tkinter import * esto puede traer problemas, te conviene importar solo
  4. lo que necesitas usar'''
  5.  
  6. # Crear la función para el boton Cliente
  7. def agregar_cliente(ventana):
  8.    # Crear etiquetas
  9.    tkinter.Label(ventana, text='ID:').grid(row=1, column=0)
  10.    tkinter.Label(ventana, text='Nombre:').grid(row=2, column=0)
  11.    tkinter.Label(ventana, text='Direccion:').grid(row=3, column=0)
  12.    tkinter.Label(ventana, text='Telefono').grid(row=4, column=0)
  13.  
  14.    # Crear cuadros de texto
  15.    cuadroID = tkinter.StringVar()
  16.    tkinter.Entry(ventana, width=30, textvariable=cuadroID).grid(row=1, column=1)
  17.  
  18.    cuadroNombre = tkinter.StringVar()
  19.    tkinter.Entry(ventana, width=30, textvariable=cuadroNombre).grid(row=2, column=1)
  20.  
  21.    cuadroDireccion = tkinter.StringVar()
  22.    tkinter.Entry(ventana, width=30, textvariable=cuadroDireccion).grid(row=3, column=1)
  23.  
  24.    cuadroTelefono = tkinter.StringVar()
  25.    tkinter.Entry(ventana, width=30, textvariable=cuadroTelefono).grid(row=4, column=1)
  26.  
  27.    '''cuando llamas al boton dar de alta, creas un diccionario o estructura de datos
  28.    del cliente, de manera que esta todo encapsulado en una unidad'''
  29.  
  30.    # Crear botones
  31.    tkinter.Button(ventana, text='Dar de Alta',
  32.            command=lambda: alta(
  33.                {
  34.                'id': cuadroID.get(),
  35.                'nombre': cuadroNombre.get(),
  36.                'direccion': cuadroDireccion.get(),
  37.                'telefono': cuadroTelefono.get()
  38.                }
  39.            )).grid(row=5, column=0)
  40.  
  41.    '''lo mismo en baja'''
  42.  
  43.    tkinter.Button(ventana, text='Dar de Baja',
  44.            command=lambda: baja(
  45.                {
  46.                'id': cuadroID.get(),
  47.                'nombre': cuadroNombre.get(),
  48.                'direccion': cuadroDireccion.get(),
  49.                'telefono': cuadroTelefono.get()
  50.                }
  51.            )).grid(row=5, column=1)
  52.  
  53.  
  54. # Crear la función para el boton Alta
  55. def alta(cliente):
  56.  
  57.    '''
  58.    id_cliente = cuadroID.get()
  59.    nombre_cliente = cuadroNombre.get()
  60.    direccion_cliente = cuadroDireccion.get()
  61.    telefono_cliente = cuadroTelefono.get()
  62.  
  63.    # Agregar los datos a la tabla de la base de datos
  64.    datos = [id_cliente, nombre_cliente, direccion_cliente, telefono_cliente]
  65.    cursor.execute("INSERT INTO tabla_clientes VALUES (?, ?, ?, ?)", datos)
  66.    conexion.commit()
  67.    '''
  68.  
  69.    '''la funcion alta recibe ya un cliente en forma de estructura de datos'''
  70.  
  71.    print(f'Se dara de alta: {cliente}')
  72.    print(f"Tiene ID:' {cliente['id']}")
  73.    print(f"Tiene nombre: {cliente['nombre']}")
  74.  
  75. # Crear la función para el boton Baja
  76. def baja(cliente):
  77.  
  78.    '''
  79.    id_cliente = cuadroID.get()
  80.    cursor.execute("DELETE FROM tabla_clientes WHERE id = ?", [id_cliente])
  81.    conexion.commit()
  82.    '''
  83.  
  84.    '''lo mismo la funcion baja'''
  85.    print(f'Se dara de baja: {cliente}')
  86.  
  87. def main():
  88.    # Crear una ventana principal
  89.    ventana = tkinter.Tk()
  90.    ventana.title("Entorno Gráfico")
  91.    ventana.geometry("500x250")
  92.  
  93.    # Crear la conexión con la base de datos
  94.    conexion = sqlite3.connect("base_datos.db")
  95.    cursor = conexion.cursor()
  96.  
  97.    '''aca llamas a la funcion agregar_cliente y le pasas la referencia
  98.    de la ventana padre'''
  99.    # Crear el boton Clientes
  100.    botonClientes = tkinter.Button(ventana, text="Clientes",
  101.            command=lambda:agregar_cliente(ventana) )
  102.  
  103.    botonClientes.grid(row=0, column=0)
  104.  
  105.    # Iniciar el programa
  106.    ventana.mainloop()
  107.  
  108. if __name__ == '__main__':
  109.    main()
55  Programación / Scripting / Re: Función en Python en: 24 Marzo 2023, 21:55 pm
Hola, tu problema es que las variables no son accesibles desde el metodo alta(), además no veo que utilices StringVar(), por lo que sé, el componente Entry tiene que asociarse a una variable tipo StringVar() para que puedas guardar el contenido del entry.
Entonces lo que tenes que hacer es guardar el contenido que el usuario introduce en el componente Entry con una variable StringVar() y luego en el evento del botón de 'dar alta' le tienes que pasar la referencia a la función que procesa el evento y además el CONTENIDO de Entry.
Fijate este ejemplo muy simple:

Código
  1. import tkinter
  2.  
  3. def evento_enviar(entradaNombre):
  4.    print(f'Usuario ingresó: {entradaNombre.get()}')
  5.  
  6. def main():
  7.    ventana = tkinter.Tk()
  8.    ventana.geometry('600x400')
  9.  
  10.    tkinter.Label(ventana, text='Ingrese su nombre --> ').grid(row=0, column=0)
  11.  
  12.    entradaNombre = tkinter.StringVar()
  13.  
  14.    tkinter.Entry(ventana, width=30, textvariable=entradaNombre).grid(row=0, column=1)
  15.  
  16.    tkinter.Button(ventana, text='Enviar',
  17.        command=lambda: evento_enviar(entradaNombre)).grid(row=0, column=2)
  18.  
  19.    ventana.mainloop()
  20.  
  21. if __name__ == '__main__':
  22.    main()
  23.  

Por ultimo nota que esto tambien se podria solucionar si utilizas POO, donde podrias hacer que los datos sean atributos de la clase y por lo tanto compartidos a lo largo del codigo de la clase.
56  Programación / Desarrollo Web / Re: dudas básicas web en: 15 Marzo 2023, 13:17 pm
hola, por lo que sé, sí. Todas las páginas utilizan html, que es su estructura básica.
PHP es un lenguaje del lado del servidor y no del cliente (navegador). El lenguaje que añade interactividad en la página es javascript.
CSS es la parte que se encarga del estilo visual de un web. No hay alternativas a CSS, hay frameworks de CSS que ofrecen más funcionalidades, pero se basan en CSS y es imposible evitarlo.
57  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Se puede considerar C# como multiplataforma? en: 12 Marzo 2023, 22:27 pm
Ya veo, pues yo tenia el mismo problema cuando queria aprender C# (me andaba mal el Visual Studio en una note que tengo), entonces usaba el metodo que te mencioné de Notepad++.

Por ejemplo, esto muestra un message box con el mensaje hello. Esto está hecho en notepad++. Fijate que se añade el espacio de nombres Windows.Forms, para usar esos componentes.

Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace app
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. MessageBox.Show("Hello");
  11.  
  12. Console.ReadLine();
  13. }
  14. }
  15. }

Luego se pueden programar aplicaciones para Android tanto en Java como en .NET (con xamarin).

58  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Se puede considerar C# como multiplataforma? en: 12 Marzo 2023, 22:25 pm
Ya veo, pues yo tenia el mismo problema cuando queria aprender C# (me andaba mal el Visual Studio en una note que tengo), entonces usaba el metodo que te mencioné de Notepad++.

Por ejemplo, esto muestra un message box con el mensaje hello. Esto está hecho en notepad++. Fijate que se añade el espacio de nombres Windows.Forms, para usar esos componentes.

Código
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace app
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. MessageBox.Show("Hello");
  11.  
  12. Console.ReadLine();
  13. }
  14. }
  15. }
59  Foros Generales / Foro Libre / Re: Efectos de los chatbot's de IA en la sociedad en: 10 Marzo 2023, 19:39 pm
En mi opinión, es una herramienta más a disposición nuestra, y en ultima instancia depende del que la use. Ocurrió algo parecido con muchos avances a lo largo de la historia:

imaginate que en la antiguedad, algunos sabios decian que la escritura era algo que debilitaba a la mente, porque ya no se utilizaba la memoria sino que se leia desde el papel.

la calculadora nos permite hacer calculos muy rapidamente, por ejemplo un cientifico no podria realizar avances tan rapidamente sin una calculadora. Pero ni el cientifico mas brillante podria igualar a la velocidad de una calculadora y ponerse 'triste' por no poder ser tan rapido como ella es una tonteria.

el internet es una muy potente herramienta, donde puedes aprender de todo, aunque tambien es una 'fuga de cerebros', debido a la cantidad de contenido de entrenimiento disponible.

Mi opinion sobre la ia es que una herramienta que nos va a permitir hacer avances en otros
campos y tareas, y puede utilizarse para fines utiles como no.
Pero sí es cierto que va a traer nuevos retos, por ejemplo, los maestros van a tener que estar
atentos a ver si sus alumnos utilizan esta nueva version del rincon del vago potenciada  :xD



60  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Se puede considerar C# como multiplataforma? en: 10 Marzo 2023, 19:27 pm
Pues la verdad es que sí, Visual Studio en mi opinión es un IDE 'pesado', pero ofrece muchas facilidades y herramientas para trabajar en Windows, sin duda la mejor es la interfaz grafica que te permite arrastrar los componentes de la forma con mucha facilidad.
Otra ventaja es que se actualiza a la última versión de .net.

Igual cuando quiero hacer un codigo sencillo en C# utilizo notepad++, con el plugin CS-Script, lo cual es mucho mas ligero y facil, pero la desventaja es que utiliza una versión de .net más atrasada.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines