#-*- coding: utf-8 -*-
from Tkinter import *
from tkMessageBox import *
from pymysql import *
def limpiar():
#--------------- Ventana o Formulario ------------
ventana = Tk()
ventana.geometry("750x300+350+80")
ventana.title('Capturar Datos Personales del Alumno')
ventana.resizable(width=True, height=True)
try:
ventana.iconbitmap('C:\icono.ico')
except:
print 'no tengo imagen de icono'
#----------------Labels--------------
LbTitulo= Label(ventana, text="Bienvenido", fg='Red',justify=CENTER, font=("Miramonte", 15))
LbNumeroC = Label(ventana, text="Numero de control:", font=("Miramonte", 15))
LbNombre = Label(ventana, text="Nombre:", font=("Miramonte", 15))
LbApellido = Label(ventana, text="Apellido:", font=("Miramonte", 15))
canvas= Canvas(ventana,width=300,height=500)
NumeroC = IntVar()
NombreS= StringVar()
ApellidoS = StringVar()
#--------------------Entry-----------
EntryNumeroC = Entry(ventana, textvariable=NumeroC, bg='white', fg='dark slate gray', font=("Consolas", 15))
EntryNombre= Entry(ventana, textvariable=NombreS, bg='white', fg='dark slate gray',font=("Consolas", 15))
EntryApellido= Entry(ventana, textvariable=ApellidoS, bg='white', fg='dark slate gray', font=("Consolas", 15))
LbTitulo.grid(row=0, column=2)
LbNumeroC.grid(row= 1, column=1, padx=10, pady=10)
LbNombre.grid(row=2, column=1, padx=10, pady=10)
LbApellido.grid(row=3, column=1, padx=10, pady=10)
EntryNumeroC.grid(row=1,column=2, padx=10, pady=10)
EntryNombre.grid(row=2,column=2, padx=10, pady=10)
EntryApellido.grid(row=3, column=2, padx=10, pady=10)
#---------------------Botones------------------
btnlimpiar=Button(ventana, text='Limpiar', command=limpiar, bg='violet',fg='white',font=("Consolas", 12))
btnlimpiar.grid(row=5,column=3, padx=10, pady=10)
ventana.mainloop()
miércoles, 28 de noviembre de 2018
martes, 30 de octubre de 2018
programa figuras:
from Tkinter import * #uso esta lib para la GUIfrom
from PIL import Image,ImageTk # la uso para desplegar la imagen
import os #para poder usar carpetas, dando la ruta
import random # uso para generar numeros aleatorios
import pygame #ayuda a reproducir sonido mp3,ogg
import time #sleep para dormir la compu unos seg..
import threading # libreria para manejar hilos
dir= os.path.dirname(__file__)
fotos= dir + "/imagenes/"
sonidos = dir + "/sonidos2/"
root=Tk() #para la ventana de app tkinter
root.geometry("500x500")
arreglo= [1]
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+ 1)
print eleccion_aleatoria
figura= fotos + eleccion_aleatoria + ".png"
print figura
#para reproducir sonido
sonido = sonidos + "s_(" + eleccion_aleatoria + ").mp3"
print sonido
pygame.mixer.init()
pygame.mixer.music.load(sonido)#abre el archivo
pygame.mixer.music.play()#repod sonido
img = Image.open(figura) #abriendo el archivo figura
tkimage= ImageTk.PhotoImage(img)
'crear un Label de tkinter para desplegar la imagen'
lab = Label(root,image=tkimage)
lab.pack()
pygame.init()
root.mainloop()
miércoles, 24 de octubre de 2018
jueves, 4 de octubre de 2018
Uso de Loop:
.model small
.stack 64
datos segment
mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$'
repetir db 13,10,"Repitiendo el ciclo $"
datos ends
codigo segment
assume cs:codigo, ds:datos
inicio:
mov ax, datos
mov ds, ax
mov ah, 09
lea dx, mensaje
int 21h
mov ah, 01
int 21h
sub al, 30h
mov cl, al
ciclo:
mov ah, 09
lea dx, repetir
int 21h
loop ciclo
mov ax,4c00h
int 21h
codigo ends
end inicio
.model small
.stack 64
.data
mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$'
repetir db 13,10,"Repitiendo el ciclo $"
.code
inicio proc far
mov ax, @data
mov ds, ax
mov ah, 09
lea dx, mensaje
int 21h
mov ah, 01
int 21h
sub al, 30h
mov cl, al
ciclo:
mov ah, 09
lea dx, repetir
int 21h
loop ciclo
mov ax,4c00h
int 21h
inicio endp
end
;Ejercicio loop con numeros:
org 100h
.data
mensaje db "Programa que utiliza loop e imprime del 0 al 9",13,10,"$"
.code
inicio:
mov ax,@data
mov ds, ax
mov dx,offset mensaje
mov ah,09h
int 21h
MOV DL, "0";se transfiere el caracter 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 26 interaciones
MOV AH, 02;se transifiere 02 al acumulador de byte alto
INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas
ret
;Ejercicio loop con numeros:
org 100h
.data
mensaje db "Programa que utiliza loop e imprime del 0 al 9",13,10,"$"
.code
inicio:
mov ax,@data
mov ds, ax
mov ah,09h
mov dx,offset mensaje
int 21h
MOV DL, "0";se transfiere el caracter 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 10 interaciones
MOV AH, 02;se transifiere 02 al acumulador de byte alto
INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas
ret
.model small
.stack 64
.data
n1 db 0
n2 db 0
suma db 0
msg1 db "Dame el primer valor: ",'$'
msg2 db 10,13,"Dame el segundo valor: ",'$'
msg3 db 10,13,"suma= ",'$'
.code
begin proc far
;Direccionamiento al segmento de datos
mov ax, @data
mov ds, ax
;Solicitamos el primer digito
mov ah,09
lea dx, msg1
int 21h
;se lee el primer valor
mov ah, 01
int 21h
sub al, 30h ;Convvierte el caracter a numero
mov n1, al
;Solicitamos el segundo digito
mov ah, 09
lea dx, msg2
int 21h
mov ah, 01
int 21h
sub al, 30h ;convierte el caracter
mov n2, al
;operacion de suma
mov al, n1
add al, n2
add al, 30h
mov suma, al
mov ah, 09
lea dx, msg3
int 21h
;Se imprime el caracter con el servicio 02 de la int 21h
mov ah, 02
mov dl, suma
int 21h
mov ah, 4ch
int 21h
Begin endp
end
org 100h .model small .stack 64 .data mensaje db 10,13 ,"Dame un numero",10,13,"$" mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$" n1 db 0 n2 db 0 n3 db 0 .code inicio: ;función inicio mov ax,@data ;Movemos el segmento data a ax mov ds,ax ; Movemos lo que esta en ax a ds mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1 mov ah, 09h ;Imprimimos el primer mensaje parte 2 int 21h ;Imprimimos el primer mensaje parte 3 mov ah,01 ;pausa y espera a que el usuario presione una tecla int 21h ;interrupción para capturar sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero mov n1,al ;Movemos lo que esta en al a la variable n1 mov n3,al ;Movemos lo que esta en al a la variable n3 mov ah, 09h ;imprimimos el mensaje 2 parte 1 mov dx,offset mensaje2 ;imprimimos el mensaje 2 parte 2 int 21h ;imprimimos el mensaje 2 parte 3 mov ah,01 ;pausa y espera a que el usuario presione una tecla int 21h ;interrupcion para capturar sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero mov n2,al ;Guardamos lo que el usuario preciono el n2 mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar sub cl,1 ;le restamos 1 para que no de una vuelta de mas call ciclo ;llamada a ciclo ciclo: ;Funcion call ciclo1 ;llamada el procediemto 1 ciclo1 proc near : ;procedimiento ciclo mov al,n1 ;potencia parte 1 mov bh,n3 ;potencia parte 2 mul bh ;potencia parte 3 mov n1,al loop ciclo1 ;loop a la funcion ciclo mov ax,4c00h ;fin parte 1 int 21h; fin parte 2 fin: ;funcion fin mov ax,4c00h ;funcion que termina el programa int 21h end inicio
Poligonos en un Menu:
from Tkinter import *
def ocultar(ventana):ventana.destroy()
def ejecutar(f): v0.after(200, f)
def antilope():
v1 = Toplevel(v0)
v1.title("Ventana hija")
v1.protocol("WM_DELETE_WINDOW", "onexit")
v1.config(bg="black")
v1.geometry("500x500")
canvas = Canvas(v1, width=390, height=350, bg='black')
canvas.pack(expand=YES, fill=BOTH)
canvas.create_polygon(52.5, 14.5, 37, 59.1, 51, 59.1, fill="#5C554E", outline="#5C554E", width=1)
canvas.create_polygon(19.3, 56.8, 58, 59.1, 67, 91, 37.5, 83, fill="#C3BAB5", outline="#C3BAB5", width=1)
canvas.create_polygon(58, 57.8, 78, 77, 71, 103, fill="#D4CCC1", outline="#D4CCC1", width=1)
canvas.create_polygon(37.5, 83, 67.4, 91, 71, 103, fill="#998C8A", outline="#998C8A", width=1)
canvas.create_polygon(71, 103, 71, 104.8, 59.1, 104.8, 53.2, 91, fill="#665B57", outline="#665B57", width=1)
canvas.create_polygon(86, 105.6, 98.2, 148.6, 47, 133.6, 24.2, 103.6, fill="#C3BAB5", outline="#C3BAB5",
width=1)
canvas.create_polygon(98.2, 148.6, 102, 165.2, 47, 133.6, fill="#9B8D8A", outline="#9B8D8A", width=1)
canvas.create_polygon(86, 105.6, 124, 169, 120, 196, 110.8, 196, fill="#D5CDC2", outline="#D5CDC2", width=1)
canvas.create_polygon(102, 165.2, 110.8, 196, 99, 196, 80.6, 153, fill="#605550", outline="#605550", width=1)
canvas.create_polygon(139.5, 197, 147, 241, 71, 220.4, 46, 193, fill="#C3BAB5", outline="#C3BAB5", width=1)
canvas.create_polygon(147, 241, 150, 261.4, 71, 220.4, fill="#968B87", outline="#968B87", width=1)
canvas.create_polygon(139.5, 197, 193, 274.2, 189, 307.8, 176, 321, 161.6, 321, fill="#D4CCC1",
outline="#D4CCC1", width=1)
canvas.create_polygon(150, 261.4, 161.6, 321, 126.8, 249, fill="#605551", outline="#605551", width=1)
canvas.create_polygon(199.4, 307.8, 189, 307.8, 176, 321, 186.6, 461, 184, 448.8, 171, 479.5, 199.4, 503,
fill="#C2AD9C", outline="#C2AD9C", width=1)
canvas.create_polygon(176, 321, 161.6, 321, 186.6, 461, fill="#615652", outline="#615652", width=1)
canvas.create_polygon(161.6, 321, 136, 359.4, 177.2, 409, fill="#D9C6B7", outline="#D9C6B7", width=1)
canvas.create_polygon(144.4, 369.8, 139.6, 384.6, 160, 389.4, fill="#443232", outline="#443232", width=1)
canvas.create_polygon(139.6, 384.6, 160, 389.4, 177.2, 409, 169.2, 450, fill="#826E65", outline="#826E65",
width=1)
canvas.create_polygon(171, 479.5, 180.6, 497.8, 191.2, 496.8, fill="#463334", outline="#463334", width=1)
canvas.create_polygon(177.2, 409, 164.8, 475, 176.5, 511, 199.4, 522, 199.4, 502.8, 191.2, 496.8, 180.6, 497.8,
171, 479.5, 184, 448.8, fill="#9B7F79", outline="#9B7F79", width=1)
canvas.create_polygon(151.8, 335.4, 109.6, 280, 142.2, 349.2, fill="#5F5150", outline="#5F5150", width=1)
canvas.create_polygon(109.6, 280, 70.3, 266, 94.3, 329, 131.3, 326, fill="#483636", outline="#483636", width=1)
canvas.create_polygon(94.3, 329, 137, 336, 132, 326.8, fill="#C2AF9D", outline="#C2AF9D", width=1)
canvas.create_polygon(115, 333, 136, 359.4, 142.2, 349.2, 137, 336, fill="#826E65", outline="#826E65", width=1)
canvas.create_polygon(346.5, 14.5, 347.5, 59.1, 361, 59.1, fill="#2E2621", outline="#2E2621", width=1)
canvas.create_polygon(379.4, 56.8, 341.8, 59.1, 332, 91, 361, 83, fill="#908782", outline="#908782", width=1)
canvas.create_polygon(341.5, 57.8, 324, 75, 327.6, 103, fill="#A29B8F", outline="#A29B8F", width=1)
canvas.create_polygon(361, 83, 332.4, 91, 329, 103, fill="#685D59", outline="#685D59", width=1)
canvas.create_polygon(329, 103, 326.8, 104.8, 340, 104.8, 345.6, 91, fill="#2D2220", outline="#2D2220", width=1)
canvas.create_polygon(313, 105.6, 301, 148.6, 352, 133.6, 374.5, 103.6, fill="#908782", outline="#908782",
width=1)
canvas.create_polygon(301, 148.6, 297, 165.2, 352, 133.6, fill="#625755", outline="#625755", width=1)
canvas.create_polygon(313, 105.6, 274, 169, 279, 196, 288, 196, fill="#A1998E", outline="#A1998E", width=1)
canvas.create_polygon(297, 165.2, 288, 196, 300, 196, 318, 153, fill="#2D221E", outline="#2D221E", width=1)
canvas.create_polygon(260, 197, 252, 241, 331, 220.4, 352.4, 193, fill="#908782", outline="#908782", width=1)
canvas.create_polygon(252, 241, 249, 261.4, 331, 220.4, fill="#645955", outline="#645955", width=1)
canvas.create_polygon(260, 197, 205, 274.2, 209.8, 307.8, 223, 321, 238, 321, fill="#A1998E", outline="#A1998E",
width=1)
canvas.create_polygon(249, 261.4, 238.6, 321, 271.8, 249, fill="#2D221E", outline="#2D221E", width=1)
canvas.create_polygon(199.4, 307.8, 209.8, 307.8, 223, 321, 212.6, 461, 215, 448.8, 228, 479.5, 199.4, 503,
fill="#8E7968", outline="#8E7968", width=1)
canvas.create_polygon(223, 321, 238.6, 321, 212.6, 461, fill="#302722", outline="#302722", width=1)
canvas.create_polygon(238, 321, 262.8, 359.4, 222.5, 409, fill="#A69384", outline="#A69384", width=1)
canvas.create_polygon(254.4, 369.8, 259.6, 384.6, 238, 389.4, fill="#120001", outline="#120001", width=1)
canvas.create_polygon(259.6, 384.6, 238, 389.4, 222.5, 409, 229.5, 450, fill="#4F3B32", outline="#4F3B32",
width=1)
canvas.create_polygon(228, 479.5, 218.3, 497.8, 207.5, 496.8, fill="#180A04", outline="#180A04", width=1)
canvas.create_polygon(222.5, 409, 234, 475, 223, 511, 199.4, 522, 199.4, 502.8, 207.5, 496.8, 218.3, 497.8, 228,
479.5, 215, 448.8, fill="#674C45", outline="#674C45", width=1)
canvas.create_polygon(247, 335.4, 290.6, 280, 256.8, 349.2, fill="#281F1D", outline="#281F1D", width=1)
canvas.create_polygon(290.6, 280, 328, 266, 304.8, 329, 267.5, 326, fill="#140202", outline="#140202", width=1)
canvas.create_polygon(304.8, 329, 262.5, 336, 267.5, 326.8, fill="#8D7B66", outline="#8D7B66", width=1)
canvas.create_polygon(283, 333, 262.8, 359.4, 256.8, 349.2, 262.5, 336, fill="#4D3930", outline="#4D3930",
width=1)
b3 = Button(canvas, text="ocultar poligono de David Mendoza Martinez", command=lambda: ejecutar(ocultar(v1)))
b3.grid(row=1, column=3)
v1.deiconify()
def gato():
v1 = Toplevel(v0)
v1.title("Ventana hija")
v1.protocol("WM_DELETE_WINDOW", "onexit")
v1.config(bg="black")
v1.geometry("500x500")
canvas = Canvas(v1, width=300, height=200, bg='white')
canvas.pack(expand=YES, fill=BOTH)
canvas.create_polygon(420, 180,
420, 60,
380, 100,
300, 100,
260, 60,
260, 140,
220, 100,
180, 100,
140, 140,
140, 80,
150, 80,
200, 40,
200, 20,
160, 20,
90, 80,
100, 160,
120, 270,
200, 270,
200, 230,
160, 230,
160, 210,
180, 190,
220, 190,
220, 270,
280, 270,
280, 230,
260, 230,
260, 180,
400, 200,
360, 220,
320, 220,
280, 180,
fill="lightblue", outline="brown", width=6)
b3 = Button(canvas, text="ocultar Gato de Eduardo Aquino Sanchez", command=lambda: ejecutar(ocultar(v1)))
b3.grid(row=1, column=3)
v1.deiconify()
def flores():
v1 = Toplevel(v0)
v1.title("Ventana hija")
v1.protocol("WM_DELETE_WINDOW", "onexit")
v1.config(bg="black")
v1.geometry("500x500")
figuras = Canvas(v1, width=500, bg='white')
figuras.pack(expand=YES, fill=BOTH)
puntos = [35, 75, 35, 85, 45, 95, 75, 95, 85, 85, 85, 75]
figuras.create_polygon(puntos, fill='brown', outline="black", width=3)
puntos2 = [50, 75, 50, 40, 60, 30, 60, 40, 70, 40, 70, 30, 80, 30, 80, 20, 70, 20, 70, 10, 60, 10, 60, 20, 50, 20,
50, 30, 60, 30, 50, 40]
b6 = Button(figuras, text="Cerrar figura de flores de Michelle Morales", command=lambda: v1.destroy())
figuras.create_polygon(puntos2, fill='white', outline="black", width=2)
puntos3 = [60, 30, 70, 30, 70, 20, 60, 20]
figuras.create_polygon(puntos3, fill='yellow', outline="black", width=2)
puntos4 = [50, 54.5, 55, 53, 57, 53, 70, 54.5, 57, 59, 50, 54.5]
figuras.create_polygon(puntos4, fill='green', outline="black", width=2)
puntos5 = [235, 275, 235, 285, 245, 295, 275, 295, 285, 285, 285, 275]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [250, 275, 250, 240, 260, 230, 260, 240, 270, 240, 270, 230, 280, 230, 280, 220, 270, 220, 270, 210, 260,
210, 260, 220, 250, 220, 250, 230, 260, 230, 250, 240]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [260, 230, 270, 230, 270, 220, 260, 220]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [250, 254.5, 255, 253, 257, 253, 270, 254.5, 257, 259, 250, 254.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
puntos5 = [135, 175, 135, 185, 145, 195, 175, 195, 185, 185, 185, 175]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [150, 175, 150, 140, 160, 130, 160, 140, 170, 140, 170, 130, 180, 130, 180, 120, 170, 120, 170, 110, 160,
110, 160, 120, 150, 120, 150, 130, 160, 130, 150, 140]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [160, 130, 170, 130, 170, 120, 160, 120]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [150, 154.5, 155, 153, 157, 153, 170, 154.5, 157, 159, 150, 154.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
puntos5 = [35, 175, 35, 185, 45, 195, 75, 195, 85, 185, 85, 175]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [50, 175, 50, 140, 60, 130, 60, 140, 70, 140, 70, 130, 80, 130, 80, 120, 70, 120, 70, 110, 60, 110, 60,
120, 50, 120, 50, 130, 60, 130, 50, 140]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [60, 130, 70, 130, 70, 120, 60, 120]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [50, 154.5, 55, 153, 57, 153, 70, 154.5, 57, 159, 50, 154.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
puntos5 = [35, 375, 35, 385, 45, 395, 75, 395, 85, 385, 85, 375]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [50, 375, 50, 340, 60, 330, 60, 340, 70, 340, 70, 330, 80, 330, 80, 320, 70, 320, 70, 310, 60, 310, 60,
320, 50, 320, 50, 330, 60, 330, 50, 340]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [60, 330, 70, 330, 70, 320, 60, 320]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [50, 354.5, 55, 353, 57, 353, 70, 354.5, 57, 359, 50, 354.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
puntos5 = [35, 275, 35, 285, 45, 295, 75, 295, 85, 285, 85, 275]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [50, 275, 50, 240, 60, 230, 60, 240, 70, 240, 70, 230, 80, 230, 80, 220, 70, 220, 70, 210, 60, 210, 60,
220, 50, 220, 50, 230, 60, 230, 50, 240]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [60, 230, 70, 230, 70, 220, 60, 220]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [50, 254.5, 55, 253, 57, 253, 70, 254.5, 57, 259, 50, 254.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
puntos5 = [135, 275, 135, 285, 145, 295, 175, 295, 185, 285, 185, 275]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [150, 275, 150, 240, 160, 230, 160, 240, 170, 240, 170, 230, 180, 230, 180, 220, 170, 220, 170, 210, 160,
210, 160, 220, 150, 220, 150, 230, 160, 230, 150, 240]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [160, 230, 170, 230, 170, 220, 160, 220]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [150, 254.5, 155, 253, 157, 253, 170, 254.5, 157, 259, 150, 254.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
puntos5 = [235, 175, 235, 185, 245, 195, 275, 195, 285, 185, 285, 175]
figuras.create_polygon(puntos5, fill='brown', outline="black", width=3)
puntos6 = [250, 175, 250, 140, 260, 130, 260, 140, 270, 140, 270, 130, 280, 130, 280, 120, 270, 120, 270, 110, 260,
110, 260, 120, 250, 120, 250, 130, 260, 130, 250, 140]
figuras.create_polygon(puntos6, fill='white', outline="black", width=2)
puntos7 = [260, 130, 270, 130, 270, 120, 260, 120]
figuras.create_polygon(puntos7, fill='yellow', outline="black", width=2)
puntos8 = [250, 154.5, 255, 153, 257, 153, 270, 154.5, 257, 159, 250, 154.5]
figuras.create_polygon(puntos8, fill='green', outline="black", width=2)
b6.pack()
v1.deiconify()
v0=Tk()
menu1 = Menu(v0)
v0.config(menu=menu1)
menu1_1 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="Poligonos", menu=menu1_1)
menu1_1_1 = Menu(menu1_1, tearoff=0)
menu1_1.add_cascade(label="Animales", menu=menu1_1_1)
menu1_1_1.add_command(label="Antilope",command=lambda: antilope())
menu1_1_1.add_command(label="Gato",command=lambda: gato())
menu1_2 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="Varios", menu=menu1_2)
menu1_2.add_command(label="Flores",command=lambda: flores())
menu1_2.add_separator()
menu1_2_1 = Menu(menu1_2, tearoff=0)
menu1_2.add_cascade(label="Frutas", menu=menu1_2_1)
menu1_2_1.add_command(label="FRESA",command=lambda: imprimir("FRESA"))
menu1_2_1.add_command(label="MANZANA",command=lambda: imprimir("MANZANA"))
v0.mainloop()
viernes, 21 de septiembre de 2018
Crear ventanas Emergentes:
Podemos dar una mejor presentación a nuestro blog para abrir enlaces, de archivos o videos, el codigo seria este:
<a href="javascript:void(0);" onclick="window.open('https://www.python-course.eu/tkinter_canvas.php', 'popup', 'top=100, left=200, width=853, height=480, toolbar=NO, resizable=NO, Location=NO, Menubar=NO, Titlebar=No, Status=NO')" rel="nofollow">Abrir enlace</a>
solo cambiamos la URL o lo que puse en color Rojo..
jueves, 20 de septiembre de 2018
IF ANIDADOS EN PYTHON
# Aportacion de Ambrosio Isaías Laureano Castro
# muy interesante una calculadora!!
import math
def salir(valor):
while valor!=1 or valor!=2:
if valor==1:
return 6
elif valor == 2:
return 9
else:
print("\nSeguro que desea salir? (1. yes /2.no)")
valor=input()
def cal():
opc = 0
while opc!= 6:
print("\nBienvenidos a mi Calculadora prueba")
print("Selecciona alguna opcion")
print("1.Suma")
print("2.Resta")
print("3.Multiplicacion")
print("4.Divicion")
print("5.Raiz cuadrada")
print("6.Salir")
opc=int(input("Opcion: "))
if opc == 1:
print("\nSumas")
num1=input("\nIntrduzca un numero: ")
num2=input("Introduzca otro numero: ")
print("El resultado es: "+str(num1+num2))
elif opc==2:
print("\nRestas")
num1 = input("\nIntrduzca un numero: ")
num2 = input("Introduzca otro numero: ")
print("El resultado es: " + str(num1 - num2))
elif opc==3:
print("\nMultiplicacion")
num1 = input("\nIntrduzca un numero: ")
num2 = input("Introduzca otro numero: ")
print("El resultado es: " + str(num1 * num2))
elif opc==4:
print("\nDivicion")
num1 = input("\nIntrduzca un numero: ")
num2 = input("Introduzca otro numero: ")
print("El resultado es: " + str(num1 / num2))
elif opc==5:
num1=input("\nIntroduzca un numero: ")
print("La raiz cuadrada es: "+str(math.sqrt(num1)))
elif opc==6:
print("\nSeguro que desea salir? (1. yes /2.no)")
opc=salir(input())
else:
print("El valor introducido no es valido regresara al menu")
cal()
print("Adios")
miércoles, 19 de septiembre de 2018
ejemplo de editor con estilo!!!
import Tkinter
from Tkinter import *
import tkMessageBox
def imc():
num1 = int(entrada_peso.get())
num2 = float(entrada_altura.get())
imc = (num1 / (num2*num2))
if imc == 0 or imc < 18:
tkMessageBox.showinfo("Resultado", "Peso bajo. Necesario valorar signos de desnutrición")
elif imc == 18 or imc < 25:
tkMessageBox.showinfo("Resultado", "Usted tiene un peso normal☻")
elif imc == 25 or imc < 27:
tkMessageBox.showinfo("Resultado", "Usted padece sobrepeso")
elif imc == 27 or imc < 30:
tkMessageBox.showinfo("Resultado", "Usted padece obesidad grado I")
elif imc == 30 or imc < 40:
tkMessageBox.showinfo("Resultado", "Usted padece de obesidad grado II")
else:
tkMessageBox.showinfo("Resultado", "Usted padece de obesidad morbida")
ventana=Tk()
ventana.title("Calculo de IMC")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")
vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
peso = IntVar()
altura = float()
#pesoetiqueta_peso = Label(ventana, text='Peso(kg):', bg='ivory')
etiqueta_peso.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
entrada_peso = Entry(ventana, textvariable=peso)
entrada_peso.grid(row=1, column=2, padx=(10, 10), pady=(10, 10), sticky=E)
#alturaetiqueta_altura = Label(ventana, text='Altura(mts): ', bg='ivory')
etiqueta_altura.grid(row=2, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
entrada_altura = Entry(ventana, textvariable=altura)
entrada_altura.grid(row=2, column=2, padx=(10, 10), pady=(10, 10), sticky=E)
bconv = Button(ventana, bg='plum', fg='white', text='Calcular IMC', width=10, height=1, command=imc)
bconv.grid(row=4, column=2, padx=(10, 10), pady=(10, 10))
ventana.mainloop()
martes, 18 de septiembre de 2018
programa mouse
from Tkinter import *
alto = 500
ancho = 150
def paint(event):
x1,y1 = (event.x -1), (event.y -1)
x2,y2 = (event.x +1), (event.y + 1)
panel.create_oval(x1,y1,x2,y2, fill='red')
def borrartodo():
panel.delete('all')
master= Tk()
master.title('pinta con el mouse')
panel= Canvas(master, width=ancho, height= alto)
panel.pack(expand = YES, fill = BOTH )
panel.bind("",paint)
mensaje= Label(master,text='presione o arrastre con el mouse')
mensaje.pack(side=BOTTOM)
boton=Button(master, text='borrar', command = borrartodo)
boton.pack(side=BOTTOM)
master.mainloop()
lunes, 10 de septiembre de 2018
miércoles, 9 de mayo de 2018
Figuras 2D con Pyhton:
#Aqui insertamos el codigo
import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *
verticies = (
(1, -1, -1),#0
(1, 1, -1),#1
(-1, 1, -1),
(-1, -1, -1),
(1, -1, 1),
(1, 1, 1),
(-1, -1, 1),
(-1, 1, 1),
)
edges = (
(0,1),
(0,3),
(0,4),
(2,1),
(2,3),
(2,7),
(6,3),
(6,4),
(6,7),
(5,1),
(5,4),
(5,7)
)
def Cube():
glBegin(GL_LINES)
for edge in edges:
for vertex in edge:
glVertex3fv(verticies[vertex])
glEnd()
def main():
pygame.init()
display = (800,600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
gluPerspective(45, (display[0]/display[1]), 0.1, 50.0)
glTranslatef(0.0,0.0, -5)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
glRotatef(1, 3, 1, 1)
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
Cube()
pygame.display.flip()
pygame.time.wait(10)
main()
martes, 8 de mayo de 2018
Progroma Ensamblador con macro:
bucle1 macro tama,x,y
mov CX, tama
BUCLE:
MOV DX, SI
ADD DX, x
MOV DH, y
coloca ;este es el macro para colocar en la posicion la letra
;se guarda letra por letra
MOV AL, [SI+OFFSET TITULO]
;guarda color por color
MOV BL, [SI+OFFSET COLORES]
color ;este es el macro que selecciona un color
INC SI
LOOPNZ BUCLE
endm
color macro ;macro que selecciona el color
MOV AH, 9
INT BIOS
endm
coloca macro;macro que selecciona una posicion
MOV AH, 2
INT BIOS
endm
.STACK 64
.MODEL SMALL
CR EQU 13
LF EQU 10
BIOS EQU 10H
DOS EQU 21H
TEXTO EQU 3
FIN EQU 4C00H
.DATA
;ponemos el texto que querramos mostrar
TITULO DB 'Agnax & Alizz Y pedrito',
;aqui va la lista de los colores
;del texto
colores DB 50H
DB 5fH
DB 50H
DB 5fH
DB 50H
DB 00H
DB 0f0H
DB 00h
DB 20H
DB 20H
DB 20H
DB 20H
DB 20H
DB 00H
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
DB 0fH
.CODE
;esta zona es para poner el texto
COLO PROC FAR
MOV AX, @DATA
MOV DS, AX
;Aquí se pone el macro del bucle
bucle1 25,30,12
MOV AH, 8
INT DOS
coloca ;este es el macro para colocar en la posicion la letra
MOV AX, FIN
INT DOS
COLO ENDP
ret
miércoles, 2 de mayo de 2018
Estudiar WXGlade ayuda a crear Interfaz Grafica GUI
framework de desarrollo gráfico wxPython --- libreria de Python
Al Trabajar WXGlade ( vamos a utilizar wxGlade, un diseñador que no es un IDE pero crea widgets para wxPython), nos permitirá crear una interfaz gráfica!! que es muy parecido a un IDE, que facilita muchisimo crear nuestra interfaz, generando la interfaz en diferentes lenguajes entre ellos
Paython, C, Perl..... checar sitio:
Aqui lo pueden bajar:
Aportacion de Armando Monrreal :
Abrir enlace
Actividades en clase, para el Grupo de Admon de Base de Datos y Graficacion.... checare lo siguiente:
* Sacar un resumen de dicho sitio.... para saber que hace la heramienta.
* es importante que al usarla bajen la libreria wxpython, que es un modulo que ayuda a crear la interfaz grafica de un a aplicacion en Python...
recuerden como pueden bajarla:
pip install wxpython
* Estudiar el siguiente Tutorial:
Abrir enlace
Aqui en este blog viene un ejemplo interesante: (hacerlo)
Abrir enlace
Hacer este video:
Abrir enlace
Al Trabajar WXGlade ( vamos a utilizar wxGlade, un diseñador que no es un IDE pero crea widgets para wxPython), nos permitirá crear una interfaz gráfica!! que es muy parecido a un IDE, que facilita muchisimo crear nuestra interfaz, generando la interfaz en diferentes lenguajes entre ellos
Paython, C, Perl..... checar sitio:
Aqui lo pueden bajar:
Aportacion de Armando Monrreal :
Abrir enlace
Actividades en clase, para el Grupo de Admon de Base de Datos y Graficacion.... checare lo siguiente:
* Sacar un resumen de dicho sitio.... para saber que hace la heramienta.
* es importante que al usarla bajen la libreria wxpython, que es un modulo que ayuda a crear la interfaz grafica de un a aplicacion en Python...
recuerden como pueden bajarla:
pip install wxpython
* Estudiar el siguiente Tutorial:
Abrir enlace
Aqui en este blog viene un ejemplo interesante: (hacerlo)
Abrir enlace
Hacer este video:
Abrir enlace
miércoles, 18 de abril de 2018
Ejercicios, practicando con la GUI de Python
#Ejemplo de Edad con Spinbox.-
#Aportación de: Valeria Esmeralda Vargas Requena
import sys
from Tkinter import *
import tkMessageBox
def CalcularEdad():
Valor = int(CajaEdad.get())
if (2018-Valor>=18):
tkMessageBox.showinfo("Felicidades", "Eres Mayor de Edad!")
elif(2018-Valor<=5):
tkMessageBox.showinfo("Eehhh?", "Como puedes tener menos de 5 y usar este programa")
elif((2018-Valor)>8 and (2018-Valor)<18):
tkMessageBox.showinfo("Alejate!","Aun no posees la edad suficiente para seguir!")
ventana=Tk()
ventana.title("Mayor de edad")
ventana.geometry("600x400")
vp = Frame(ventana) #estamos utilizando el objeto framevp.grid(column=0, row=0, padx =(50,50), pady=(10,10))
vp.grid(column=0,row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weigh=1)
vp.rowconfigure(0, weight =1)
PreguntarEdad = Label(vp, text="Por favor ingrese su fecha de Nacimiento")
PreguntarEdad.grid(column=1,row=1,padx=(10,10),pady=(10,10))
CajaEdad = Spinbox(vp, from_=1980, to=2018,width=10)
CajaEdad.grid(column=2, row=1, padx=(10,10), pady=(10,10), sticky=N+S)
BotonCalcular = Button(vp, text="Calcular!", command=CalcularEdad)
BotonCalcular.grid(column=3, row=1, padx=(10,10), pady=(10,10))
ventana.mainloop()
#Programa punto de venta, cuenta billetes, monedas etc...
#Aportación de: Jose Manuel Sanchez Izaguirre
from Tkinter import *
import tkMessageBox
def SumMul():
try:
_e0= int(v0.get())
_e0=_e0*.50
_e1 = int(v1.get())
_e1 = _e1 * 1
_e2 = int(v2.get())
_e2 = _e2 * 2
_e3 = int(v3.get())
_e3 = _e3 * 5
_e4 = int(v4.get())
_e4 = _e4 * 10
_e5 = int(v5.get())
_e5 = _e5 * 20
_e6 = int(v6.get())
_e6 = _e6 * 50
_e7 = int(v7.get())
_e7 = _e7 * 100
_e8 = int(v8.get())
_e8 = _e8 * 200
_e9 = int(v9.get())
_e9 = _e9 * 500
_e10= _e0 + _e1 + _e2 + _e3 + _e4 + _e5 + _e6 + _e7 + _e8 + _e9
tkMessageBox.showinfo("El resultado es", _e10)
except ValueError:
etiqueta.config(text="Introduce un numero entero")
v=Tk()
v.title("")
v.geometry("200x350")
vp = Frame(v)
vp.grid(column=0, row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight =1)
ET0=Label(vp,text="MONEDAS")
ET0.grid(column=2, row=1)
e0=Label(vp,text="0.50")
e0.grid(column=1, row=3)
e1=Label(vp,text="1.00")
e1.grid(column=1, row=4)
e2=Label(vp,text="2.00")
e2.grid(column=1, row=5)
e3=Label(vp,text="5.00")
e3.grid(column=1, row=6)
e3=Label(vp,text="10.00")
e3.grid(column=1, row=7)
v0 = ""v0 = Entry(vp, width=5, textvariable=v0)
v0.grid(row=3, column=2)
v1 = ""v1 = Entry(vp, width=5, textvariable=v1)
v1.grid(row=4, column=2)
v2 = ""v2 = Entry(vp, width=5, textvariable=v2)
v2.grid(row=5, column=2)
v3 = ""v3 = Entry(vp, width=5, textvariable=v3)
v3.grid(row=6, column=2)
v4 = ""v4 = Entry(vp, width=5, textvariable=v4)
v4.grid(row=7, column=2)
ET1=Label(vp,text="BILLETES")
ET1.grid(column=2, row=9)
e4=Label(vp,text="20.00")
e4.grid(column=1, row=11)
e5=Label(vp,text="50.00")
e5.grid(column=1, row=12)
e6=Label(vp,text="100.00")
e6.grid(column=1, row=13)
e7=Label(vp,text="200.00")
e7.grid(column=1, row=14)
e8=Label(vp,text="500.00")
e8.grid(column=1, row=15)
v5 = ""v5 = Entry(vp, width=5, textvariable=v5)
v5.grid(row=11, column=2)
v6 = ""v6 = Entry(vp, width=5, textvariable=v6)
v6.grid(row=12, column=2)
v7 = ""v7 = Entry(vp, width=5, textvariable=v7)
v7.grid(row=13, column=2)
v8 = ""v8 = Entry(vp, width=5, textvariable=v8)
v8.grid(row=14, column=2)
v9 = ""v9 = Entry(vp, width=5, textvariable=v9)
v9.grid(row=15, column=2)
b = Button(vp, text="TOTAL", command=SumMul)
b.grid(row=17, column=2, padx=(20, 20), pady=(20, 20))
v.mainloop()
#Aportacion de Cecilia Abigal Cantu Alcala
#programa que saca el signo zodiacal
import sys
import Tkinter as tk
from Tkinter import *
import tkMessageBox
ventana=Tk()
ventana.title("Signo Zodiacal")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")
vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
var = StringVar(ventana)
var.set("Enero") # initial valuever = StringVar(ventana)
ver.set("1") # initial value
etiqueta_mes = Label(ventana, text='Mes de nacimiento: ')
ent_mes = OptionMenu(ventana, var, "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre", )
etiqueta_mes.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ent_mes.grid(row=1, column=3)
etiqueta_dia = Label(ventana, text='Dia de nacimiento: ')
ent_dia = OptionMenu(ventana, ver, "1", "2", "3","4", "5", "6","7", "8", "9","10", "11", "12","13", "14", "15","16", "17", "18","19", "20", "21","22", "23", "24", "25", "26", "27", "28", "29", "30", "31")
etiqueta_dia.grid(row=4, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ent_dia.grid(row=4, column=3)
def signo():
month= str(var.get())
day= int(ver.get())
if month=="Marzo" and day>=21 or month=="Abril" and day<=20:
tkMessageBox.showinfo("Signo","Eres Aries")
elif month == "Abril" and day >= 21 or month == "Mayo" and day <= 21:
tkMessageBox.showinfo("Signo", "Eres Tauro")
elif month == "Mayo" and day >= 22 or month == "Junio" and day <= 21:
tkMessageBox.showinfo("Signo", "Eres Gemenis")
elif month=="Junio" and day>=22 or month=="Julio" and day<=22:
tkMessageBox.showinfo("Signo","Eres Cáncer")
if month=="Julio" and day>=23 or month=="Agosto" and day<=23:
tkMessageBox.showinfo("Signo","Eres Leo")
if month=="Agosto" and day>=24 or month=="Septiembre" and day<=23:
tkMessageBox.showinfo("Signo","Eres Virgo")
if month=="Septiembre" and day>=24 or month=="Octubre" and day<=23:
tkMessageBox.showinfo("Signo","Eres Libra")
if month=="Octubre" and day>=24 or month=="Noviembre" and day<=22:
tkMessageBox.showinfo("Signo","Eres Escorpión")
if month=="Noviembre" and day>=23 or month=="Diciembre" and day<=21:
tkMessageBox.showinfo("Signo","Eres Sagitario")
if month=="Diciembre" and day>=22 or month=="Enero" and day<=20:
tkMessageBox.showinfo("Signo","Eres Capricornio")
if month=="Enero" and day>=21 or month=="Febrero" and day<=18:
tkMessageBox.showinfo("Signo","Eres Acuario")
if month=="Febrero" and day>=19 or month=="Marzo" and day<=20:
tkMessageBox.showinfo("Signo","Eres Piscis")
boton = Button(ventana, text='Signo', command=signo, width=20)
boton.grid(row=5, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ventana.mainloop()
#Aportacion de Cecilia Abigal Cantu Alcala
#programa que calcula IMC
# -*- coding: utf-8 -*-import sys
import Tkinter
from Tkinter import *
import tkMessageBox
def imc():
num1 = int(entrada_peso.get())
num2 = float(entrada_altura.get())
imc = (num1 / (num2*num2))
if imc == 0 or imc < 18:
tkMessageBox.showinfo("Resultado", "Peso bajo. Necesario valorar signos de desnutrición")
elif imc == 18 or imc < 25:
tkMessageBox.showinfo("Resultado", "Usted tiene un peso normal☻")
elif imc == 25 or imc < 27:
tkMessageBox.showinfo("Resultado", "Usted padece sobrepeso")
elif imc == 27 or imc < 30:
tkMessageBox.showinfo("Resultado", "Usted padece obesidad grado I")
elif imc == 30 or imc < 40:
tkMessageBox.showinfo("Resultado", "Usted padece de obesidad grado II")
else:
tkMessageBox.showinfo("Resultado", "Usted padece de obesidad morbida")
ventana=Tk()
ventana.title("Calculo de IMC")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")
vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
peso = IntVar()
altura = float()
#pesoetiqueta_peso = Label(ventana, text='Peso(kg):', bg='ivory')
etiqueta_peso.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
entrada_peso = Entry(ventana, textvariable=peso)
entrada_peso.grid(row=1, column=2, padx=(10, 10), pady=(10, 10), sticky=E)
#alturaetiqueta_altura = Label(ventana, text='Altura(mts): ', bg='ivory')
etiqueta_altura.grid(row=2, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
entrada_altura = Entry(ventana, textvariable=altura)
entrada_altura.grid(row=2, column=2, padx=(10, 10), pady=(10, 10), sticky=E)
bconv = Button(ventana, bg='plum', fg='white', text='Calcular IMC', width=10, height=1, command=imc)
bconv.grid(row=4, column=2, padx=(10, 10), pady=(10, 10))
ventana.mainloop()
#Aportacion de Brandon Asael Cerda Hernandez
#Programa: con listas, combo box, agrega a la lista las peliculas al guardar
#excelente programa en python!!!
# -*- coding: utf-8 -*-from Tkinter import Label,Entry,Button,Tk,Frame,W,N,S,E,END,HORIZONTAL,Spinbox
from ttk import Combobox,Separator
from tkMessageBox import askyesno,showinfo,showerror;
#en el import, solo estoy pidiendo importar los elementos que vamos a usar, para no usar el * sin necesidad de traer mas elementosdef AddEntryMovie():
Movie = CatchMovie.get()
if (CatchMovie.get()==""):
CatchMovie.config(bg="red")
showerror("What Movie it is?", "Por favor ingresa una pelicula! no dejes el campo en blanco!")
CatchMovie.config(bg="white")
#Una pequeña "excepcion" por si el campo de texto para ingresar la pelicula esta vacio else:
if (Classes.get()==""):
#otra pequeña "excepcion" por si la clasificación de la pelicula no tiene seleccionada una clasificación showerror("What Movie it is?","Por favor selecciona una clasificación!")
else:
if (askyesno("Are you sure?", "Deseas añadir esta pelicula: \n\""+Movie+"\"\nA la lista de peliculas?")==True):
values = list(MoviesOnList["values"])
#se crea dentro de la funcion la Variable "values" que sera una lista de los valores que se encuentran en la lista despegable MoviesOnList["values"] = values + [Movie]
#de la lista despegalble agregamos el nuevo valor que esta en nuestro campo de texto, para esto debemos ponerlo entre # [] para que se interprete como el valor de una lista y pueda sumarse a la lista despegable de peliculas Classifications.insert(i,Classes.get())
#añade la clasificiación a una lista, para asi tenerla disponible en la Lista Despegable de Peliculas disponibles Mov.insert(i,Movie)
i+1 CatchMovie.delete(0, END)
#ya lo hemos visto antes pero lo explicare aun asi, .delete(0, END) borra el texto dentro del Entry CatchMovie.insert(0, "")
#Aqui es casi lo mismo, pero deja el campo Vacio y usable, tambien para evitar errores de captura Classes.set("")
#Reinicia la Lista Despegable de las clasificaciones showinfo("Exito!","Has añadido: \""+Movie+"\" A la lista de Peliculas")
else:
showinfo("Guess No","La Pelicula: "+Movie+" No sera añadida")
def firstDone():
if (askyesno("Are you sure?","ADVERTENCIA: ESTA ACCION NO PUEDE SER DESHECHA" "\nSi de verdad ya terminaste te agregar peliculas, prosigue, si no, DETENTE!")==True):
CatchMovie.config(state="disable")
Classes.config(state="disable")
AddMov.config(state="disable")
Done.config(state="disable")
#tambien se habia visto antes, pero explicare aun asi, el 'state' "disable" deshabilita el componente del frame app.geometry("600x300")
#se puede cambiar la dimension de una ventana, aunque se haya establecido un tamaño, esto nos permite controlar la ventana y los componentes a mostrar MovietoRent.grid()
MoviesOnList.grid()
ClassifiedAs.grid()
AskRent.grid()
Days4Rent.grid()
Rent.grid()
#simplemente con .grid() vuelvo a colocar en su respectivo lugar, los elementos que no son visibles para el usuario, ocultos con '.grid_remove()' else:
showinfo("","Puedes seguir agregando peliculas si gustas!")
def MovieSel(self):
ClassifiedAs.config(state="normal")
#para que un Entry pueda mostrar un texto, es necesario que este en un estado normal (state="normal") ClassifiedAs.delete(0, END)
ClassifiedAs.insert(0, Classifications.__getitem__(Mov.index(MoviesOnList.get())))
#aqui se hace uso de la Lista [] y el atributo "__getitem__()" para obtener lo que este en la lista, para ello #es necesario poner un indice numerico, asi que utilizando ".index()" puedo llamar solo el indice (numero en la lista) #y .__getitem__() obtendra el objeto que este en ese indice de la lista, para asi poder mostrar la clasificación correecta ClassifiedAs.config(state="readonly")
#al cambiar el estado a "Solo Lectura" (state="readonly") el Entry solo mostrara Texto, pero no permitira la entrada de datos o textosdef RentAMovie():
if (askyesno("You ready?","Deseas Rentar la pelicula: "+MoviesOnList.get()+
"\n por "+Days4Rent.get()+" Dia/s?")==True):
if (ClassifiedAs.get()=="Adultos"):
if(askyesno("Age Issue","Eres Mayor de Edad?")==True):
showinfo("Ask for: ","Presente su Identificación")
else:
showerror("Get outta here","NO SE RENTAN PELICULAS A MENORES")
else:
showinfo("Have a nice day!","Disfruta de tu pelicula! \nQue tengas un Buen dia :)")
else:
showinfo("Ok?","De acuerdo, revisa tus opciones entonces :)")
app = Tk()
app.geometry("600x120")
app.title("Lista de Peliculas")
vp = Frame(app)
vp.grid(column=0,row=0,padx=(30,30), pady=(20,20))
vp.rowconfigure(0, weight=1)
vp.columnconfigure(0, weight=1)
Classified = Label(vp, text="Clasificación")
Classified.grid(column=2, row=1, padx=(10,10), pady=(10,10))
AskMov = Label(vp, text="Ingrese una Pelicula: ")
AskMov.grid(column=1, row=1, padx=(10,10), pady=(10,10), sticky=W)
cMovie = ""CatchMovie = Entry(vp, textvariable=cMovie, width=35)
CatchMovie.grid(column=1, row=2, padx=(10,10), pady=(10,10))
AddMov = Button(vp, text="Añadir", command=AddEntryMovie)
AddMov.grid(column=3, row=2, padx=(10,10), pady=(10,10))
Done = Button(vp, text="Finalizar", command=firstDone)
Done.grid(column=4, row=2, padx=(10,10), pady=(10,10))
Classes = Combobox (vp, state="readonly")
Classes.grid(column=2, row=2, padx=(10,10), pady=(10,10))
Classes["values"]=["Para todas las Edades","Familiar","Mayores de 10","Adolescentes","Mayores de 15","Adultos"]
Separator(vp, orient=HORIZONTAL).grid(column=1,row=3,columnspan=4,sticky=W+E,pady=(10,10))
MovietoRent = Label(vp, text="Pelicula a Rentar: ")
MovietoRent.grid(column=1, row=4, padx=(10,10), pady=(30,10), stick=W)
MovietoRent.grid_remove()
MoviesOnList = Combobox (vp, state="readonly")
MoviesOnList.grid(column=1,row=5,padx=(10,10),pady=(10,10), sticky=W+E)
MoviesOnList.bind("<>",MovieSel)
MoviesOnList.grid_remove()
ClassifiedAs = Entry (vp,state="readonly")
ClassifiedAs.grid(column=2, row=5, padx=(10,10), pady=(10,10), sticky=W+E)
ClassifiedAs.grid_remove()
AskRent = Label(vp, text="Dias\n a Rentar")
AskRent.grid(column=3, row=4, padx=(10,10), pady=(10,10))
AskRent.grid_remove()
Days4Rent = Spinbox(vp,width=5, from_=1, to=7)
Days4Rent.grid(column=3, row=5, padx=(10,10), pady=(10,10), sticky=N+S)
Days4Rent.grid_remove()
Rent = Button(vp, text="Rentar", command=RentAMovie)
Rent.grid(column=4, row=5, padx=(10,10), pady=(10,10))
Rent.grid_remove()
Classifications = []
Mov = []
i = int(0)
app.mainloop()
#Aportacion.- Luis Angel Alonso Rojas
#programa que hace la interfaz
#programa que te pide tus datos basicos
#Luis Angel Alonso Rojas#15260607
from Tkinter import *
root = Tk()
root.title('formulario 1')
# row 1 : thenombre_label = Label(root,text="Nombre :")
nombre_label.grid(row=1,column=1)
nombre_str = StringVar()
nombre_entry = Entry(root,textvariable=nombre_str)
nombre_entry.grid(row=1,column=2)
#row 2 : the lastlast_label= Label(root,text="Apellido : ")
last_label.grid(row=2,column=1)
last_str = StringVar()
last_entry = Entry(root,textvariable=last_str)
last_entry.grid(row=2,column=2)
#row 3 : themail_label = Label(root,text="Email : ")
mail_label.grid(row=3,column=1)
mail_str = StringVar()
mail_entry = Entry(root,textvariable=mail_str)
mail_entry.grid(row=3,column=2)
#row 4 :endfinish = Button(root,text="finalizar",relief=FLAT)
endfinish.grid(row=4,column=2)
root.mainloop()
#programa que calcula el interés anual
#!/usr/bin/env python# -*- coding: utf-8 -*-
import sys
from Tkinter import *
import tkMessageBox
def interes():
v1 = int(ent1.get())
v2 = int(ent2.get())
v3 = int(ent3.get())
r = v1 * v2 / 100 g=(r * v3)
f= g + v1
print "Cuando pasen", v3, "años, con un interes de", v2, " usted habrá generado",f , "pesos"
v = Tk()
v.title("Interes")
v.geometry("400x250")
vp= Frame(v)
vp.grid(column=0, row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0,weight=1)
e1 = Label(vp, text="Pesos:")
e1.grid(row=2, column=4, padx=(20, 20), pady=(20, 20))
e2 = Label(vp, text="Interes:")
e2.grid(row=3, column=4, padx=(20, 20), pady=(20, 20))
e3 = Label(vp, text="Años:")
e3.grid(row=4, column=4, padx=(20, 20), pady=(20, 20))
val1 = ""ent1 = Entry(vp, width=12, textvariable=val1)
ent1.grid(row=2, column=5)
val2 = ""ent2 = Entry(vp, width=12, textvariable=val2)
ent2.grid(row=3, column=5)
val3 = ""ent3 = Entry(vp, width=12, textvariable=val2)
ent3.grid(row=4, column=5)
b1 = Button(vp, text="Calcular", command=interes)
b1.grid(row=5, column=5, padx=(20, 20), pady=(20, 20))
v.mainloop()
#Aportacion.- Jesus Eduardo Martinez Hinojosa
#Programa que encripta informacion o texto
# -*- coding: utf-8 -*-from Tkinter import *
# Jesus Eduardo Martinez Hinojosa
# Ventanaventana = Tk()
ventana.geometry("300x300+350+80")
ventana.title("Encriptador")
ventana.resizable(width=False, height=False)
try:
ventana.iconbitmap("icono.ico")
except:
print("no hay icono disponible")
# Clavenumclave = 1
# Funciones.def boton1():
# Cifrado Cesar TAM_MAX_CLAVE = 26
def obtenerModo():
modo = "e" return modo
def obtenerMensaje():
mensaje = text.get("0.0", END)
return mensaje
def obtenerClave():
global numclave
clave = numclave
return clave
def obtenerMensajeTraducido(modo, mensaje, clave):
if modo[0] == 'd':
clave = -clave
traduccion = '' for simbolo in mensaje:
if simbolo.isalpha():
num = ord(simbolo)
num += clave
if simbolo.isupper():
if num > ord('Z'):
num -= 26 elif num < ord('A'):
num += 26 elif simbolo.islower():
if num > ord('z'):
num -= 26 elif num < ord('a'):
num += 26 traduccion += chr(num)
else:
traduccion += simbolo
return traduccion
modo = obtenerModo()
mensaje = obtenerMensaje()
if modo[0] != 'b':
clave = obtenerClave()
if modo[0] != 'b':
texto = (obtenerMensajeTraducido(modo, mensaje, clave))
text.delete("0.0", END)
text.insert("0.0", texto)
informe1.config(text="Texto Encriptado")
else:
for clave in range(1, TAM_MAX_CLAVE + 1):
print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))
def boton2():
# Cifrado Cesar TAM_MAX_CLAVE = 26
def obtenerModo():
modo = "d" return modo
def obtenerMensaje():
mensaje = text.get("0.0", END)
return mensaje
def obtenerClave():
global numclave
clave = numclave
return clave
def obtenerMensajeTraducido(modo, mensaje, clave):
if modo[0] == 'd':
clave = -clave
traduccion = '' for simbolo in mensaje:
if simbolo.isalpha():
num = ord(simbolo)
num += clave
if simbolo.isupper():
if num > ord('Z'):
num -= 26 elif num < ord('A'):
num += 26 elif simbolo.islower():
if num > ord('z'):
num -= 26 elif num < ord('a'):
num += 26 traduccion += chr(num)
else:
traduccion += simbolo
return traduccion
modo = obtenerModo()
mensaje = obtenerMensaje()
if modo[0] != 'b':
clave = obtenerClave()
if modo[0] != 'b':
texto = (obtenerMensajeTraducido(modo, mensaje, clave))
text.delete("0.0", END)
text.insert("0.0", texto)
informe1.config(text="Texto Desencriptado")
else:
for clave in range(1, TAM_MAX_CLAVE + 1):
print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))
def salir():
ventana.destroy()
def menu_activacion(event):
menu_despegable.post(event.x_root, event.y_root)
def cortar():
text.clipboard_clear()
text.clipboard_append(text.selection_get())
sel = text.get(SEL_FIRST, SEL_LAST)
text.delete(SEL_FIRST, SEL_LAST)
def copiar():
text.clipboard_clear()
text.clipboard_append(text.selection_get())
def pegar():
tem = text.selection_get(selection="CLIPBOARD")
text.insert(INSERT, tem)
# Widgetb1 = Button(ventana, text="Encriptar", bg='black', fg='white', activebackground='cyan',
activeforeground='dark slate gray', command=boton1, font=("Courier New", 9))
b2 = Button(ventana, text="Desencriptar", bg='black', fg='white', activebackground='cyan',
activeforeground='dark slate gray', command=boton2, font=("Courier New", 9))
text = Text(ventana, fg='lavender', bg='dark slate gray', font=("Courier New", 10))
informe1 = Label(ventana, text="Ingrese un texto", bg="turquoise", font=("Courier New", 10))
# Empaquetado de los widgetb1.place(x=10, y=260, width=120, height=30)
b2.place(x=167, y=260, width=120, height=30)
informe1.place(x=0, y=0, width=300, height=30)
text.place(x=0, y=30, height=218, width=300)
# Menu popup(menu despegable)menu_despegable = Menu(ventana, tearoff=0)
menu_despegable.add_command(label="Cortar", command=cortar, font=("Courier New", 9))
menu_despegable.add_command(label="Copiar", command=copiar, font=("Courier New", 9))
menu_despegable.add_command(label="Pegar", command=pegar, font=("Courier New", 9))
menu_despegable.add_separator()
menu_despegable.add_command(label="Salir", command=salir, font=("Courier New", 9))
# Evento del menu despegabletext.bind("", menu_activacion)
# donde mantener el enfoque.ventana.mainloop()
#Aportacion.- Alan Hernandez Mijangos
#Programa.- que toma un archivo GIF y lo muestra
al hacer clic en un boton
# -*- coding: utf-8 -*-import Tkinter as tk
from Tkinter import *
ventana = Tk()
ventana.geometry('400x400')
ventana.config(bg="black")
ventana.title("Mostrando y ocultando un botón con una imagen")
def btn_hide():
if b1.winfo_ismapped():
b1.place_forget()
b2.configure(text="Mostrar carita", width=15)
else:
b1.place(x=70, y=50)
b2.configure(text="Ocultar carita", width=15)
imgBoton = PhotoImage(file="pensando.gif")
b1 = tk.Button(ventana, text="Botón 1", image=imgBoton, fg="black", width=200)
b1.place(x=90, y=50)
b2 = Button(ventana, text="Ocultar carita", command=btn_hide, fg="black", width=15)
b2.place(x=130, y=280)
ventana.mainloop()
#Aportacion.- Martin Cruz Alvarez
#programa.- de Calendario
# -*- coding: utf-8 -*-
import calendar
import Tkinter as tk
import datetime
# Obtenemos los valores del año y mes a mostrarano = datetime.date.today ().year
mes = datetime.date.today ().month
def writeCalendar(ano, mes):
# Asignamos el año y mes al calendario str1 = calendar.month (ano, mes)
label1.configure (text=str1)
def mesAnterior():
global mes, ano
mes -= 1 if ano == 0:
mes = 12 ano -= 1 writeCalendar (ano, mes)
def mesSiguiente():
global mes, ano
mes += 1 if mes == 13:
mes = 1 ano += 1 writeCalendar (ano, mes)
root = tk.Tk ()
root.title ("Calendario")
# Lo posicionamos en un label
label1 = tk.Label (root, text="", font=('courier', 40, 'bold'), bg='white', justify=tk.LEFT)
label1.grid (row=1, column=1)
# ponemos los botones dentro un Frame
frame = tk.Frame (root, bd=5)
anterior = tk.Button (frame, text="Anterior", command=mesAnterior)
anterior.grid (row=1, column=1, sticky=tk.W)
siguiente = tk.Button (frame, text="Siguiente", command=mesSiguiente)
siguiente.grid (row=1, column=2)
frame.grid (row=2, column=1)
writeCalendar (ano, mes)
# ejecutamos el evento loop
root.mainloop ()
sábado, 14 de abril de 2018
miércoles, 14 de marzo de 2018
prog valida:
import sys
from Tkinter import *
import tkMessageBox
def validar():
if len(ent_usuario.get()) < 6 :
tkMessageBox.showerror('Error', 'El usuario debe tener al menos 6 caracteres')
if (ent_usuario.get()).isalnum() == FALSE :
tkMessageBox.showerror('Error', 'El usuario debe tener solo numeros o letras')
if len(ent_usuario.get()) > 12 :
tkMessageBox.showerror('Error', 'El usuario no puede tener mas de 12 caracteres')
if len(ent_usuario.get()) > 5 and len(ent_usuario.get()) < 12 and (ent_usuario.get()).isalnum() == TRUE:
tkMessageBox.showinfo('usuarios aceptado', 'El usuario es correcto')
ventana= Tk()
ventana.title('Validar Password')
ventana. geometry('600x400')
vp = Frame(ventana) #estamos utilizando el objeto framevp.grid(column=0, row=0, padx =(50,50), pady=(10,10))
vp.columnconfigure(0, weigh=1)
vp.rowconfigure(0, weight =1)
etiqueta = Label(vp,text='Ingrese el nombre de Usuario: ')
etiqueta.grid(row=2, column=4, padx=(20,20), pady=(20,20))
usuario = ""ent_usuario = Entry(vp, width=12, textvariable=usuario)
ent_usuario.grid(row=2, column=5)
Boton = Button(vp, text='Validar usuario', command= validar)
Boton.grid(row=2, column=6, padx=(20,20), pady=(20,20))
#etiqueta2 = Label(vp, text='Ingrese el Password: ')#etiqueta2.grid(row=4, column=4, padx=(20, 20), pady=(20, 20))
#password = ""#ent_pass = Entry(vp, width=10, show="*", textvariable=password)#ent_pass.grid(row=4, column=5)
#Boton2 = Button(vp, text='Validar passw:', command=valida2)#Boton2.grid(row=4, column=6, padx=(20, 20), pady=(20, 20))
ventana.mainloop()
martes, 13 de marzo de 2018
2.1.2 Estructuras Físicas de la base de datos:
Este Articulo lo tome de Scrib, y complementa lo que estamos estudiando.... de aquí pueden sacar la tarea pendiente para hoy:
https://drive.google.com/open?id=17gribyWrnTk7csrPlA41en8d40SF4TJQ
https://drive.google.com/open?id=17gribyWrnTk7csrPlA41en8d40SF4TJQ
lunes, 12 de marzo de 2018
Aportación de Jonnatan Guzman J. programa de colores en Turbo....
BIOS EQU 10H
DOS EQU 21H
FIN EQU 4C00H
TEXTO EQU 3
PILA SEGMENT STACK
DB 64 DUP('PILA ')
PILA ENDS
DATOS SEGMENT
assume ds:DATOS,SS:PILA,cs:codigo
TITULO DB 'YO Y MI PAREJA '
colores db 5bh
DB 5FH
DB 5BH
DB 5FH
db 5BH
DB 5FH
DB 5BH
DB 5FH
db 5BH
DB 5FH
DB 5BH
DB 5FH
db 5BH
DB 5FH
DB 5BH
DB 5FH
db 5BH
DATOS ENDS
codigo segment
COLO PROC FAR
mov AX, DATOS
mov ds,ax
mov ax,texto
int bios
mov cx,16
xor si,si
bucle:
push cx
mov dx,si
add dx,35
mov dh,12
call coloca
mov al,[si+offset titulo]
mov bl,[si+offset colores]
call color
pop cx
inc si
loopnz bucle
mov ah,8
int dos
xor dx,dx
call coloca
mov ax,fin
int dos
colo endp
color proc
mov ah,9
xor bh,bh
int bios
ret
color endp
coloca proc
mov ah,2
xor bx,bx
int bios
ret
coloca endp
codigo ends
end colo
DOS EQU 21H
FIN EQU 4C00H
TEXTO EQU 3
PILA SEGMENT STACK
DB 64 DUP('PILA ')
PILA ENDS
DATOS SEGMENT
assume ds:DATOS,SS:PILA,cs:codigo
TITULO DB 'YO Y MI PAREJA '
colores db 5bh
DB 5FH
DB 5BH
DB 5FH
db 5BH
DB 5FH
DB 5BH
DB 5FH
db 5BH
DB 5FH
DB 5BH
DB 5FH
db 5BH
DB 5FH
DB 5BH
DB 5FH
db 5BH
DATOS ENDS
codigo segment
COLO PROC FAR
mov AX, DATOS
mov ds,ax
mov ax,texto
int bios
mov cx,16
xor si,si
bucle:
push cx
mov dx,si
add dx,35
mov dh,12
call coloca
mov al,[si+offset titulo]
mov bl,[si+offset colores]
call color
pop cx
inc si
loopnz bucle
mov ah,8
int dos
xor dx,dx
call coloca
mov ax,fin
int dos
colo endp
color proc
mov ah,9
xor bh,bh
int bios
ret
color endp
coloca proc
mov ah,2
xor bx,bx
int bios
ret
coloca endp
codigo ends
end colo
Aportación Emmanuel Horta, Lourdes Brito.....programa de colores...
BIOS EQU 10H
DOS EQU 21H
FIN EQU 4C00H
.DATA
TITULO DB 'Agnax & Alizz '
COLORES DB 5BH
DB 5FH
DB 5BH
DB 5FH
DB 5BH
DB 00H
DB 0F0H
DB 00H
DB 09CH
DB 09FH
DB 09CH
DB 09FH
DB 09CH
DB 00H
DB 0CH
.CODE
INICIO PROC NEAR:
MOV AX, @DATA
MOV DS, AX
;Esta parte de aqui no es necesaria
INT BIOS
MOV CX, 15
BUCLE:
;Ponemos esto para no agarrar basura
MOV DX,SI
ADD DX,35 ;columna
MOV DH, 12 ;renglon
CALL COLOCA
MOV AL, [SI+OFFSET TITULO]
MOV BL, [SI+OFFSET COLORES]
CALL COLOR
INC SI
LOOPNZ BUCLE
MOV AH, 0
INT DOS
CALL COLOCA
MOV AX, FIN
INT DOS
COLOR PROC
MOV AH, 9
INT BIOS
RET
COLOCA PROC
MOV AH,2
INT BIOS
RET
END INICIO
DOS EQU 21H
FIN EQU 4C00H
.DATA
TITULO DB 'Agnax & Alizz '
COLORES DB 5BH
DB 5FH
DB 5BH
DB 5FH
DB 5BH
DB 00H
DB 0F0H
DB 00H
DB 09CH
DB 09FH
DB 09CH
DB 09FH
DB 09CH
DB 00H
DB 0CH
.CODE
INICIO PROC NEAR:
MOV AX, @DATA
MOV DS, AX
;Esta parte de aqui no es necesaria
INT BIOS
MOV CX, 15
BUCLE:
;Ponemos esto para no agarrar basura
MOV DX,SI
ADD DX,35 ;columna
MOV DH, 12 ;renglon
CALL COLOCA
MOV AL, [SI+OFFSET TITULO]
MOV BL, [SI+OFFSET COLORES]
CALL COLOR
INC SI
LOOPNZ BUCLE
MOV AH, 0
INT DOS
CALL COLOCA
MOV AX, FIN
INT DOS
COLOR PROC
MOV AH, 9
INT BIOS
RET
COLOCA PROC
MOV AH,2
INT BIOS
RET
END INICIO
Programa Usuario en Python:
import sys from Tkinter import * import tkMessageBox def valida(): #long = len(ent_usuario.get()) # NOS CONTARA EL LARGO DE LA CADENA #Y= (ent_usuario.get()).isalnum() #VERDADERO SI CUMPLE, FALSE SI TIENE CARACTERES ESPECIALES #print(long) #print(Y) if len(ent_usuario.get()) < 6 : tkMessageBox.showerror('Error', 'El usuario debe tener al menos 6 caracteres') if (ent_usuario.get()).isalnum() == FALSE : tkMessageBox.showerror('Error', 'El usuario debe tener solo numeros o letras') if len(ent_usuario.get()) > 12 : tkMessageBox.showerror('Error', 'El usuario no puede tener mas de 12 caracteres') if len(ent_usuario.get()) > 5 and len(ent_usuario.get()) < 12 and (ent_usuario.get()).isalnum() == TRUE: tkMessageBox.showinfo('usuarios aceptado', 'El usuario es correcto') #else: # tkMessageBox.showinfo("usuario correcto", 'TIENE USTED ACCESO') # if ent_usuario.get() == 'YOLANDA' and ent_pass.get() == '123': # tkMessageBox.showinfo("usuario correcto",'TIENE USTED ACCESO') # else: # tkMessageBox.showerror('Error', 'NO TIENE ACCESO') #except ValueError: #tkMessageBox.showerror('Error', 'introduzca un numero')ventana= Tk() ventana.title('Validar Password') ventana. geometry('400x400') vp = Frame(ventana) #estamos utilizando el objeto framevp.grid(column=0, row=0, padx =(50,50), pady=(10,10)) vp.columnconfigure(0, weigh=1) vp.rowconfigure(0, weight =1) etiqueta = Label(vp,text='Ingrese el nombre de Usuario: ') etiqueta.grid(row=2, column=4, padx=(20,20), pady=(20,20)) etiqueta2 = Label(vp,text='Ingrese el Password: ') etiqueta2.grid(row=4, column=4 , padx=(20,20), pady=(20,20)) usuario=""
ent_usuario = Entry(vp, width= 12, textvariable=usuario) ent_usuario.grid(row=2, column=5) password=""
ent_pass = Entry(vp,width =10, show="*", textvariable=password) ent_pass.grid(row=4,column=5 ) Boton = Button(vp, text='Validar', command= valida) Boton.grid(row=50, column=5, padx=(20,20), pady=(20,20)) ventana.mainloop()
domingo, 11 de marzo de 2018
Ralizar programa: (q mult números mas grandes...
.model small ;Modelo de memoria m?s utilizado
.stack
.data ;definición de datos(variables), donde se almacenara información
.code
chr1 db ?
chr2 db ?
chr3 db ?
r1 db ?
r2 db ?
ac db 0
.startup
;cls
mov ah,00h ;Function(Set video mode)
mov al,03 ;Mode 80x25 8x8 16
int 10h ;Interruption Video
mov ah,01h ;Function(character read)
int 21h ;Interruption DOS functions
sub al,30h ;ajustamos valores
mov chr1,al ;[chr1].chr2 * chr3 = ac.r1.r2
mov ah,01h ;Function(character read)
int 21h ;Interruption DOS functions
sub al,30h ;Ajustamos valores
mov chr2,al ;chr1.[chr2] * chr3 = ac.r1.r2
mov ah,02h ;Function(character to send to standard output)
mov dl,'*' ;Character to show
int 21h
mov ah,01h ;Function(Read character)
int 21h ;Interruption DOS Functions
sub al,30h ;Transform(0dec = 30hex)
mov chr3,al ;chr1.chr2 * [chr3] = ac.r1.r2
mov ah,02h ;Character to send to standar output
mov dl,'=' ;
int 21h ;Interruption DOS functions
;Realizamos operaci?n
mov al,chr3 ;al = chr3
mov bl,chr2 ;bl = chr2
mul bl ;AL = chr3*chr2 (BL*AL)
mov Ah,0h ;
AAM ;ASCII Adjusment
mov ac,AH ;ac = AH (Acarreo)
mov r2,AL ;r2 = AL (Unidad del resultado)
mov al,chr3 ;AL = chr3
mov bl,chr1 ;BL = chr1
mul bl ;AL = chr1*chr3 (BL*AL)
mov r1,al ;r1 = AL (Decena del resultado)
mov bl,ac ;BL = Acarreo anterior
add r1,bl ;r1 = r1+ac (r1 + Acarreo)
mov ah,00h ;
mov al,r1 ;AL = r1 (Asignaci?n para el ajust)
AAM ;ASCII Adjustment
mov r1,al ;r1 = AL
mov ac,ah ;ac = AH (Acarreo para la Centena del resultado)
;Mostramos resultado
mov ah,02h
mov dl,ac
add dl,30h
int 21h ;Mostramos ac (Centena)
mov ah,02H
mov dl,r1
add dl,30h
int 21h ;Mostramos r1 (Decena)
mov ah,02H
mov dl,r2
add dl,30h
int 21h ;Mostramos r2 (Unidad)
.exit
end
.stack
.data ;definición de datos(variables), donde se almacenara información
.code
chr1 db ?
chr2 db ?
chr3 db ?
r1 db ?
r2 db ?
ac db 0
.startup
;cls
mov ah,00h ;Function(Set video mode)
mov al,03 ;Mode 80x25 8x8 16
int 10h ;Interruption Video
mov ah,01h ;Function(character read)
int 21h ;Interruption DOS functions
sub al,30h ;ajustamos valores
mov chr1,al ;[chr1].chr2 * chr3 = ac.r1.r2
mov ah,01h ;Function(character read)
int 21h ;Interruption DOS functions
sub al,30h ;Ajustamos valores
mov chr2,al ;chr1.[chr2] * chr3 = ac.r1.r2
mov ah,02h ;Function(character to send to standard output)
mov dl,'*' ;Character to show
int 21h
mov ah,01h ;Function(Read character)
int 21h ;Interruption DOS Functions
sub al,30h ;Transform(0dec = 30hex)
mov chr3,al ;chr1.chr2 * [chr3] = ac.r1.r2
mov ah,02h ;Character to send to standar output
mov dl,'=' ;
int 21h ;Interruption DOS functions
;Realizamos operaci?n
mov al,chr3 ;al = chr3
mov bl,chr2 ;bl = chr2
mul bl ;AL = chr3*chr2 (BL*AL)
mov Ah,0h ;
AAM ;ASCII Adjusment
mov ac,AH ;ac = AH (Acarreo)
mov r2,AL ;r2 = AL (Unidad del resultado)
mov al,chr3 ;AL = chr3
mov bl,chr1 ;BL = chr1
mul bl ;AL = chr1*chr3 (BL*AL)
mov r1,al ;r1 = AL (Decena del resultado)
mov bl,ac ;BL = Acarreo anterior
add r1,bl ;r1 = r1+ac (r1 + Acarreo)
mov ah,00h ;
mov al,r1 ;AL = r1 (Asignaci?n para el ajust)
AAM ;ASCII Adjustment
mov r1,al ;r1 = AL
mov ac,ah ;ac = AH (Acarreo para la Centena del resultado)
;Mostramos resultado
mov ah,02h
mov dl,ac
add dl,30h
int 21h ;Mostramos ac (Centena)
mov ah,02H
mov dl,r1
add dl,30h
int 21h ;Mostramos r1 (Decena)
mov ah,02H
mov dl,r2
add dl,30h
int 21h ;Mostramos r2 (Unidad)
.exit
end
miércoles, 7 de marzo de 2018
Aportacion de Eduardo Silva----- uso de Loop
Eduardo Silva
;Emu8086
pila segment stack 'stack'
db 100h dup (?)
pila ends
datos segment ;texto e instrucciones.
av db 13,10,' Presione 1 o 2 ',13,10,'$'
msj db 13,10,' Lenguaje ensamblador ',13,10,'$'
m db 13,10,' Lenguaje de Interfaz ',13,10,'$'
datos ends
codigo segment ;segmento de codigo
assume cs:codigo, ss:pila, ds:datos
inicio:
mov ax, datos
mov ds, ax
lea dx,av
mov ah,9h
int 21h
mov ah,08 ;pausa y captura datos 08 espera que el usuario presione una tecla
int 21h
cmp al,49 ;verifica si presiono 1
je pOpcion
cmp al,50 ;verifica si presiono 2
je sOpcion
jmp fin ;finaliza en caso de no recibir respuesta de enter o 2
fin:
mov ax,4c00h
int 21h
pOpcion:
CALL PO
sOpcion:
CALL SO
PO PROC NEAR
mov ah, 9h
lea dx, msj
mov cx, 12
print_LOOP:
int 21h
loop print_LOOP
mov ax,4c00h
int 21h
RET
PO ENDP
SO PROC NEAR
mov ah, 9h
lea dx, m
mov cx, 12
pLOOP:
int 21h
loop pLOOP
mov ax,4c00h
int 21h
RET
SO ENDP
codigo ends
end inicio
;Emu8086
pila segment stack 'stack'
db 100h dup (?)
pila ends
datos segment ;texto e instrucciones.
av db 13,10,' Presione 1 o 2 ',13,10,'$'
msj db 13,10,' Lenguaje ensamblador ',13,10,'$'
m db 13,10,' Lenguaje de Interfaz ',13,10,'$'
datos ends
codigo segment ;segmento de codigo
assume cs:codigo, ss:pila, ds:datos
inicio:
mov ax, datos
mov ds, ax
lea dx,av
mov ah,9h
int 21h
mov ah,08 ;pausa y captura datos 08 espera que el usuario presione una tecla
int 21h
cmp al,49 ;verifica si presiono 1
je pOpcion
cmp al,50 ;verifica si presiono 2
je sOpcion
jmp fin ;finaliza en caso de no recibir respuesta de enter o 2
fin:
mov ax,4c00h
int 21h
pOpcion:
CALL PO
sOpcion:
CALL SO
PO PROC NEAR
mov ah, 9h
lea dx, msj
mov cx, 12
print_LOOP:
int 21h
loop print_LOOP
mov ax,4c00h
int 21h
RET
PO ENDP
SO PROC NEAR
mov ah, 9h
lea dx, m
mov cx, 12
pLOOP:
int 21h
loop pLOOP
mov ax,4c00h
int 21h
RET
SO ENDP
codigo ends
end inicio
lunes, 5 de marzo de 2018
Aportación de Eduardo Aquino, programa con Loop
; programa en emu8086
org 100h
.model small
.stack 64
.data
mensaje db 10,13 ,"Dame un numero",10,13,"$"
mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$"
n1 db 0
n2 db 0
n3 db 0
.code
inicio: ;función inicio
mov ax,@data ;Movemos el segmento data a ax
mov ds,ax ; Movemos lo que esta en ax a ds
mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1
mov ah, 09h ;Imprimimos el primer mensaje parte 2
int 21h ;Imprimimos el primer mensaje parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupción para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n1,al ;Movemos lo que esta en al a la variable n1
mov n3,al ;Movemos lo que esta en al a la variable n3
mov ah, 09h ;imprimimos el mensaje 2 parte 1
mov dx,offset mensaje2 ;imprimimos el mensaje 2 parte 2
int 21h ;imprimimos el mensaje 2 parte 3
mov ah,01 ;pausa y espera a que el usuario presione una tecla
int 21h ;interrupcion para capturar
sub al,30h ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
mov n2,al ;Guardamos lo que el usuario preciono el n2
mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar
sub cl,1 ;le restamos 1 para que no de una vuelta de mas
call ciclo ;llamada a ciclo
ciclo: ;Funcion
call ciclo1 ;llamada el procediemto 1
ciclo1 proc near : ;procedimiento ciclo
mov al,n1 ;potencia parte 1
mov bh,n3 ;potencia parte 2
mul bh ;potencia parte 3
mov n1,al
loop ciclo1 ;loop a la funcion ciclo
mov ax,4c00h ;fin parte 1
int 21h; fin parte 2
fin: ;funcion fin
mov ax,4c00h ;funcion que termina el programa
int 21h
end inicio