pu

Buscar este blog

lunes, 6 de enero de 2014

Funcion Valida Rut Chile Oracle

/* Bueno aki le dejo una funcion para validar el rut en oracle espero les sirva */



Anotacion: Funcion Valida Rut Chile Oracle


hay momentos en que para que inventar la rueda y ya esta inventada o no? todos los jiles dicen eso... pero te reto a que construyas tu propio algoritmo de rut tomando las consideraciones basicas que exije este.. ojala lo hicieras en algún lenguaje que no sea conocido phyton, sap o cualquier tipo de lenguaje y lo compartas con nosotros.



create or replace FUNCTION VALIDARUT(RUT IN VARCHAR2)RETURN VARCHAR2

AS

TOTAL VARCHAR2(12); -- largo total del string a ingresar (rut)

VRUT VARCHAR2(12); -- rut modificado para ajustar el largo



UNO VARCHAR2(2); -- primer valor del rut

DOS VARCHAR2(2); -- segundo valor del rut

TRES VARCHAR2(2);-- tercer valor del rut

CUATRO VARCHAR2(2); -- cuarto valor del rut

CINCO VARCHAR2(2); -- quinto valor del rut

SEIS VARCHAR2(2); -- ..

SIETE VARCHAR2(2); -- ..

OCHO VARCHAR2(2); -- ..



DV VARCHAR2(2); -- digito verificador

ULTIMO VARCHAR2(2); -- ultimo valor del rut ingresado

ESTADO NUMBER(2); -- estado simulacion booleano



BEGIN



ESTADO := 0; -- iniciamos el estado por defecto en falso

TOTAL := LENGTH(RUT); -- tomamos el total de la cadena



IF TOTAL = 12 OR TOTAL = 11 THEN -- comprovamos que no sea mayor a 12 y menor a 11

IF TOTAL <= 11 THEN -- verificamos

VRUT:=LPAD(RUT,12,0); -- agregamos 0 para ajustar a la nececidad de 12 digitos

ELSE

VRUT := RUT; -- asignamos valor final

END IF;

-- En VRUT se guardara el RUT FINAL



-- FILTRO "AMATEUR" PARA QUE EL FORMATO SEA EL CORRECTO

-- SOLO SE PERMITE EL SIGUIENTE FORMATO XX.XXX.XXX-X SI NO ES ASI DEVUELVE 0.

-- BASADO EN LOS VALORES ASCII DE CADA DIGITO.

IF

ASCII(SUBSTR(TO_CHAR(VRUT),1,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),1,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),2,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),2,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),3,1))= 46 AND

ASCII(SUBSTR(TO_CHAR(VRUT),4,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),4,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),5,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),5,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),6,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),6,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),7,1))= 46 AND

ASCII(SUBSTR(TO_CHAR(VRUT),8,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),8,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),9,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),9,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),10,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),10,1)) <= 57 AND

ASCII(SUBSTR(TO_CHAR(VRUT),11,1))= 45 AND

ASCII(SUBSTR(TO_CHAR(VRUT),12,1))>=48 AND ASCII(SUBSTR(TO_CHAR(VRUT),12,1)) <= 57

OR ASCII(SUBSTR(TO_CHAR(LOWER(VRUT)),12,1))=107 THEN --K



-- ALGORTIMO 2 DE http://www.dcc.uchile.cl/~mortega/microcodigos/validarrut/algoritmo.html

UNO := (SUBSTR(VRUT,1,1)*8); -- 1

DOS := (SUBSTR(VRUT,2,1)*9); -- 1

TRES := (SUBSTR(VRUT,4,1)*4); -- 2

CUATRO := (SUBSTR(VRUT,5,1)*5); --2

CINCO := (SUBSTR(VRUT,6,1)*6); --2

SEIS := (SUBSTR(VRUT,8,1)*7); --3

SIETE := (SUBSTR(VRUT,9,1)*8); --3

OCHO := (SUBSTR(VRUT,10,1)*9); -- 3



TOTAL := UNO + DOS + TRES + CUATRO + CINCO + SEIS + SIETE + OCHO; --SUMAMOS TODOS LOS VALORES



DV :=MOD(TOTAL,11); -- OBTENEMOS EL DV



--####-K 10699370-K

ULTIMO:= SUBSTR(VRUT,12,1); -- OBTENEMOS EL ULTIMO DIGITO DEL RUT

--- K

