viernes, 28 de septiembre de 2018

Práctica en clase #25: Suma de numeros impares desde el 100 hasta el 0 de forma regresiva.

Programa el cual contiene 2 metodos el cual uno realiza la suma, y otro evalua lo que se ingreso en la consola para ver si el numero inicial es mayor al final para que pueda ser una suma regresiva.

Al programa que realizo la maestra en el slaon, le realize algunas modificaciones las cuales al momento de realizar una evaluacion y el numero inicial es menor al final, vuelve a preguntar los valores para que sean reingresados de manera correcta, y si no es asi, realiza la suma.

#Suma de numeros impares desde el 100 hasta el 0

def evaluar(inicio,fin):
    if inicio<=fin:
        print "El numero inicial debe ser mayor al numero final"
        inicio = int(input("Ingrese el numero inicial"))
        fin = int(input("Ingrese el numero final"))
        evaluar(inicio,fin)
    else:
        sumaimpares(inicio,fin)


def sumaimpares(inicio,fin):
    suma = 0
    while inicio >= fin:
        if inicio%2 != 0:
            print inicio
            suma= suma+inicio
            inicio-=1
        else:
            inicio-=1

    print "La suma es",suma



inicio = int (input("Ingrese el numero inicial"))
fin = int(input("Ingrese el numero final"))
evaluar(inicio,fin)


Práctica en clase #24: Suma total de una serie regresiva desde el 50 hasta el 0 de 2 en 2.

Suma regresiva desde el numero 50 hasta el 0 de 2 en 2.

#calcula e imprime la suma desde el 50 hasta 20 de 2 en 2

def sumareg(inicio,fin):
    suma=0
    while inicio >= fin :
        suma=suma+inicio
        inicio -=2
    print "La suma total es",suma

inicio = int (input("Introduce un numero inicial"))
fin = int (input("Itroduce un numero final"))

sumareg(inicio,fin)



Práctica en clase #23: Suma total de todos los numeros ingresando el numero a iniciar, y terminando en otro numero ingresado.

Veremos un programa el cual realizara la suma de todos los numeros comprendidos entre 2 numeros especificados.


def sumanum(numeroin,numerofin):
    suma=0
    while numeroin<=numerofin:
        suma = suma + numeroin
        numeroin+=1
    print "La suma total es",suma

numeroin = int (input("Introduce el primer numero"))
numerofin = int (input("Introduce el numero final"))

sumanum(numeroin,numerofin)


Práctica en clase #22: Serie de numeros de 4 en 4 utilizando for

Aqui veremos como utilizar la sentencia for para hacer una serie de 4 en 4.


def serie(numeroin,numerofin):
    i=numeroin
    for i in range (i,numerofin,4):
        print i




numeroin = int (input("Dame el numero inicial"))
numerofin = int (input("Dame el numero final"))

serie(numeroin,numerofin)

Se declarar dentro del for el inicio, el fin, y de cuanto en cuanto ira separando la serie que hara el for.


Práctica en clase #21: Serie de numeros de 4 en 4 utilizando while.

Serie de numeros hecha desde un numero ingresado, hasta un numero especificado utilizand while.

def serie(numeroin,numerofin):
    while (numeroin<=numerofin):
        print "Serie",numeroin
        numeroin +=4




numeroin = int(input ("Dame el numero inicial"))
numerofin = int(input ("Dame el numero final"))

serie(numeroin,numerofin)




Práctica en clase #20: Imprimir numeros impares utilizando while.

Comoel programa anterios veremos como se utiliaza el if ademas de esta vez utilizar while para crear ciclos e identificar numeros impares y pares.


#imprime numero impar
def sacarimpar(numeroin,numerofin):
    while numeroin<=numerofin:
        residuo = numeroin%2
        if residuo !=0:
            print "El numero es impar",numeroin
        else:
            print "El numero es par",numeroin
        numeroin = numeroin+1


numeroin= int (input("ingresa el numero inicial"))
numerofin = int (input("Ingresa el numero final"))
sacarimpar(numeroin,numerofin)


Práctica en clase #19: Imprimir numeros impares utilizando for.

Con este programa se ve como se utilizan los if y for mas que nada para poder identificar numeros pares o impares e imprimirlos

#imprimir numeros impares
def imprimeimp(inicio,fin):
    i=inicio
    for i in range(i, fin):
        residuo=inicio%2
        if residuo !=0:
            print "numero impar", inicio
        inicio=inicio+1

inicio=(input("Dame un numero nicial"))
fin=int (input("Dame el numero saber impar"))

imprimeimp(inicio, fin)


Podemos ver el uso del for el cual se uiliza de otra manera a diferencia de Java y de C++, lenguajes los cuales estaba costumbrado a utilizar.


Práctica en clase #18: Calculadora basica hecho en clases.

En esta enrada mostrare un codigo que hicimos en clase en base a el programa de un compañero que es parecido, el codigo es el siguiente:

