Compartiendo para dos mundos

Hablando de programación paralela.
Tutoriales en: https://www.youtube.com/user/jambrizgdl
Twitter: @dogoteacher

Buscar este blog

martes, 31 de julio de 2007

Universidad Autónoma de Guadalajara

Facultad de Electrónica y Ciencias Computacionales

Depto. de Ciencias Computacionales

Lic. en actuaría

Practica 4

1. Diseña una función que recibe dos objetos de la clase Range. Regresa verdadero si tienen el mismo contenido los dos objetos Range y falso en caso contrario.

2.- Procedimiento que recibe un objeto range que contiene 15 filas y 4 columnas que corresponden a las ventas realizadas en una tienda departamental de 14 artículos. Las primeras dos columnas ya tienen datos y son los siguientes:
1.- Nombre del artículo
2.- Monto vendido
Las siguientes columnas son IVA y Neto que serán calculados por el procedimiento. El IVA es el 15% del monto vendido y el Neto es la resta del Monto vendido y el IVA. En la 15va. fila se colocarán los totales de las últimas 3 columnas: Total del Monto vendido, total de IVA retenido y total de Neto.

3. Diseña una función que reciba un objeto range y una cadena de texto. Devuelve verdadero si la cadena de texto se encuentra de forma horizontal en el objeto range y falso en caso contrario.

4. Diseña un procedimiento que multiplica dos matrices cuadradas, las recibe como objetos range, la matriz resultante tambien se recibe como parámetro.

5. Diseña una función que recibe un objeto range y una palabra, busca la palabra en el objeto range. El objeto range en esta ocasión almacena una palabra por celda. Solo tiene 1 columna y varias filas. En caso de encontrarla regresa verdadero, en caso contrario falso.

miércoles, 25 de julio de 2007

Contraseñas fáciles de recordar y difíciles de decifrar

En la vida cotidiana se usan contraseñas para identificar a las personas. Para recibir dinero en un cajon automático ( NIP ), escuchar el saldo de una tarjeta de crédito ( audiomático ) o leer el correo electrónico ( email por sus siglas en inglés ). Este artículo propone algunos consejos fáciles de seguir para que cualquier persona defina de forma sencilla sus contraseñas.

Utilizar números y letras

Construir una frase significativa (sobre algo actual o ya pasado pero que fue importante ) y formar la contraseña con las primeras letras de cada palabra. La contraseña será un texto extraño para muchos pero significativo para la persona que la elaboró.

Agregar letras mayúculas intercaladas

Escoge un patrón para intercalar en la frase anterior mayúsculas y minúsculas; por ejemplo: La primera letra es mayúscula y el resto minúscula, la última letra es mayúscula y el resto minúscula, las letras minúsculas intercaladas e iniciar con una mayúscula, etc.

EJEMPLO1

El 14 de frebrero es mi aniversario ==> la contraseña es: E14dfema

EJEMPLO2

Maria debe pagar la tarjeta cada 25 ==> la contraseña es: Mdpltc25

EJEMPLO3

El 25 pago la tarjeta de credito ==> la contraseña es: e25pltdC

¿Cómo recordar la frase?

La frase ( que es origen de la clave) puede ser escrita en algun lugar público donde tenga un significado y no despierte la curiosidad. Al mismo tiempo facilitará su memorización. Por ejemplo, la frase "yo solo se que no se nada" puede estar en un cuadro dentro de la oficina, o el título de un libro "Embarazo estudio integral" en el escritorio de una secretaria.

Cambia la constraseña regularmente

Este consejo incrementa la dificultad para decifrar la contraseña, pero requiere mayor cuidado para recordar la contraseña vigente. Para ello se aconseja lo siguiente:

Relaciona un número consecutivo con la frecuencia del cambio de la contraseña

Si cada mes se cambia, agrega un número que indique el mes actual: Por ejemplo: MDPLTC251, MDPLTC252, MDPLTC253 y asi sucesivamente hasta MDPLTC2511 y MDPLTC2512. En el próximo año se conserva la contraseña, pero vuelve al número 1.

Formar una frase que haga referencia a un evento que cambie de forma paralela a la frecuencia del cambio de la contraseña.

