lunes, 29 de junio de 2020

Implementación en C++ del método burbuja en los métodos de ordenación


//C++
#include "iostream"

using namespace std;

int main()
{
//Ordena Arreglo usando el método burbuja del video
//Codificador: Adalberto Monar
int V[] = { 7, 1, 5, 3, 2 };
for (int k = 0; k < (sizeof(V) / sizeof(int)); k++) {
switch (k) {
case 0: cout << "{ " << V[k] << ", "; break;
case (sizeof(V) / sizeof(int)) - 1: cout << V[k] << " }"; break;
default: cout << V[k] << ", "; break;
}
}
cout << "\n\n";

int TEMPORAL;
for (int i = (sizeof(V) / sizeof(int)) - 1; i > 0; i--) {
for (int k = 0; k < i; k++) {
if (V[k] > V[k + 1]) {
TEMPORAL = V[k];
V[k] = V[k + 1];
V[k + 1] = TEMPORAL;
}
}
}

for (int k = 0; k < (sizeof(V) / sizeof(int)); k++) {
switch (k) {
case 0: cout << "{ " << V[k] << ", "; break;
case (sizeof(V) / sizeof(int)) - 1: cout << V[k] << " }"; break;
default: cout << V[k] << ", "; break;
}
}

cout << "\n\nPulsa tecla para finalizar";
cin.get();

return 0;
//Fin
}

lunes, 1 de junio de 2020

Como - hacer una ventana - centrar una ventana - crear una casilla de verificación - validar - validación de tipo entero en python

Consola:
 
 

#IniciaCódigo:

import tkinter as tk
from tkinter import ttk

#función
def centrarmiventana(an, al):
    anchopantalla = miventana.winfo_screenwidth()
    altopantalla = miventana.winfo_screenheight()
    pos_x = (anchopantalla - an) / 2
    pos_y = (altopantalla - al) / 2
    miventana.geometry("%dx%d+%d+%d" %(an,al,pos_x,pos_y))

#Otra función
def escribirvalor():
    texto = tk.StringVar()
    texto.set(str(my_boolean_var.get()))
    etiqueta.config(text=texto.get())


while True:
    try:
        ancho = int(input("Ingrese ancho(>=400 y <=1366) para mi ventana: "))
        if ancho >= 400 and ancho <=1366 :
            break
        else:
            print("Valor fuera del rango")
    except ValueError:
        print("Error --)) NO es entero")

while True:
    try:
        alto = int(input("Ingrese alto(>=40 y <=768) para mi ventana: "))
        if alto >= 40 and alto <= 768 :
            break
        else:
            print("Valor fuera del rango")
    except ValueError:
        print("Error --)) NO es entero")


miventana = tk.Tk()
print(str(miventana.winfo_screenwidth()) + ' x ' + str(miventana.winfo_screenheight()))
miventana.title("Ejercicio: Centrar mi ventana")
miventana.minsize(400,40)
centrarmiventana(ancho,alto)
my_boolean_var = tk.BooleanVar()
etiqueta = tk.Label(miventana)

my_checkbutton = ttk.Checkbutton(text="Haga clic para conocer el valor de la casilla",
    variable=my_boolean_var,
    command=escribirvalor)

my_checkbutton.pack()
etiqueta.pack()
miventana.mainloop()

#FinCódigo

miércoles, 5 de diciembre de 2018

Como redondear redondeo de un numero en java.- Código


//Inicia JavaAdal_Redondeo.java
package paquetedelproyecto;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import java.util.Scanner;

/**
 * @author Adalberto Monar
 */

public class JavaAdal_Redondeo {
 
    public static double redondear_i(double p_value_i, int p_places_i) {
     
        if (p_places_i < 0) throw new IllegalArgumentException();
     
        BigDecimal bd_i = new BigDecimal(p_value_i);
        String[] parts_i = bd_i.toString().split("\\.");
        BigDecimal pe_i = new BigDecimal(parts_i[0]);
        BigDecimal pd_i;
        pd_i = bd_i.subtract(pe_i);
        int ceros_i = (int) Math.pow(10,p_places_i+5);
        BigDecimal BD_ceros_i = new BigDecimal(ceros_i);
        pd_i = pd_i.multiply(BD_ceros_i);
        //System.out.println(pd_i);
        pd_i = pd_i.setScale(0, RoundingMode.HALF_UP);
        int pote10_i;
        pote10_i = (int)Math.pow(10,5);
        BigDecimal diez_i = new BigDecimal(pote10_i);
        pd_i = pd_i.divide(diez_i);
        //System.out.println(pd_i);
        pd_i = pd_i.setScale(0, RoundingMode.HALF_UP);
        BD_ceros_i = BD_ceros_i.divide(diez_i);
        pd_i = pd_i.divide(BD_ceros_i);
        BigDecimal new_bd_i;
        new_bd_i = pe_i.add(pd_i);
        return new_bd_i.doubleValue();

    } 
 