import math
def calculo():
    opc2=1
    while opc2 != 4:
        opc=0
        print "Menu de opciones"
        print "Seleccione la opcion"
        print "1.- Determinar si el numero es par"
        print "2.- Sacar seno y coseno de dos numeros"
        print "3.- Logaritmo de un numero"
        print "4.- Salir"
        opc= int (input("Opcion:"))

        if opc == 1:
            print "Ingrese un valor:"
            a= int(input())
            residuo=a%2
            if residuo == 0:
                print "Es un numero par"
            else:
                print "Es un numero impar"
        elif opc == 2:

            a=int (input("Ingrese un valor:"))
            b=int (input("Ingrese otro valor:"))

            sin1=math.sin(a)
            cos1=math.cos(a)
            sin2=math.sin(b)
            cos2=math.cos(b)

            print "Seno del valor 1: ",sin1
            print "Coseno del valor 1: ",cos1
            print "Seno del valor 2: ",sin2
            print "Coseno del valor 2: ", cos2

        elif opc == 3:
            a= int(input("Ingrese un valor para logaritmo: "))
            print "El logaritmo del valor es: ", math.log10(a)
        else:
            opc2=4

calculo()

Lo que hace el program es un menu con 4 diferentes opciones las cuales cada una realiza una operacion diferentes.
Opciones:

  1. Determina si el numero es par o impar.
  2. Saca el seno y el coseno de 2 numeros ingresados.
  3. Saca el logaritmo de un numero ingresado.
  4. Salir o cerrar del programa.



jueves, 27 de septiembre de 2018

Lluvia morada dentro de pycharm con Python

Lluvia morada

Buscando como recrear la lluvia morada dentro de el Programa Processing, del cual se hablo dentro de otra entrada, pero en lenguaje Pyhton, encontre un codigo el cual aclaro que no es mio, si no que lo encontre investigando en la internet el cual el codigo se puede utilizar dentro del entorno Pycharm.

Lo unico que se tiene que hacer antes de poder correrlo, es descargar la libreria pygame ya que con esta libreria es la que se utilizo para crear este programa.

El codigo es el siguiente:


import pygame, sys, random, time
from pygame.locals import *

FPS = 30
width = 1000
height = 700
scale = 250
cells = int((width + height) / 2 / scale)
drops = 2000
dropSpeed = 3
drift = 1  # wobbly deccent
driftChance = 4  # integer 1 - 10 = %
droph = -(height + scale)

#                      R    G    B      Opacity
BLACK = (230, 230, 250)
PURPLE = (110, 10, 90)
PURPLEFADE1 = (int(110 * .80), int(10 * .80), int(90 * .80))
PURPLEFADE2 = (int(110 * .66), int(10 * .66), int(90 * .66))
PURPLEFADE3 = (int(110 * .33), int(10 * .33), int(90 * .33))

bgColor = BLACK


def main():
    global FPSClock, canvas, rain
    rain = []
    pygame.init()
    FPSClock = pygame.time.Clock()
    canvas = pygame.display.set_mode((width, height))
    pygame.display.set_caption("Let it rain!")

    canvas.fill(bgColor)
    letitRain()


def drawRain(x, y, d):
    sizeDrop = cells / (drops / 100) * d * 2

    rain_alpha = pygame.Rect(x, y, sizeDrop, sizeDrop)
    pygame.draw.rect(canvas, PURPLE, rain_alpha)

    rain_beta = pygame.Rect(x, y - sizeDrop, sizeDrop, sizeDrop)
    pygame.draw.rect(canvas, PURPLEFADE1, rain_beta)

    rain_omega = pygame.Rect(x, y - sizeDrop * 2, sizeDrop, sizeDrop)
    pygame.draw.rect(canvas, PURPLEFADE2, rain_omega)

    rain_delta = pygame.Rect(x, y - sizeDrop * 3, sizeDrop, sizeDrop)
    pygame.draw.rect(canvas, PURPLEFADE3, rain_delta)


def initRain():
    for i in range(1, drops):
        raind = random.randrange(1, int(drops / 100))
        if i < int(drops * .5):
            raind = random.randrange(1, int(drops / 100 * .4))
        elif i < int(drops * .65):
            raind = random.randrange(1, int(drops / 100 * .75))
        elif i < int(drops * .85):
            raind = random.randrange(1, int(drops / 100 * .85))
        else:
            raind = random.randrange(1, int(drops / 100))

        rainx = random.randrange(0 + cells, width - cells, cells)
        rainy = random.randrange(droph, 0)
        drawRain(rainx, rainy, raind)
        rain.append([rainx, rainy, raind])


def moveRain():
    dropdrift = drift * cells
    for r, val in enumerate(rain):
        x, y, d = rain[r]
        speed = ((drops - (drops / 5)) / 100) * dropSpeed / cells / (d) * 2 + dropSpeed
        if random.randrange(1, 10) < driftChance:
            x = random.randrange(x - dropdrift, x + dropdrift)
        else:
            x = x
        if y >= height:
            y = random.randrange(droph, 0)
            x = random.randrange(0 + cells, width - cells, cells)
        if x > width or x < 0:
            x = random.randrange(0, width)
        rain[r] = [x, y + speed, d]
        drawRain(x, (y + speed), d)