IF ASCII(SUBSTR(TO_CHAR(SUBSTR(LOWER(VRUT),12,1)),1,1)) = 107 THEN --OBTENEMOS SI EL VALOR INGRESADO TERMINA EN K

IF DV = 10 THEN

RETURN(1);

END IF;

END IF;

 





IF ULTIMO = DV THEN --COMPROVAMOS SI EL ULTIMO DIGITO ES IGUAL AL DV

ESTADO:=1; -- CAMBIAOS EL ESTADO DE FALSO A VERDADERO

RETURN(ESTADO); -- RETORNAMOS EL ESTADO SI TODO ESTA OK

END IF;

END IF;

END IF; -- end if, si el largo esta en el rango de 11 u 12

RETURN(ESTADO); -- RETORNAMOS EL VALOR FALSO.

END;


dejen comentarios....

3 Semestre Taller Base De Datos Santiago Sur

Bueno este semestre fue difícil pero nada imposible aqui les cuento como me fue en la asignatura mas ctm con un profesor que no voy a nombrar hasta después de mi futura titulación jajajajaj (ha).

el ramo por lo general es la caga... pero se puede aprender con mucha practica y un buen profesor. por lo que puedo decir que tuve que esforzarme con practica, videos youtube, manuales internet y mucho blog. son el fruto de un 5,6 de promedio y puedo decir que varios de mis amigos quedaron en el camino.

aca les dejo un poquito de lo que paso el #$)=??¿"...


****Taller de Base de Datos****

Programas a utilizar:
-ORACLE VER.11G
-Power Designer VER.16 o superior

1° Evaluación (20%):
-Modelamiento
-Operaciones sobre tabla
-Consultas simples, resumen, anidadas



2° Evaluación (20%):
-Privilegios
-Roles
-Perfiles

3° Evaluación (20%):
-Procedimientos Almacenados documentacion
-Procedimientos documentacion
-funciones documentacion
-Cursores documentacion
-Trigger documentacion

4° Evaluación (40%):
-Proyecto (Liquidación de Sueldo)  aki mi proyectofinal


********************

Codifica un archivo en BASE64 para se enviado por WS II

eh aki en codigo de la decodificacion...-