    public static void redondeo_main(String[] args) {
        // TODO code application logic here

        Double ingvalor = 0.00;
        Double redondeo = 0.00;
             
        Scanner leer = new Scanner (System.in);
        leer.useLocale(Locale.US);
        System.out.println("Redondeo");
        System.out.print("Ingrese Valor Double: ");
        while (!leer.hasNextDouble()) {
            System.out.println("Un número Double con . !Por favor!");
            System.out.print("Ingrese Valor Double: ");
            leer.nextLine();
        }
        ingvalor = leer.nextDouble();
     
        System.out.println("");
     
        DecimalFormatSymbols simbolos = DecimalFormatSymbols.getInstance(Locale.US);
        DecimalFormat dF1d = new DecimalFormat("0.0",simbolos);
        redondeo = redondear_i(ingvalor,1);
        System.out.println("A 1 decimal : " + dF1d.format(redondeo));
        DecimalFormat dF2d = new DecimalFormat("0.00",simbolos);
        redondeo = redondear_i(ingvalor,2);
        System.out.println("A 2 decimales : " + dF2d.format(redondeo));
        DecimalFormat dF3d = new DecimalFormat("0.000",simbolos);
        redondeo = redondear_i(ingvalor,3);
        System.out.println("A 3 decimales : " + dF3d.format(redondeo));

    }

}
//Finaliza JavaAdal_Redondeo.java


/* Archivo Fuente java con el método main(String[] args)

En SuPublicClassPrincipal.java incluir dentro de sus sentencias

import static paquetedelproyecto.JavaAdal_Redondeo.redondeo_main;

public class SuPublicClassPrincipal {

     public static void main(String[] args) {

           //Llama al método
           redondeo_main(new String[0]);

     }

}
*/

lunes, 21 de octubre de 2013

Como hacer un cronometro en java o Como hacer un reloj en java.- Código

Pantalla
//Inicio Cronometro_Reloj.java
package paquetedelproyecto;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.util.Calendar;


public class Cronometro_Reloj extends JFrame {

    JLabel tiempo;
    public static String h0, m0, s0;

   
    public Cronometro_Reloj() {
       
        setTitle("Cronómetro Reloj");
        setSize( 260, 104);
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        setLayout( new BorderLayout() );

        //Etiqueta donde se colocara el tiempo
        tiempo = new JLabel( h0+":"+m0+":"+s0 );
        tiempo.setFont( new Font( Font.SERIF, Font.BOLD, 50 ) );
        tiempo.setHorizontalAlignment( JLabel.CENTER );
        tiempo.setForeground( Color.BLUE );
        tiempo.setBackground( Color.WHITE );
        tiempo.setOpaque( true );
        add( tiempo, BorderLayout.NORTH );
       
        setVisible( true );
       
        Integer horas, minutos, segundos;
        horas = Integer.parseInt(h0);
        minutos = Integer.parseInt(m0);
        segundos = Integer.parseInt(s0);

        String hor=h0, min=m0, seg;
       
        long t1, t2;
        String st1, st2;
        Calendar ahora1 = Calendar.getInstance();
        t1 = ahora1.getTimeInMillis();
        st1 = Long.toString(t1);

        try {
           
            //Mientras cronometroActivo sea verdadero entonces seguira
            //aumentando el tiempo

            while( true ) {

                //La siguiente linea es para hacer un wait ayuda
                //para la precisión del siguiente proceso.- demorar un segundo
                Thread.sleep( 500 );
               
                //Esto es lo que provoca la demorada del segundo exacto
                Calendar ahora2 = Calendar.getInstance();
                t2 = ahora2.getTimeInMillis();
                st2 = Long.toString(t2);
                if (st2.charAt(st2.length()-4)!=st1.charAt(st1.length()-4)) {
                    segundos += 1;
                    Calendar ahora3 = Calendar.getInstance();
                    t1 = ahora3.getTimeInMillis();
                    st1 = Long.toString(t1);
                }   
                //fin de lo que provoca la demorada del segundo exacto
               
                if ( segundos == 60 ) {
                    segundos=0;
                    minutos += 1;
                }   
                if( minutos == 60 ) {
                    minutos = 0;
                    horas++;
                }       
               
                //Los siguientes if's es para colocar el cero
                //a los numeros menores a 9
                if( horas < 10 ) hor = "0" + horas;
                else hor = horas.toString();
              
                if( minutos < 10 ) min = "0" + minutos;
                else min = minutos.toString();

                if( segundos < 10 ) seg = "0" + segundos;
                else seg = segundos.toString();

                tiempo.setText( hor + ":" + min + ":" + seg );
            }
        }catch(Exception e){}
    }
   
    //procedure principal
    public static void reloj_main(String[] args)
    {
        h0="00";
        m0="00";
        s0="00";
       
        //Lo siguiente agarrar en ejecución MS-DOS
        //parámetros definidos separados por espacios
        if (args.length > 0) {
            h0 = args[0];
            m0 = args[1];
            s0 = args[2];
        }
        //
       
        //Run Cronometro_Reloj()
        new Cronometro_Reloj();       
    }
    //
   
}//Fin Cronometro_Reloj.java


/* Archivo Fuente java con el método main(String[] args)

En SuPublicClassPrincipal.java incluir dentro de sus sentencias

import static paquetedelproyecto.Cronometro_Reloj.reloj_main;

public class SuPublicClassPrincipal {

     public static void main(String[] args) {

           //Llama al método
           reloj_main(new String[0]);

     }

}
*/