#-*- 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
Suscribirse a:
Entradas (Atom)