public string DecodificarBase64(string sBase64, String StrNombreArchivo)
        {
            // Declaramos fs para tener crear un nuevo archivo temporal en la maquina cliente.
            // y memStream para almacenar en memoria la cadena recibida.
            string sImagenTemporal = @"C:\\PDF\\" + StrNombreArchivo;
            FileStream fs = new FileStream(sImagenTemporal, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            byte[] bytes;
            try
            {
                bytes = Convert.FromBase64String(sBase64);
                bw.Write(bytes);
                return sImagenTemporal;
            }
            catch
            {
                //MessageBox.Show("Ocurrió un error al leer la imgen.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                return sImagenTemporal = @"C:\\PDF\\no_disponible.pdf";
            }
            finally
            {
                fs.Close();
                bytes = null;
                bw = null;
                sBase64 = null;
            }
        }


aki coloco el capitulo anterior donde lo codifico.

http://ingenieroinformaticainacap.blogspot.com/2012/10/codifica-un-archivo-en-base64-para-se.html





lunes, 12 de agosto de 2013

Resumen Segundo Semestre parte I

Para mi fue asqueroso este semestre sufri caleta con las distintas pruebas ingles,mate2,organizacion y metodo, programacion y base datos... pero pase todo.... no se como, pero lo pase.

Taller Programación 1: Profe: Akira Sendo :) el profe le aplica en la enseñanza es super tela sabe caleta de programación y da cualquier ayuda si presentas problemas para entregar los distintos trabajos. Las pruebas son teóricas + de programación la clave es sacarse buena nota en las primeras pruebas si es que te cuesta la programación. el profe no es muy amigable el hombre hace su pega no se trauma si cumples o no!.
la presión constante se sufre cuando entrega la prueba y te hace hacerla teórica y luego a la mitad de la hoja te entrega una programación que hay que realizar antes de la prueba... lo que termina cediendo por el poco tiempo que da para ello, lo que pide entregar antes de una hora en el día. (ejemplo prueba a las 7 y la entrega es antes de las 12) :( fome.. pero igual pase

Ingles2 Profe: Marcela Zumaran :s esta asignatura la encontré fácil solo hay que cumplir con lo que pide la hembra,... esta te habla toda la clase en ingles. Los listerin son pa' la shiet no se entienden niuna wea y pasa solo tematicas impuestas por el libro touchtone del cambrishe... jajaj :) sobre lo personal como encontre a la profe mujer secilla no le importa mucha si no cachay la materia y como la loquita hacia clases todo el dia llegaba en la noche entera cansaaa con care poto.. ap dio que habia dejado el cigarro y la pille fumando igual despues :s




viernes, 16 de noviembre de 2012

Espiando los espias

Que soy un mitomano es sabido por los que me conocen bien y por tanto, James Bond es uno de los mitos que me gusta disfrutar. Tengo sus historias de prensa, novelas, comics y por supuesto películas. Siempre me ha gustado jugar a los espías, así que... vamos a jugar hoy a ser espía.

La idea es muy sencilla. Hay que sacar usuarios de los sitios que nos espían para espiarlos nosotros a ellos. Para hacer esto vamos a jugar, al estilo quimicefa, con el ojo maligno de Sauron a.k.a. Google, los metadatos de los PDFs y las rutas de los perfiles en Windows..

Tu usuario del FBI



Tu usuario de la casa blanca



Tu usuario de Scotland Yard






Tu usuario de los carabinieri




Tu usuario de la ONU


Tu usuario de la udechile 


fuente MAligno http://www.elladodelmal.com/2009/03/espiando-los-espias.html

martes, 13 de noviembre de 2012

ARREGLOS MULTIDIMENSIONALES


ARRAYS (ARREGLOS) MULTIDIMENSIONALES

Vamos a realizar un repaso sobre conocimientos que debemos tener relativos a arrays multidimensionales. En Java es posible crear arrays con más de una dimensión, pasando de la idea de lista, vector o matriz de una sola fila a la idea de matriz de m x n elementos, estructuras tridimensionales, tetradimensionales, etc. La sintaxis será:



Tipo_de_variable[ ][ ]… [ ]   Nombre_del_array = new  Tipo_de_variable[dimensión1][dimensión2]…[dimensiónN];

También podemos alternativamente usar esta declaración:

Tipo_de_variable[ ][ ] … [ ]   Nombre_del_array;
Nombre_del_array = new  Tipo_de_variable[dimensión1][dimensión2]…[dimensiónN];

El tipo de variable puede ser cualquiera de los admitidos por Java y que ya ha sido explicado. Ejemplos de declaración e inicialización con valores por defecto de arrays, usando los distintos tipos de variables Java, serían:

-        byte[][] edad = new byte[4][3];
-        short ][] edad = new short[4][3];
-        int[][] edad = new int[4][3];
-        long[][] edad = new long[4][3];
-        float[][] estatura = new float[3][2];
-        double[][] estatura = new double[3][2];
-        boolean[][] estado = new boolean[5][4];
-        char[][] sexo = new char[2][1];
-        String[][] nombre = new String[2][1];


La declaración de una matriz tradicional de m x n elementos podría ser:

   /* Ejemplo declaración -  */
   int[][]  matriz = new int[3][2];
          O alternativamente
   int[][]  matriz;
   matriz = new int[3][2];



El número de elementos sería: 3 x 2 = 6, dónde 3 es el número de filas y 2 es el número de columnas.
Ahora procedemos a cargar la matriz con valores:

matriz[0][0] = 1;
matriz[0][1] = 2;
matriz[1][0] = 3;
matriz[1][1] = 4;
matriz[2][0] = 5;
matriz[2][1] = 6;

Hay que recordar que los elementos empiezan a numerarse por 0. Así, la esquina superior izquierda de la matriz será el elemento [0][0] y la esquina inferior derecha será el [2][1]. Hay que prestar atención a esto porque en otros lenguajes de programación la numeración puede empezar por 1 en vez de por 0.

También se pueden cargar directamente los elementos, durante la declaración de la matriz de la siguiente manera:

int[][]  matriz = {{1,2},{3,4},{5,6}};

donde {1,2} corresponde a la fila 1, {3,4} a la fila 2 y {5,6} a la fila 3, y los números separados por coma dentro de cada fila, corresponden a las columnas. En este caso, los números (1, 3, 5) de cada una de las filas corresponden a la primera columna y los números (2, 4, 6) atañen a la  segunda columna.



Para obtener el número de filas de la matriz, podemos recurrir a la propiedad “length” de los arrays, de la siguiente manera:

int filas = matriz.length;

Para el caso del número de columnas sería de la siguiente forma :

int columnas = matriz[0].length;

También Java nos permite la posibilidad de clonar una matriz, es decir, crear una matriz nueva a partir de otra matriz, siguiendo esta sintaxis:

String[][] nuevaMatriz = matriz.clone();

donde clone() es un método especial, que permite la clonación de arrays de cualquier dimensión en Java. De esta manera “nuevaMatriz” y “matriz” son 2 matrices distintas pero con los mismos valores. Hablaremos del método clone más adelante.

EJERCICIO
Vamos a plantear y resolver un ejercicio: queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 filas que representarán al Nivel básico, medio y de perfeccionamiento y 4 columnas en las que figurarán los idiomas (0 = Inglés, 1 = Francés, 2 = Alemán y 3 = Ruso). Se pide realizar la declaración de la matriz y asignarle unos valores de ejemplo a cada elemento.

SOLUCIÓN
 La declaración de la matriz sería:


    /* Ejemplo declaración */
int[][]  alumnosfxniveleidioma= new int[3][4];



Podríamos asignar contenidos de la siguiente manera:

alumnosfxniveleidioma[0][0] = 7
alumnosfxniveleidioma[0][1] = 14
alumnosfxniveleidioma[0][2]= 8
alumnosfxniveleidioma[0][3] = 3
alumnosfxniveleidioma[1][0] = 6
alumnosfxniveleidioma[1][1]= 19
alumnosfxniveleidioma[1][2] = 7
alumnosfxniveleidioma[1][3] = 2
alumnosfxniveleidioma[2][0] = 3
alumnosfxniveleidioma[2][1]= 13
alumnosfxniveleidioma[2][2] = 4
alumnosfxniveleidioma[2][3] = 1


También, podríamos asignar contenido de esta otra forma, como ya se ha explicado anteriormente:

int[][]  alumnosfxniveleidioma = {{7,14,8,3},{6,19,7,2},{3,13,4,1}};

La representación gráfica que podríamos asociar a esta asignación de datos sería esta matriz:



La organización de la información en matrices, nos generará importantes ventajas a la hora del tratamiento de datos en nuestros programas.

Para terminar en cuanto a multidimensionalidad, veamos casos de declaraciones con más de dos dimensiones. Para ello supongamos que estamos realizando un “conteo de coches”, es decir, que estamos contando los coches que pasan por un determinado lugar en un periodo de tiempo que puede ser un día, varios días, varios meses, etc. La forma de declarar esos arrays podría ser la siguiente:

 Duración del conteo
 Tipo de array
 Declaración con Java
 (nc es Número de coches)
 Un día
 Array de una dimensión
 (hora)
 int[]  nc = new  int[24];
 Varios días
 Array de dos dimensiones
 (hora y día)
 int[][]  nc = new  int[24][31];
 Varios meses
 Array de tres dimensiones
 (hora, día y mes)
 int[][][]  nc = new  int[24][31][12];
 Varios años
 Array de cuatro dimensiones
 (hora, día, mes y año)
 Int[][][][]  nc = new  int[24][31][12][2999];
 Varios siglos
 Array de cinco dimensiones
 (hora, día, mes, año y siglo)
 Int[][][][][]  nc = new  int[24][31][12][2999][21];
Veamos lo que sería un ejemplo de programa con array multidimensional,  usando un tipo String.
  /* Ejercicio Array multidimensional */

  public class MatrizAlumnos {

     public static void main(String arg[]) {

String[ ][ ]  nombreAlumno = new String[5][25];

nombreAlumno[2][23] = “Pedro Hernández González”;

System.out.println(“El alumno número 24 del curso tercero se llama “+nombreAlumno[2][23]);

     }

  }
El resultado del programa es la aparición del mensaje “El alumno número 24 del curso tercero se llama Pedro Hernández González.

En este ejemplo, [5] representa a los cursos. Hablamos de 5 cursos que son identificados con  0, 1, 2, 3, 4, por lo que [2] hace mención al tercer curso;lo mismo podemos decir de [23], que corresponde al alumno número 24. Hay que recordar que siempre en Java tenemos que contar el cero, ya que si no lo hacemos podemos cometer errores.

LOCALIZADOR. ARRAYS (ARREGLOS)