def letitRain():
    initRain()
    print("Chance of precipitation = 100%")
    # letitRain loop
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                print("Rain god ED")
                pygame.quit()
                sys.exit()

        canvas.fill(bgColor)
        moveRain()
        pygame.display.update()
        FPSClock.tick(FPS)


main()


Corriendo verremos lo siguiente dentro de Pycharm


martes, 25 de septiembre de 2018

Programa Processing

Es un software flexible tipo libro de bosetos, o "Sketchbook", y un lenguaje para poder aprender como codificar con el contexto de artes visuales, desde 2001 Processing a estado promoviendo el conocimiento practico de software dentro de las artes visuales y el conocimiento practico dentro de las tecnologias.
Existen miles de estudiantes, artistas, diseñadores, investigadores, y gente con el simple hobby que utilizan Processing para aprender y crear prototipos.

>>Descarga libre y codigo abierto
>>Programas interactivos con salidas 2D, 3D, PDF o SVG
>>Mas de 100 librerias extendidas hasta el nucleo del programa
>>Bien documentado con varios libros disponibles

Aqui se mostrara un video de bienvenida a el programa Processing version 3 con algunos ejemplos de lo que se puede llegar a hacer con este programa

Welcome to Processing 3 from Processing Foundation on Vimeo.

Pagina en donde podemos encontrar Processing.
https://processing.org/

Interfaz de Processing 3

Veamos como es la interfaz de Processing 3


Vemos como incia Processing 3
y nos da la bienvenida junto con las notas y lo nuevo que viene con el Processing 3


Veamos como es la interfaz y sus componentes
  1. En primer lugar tenemos el nombre del archivo, o programa, ademas de que processing tiene una manera un poco especial de acomodar las cosas lo hace un poco mas limpia, al poder abrir ventanas extras las cuales son parte del mismo programa y compila normalmente pero nos da mas limpieza al momento de programar.
  2. Tenemos nuestro cuadro de texto, o nuestro cuadro de codigo en donde podremos hacer nuestros programas.
  3. Boton para poder compilar y correr el programa que estamos haciendo.
  4. Un boton para detener la corrida del programa.
  5. Consola en donde se nos mostrara parte del programa si no es nada visual.
  6. Pestaña de errores en donde se nos informara de errores que tenga el programa.
  7. Boton del Debuggeador de Processing.
  8. Pestaña en donde elegiremos el modo de programacion que querremos usar dentro de Processing.




Dentro de esta ultima pestaña podremos elegir tanto el lenguaje Java como otro modo que poddamos descargar dentro de Processing.
Se encuentra un modo de Python.



Se puede instalar el modo Python para poder programar en Python pero yo principalmente utilizare Java pues viendo algunos video tutoriales e estado aprendiendo algo con Java.

The coding train

Un youtuber llamado Dan con su canal denominado The coding train  muestra y explica varios programas o como el los denomina "Creative coding" "Codigo creativo"(Todo explicado en ingles) que el hace dentro de Processing para generar algoritmos como simulacion de fisicas, y visualizacion de datos, ademas de otros entornos de programacion como lenguajes de programacion diferentes(JavaScript en p5.js), como retos, mientras los va haciendo y programando, va explicando claramente que es lo que hace, y que es lo que hara para que sea mejor visualmente el resultado final.

E escogido algunos de los programas que me llamaron la atencion al momento de empezar a codificar dentro de Processing.

Lluvia morada en honor a Prince

Programa hecho por Dan del canal The coding train reto el cual hizo en honor a Prince Purple Rain. pueden ver su video haciendo click aqui en donde explica de manera muy animada y amena el como va programando mientras se le ocurren mas ideas. 

Sin embargo explicare mas o menos paso a paso este programa que me gusto mucho.


En este programa hecho en Processing solamente se crea lluvia de color morada en honor a prince y su cancion Purple Rain. Se ve simple, sin embargo si es un poco mas complicado de lo que se ve, viendo el codigo de Processing es simple sin embargo si se tiene que usar logia para entenderlo.

Empecemos con el codigo, primero que nada debemos tener en cuenta lo siguiente
>(138, 43, 226) Color para la lluvia
>(230, 230, 250) Color para el fondo

Empecemos a programar.

Primero que nada lo que necsitamos hacer es hacer 2 funciones

void setup(){
  
}


void draw(){
  
}


setup() y draw() en donde dentro de setup() utilizaremos la funcion size() para darle un tamaño a la ventana que crearemos y  dentro de draw() utilizaremos background() para darle un color al fondo y utilizaremos el color de fondo que predefinimos anteriormente veamos:

