miércoles, 28 de noviembre de 2018

 
      
 
#-*- 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()








    




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()






martes, 9 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




Manual 1 De Lenguaje de Interfaz

Abrir enlace

Manual 2 de Lenguaje de Interfaz ver interrupciones

Abrir enlace

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.. 

Ejercicios de Python:

Abrir enlace

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()









Una aportación muy interesante!!!

Del alumno: Ambrosio Isaías Laureano Castro
Si deseas Escribir código con Estilo!!!

Abrir enlace

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()

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


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 ()


miércoles, 14 de marzo de 2018

apuntes Arquitectura de un DBMS

Abrir enlace

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

lunes, 12 de marzo de 2018

colores del BIOS

https://en.wikipedia.org/wiki/BIOS_color_attributes

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

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




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

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

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