VARIABLES CON ÍNDICE O LOCALIZADOR. ARRAYS (ARREGLOS).
Vamos a repasar algunos conceptos que ya deberíamos conocer. Un array (arreglo) en Java es una estructura de datos que nos permite almacenar un conjunto de datos de un mismo tipo. El tamaño de los arrays se declara en un primer momento y no puede cambiar luego durante la ejecución del programa, como sí puede hacerse en otros lenguajes.
  Veremos ahora cómo declarar arrays estáticos de una dimensión.


 ARRAYS UNIDIMENSIONALES

La sintaxis para declarar e inicializar un array será:
  Tipo_de_variable[ ]   Nombre_del_array = new  Tipo_de_variable[dimensión];
También podemos alternativamente usar esta declaración:
  Tipo_de_variable[ ] Nombre_del_array;
  Nombre_del_array = new Tipo_de_variable[dimensión];
El tipo de variable puede ser cualquiera de los admitidos por Java y que ya hemos explicado. Ejemplos de declaración e inicialización con valores por defecto de arrays usando todos los tipos de variables Java, serían:
-        byte[ ] edad = new byte[4];
-        short[ ] edad = new short[4];
-        int[ ] edad = new int[4];
-        long[ ] edad = new long[4];
-        float[ ] estatura = new float[3];
-        double[ ] estatura = new double[3];
-        boolean[ ] estado = new boolean[5];
-        char[ ] sexo = new char[2];
-        String[ ] nombre = new String[2];
Aclarar que los valores por defecto son los siguientes:
a)      Para números el valor cero “0”.
b)      Para cadenas y letras el valor vacío.
c)       Para booleanos el valor false.

En caso de que queramos inicializarlos con valores propios, haremos esto:

Para números enteros

 int[ ] edad = {45, 23, 11, 9};  //Array de 4 elementos
De la misma forma procederíamos para los otros tipos de enteros : byte, short, long.

Para números reales

double[ ] estatura = {1.73, 1.67, 1.56}; //Array de 3 elementos
De la misma forma procederíamos para el tipo float, pero teniendo en cuenta que los números deberán llevar al final la letra “f” o “F”. Por ejemplo 1.73f o 1.73F.

Para cadenas

String[ ] nombre = {“María”, “Gerson”}; //Array de 2 elementos

Para caracterers

char[ ] sexo = {‘m’,’f’}; //Array de 2 elementos

Para booleanos

boolean[ ] = {true,false};  //Array de 2 elementos

Cuando creamos un array de nombre “a” y de dimensión “n” (int[ ] a = new int[n]) estamos creando variables que son a[0], a[1], a[2], ..., a[n-1]. Los arrays se numeran desde el elemento cero, que sería el primer elemento, hasta el n-1 que sería el último elemento. Es decir, si tenemos un array de 5 elementos, el primer elemento sería el cero y el último elemento sería el 4.  Esto conviene tenerlo en cuenta porque puede dar lugar a alguna confusión. Disponer de un valor con índice cero puede ser de utilidad en situaciones como considerar cada variable asociada a una hora del día, empezando a contar desde la hora cero hasta la 23 (total de 24 horas), cosa que es habitual en algunos países. En lugar de 1, 2, 3, ..., 24 estaríamos usando 0, 1, 2, ..., 23.

Vamos a trabajarlo sobre el ordenador en un programa y ver qué pasaría si declaramos un array de tamaño “n” y vamos asignando un valor a cada variable del array desde la posición cero hasta la posición “n-1”. Adicionalmente vamos a comprobar qué ocurre si tratamos de asignarle valor a la variable de posición  “n”.

El código fuente del programa (escríbelo en BlueJ) es el siguiente:


  /* Ejemplo uso Arrays –  */

  public class ArrayDeNombres {

       public static void main(String arg[ ]) {
             String[ ] nombre = new String[4];

             nombre[0] = “Luis”;
             nombre[1] = “María”;
             nombre[2] = “Carlos”;
             nombre[3] = “Jose”;
             nombre[4] = “Ismael”; //Error:No existe esta variable array de índice 4
     }

  }
  Procedemos a la compilación del programa pulsando en el botón de Compile y después a su ejecución:



Obtenemos una respuesta (interpretación) que es la siguiente:



Una vez escrito el programa, cuando compilamos observamos que no hay ningún error de sintaxis, es decir, no faltan puntos y comas, las llaves están bien equilibradas, las palabras reservadas del lenguaje son las correctas, etc. Por tanto, aparentemente el programa debería ejecutarse y darnos un resultado. Sin embargo cuando cuando interpretamos el programa observamos un error “ArrayIndexOutBoundsException”. Este mensaje de error significa “desbordamiento de array”, es decir, que tratamos de acceder a una posición del array que no existe. En nuestro caso, hemos tratado de acceder a la posición 4, que no está definida (sólo se ha definido hasta la posición 3). En esto Java es muy estricto y no admite este tipo de error lógico del programador. Siguiendo el análisis del error que nos aparece en la ventana leemos lo siguiente “ArrayDeNombres.java:12”, que nos está indicando que el error está en el archivo que contiene el programa de nombre “ArrayDeNombres.java”, y más concretamente en la línea 12.

Ahora ampliaremos conocimientos con respecto a la instrucción public static void main(String arg[ ]). Esta instrucción es un estándar en Java, es decir, es la forma habitual de encabezar un programa que se ejecuta en consola. Ahora trataremos de entender un poco mejor el significado de este encabezado. Vamos a analizar el significado de (String arg[ ]). En esta instrucción el método main admite que se le pase un “array de Strings” cuando se proceda a la ejecución del programa si así lo deseamos. String arg[] significa “un array de Strings” cuyo nombre es arg. Dicho de otra manera, al ejecutar el programa podemos indicar “parámetros de entrada” de forma opcional. Si especificamos parámetros de entrada, éstos parámetros quedan asignados al array arg tomando el orden arg[0], arg[1].

Lo dicho podemos aclararlo mejor con el siguiente ejemplo:
El código fuente del programa es el siguiente. Escríbelo en el editor de BlueJ:
   
     /* Ejemplo uso parámetros de entrada – */

     public class ParametrosDeEntrada {

         public static void main(String arg[ ]) {
              System.out.println(“Cantidad de parámetros : “ + arg.length);
              System.out.println(arg[0]);
              System.out.println(arg[1]);
         }
     }
  Damos por entendido que ya hemos compilado el programa y no hay errores de sintaxis. Nos centramos por tanto en la ejecución del programa (interpretación).

Si hacemos click derecho sobre ParametrosDeEntrada y seleccionamos la opción void main(String arg[ ]) pasaremos a ejecutar el programa. En la ventana emergente pondremos lo siguiente: { "Pepe", "Luis", "Juan"} incluidos las llaves y las comillas dobles, los parámetros de entrada son Pepe, Luis y Juan. Cuando ejecutamos el programa se nos mostrará que la cantidad de parámetros son tres, y además nos mostrará el primer y segundo elementos del array, es decir, Pepe y Luis.

Si al ejecutar el método main de ParamentrosDeEntrada le pasaramos solo el parámetro “Pepe”, como solo hay un solo parámetro de entrada, el array arg tiene un solo elemento. En este caso el programa nos va a dar un error porque la única variable que existe es arg [0], y al tratar de llamar a arg[1] nos va a dar error.

Veamos ahora qué ocurre al ejecutar ParametrosDeEntrada con los parámetros “Hola” “Java”:



Estos dos parámetros son las cadenas “Hola” y “Java”, las cuales son capturadas en las variables del array de cadenas arg[0] y arg[1]. Estas variables se usan para imprimir los parámetros en pantalla. Esto se puede ver en el código fuente del programa. Por otro lado, con el atributo “arg.length” podemos saber cuántos parámetros se le han pasado a nuestro programa. También decir que hacemos uso de un nuevo símbolo: “+”, que significa “concatenar” la cadena “Cantidad de parámetros” con el valor del atributo arg.length (que es 2 en este caso). El resultado es la cadena “Cantidad de parámetros : 2 “, que se imprime en la ventana como parte de la salida de nuestro programa.

El introducir parámetros al mismo tiempo que se invoca la ejecución de un programa es una posibilidad que admite Java. En otros lenguajes no es posible pasar parámetros de entrada a un programa.

martes, 23 de octubre de 2012

Codifica un archivo en BASE64 para se enviado por WS

Este codigo realiza la codificacion para enviar archivos mediante web service .net c#