void setup(){
  size(640, 360);
}


void draw(){
  background(230, 230, 250);
}

Simplemente corriendo este pequeño programa podemos ver la ventana con el color de fondo que pusimos.













Despues para poder crear la lluvia lo que se necesitara hacer es crear un objeto despues crear un array con muchos de esos objetos.
.
Lo que haremos sera crear una nueva pestaña en donde declararemos una nueva clase "Drop" o "Gota"utilzando class siendo una plantilla para poder crear objetos.

class Drop{
  
  
    
}

Ahora este objeto le declaramos que tendra una "x" y un "y" como plano cartesiano ademas de una funcion llamada "fall()" o "caer()" en donde se le dara los valores la gota para que caiga, ademas de otra funcion llamada "show()" o "mostrar()" la cual utilizaremo para renderizar el objeto y se muestre en pantalla.

class Drop{
  float x;
  float y;
  
  void fall(){
    
  }
  
  void show(){
    
  }
  
}

La gota la dibujaremos como una linea lo cual declararemos dentro de la funcion "show()"
line(x,y,x,y+10);
lo cual a la linea le asignaremos un valor en x1 en y1 ademas de darle valores en x2 y y2, pero en y2 se le suman 10 pixeles para poder hacer alargada la gota.
despues utilizaremos la funcion stroke() para poder darle color a la gota y utilizaremo el color que tenemos predefinido (138, 43, 226).

void show(){
  stroke(138, 43, 226);
  line(x,y,x,y+10);
}

Ahora dentro de la funcion fall() declararemos

void fall(){
  y = y + yspeed;
}

Ahora para que esto pueda funcionar daremos valores a las variables.

class Drop{
  float x = width/2; //Para que sea a la mitad de la pantalla
  float y = 0; //Para que inicie arriba en la pantalla
  float yspeed = 1; //Valor solo para ver como funcionara con la velocidad de caida
  
  void fall(){
    y = y + yspeed;
  }
  
  void show(){
    stroke(138, 43, 226);
    line(x,y,x,y+10);
  }
  
}

Ahora volvemos a la primera pestaña para poder crear los objetos necesarios para crear la lluvia ademas de añadir las funcones creadas dentro de la clase Drop.
Creamos una variable desde la clase Drop, dentro de la funcion setup() creamos el objeto Drop, y dentro de la funcion draw() utilzamos las funciones creadas dentro de la clase Drop en el objeto creado para dibujarlas dentro de la ventana.

Drop d;

void setup(){
  size(640, 360);
  d = new Drop();
}


void draw(){
  background(230, 230, 250);
  d.fall();
  d.show();
}

Si corremos esto podemos ver como funciona.
Y esto sera lo que veremos.



Como podemos ver estamos avanzando pero solamente es una gota, necesitamos muchas gotas.
Para poder tener muchas gotas haremos lo siguiente, en la primera pestaña crearemos un array para crear demasiados objetos.

Drop[] drops = new Drop[100];

void setup(){
  size(640, 360);
  for (int i = 0; i < drops.length; i++){
  drops[i] = new Drop();
  }
}


void draw(){
  background(230, 230, 250);
  for (int i = 0; i < drops.length; i++){
    drops[i].fall();
    drops[i].show();
  }
}

Creamos un array de objetos con Drop[] drops = new Drop[100];
Ademas de crear algunos ciclos para las diferentes gotas de lluvia que se crearan.
Se vera lo siguiente



Como podemos ver se crearon las 100 gotas de lluvia, pero se ve igual a como se veia anteriormente, sin embargo lo que esta pasando es que las 100 gotas se crean en el mismo lugar a la misma velocidad entonces haremos lo siguiente.
Dentro de la segunda pestana de Drop haremos algunos cambios a las variables.
x = random(width); //Hara que las lineas "gotas" creadas se creen aleatriamente a lo largo de la pantalla
y = random(-200,-100); //Para que las gotas se creen aleatoriamente fuera de la pantalla entre -200 y -100


class Drop{
  float x = random(width);
  float y = random(-200,-100);
  float yspeed = 1;
  
  void fall(){
    y = y + yspeed;
  }
  
  void show(){
    stroke(138, 43, 226);
    line(x,y,x,y+10);
  }
  
}


Vemos como ahora las gotas de luvia taradn mas en salir dentro de pantalla ya que le dimos valores en y, ademas de que ahora las gotas aparecen aleatoriamente a lo largo de la pantalla por los valores en x, si le damos a correr de nuevo podemos notar que las gotas saldran en diferentes lugares y no siempre donde mismo.
Haremos algunas modificaciones y agregaremos algo de codigo para poder mejorar el como se ve la lluvia.
Ademas de en la primera pestaña cambiar en el array, en vez de solo 100 objetos, cambiarlo a 500 para poder observar mas gotas de lluvia.
Drop[] drops = new Drop[100]; > Drop[] drops = new Drop[500];