Eventos como pago de teléfono, renta, depositos en cuentas, fechas de cumpleaños, cantidad de meses de noviazgo. Incluso puede cambiar cada día, por ejemplo la frase: "Faltan 10 dias para mi cumpleaños" genera la contraseña: F10dpmc, cada día puede cambiar: F9dpmc, F8dpmc, F7dpmc, etc.

Utilizar una contraseña diferente para cada ocasión

Conservar la misma contraseña para todos los correos electrónicos, claves de banco,etc facilita al ladrón poder obtener muchos beneficios con el mínimo esfuerzo. La solución es tener contraseñas distintas, pero la dificultad consiste en poder recordarlas y no revolverlas. Para esto se sugiere que la frase este relacionada con el contexto de su uso.

Si es una clave para una tarjeta de crédito, esta habla de esa tarjeta de crédito en particular, si es para un sistema de la compañia la frase trata de ese sistema, si tiene varias cuentas de correo electrónico, suponiendo los servidores: gmail, hotmail y yahoo. Las frases y contraseñas pueden ser:

- "la cuenta gmail es la mas grande" --> lcgelmg

- "la cuenta hotmail es la mas antigua" --> lchelma

- "la cuenta yahoo la utilizo para las promociones" --> lcyluplp

Conclusión

Las mejores contraseñas son las que se cambian regularmente; no son palabras, fechas o números, sino sus combinaciones; además se incrementa su dificultad intercalando letras mayúsculas y minúsculas. No es un buen consejo tener una "contraseña maestra", es preferible manejar 2 o más e intercalar su uso.

25/julio/2007

José Jesús Ambriz Meza

jambriz@gmail.com

martes, 24 de julio de 2007

Lectura y escritura de archivos de texto

Lectura de archivos de texto

Se realiza por medio del objeto TextStream relacionado con un archivo de texto. Para realizar esta labor, ver el documento "principios de archivos de texto" en la página: http://docs.google.com/Doc?id=d5mw2dm_11fk4wsc . En este documento se explica muy brevemente los tipos de archivos manejados en vba, como accesar a un archivo ya existe y como definir uno nuevo.

Al abrir un archivo para lectura con la función OpenTextFile, el objeto TextStream contiene un indicador de la posición actual en el flujo de bytes. Puede ser el inicio del documento, el final o en algún byte intermedio del flujo. Conforme se lee el contenido avanza este indicador de forma automática - para el programador - .

Función ReadLine

La función ReadLine de la clase TextStream devuelve en un String que contiene la siguiente línea de texto por leer del archivo. Pero la devuelve sin el delimitador (es decir sin el retorno de carro o vbCrLf ). Incrementa la posición actual en el flujo de bytes a la posición consecutiva después de la línea que acaba de leer.

Propiedad AtEndOfStream

La propiedad AtEndOfStream devuelve el valor booleano True si la posición actual es el final del flujo y False en caso contrario.

EJEMPLO1

Dim cadena As String

Dim Flujo_texto As Object

Dim num_linea as integer
...

Set Flujo_texto = filesystem.openTextFile("c:tempagenda.txt", 1, 0)

cadena= ""

num_linea= 1
cadena = str(num_linea) & ".- " & Flujo_texto.readLine
Do While Not Flujo_texto.AtEndOfStream

num_linea= num_linea + 1
cadena = cadena & vbCrLf & str(num_linea) & ".- " & Flujo_texto.readLine
Loop
Flujo_texto.Close

El código anterior lee línea por línea el archivo "agenda.txt" y lo coloca en una variable de tipo string llamada cadena. Al final del ciclo se cierra el flujo.

Función WriteLine

El procedimiento WriteLine de la clase TextStream escribe una cadena de caracteres en la posición actual del archivo de texto, agrega al final un retorno de carro ( vbCrLf ) e incrementa esta posición hasta el final de la nueva cadena en el archivo.

EJEMPLO2

Dim i As Integer
Dim Flujo_texto As Object 'TextStream

...
Set Flujo_texto = filesystem.CreateTextFile("c:tempagenda.txt")
For i = 1 To 50
Flujo_texto.WriteLine str(i) & "," & Trim(listado(i))
Next i
Flujo_texto.Close

El código anterior escribe 50 líneas de texto en el flujo de datos y al final lo cierra.

viernes, 20 de julio de 2007