/// <summary>
        /// Genera string con el archivo codificado para ser enviado a la Entidad Financiera.
        /// </summary>
        /// <param name="contingencia">Parámetro de salida, que almecena información de un eventual problema ocurrido en la ejecución del proceso.</param>
        /// <returns>String con Archivo Codificado.</returns>
        /// <method>GeneraArchivoCodificado</method>
        public string GeneraArchivoCodificado(string rutaArchivo, out Contingencia contingencia)
        {
            contingencia = new Contingencia();
            Byte[] strBytes;
            string cadena = string.Empty;
            string cadenaBase64 = "";




            try
            {
                StreamReader objReader = new StreamReader(rutaArchivo, Encoding.Default);
                cadena = objReader.ReadToEnd();
                objReader.Close();
                strBytes = System.Text.Encoding.Unicode.GetBytes(cadena);
                cadenaBase64 = System.Convert.ToBase64String(strBytes);

                return cadenaBase64;
            }
            catch (Exception ex)
            {
                contingencia.ExisteUnaContingencia = true;
                contingencia.DetalleContingencia = ex.ToString();
                return "";
            }
        }


parte 2 http://ingenieroinformaticainacap.blogspot.com/2014/01/codifica-un-archivo-en-base64-para-se.html

Verifica Rut C# Programacion .net

Simple funcion que verifica un rut chileno en c# .net

Verifica Rut C# Programacion .net


Bueno aka dejo la funcion de verificar el rut en sichar jajajajja, se que eres una mierda y no lo programarías ni cagando asi que aki un regalo.... 


private bool verificaRut(int rut, string dv)
        {
            int Digito;
            int Contador;
            int Multiplo;
            int Acumulador;
            string RutDigito;

            Contador = 2;
            Acumulador = 0;

            while (rut != 0)
            {
                Multiplo = (rut % 10) * Contador;
                Acumulador = Acumulador + Multiplo;
                rut = rut/10;
                Contador = Contador + 1;

                if (Contador == 8)
                {
                    Contador = 2;
                }
            }


Verifica Rut C# Programacion .net

            Digito = 11 - (Acumulador % 11);
            RutDigito = Digito.ToString().Trim();
            if (Digito == 10)
            {
                RutDigito = "K";
            }
            if (Digito == 11)
            {
                RutDigito = "0";
            }

Verifica Rut C# Programacion .net

                if(RutDigito.ToString() == dv.ToString())
                {
                    return true;
                }else{
                    return false;
                }
                
        }

Verifica Rut C# Programacion .net

BLUE J FUNDAMENTOS PROGRAMACION


Ejercicio profesor Milton Veliz Inacap


public class IngresoNotas
{
    public void IngresoNotas()
    {

        double notas, sum, promedio;
        int ca,cn;
        System.out.println("Ingrese la cantidad de alumnos");
        ca=Lectura.leerEntero();
        System.out.println("Ingrese la cantidad de notas por alumno");
        cn=Lectura.leerEntero();
        notas=0.0;
        sum=0.0;
           for(int i=1;i<=ca;i++)
           {
                System.out.println("ingrese nombre del alumno");
                String nombre=Lectura.leerString();
                    for(int j=1; j<=cn;j++)
                    {
                       System.out.println("ingrese nota "+j+" de "+ nombre);
                       notas=Lectura.leerDouble();
                       sum=sum+notas;
                    }
                promedio=sum/cn;
                System.out.println("el promedio del alumno "+nombre+" es: "+promedio);
                notas=0.0;
                sum=0.0;
           }
    }
}

BLUE J SOLEMNE 2 Milton Veliz Inacap. Ejercicio 1

BLUE J SOLEMNE 2 / Milton Veliz Inacap. Ejercicio 1


public class solemne2
{
    
    public void ejercicio1()
    {
        double asistencia, porcAsistencia;
        int ca,cn;
        
        ca=5;// se ingresan 5 alumnos
        asistencia=0.0;
        porcAsistencia=0.0;
       for(int i=1;i<=ca;i++)
       {
           System.out.println("ingrese nombre del alumno"+i);
            String nombre=Lectura.leerString();
           
               System.out.println("ingrese asistencia de "+ nombre);
               asistencia=Lectura.leerDouble();
               porcAsistencia = ((asistencia / 50)*100);
               if(porcAsistencia>=25){
                System.out.println("el promedio asistencia del alumno "+nombre+" es: "+porcAsistencia+" y esta aprobado!");
               }else{
                System.out.println("el promedio asistencia del alumno "+nombre+" es: "+porcAsistencia+" y esta reprobado!");
               }
            
            
               nombre="";
               asistencia=0;
               porcAsistencia=0;
       }
    }

    
}