class Drop{
  float x = random(width);
  float y = random(-500,-50); //Dar mas espacio para que aparezcan las gotas de lluvia.
  float yspeed = random(4, 10); //Para que algunas gotas de lluvia tengan mas o menos velocidad de caida.
  float len = random(10, 20); //variable len para hacer que algunas lineas sean mas gruesas que otras
  
  void fall(){
    y = y + yspeed;
    yspeed = yspeed + 0.2; //Una variable que podoriamos decir que representa gravedad, mientras mas caen mas sube la velocidad.
    
    if(y > height){ //Para hacer que vuelvan a reaparecer las gotas de lluvia desde arriba.
      y = random(-200,-100); //Al momento de reaparecer aparecen en nuevas locaciones y sea aleatorio
      yspeed = random(4, 10); //Para que vuelvan a obtener su valor de la velocidad de caida.
    }
  }
  
  void show(){
    stroke(138, 43, 226);
    line(x,y,x,y+len); //Se agrega la variable len para hacer que algunas lineas sean mas gruesas que otras
  }
  
}


Como podemos observar, ya podemos distinguir algo de lluvia morada y podriamos decir que nuestro programa esta completo, sin embargo hay algunas modificaciones que se le pueden hacer para que nuestra lluvia morada, sea un poco mas realista, como por ejemplo, agregar ciertos valores para que exitsa un poco de "3D" no es 3D como tal,  ya que pondremos que ciertas gotas se vean mas gruesas si estan cerca, que si estan lejos, ademas de la velocidad en la que caen, caeran as rapido, cerca que de lejos.
El codigo final modificado es el siguiente:

Drop[] drops = new Drop[500];

void setup(){
  size(640, 360);
  for (int i = 0; i < drops.length; i++){
  drops[i] = new Drop();
  }
}


void draw(){
  background(230, 230, 250);
  for (int i = 0; i < drops.length; i++){
    drops[i].fall();
    drops[i].show();
  }
}

class Drop{
  float x = random(width);
  float y = random(-500,-50);
  float z = random(0, 20); //Dar un valor z a las gotas entre 0 y 20
  float len = map(z, 0, 20, 10, 20); //Hacer mas larga las gotas de lluvia mientras mas cerca esten 0(lejos) y 20(cerca)
  float yspeed = map(z, 0, 20, 1, 20); //Mientras mas cerca mas rapido caeran las gotas
  
  void fall(){
    y = y + yspeed;
    float grav = map(z, 0, 20, 0, 0.2); //Mientras mas cerca, mas gravedad afectara a las gotas de lluvia
    yspeed = yspeed + grav;
    
    if(y > height){ 
      y = random(-200,-100);
      yspeed = random(4, 10);
    }
  }
  
  void show(){
    float thick = map(z, 0, 20, 1, 3); //Hace 1 pixel mas amplio, la gota mientras mas lejos este, y la hace 3 pixeles mas amplia mientras mas cerca
    strokeWeight(thick);
    stroke(138, 43, 226);
    line(x,y,x,y+len);
  }
  
}



Al final de su video el deja en claro que es lo mas cercano que pudo a crear lluvia morada, ya que no es un experto diseñador visual, ademas deja esta plantilla para que nosotros, o ya sea la usemos para arender a crear lluvia morada y dejarlo ahi, o agregarle o modificarle mas si es que podemos para hacerla mas cercana a una lluvuia morada, si vemos los comentarios del video podemos ver diferentes ideas de diferentes personas las cuales pueden resultar siendo maravillosas dentro del programa.

En lo personal modifique el programa haciendo lo mas parecido para mi a lluvia morada, con menos gotas creadas y haciendo que las gotas mas cercanas se muevan un poco mas lento que las que se van creando por detras, ya que las gotas lejanas son las que mas llegamos a ver en un dia de lluvia a las mas cercanas.

Codigo:


Drop[] drops = new Drop[300];

void setup() {
  size(640, 360);
  for (int i=0; i<drops.length; i++) {
    drops[i]=new Drop();
  }
}

void draw() {
  background (230, 230, 250);
  for (int i=0; i<drops.length; i++) {
    drops[i].show();
    drops[i].fall();
  }
}
class Drop {
  float x=random(width);
  float y=random(-500, -50);
  float z=random(0, 20);
  float len= map(z, 0, 20, 10, 20);
  float yspeed=map(z, 0, 20, 10, 3);
  void fall() {
    y= y + yspeed;
    //gravedad
    float grav=map(z, 0, 20, 0.2, 0.05);
    yspeed = yspeed+grav;

    if (y> height) {
      y=random(-200, -100);
      yspeed=map(z, 0, 20, 10, 3);
    }
  }

  void show() {
    float thick = map(z, 0, 20, 1.5, 2);
    strokeWeight(thick);
    stroke(138, 43, 226);
    line(x, y, x, y+len);
  }
}


Se que no es perfecto, pero yo tampoco soy un diseñador grafico.

jueves, 20 de septiembre de 2018