Las búsquedas avanzadas en un buscador


Introducción

La búsqueda de información en Internet por medio de los llamados “buscadores” se vuelve tediosa por la gran cantidad de documentos que se presentan como resultado de la búsqueda y que no contienen la información valiosa.


Esto es, porque las palabras o texto que escribe el usuario es muy genérico. El objetivo del artículo es mostrar la forma de eliminar los documentos erróneos del resultado y conservar los documentos que se buscan, a esto se le llama “filtrar” los documentos. Lo anterior, por medio de la sección llamada “búsqueda avanzada” de los buscadores: Google, Altavista y Yahoo.


Todas la palabras

Las palabras indicadas deben de encontrarse en el documento - sin necesidad de formar una frase - . A mayor cantidad de palabras exigidas, menor cantidad de resultados. Se recomienda evitar el uso de artículos, adjetivos, preposiciones, adverbios y conjunciones. Se utiliza cuando se conocen palabras especiales que sean distintivas del tema que se busca.


Ejemplo:

¿Cuál es la discografía del compositor Armando Manzanero?

No es bueno buscar la palabra “cuál”, porque Google nos arrojaría 22,100, 000 documentos. Pero al buscar la palabra “discografía” solo encontrará el mismo buscador 2,550, 000 documentos. Agregar la palabra “compositor” reducirá más los resultados a 224,000 documentos.


A continuación se presentan la cantidad de documentos indicados por cada buscador utilizando el filtro “Todas la palabras”.


Filtro

Google

Yahoo

Altavista

Todas la palabras: discografía

3’170,000

3’070,000

2’980,000

Todas la palabras: discografía compositor

224,000

119,000

113,000


Frase exacta

El buscador muestra únicamente los documentos que tienen las frases encerradas entre comillas dobles. Es bueno utilizar frases llenas de palabras distintivas del tema a buscar para mejorar la eficiencia del buscador. Se recomienda incluir nombres completos de personas, animales, conceptos, cosas o lugares específicos del tema ya detectados en documentos válidos.


Ejemplo :

¿Cuál es la discografía del compositor Armando Manzanero?

El nombre del compositor “Armando Manzanero” es una frase, ya que tiene dos palabras separadas por un espacio y se requiere que se encuentren en el orden indicado.


A continuación se presentan la cantidad de documentos indicados por cada buscador.

Filtro

Google

Yahoo

Altavista

Todas la palabras: discografía

3’170,000

3’070,000

2’980,000

Todas la palabras: discografía compositor

224,000

119,000

113,000

Frase exacta: “armando manzanero”

326

273

263


Sin las palabras

Las palabras y/o frases – encerradas entre comillas – indicadas NO deben de estar en el documento. Está opción se usa para indicar las palabras o frases distintivas de documentos erróneos que se quiere quitar del resultado. Conforme aparezcan resultados erróneos se agregan palabras o frases en esta opción para agilizar la búsqueda.


Ejemplo

¿Cuál es la discografía del compositor Armando Manzanero?

Algunos sitios tienen información de otros compositores. Una buena forma de quitar estos documentos es eliminar los documentos erróneos que tengan a otros compositores importantes.


A continuación se presentan la cantidad de documentos indicados por cada buscador.

Filtro

Google

Yahoo

Altavista

Todas la palabras: discografía

3’170,000

3’070,000

2’980,000

Todas la palabras: discografía compositor

224,000

119,000

113,000

Frase exacta: “armando manzanero”

326

273

263

Sin las palabras: “ricardo montaner”

295

214

208


El uso de estos filtros reduce la cantidad de resultados. Esto no necesariamente es bueno, el mal uso de los filtros puede eliminar documentos que sean adecuados al tema.


Conclusiones

1. Los filtros mostrados reducen la cantidad de documentos por examinar, su aplicación debe realizarse con cuidado ya que su mal uso puede eliminar documentos valiosos.

2. Un buen consejo es utilizar varios buscadores y diferentes combinaciones de filtros para comparar resultados.

3. El filtro aquí llamado “sin las palabras” elimina de forma poderosa documentos erróneos.

4. Existen más opciones en la sección “búsqueda avanzada” que se pueden aprovechar para lograr reducir aún más el resultado de una búsqueda.