Práctica en clase #17: Tarea 3 programas hechos con lo visto en clase 19/09/2018

Programa que determina el mayor entre 3 numeros.


print "Programa que identifica el mayor menor entre 3 numeros"

def comparar():
    if a > b and a > c:
        print "El numero mayor es ",a
    elif b > c and b > a:
        print "El numero mayor es ",b
    else:
        print "El numero mayor es ",c

a=input("Ingrese un primer numero: ")
b=input("Ingrese un segundo numero: ")
c=input("Ingrese un tercer numero: ")
comparar()





Programa que obtiene la raiz cuadrada de un numero ingresado


import time
from math import *

a=input("Ingrese un numero para sacarle la raiz cuadrada: ")
time.sleep(3)
b= sqrt(a)
print "La raiz cuadrada de ",a," es ",b






Programa que suma los enteros de numeros con punto decimal utilizando el metodo ceil()


from math import *

print "Ceil devuelve el numero entero mas cercano del numero ingresado"
a= input("Ingrese un numero con punto decimal: ")
b= input("Ingrese un numero con punto decimal: ")
c= input("Ingrese un numero con punto decimal: ")
d= input("Ingrese un numero con punto decimal: ")

suma=ceil(a)+ceil(b)+ceil(c)+ceil(d)

print "La suma de los valores enteros de",a,b,c,d,"es",suma




La suma de los valores da un total de 17 puesto que la mayoria del tiempo el metodo ceil() con solo poner un 10.1 lo pasa a ser un 11

entonces
5.98       =       6.00
1.62       =       2.00
4.23       =       5.00
3.15       =       4.00
14.98             17.00

Práctica en clase #16: Programas basicos dentro de Pycharm utilizando python

Ejemplo #1: Logaritmo de la suma de 2 numeros.

Programa simple en donde se utiliza libreria math para utilizar el metodo de log() y sacar el logaritmo de 2 numeros.

import time
from math import *
print "Ingresa un valor"
x=int (input())

print "Ingresa segundo valor"
y=int (input())

s = log(x+y)
print "El resultado es: ", s
time.sleep(5)

En donde se importa  la libreria math ademas de la libreria time para dar pasuas de segundos al programa.
Se piden 2 valores los cuales se ingresaran en la consola y se utilia el metodo log().
Se imprime el resultado y se le hace esperar 5 segundos apra finalizar el programa.



Ejemplo #2: Suma de 2 numeros.

Con este program simple solo se busca hacer y desplegar la suma de 2 numeros ingresados desde la consola.


import time
print "Ingresa un valor"
x=int (input())

print "Ingresa segundo valor"
y=int (input())

suma = x+y
print "El resultado es: ", suma
time.sleep(5)



Como es una suma basica, o mas bien, una operacion basica, no se debe importar la libreria de math, vemos como solo se piden los valores en consola y al ingresarlos hara la suma de los dos valores.


Ejemplo #3: Factorial de un numero, y metodo ceil().

En este programa utilizaremos la libreria math para poder sacar el factorial de un numero ademas de utiliar el metodo ceil()

Por lo que pude investigar y lo que llegue a entender, el metodo ceil() lo que hace es imrpimir el numero entero mas cercano al numero que se le da a la variable o el valor que se le ingresa.

import math
a=10

print math.factorial(a)
print math.ceil(a)




Se puede ver en el codigo como solo se importa la libreria math, a una variable se le da el valor de 10, y se le saca el factorial, ademas de utilizar el metodo ceil(), el cual al imprimir el numero entero mas cercano manda el mismo 10.



Ejemplo #4: Verificar caracteres.

Con este programa vemos como se pueden comparar caracteres.

print "ingrese nombre"
nombre = raw_input()

if nombre == "yoly":
    print ("es usted administrador")
else:
    print ("Usted no es administrador")




Lo que hace el programa basicamente es pedir un nombre, el cual se comparara dentro de un if e imprimira si es administrador o no lo es.



Ejemplo #5: Programa que utiliza if y libreria time

Con este programa vemos como se utiliza un if ademas, podemos observar el como funciona el metodo sleep de la libreria time para atrasar el proceso del programa por cierto tiempo en segundos

import time
print "Programa que usa if"
print "ingrese su nombre"
nombre = raw_input()
print "Cargando password"
time.sleep(1)
print "*"
time.sleep(2)
print "**"
time.sleep(3)
print "***"
time.sleep(4)
print "****"
time.sleep(5)
print "*****"
print "Cargando completada"
if nombre == "yoly" :
    print "usted es administrador"
else:
    print "Usted no es administrador"




Se puede observar como se utiliza el metodo sleep para atrasar la carga de la contraseña y cada vez nos hace esperar mas iniciando desde 1 segundo hasta los 5 segundos, despues comparando si lo que introducimos es igual, y desplegando si es o no es administrador.



Ejemplo #6: Numero par o impar.

Aqui veremos como hcer un programa para saber si un numero es par o impar, pero como se podra ver en este programa no se utilizara ninguna libreria.

h = input('Introduzca un numero :')
if h%2 == 0 :
    print "Este numero es par"
else:
    print "Este numero es impar"




Como pdemos ver se utiliza otro metodo para ingresar datos dentro de consola, al ingresar un dato este numero se divide entre 2 hasta que no se pueda dividir mas y si el residuo de la divisiones es 0 si es asi imprimira que el numero es par, si no lo es, entonces sera un numero impar.



Ejemplo #7:  Conversion de decimal a binario.

Programa el cual utiliza el metodo bin() el cual convierte cualquier numero que se le ingrese en numero binario.

import time

print "Programa de conversion de decimal a binario"
print "Ingrese un numero a convertir ===>"
time.sleep(2)
a=input()
b=bin(a)
print (b)
time.sleep(3)




Podemos observar en el codigo que se importa la libreria time para poder utilizar el metodo sleep().
Se pide que se introduzca un valor el cual se ingresara al metodo bin() para poder convertirlo en un numero binario.




Ejemplo #8: Determinar por medio de la edad si es un niño, joven, adulto, o de la tercera edad.

Ene ste programa se vera como se utilizan los if anidados utilizando el elif que es diferente a otros lenguajes de programacion los cuales utilizan else if.

# -*- coding: utf-8 -*-
print "Programa que determina si eres un niño, adulto, o de la tercera edad"
edad= 30

if edad >= 0 and edad <18:
    print "Eres un niño"
elif edad >=18 and edad <27:
    print "Eres un joven"
elif edad >=27 and edad <60:
    print "Eres un adulto"
else:
    print "Eres de la tercera edad"




Se utiliza la linea # -*- coding: utf-8 -*- para que python pueda reconocer la letra ñ dentro del programa.
Se declara una variable llamada edad la cual se le da el valor deseado, en este ejemplo se le dara el valor de 30

miércoles, 19 de septiembre de 2018

Ejemplo de editor con estilo


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

martes, 18 de septiembre de 2018

Práctica en clase #15: Dibujar dentro de un canvas con el mouse tipo paint

En esta entrada veremos como crear un mini paint en el cual solo podremos pintar con el mouse
Utilizaremos el siguiente codigo:



from Tkinter import *
canvas_width=500
canvas_height=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 borrar():
    panel.delete("all")

master = Tk()
master.title('Pinta con el mouse')
panel = Canvas(master, width=canvas_width, height=canvas_height)
panel.pack(expand=YES, fill=BOTH)
panel.bind("", paint)

mensaje= Label(master, text='Presione o arrastre con le mouse')
mensaje.pack(side=BOTTOM)

boton = Button(master, text='Borrar', command= borrar)

boton.pack(side=BOTTOM)

master.mainloop()
       

from Tkinter import *
canvas_width=500
canvas_height=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 borrar():
    panel.delete("all")


master = Tk()
master.title('Pinta con el mouse')
panel = Canvas(master, width=canvas_width, height=canvas_height)
panel.pack(expand=YES, fill=BOTH)
panel.bind("", paint)

mensaje= Label(master, text='Presione o arrastre con le mouse')
mensaje.pack(side=BOTTOM)

boton = Button(master, text='Borrar', command= borrar)

boton.pack(side=BOTTOM)

master.mainloop()




Podemos ver dentro del codigo  como importamos la libreria Tkinter y creamos 2 variables las cuales dentro de ellas guardaremos el ancho y el alto dentro que querremos del Canvas.

Creamos un proceso llamado paint el cual sera para poder pintar dentro del canvas utilizando eventos, ademas de crear un ovalo dentro del panel el cual sera el encargado de dibujar como tal dentro del canvas en donde hagamos click

Creamos otro proceso el cual sera para borrar todo lo que se halla creado, o dibujado dentro del canvas.


Despues creamos una ventana Tk llamada master con un titulo "Pintar con el mouse" dentro del cual crearemos el canvas dentro de la ventana master, con las dimensiones que se tienen guardadas en variables, creamos el panel con pack() ademas para poder pintar utilizamos el bind dentro del cual citaremos el proceso de paint.

Despues se crea una etiqueta dentro de la ventana master la cual dira "Presione o arrastre cn el mouse"

Creamos un boton el cual sera el que borre todo lo dibujado dentro del canvas, el cual se desplegara en la ventana master y realizara el proceso borrar
Creamos el boton con pack.
y la ventana master.mainloop() para poder correr el codigo.

y nos mostrara lo siguiente.


jueves, 13 de septiembre de 2018

Práctica en clase #14: Creando una curva dentro de un lienzo hecho con Tkinter y Pycharm

Ahora veremos un codigo para crear un arco dentro de un lienzo en pycharm con la libreria Tkinter.

Utilizaremos el siguiente codigo:


from Tkinter import *

ventana = Tk()  # creacion de la ventana
ventana.title('Muestra un arco')
ventana.config(bg='brown')
ventana.geometry('500x500')


def arco(ventana):
    panel = Canvas(width=400, height=400, bg='red')
    panel.pack()  # inicia el panel
    panel.create_arc(0, 300, 200, 0, width=5, fill='yellow')  # coordenadas y caracteristica de la figura


boton = Button(ventana, text='Haga arco', command=lambda: arco(ventana))
boton.pack()

ventana.mainloop()
       




En el cual podemos ver como se importa la libreria Tkinter ademas de la creacion de un objeto ventana y se le pone un titulo "Muestra un arco" configuramos el fondo de la ventana como "cafe" y un area de 500 por 500 pixeles

Despues creamos un proceso en donde crearemos el arco
Dentro del proceso creamos un lienzo de 400 por 400 con fondo de color rojo y creamos el arco con el methodo create_arc() y damos las especificaciones del arco, ademas del ancho de la linea que lo formara y el color que lo rellenara.

Creamos un boton en el cual al darle click se creara el arco

y ponemos el ventana.mainloop()




Práctica en clase #13: Utilizando un archivo PNG, JPG, GIF dentro de una ventana con TKinter dentro de Pycharm

Ahora dentro de Pycharm ademas de hacer figuras y poligonos tambien podemos utilizar imagenes PNG, JPG, GIF.

Ahora veremos como dentro de un canvas podremos ver un archivo GIF.

Utilizaremos el siguiente codigo de referencia

       
from Tkinter import *

ventanaP = Tk() #crea una objeto tipo ventana
ventanaP.title("Imagen")
ventanaP.config(bg="brown") #Dar color al fondo de la ventana
ventanaP.geometry('500x500') #Dar ancho y alto de la ventana en pixeles


canvas = Canvas(width= 250, height = 250, bg = 'red')#seria el lienzo canvas donde va la fig
canvas.pack()
gif = PhotoImage(file="C:\\Users\\lyvan\\OneDrive\\Pictures\\graficacion\\GIF\\GIF.gif")
canvas.create_image(0, 0, anchor = NW, image=gif)

ventanaP.mainloop()
       



Dentro del codigo vemos como se importa el Tkinter.
Ademas se crea una ventana con titulo Imagen y fondo de color cafe y una dimension de 500 por 500 pixeles.

Se crea un canvas o un lienzo de 250 por 250 con un fondo de color rojo.
ademas añadirlo a la ventana con pack()
Agregamos el GIF con PhotoImage(file='LA RUTA EN DONDE SE ENCUENTRA LA IMAGEN O EL GIF ADEMAS DEL NOMBRE DEL ARCHIVO')

Ahora solo dentro del canvas creamos la imagen con create_image() y dentro de este  especificamos que estara en la posicion 0, 0 y se anclara a la parte NoroOeste, y le ponemos laimagen que creamos que en el ejemplo seria gif.

Por ultimo a la ventana usamos el methodo mainloop() para que funcione la ventana

y vemos el resultado de la carga de la imagen


La image fue creada en una entrada anterior



miércoles, 12 de septiembre de 2018

Práctica en clase #12: creando un archivo .gif

Creamos un archivo nuevo creamos varias imagenes simples de distintas maneras, utilizamos photoscape para crear el gif

Para poder crear un archivo gif, pues hay demasiadas maneras para poder crear uno, sin embargo aqui utilizaremos paint y photoscape X para hacer un gif simple.

Lo primero que haremos sera abrir paint en el cual haremos una imagen simple un fondo de color con letras enfrente que pueden decir cualquier cosa. de ejemplo haremos lo siguiente.

Una imagen con fondo blanco que en medio diga GRAFICACION

Hacemos lo mismo con unas 3 mas pero cambiando el fondo de color y asi tener diferentes.
Procurar guardarlas todas dentro de una misma carpeta para no perderlas.



Ahora entramos a el programa Photoscape X



Y entramos a la pestaña de Create GIF


Nos abrira una interfaz grafica en donde podremos ver nuestras carpetas y archivos ademas en donde podremos crear los GIF



Seleccionamos las imagenes que queramos para hacer el GIF, y las arrastramos al centro para poder hacer nuestro GIF y apenas las pongamos podremos observar que nuestro GIF ya esta hecho, ademas en la parte superir derecha tenemos algunas herramientas extras para configurar nuestro GIF



Ahora vamos a guardarlo, nos vamos a la esquina inferior derecha y nos vamos a guardar o save


Nos mostrara una vista previa de como se veria nuestro GIF ademas de ponerle cuanats veces se repetira, claramente lo dejaremos en siempre y damos a guardar y selecionamos en donde guardaremos nuestro GIF



Ahora podremos buscar nuestro GIF y ver si esta tal cual lo tenemos

Y este es el resultado de mi ejemplo de la creacion de un GIF


Unidad 4: Triangulo y cubo en 3D

Sintaxos del programa triangulo 3d: import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * vert...