4/11/09

INTRODUCCION A GAMBAS

Hablar de Gambas, que difería mucho con respecto a Visual Basic, ahora aclaremos algunas cosas y terminemos de entender este concepto.

La principal diferencia con respecto a Visual Basic 6.0 es el soporte para orientación a objetos. En Gambas, no existen los arrays de controles -muy populares en Visual Basic- pero dispone de un elemento similar llamado group, que utilizado conjuntamente con arrays de objetos ofrecen resultados análogos.

Gambas añade algunas propiedades nuevas en algunos de sus controles, como la alineación vertical/horizontal en etiquetas, o algunas propiedades gráficas en el elemento Button (Equivalente a CommandButton de Visual Basic).

El acceso a bases de datos es sumamente sencillo y potente. Gambas incluye, al igual que Visual Basic, su propio empaquetador para la distribución de aplicaciones, que permite crear incluso paquetes deb. Los componentes suministrados en Gambas 2.0 son realmente potentes, desde una librería para el manejo de documentos pdf, hasta componentes para imágenes, sockets e informes (equivalentes a Crystal reports u otras herramientas gratuitas alternativas).

Gambas es una excelente y potente alternativa a la programación visual ofrecida en Visual Basic para entornos Linux. Su talón de aquiles actualmente es su escasa documentación.





ACONTINUACION UNA LISTA DE EJERCICIOS REALIZADOS EN CLASE CON LINUX


PROGRAMA CEDULA





PUBLIC SUB Main()
DIM num_cedula AS String
PRINT "INGRESE NUMERO DE CEDULA:"
INPUT num_cedula

IF cedula(num_cedula) THEN
PRINT "NUMERO DE CEDULA VALIDO"
ELSE
PRINT "NUMERO DE CEDULA INVALIDO !!!"
ENDIF

END

PUBLIC FUNCTION cedula(valor AS String) AS Boolean
DIM dv, i, a, res, m, aux, aux1, acu, d10, d3 AS Integer
DIM resul AS Boolean
d3 = Mid(valor, 3, 1)
IF d3 < 6 THEN
FOR i = 1 TO 9
a = Mid(valor, i, 1)
m = i MOD 2
IF m = 1 THEN
aux = a * 2
ELSE
aux = a * 1
END IF
IF aux > 9 THEN
aux1 = aux - 9
ELSE
aux1 = aux
END IF
acu = acu + aux1
NEXT
res = acu MOD 10
IF res = 0 THEN
dv = 0
ELSE
dv = 10 - res
END IF
d10 = Mid(valor, 10, 1)
IF dv <> d10 OR valor = 0 OR valor = 2222222222 OR valor = 4444444444 OR valor = 5555555555 THEN
resul = FALSE

ELSE
resul = TRUE
END IF
ELSE
resul = FALSE
END IF
RETURN resul
END FUNCTION



PROGRAMA OBJETOS



Gambas module file
'PROGRAMACION ORIENTADA A OBJETOS EN GAMBAS 2.8
PUBLIC SUB main()
'instancia objetos
DIM mono AS servivo
DIM persona AS Hombre
DIM no AS String



mono = NEW servivo
mono.nacido(CDate("2/2/1992"))
mono.PonerPatas(2)
PRINT "La edad del mono es ....", mono.edad()
PRINT "Las patas del mono son .....", mono.dicePatas()




persona = NEW Hombre
PRINT "Ingrese nombre.."
INPUT no
persona.nacido(CDate("2/18/1969"))
persona.PonerNombre(no)
persona.PonerApellido("Picapiedra")
PRINT "La edad de la persona es ", persona.edad()
PRINT "El nombre completo es...", persona.NombreCompleto()
END


PROGRAMA MAYOR





' Gambas module file

PUBLIC SUB Main()
DIM a, b, c, d, e AS Integer

'a = 10
'b = 20
'e = 50
PRINT "Ingrese primer valor", a
INPUT a
PRINT "Ingrese segundo valor", b
INPUT b
PRINT "Ingrese tercer valor", e
INPUT e

IF a > b AND a > e THEN
PRINT " EL NUMERO MAYOR ES", a

ELSE
IF b > a AND b > e THEN
PRINT "el mayor es", b

ELSE
PRINT "el mayor es ", e

ENDIF
END IF
IF b < a AND b < e THEN
PRINT "el intermedio es", b
ELSE
IF e < a AND e < b THEN
PRINT "el intermdio es", e
ELSE
PRINT " el intermedio es", a
ENDIF
ENDIF

END


PROGRAMA MATRICULAS




' Gambas class file
PUBLIC nom AS String
PUBLIC apell AS String
PUBLIC curso AS String
PUBLIC secc AS String
PUBLIC fechan AS String
PUBLIC parcial1 AS Float
PUBLIC parcial2 AS Float
PUBLIC parcial3 AS Float


PUBLIC FUNCTION imprimirpromedio() AS Float
RETURN ((parcial1 + parcial2 + parcial3) / 3)
END

PUBLIC FUNCTION imprimirfechamatricula() AS Date
RETURN Now()
END


PUBLIC FUNCTION imprimirnombre() AS String
RETURN nom & " " & apell
END


PROGRAMA FUNCIONES




PUBLIC SUB Main()
DIM f, i, l AS Integer
DIM nombre, res AS String
f = 1
FOR i = 2 TO 5
f = f * i
NEXT
PRINT "El factorial de 5 ", f

PRINT "Ingrese un nombre"
INPUT nombre
l = Len(nombre)
FOR i = 1 TO l
res = Mid(nombre, i, 1)
PRINT res
NEXT



END

PROGRAMA CALCULADORA



PUBLIC ban AS Integer
PUBLIC aux1 AS Integer
PUBLIC aux2 AS Integer
PUBLIC valor AS Float
PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

END

PUBLIC SUB Button5_Click()

visor.Text = visor.Text & "1"

END

PUBLIC SUB Button6_Click()

visor.Text = visor.Text & "2"

END

PUBLIC SUB Button7_Click()

visor.Text = visor.Text & "3"

END

PUBLIC SUB Button8_Click()

visor.Text = visor.Text & "4"

END

PUBLIC SUB Button10_Click()

visor.Text = visor.Text & "5"

END

PUBLIC SUB Button1_Click()

visor.Text = visor.Text & "6"

END

PUBLIC SUB Button2_Click()

visor.Text = visor.Text & "7"

END

PUBLIC SUB Button3_Click()

visor.Text = visor.Text & "8"

END

PUBLIC SUB Button4_Click()

visor.Text = visor.Text & "9"

END

PUBLIC SUB Button9_Click()

visor.Text = visor.Text & "0"

END

PUBLIC SUB Button11_Click()

visor.Text = visor.Text & "."

END

PUBLIC SUB sumar_Click()

ban = 1
IF visor.Text <> 0 THEN
aux1 = visor.Text
ELSE
aux1 = 0
ENDIF
visor.Clear

END

PUBLIC SUB resta_Click()
ban = 2
IF visor.Text <> 0 THEN
aux1 = visor.Text
ELSE
aux1 = 0
ENDIF
visor.Clear


END

PUBLIC SUB multiplicacion_Click()

ban = 3
IF visor.Text <> 0 THEN
aux1 = visor.Text
ELSE
aux1 = 0
ENDIF
visor.Clear

END

PUBLIC SUB division_Click()

ban = 4
IF visor.Text <> 0 THEN
aux1 = visor.Text
ELSE
aux1 = 0
ENDIF
visor.Clear

END

PUBLIC SUB off_Click()
ME.Close


END

PUBLIC SUB limpiar_Click()

visor.Clear

END

PUBLIC SUB igual_Click()

IF visor.Text <> 0 THEN
aux2 = visor.Text
ELSE
aux2 = 0
ENDIF
visor.Text = operaciones(ban, aux1, aux2)

END
PUBLIC FUNCTION operaciones(opera AS Integer, v1 AS Integer, v2 AS Integer) AS Integer
DIM respuesta AS Integer
SELECT CASE opera
CASE 1
respuesta = v1 + v2
CASE 2
respuesta = v1 - v2
CASE 3
respuesta = v1 * v2
CASE 4

IF v2 = 0 THEN
Message("DIVISON PARA CERO IMPOSIBLE")
ELSE
respuesta = v1 / v2
END IF
END SELECT
RETURN respuesta


END



PUBLIC SUB Button17_Click()

visor.Text = Cos(visor.Text)


END

PUBLIC SUB Button16_Click()

visor.Text = Sin(visor.Text)

END

PUBLIC SUB Button21_Click()



END

PUBLIC SUB Button24_Click()

DIM n, i, x1, x2 AS Integer
DIM cadena, cadena2 AS String
n = visor.Text
WHILE n > 0
x1 = (Int(n / 2))
x2 = n MOD 2
cadena = cadena & Str(x2)
n = x1
WEND
FOR i = Len(cadena) TO 1 STEP -1
cadena2 = cadena2 & Mid(cadena, i, 1)
NEXT
visor.Text = cadena2
Message("El resultado es ...", "Aceptar")


END


PROGRAMA TIA


PUBLIC SUB Button25_Click()

DIM n, i, x1, x2 AS Integer
DIM cadena, cadena2 AS String
n = visor.Text
WHILE n > 0
x1 = (Int(n / 2))
x2 = n MOD 2
cadena = cadena & Str(x2)
n = x1
WEND
FOR i = Len(cadena) TO 1 STEP -1
cadena2 = cadena2 & Mid(cadena, i, 1)
NEXT
visor.Text = cadena2
Message("El resultado es ...", "Aceptar")

END

PUBLIC SUB Button18_Click()

visor.Text = Tan(visor.Text)

END

PUBLIC SUB Button12_Click()

visor.Text = visor.Text * visor.Text

END

PUBLIC SUB Button13_Click()

visor.Text = visor.Text * visor.Text * visor.Text

END


PROGRAMA DE ACCESO



PUBLIC c AS Integer
PUBLIC n AS String

PUBLIC SUB TextBox1_Change()

TextBox2.Enabled = TRUE

END

PUBLIC SUB TextBox2_KeyPress()

IF Key.Code = 65293 THEN
IF TextBox1.Text = "" THEN
Message.Info("Ingrese Clave de Usuario...")
TextBox1.SetFocus
ELSE
Button1.Enabled = TRUE
Button2.Enabled = TRUE
Button1.SetFocus
ENDIF
ENDIF

END

PUBLIC SUB Form_Open()

ME.Center
modulo.conectar
' modulo.rs = modulo.cn.Exec("select * from claves")
n = "Administrador"
END

PUBLIC SUB Button1_Click()
DIM ban AS Integer
modulo.rs = modulo.cn.Exec("select * from clave")

DO WHILE modulo.rs.Available
n = modulo.rs["usuarios"]
IF modulo.rs["usuarios"] = Trim(TextBox1.Text) AND modulo.rs["contrasena"] = Trim(TextBox2.Text) THEN
modulo.rs = modulo.cn.Exec("select * from clave where usuarios = '" & Trim(TextBox1.Text) & "'")
Message.Info("Bienvenido al sistema Sr(a). " & n, "Aceptar")
ME.Hide
menuprincipal.Show
ban = 1
ENDIF
modulo.rs.MoveNext()
LOOP
IF ban = 0 THEN
c = c + 1
IF c = 3 THEN
Message.Warning("Lo sentimos, El sistema se cerrar� por seguridad.")
ME.Close
ELSE
limpiar()
TextBox1.SetFocus
Message.Error("Usuario desconocido, intente nuevamente...", "Aceptar")
ENDIF
END IF

END
PUBLIC SUB limpiar()

Button1.Enabled = FALSE
Button2.Enabled = FALSE
TextBox1.Clear
TextBox2.Clear
TextBox2.Enabled = FALSE
TextBox1.SetFocus
END

PUBLIC SUB Button2_Click()



limpiar()



END


PROGRAMA JUEGOS




PUBLIC o AS Integer

PUBLIC SUB Button2_Click()

ME.Close
FMain.Show

END
PUBLIC SUB Button1_Click()

DIM a, b, c AS Integer
RANDOMIZE
a = (Rnd * 9) + 1
b = (Rnd * 8) + 1
c = (Rnd * 8) + 1
TextBox2.Text = a
TextBox4.Text = b
TextBox3.Text = c
IF a = b AND a = c THEN

IF b = a AND b = c THEN
IF c = a AND c = b THEN
Message("Estos son los numeros" & TextBox1.Text & TextBox2.Text & TextBox3.Text)

IF a <> 7 AND b <> 7 AND c <> 7 THEN

Message("Premio Consuelo" & TextBox1.Text & TextBox2.Text & TextBox3.Text)
ENDIF
ENDIF
ENDIF

ENDIF
END


PROGRAMA RELOJ


PUBLIC SUB Timer1_Timer()
DIM h, m, s AS Integer
s = TextBox3.Text
m = TextBox2.Text
h = TextBox1.Text
'WHILE h < 24
IF s < 59 THEN
s = s + 1
ELSE
s = 0
m = m + 1
IF m > 59 THEN
h = h + 1
m = 0
ENDIF
ENDIF
TextBox3.Text = s
TextBox2.Text = m
TextBox1.Text = h
'WEND


END

PUBLIC SUB Button1_Click()

IF Button1.Text = "Iniciar" OR Button1.Text = "Reiniciar" THEN
Timer1.Enabled = TRUE
Button1.Text = "Parar"
ELSE
Timer1.Enabled = FALSE
Button1.Text = "Reiniciar"
ENDIF

END

PUBLIC SUB Button2_Click()

ME.Close
FMain.Show

END

PUBLIC SUB TextBox1_KeyPress()



END

PUBLIC SUB Form_Open()



END

12/9/09

FIRMA DIGITAL Y COMERCIO ELECTRONICO


FIRMA DIGITAL

La firma digital puede ser definida como una secuencia de datos electrónicos (bits) que se obtienen mediante la aplicación a un mensaje determinado de un algoritmo (fórmula matemática) de cifrado asimétricos o de clave pública, y que equivale funcionalmente a la firma autógrafa en orden a la identificación del autor del que procede el mensaje. Desde un punto de vista material, la firma digital es una simple cadena o secuencia de caracteres que se adjunta al final del cuerpo del mensaje firmado digitalmente.

La aparición y desarrollo de las redes telemáticas, de las que internet es el ejemplo más notorio, ha supuesto la posibilidad de intercambiar entre personas distantes geográficamente mensajes de todo tipo, incluidos los mensajes de contenido contractual. Estos mensajes plantean el problema de acreditar tanto la autenticidad como la autoría de los mismos.
Concretamente, para que dos personas (ya sean dos empresarios o un empresario y un consumidor) puedan intercambiar entre ellos mensajes electrónicos de carácter comercial que sean mínimamente fiables y puedan, en consecuencia, dar a las partes contratantes la confianza y la seguridad que necesita el tráfico comercial, esos mensajes deben cumplir los siguientes requisitos:

1º.- Identidad, que implica poder atribuir de forma indubitada el mensaje electrónico recibido a una determinada persona como autora del mensaje.
2º.- Integridad, que implica la certeza de que el mensaje recibido por B (receptor) es exactamente el mismo mensaje emitido por A (emisor), sin que haya sufrido alteración alguna durante el proceso de transmisión de A hacia B.
3º.- No repudiación o no rechazo en origen, que implica que el emisor del mensaje (A) no pueda negar en ningún caso que el mensaje ha sido enviado por él.
Pues bien, la firma digital es un procedimiento técnico que basándose en técnicas criptográficas trata de dar respuesta a esa triple necesidad apuntada anteriormente, a fin de posibilitar el tráfico comercial electrónico.
Por otra parte, a los tres requisitos anteriores, se une un cuarto elemento, que es la confidencialidad, que no es un requisito esencial de la firma digital sino accesorio de la misma. La confidencialidad implica que el mensaje no haya podido ser leído por terceras personas distintas del emisor y del receptor durante el proceso de transmisión del mismo.

Dos tipos de sistemas criptográficos:
Los simétricos o de clave privada.
Los asimétricos o de clave pública.

o Sistemas criptográficos simétricos: son aquellos en los que dos personas (A y B), que van a intercambiarse mensajes entre sí, utilizan ambos la misma clave para cifrar y descifrar el mensaje. Así, el emisor del mensaje (A), lo cifra utilizando una determinada clave, y una vez cifrado, lo envía a B. Recibido el mensaje, B lo descifra utilizando la misma clave que usó A para cifrarlo. Los sistemas criptográficos simétricos más utilizados son los conocidos con los nombres de DES, TDES y AES.
o Sistemas criptográficos asimétricos o de clave pública: se basan en el cifrado de mensajes mediante la utilización de un par de claves diferentes (privada y pública), de ahí el nombre de asimétricos, que se atribuyen a una persona determinada y que tienen las siguientes características:
 Una de las claves, la privada, permanece secreta y es conocida únicamente por la persona a quien se ha atribuido el par de claves y que la va a utilizar para cifrar mensajes. La segunda clave, la pública, es o puede ser conocida por cualquiera.
 Ambas claves, privadas y públicas, sirven tanto para cifrar como para descifrar mensajes.
 A partir de la clave pública, que es conocida o puede ser conocida por cualquiera, no se puede deducir ni obtener matemáticamente la clave privada, ya que si partiendo de la clave pública, que se puede o ser conocida por cualquier persona, se pudiese obtener la clave privada, el sistema carecería de seguridad dado que cualquier podría utilizar la clave privada atribuida a otra persona pero obtenida ilícitamente por un tercero partiendo de la clave pública.


COMERCIO ELECTRONICO

Comercio electrónico es cualquier forma de transacción comercial en la que las partes se comunican entre sí por medio de ordenadores.
El término comercio electrónico se refiere al uso de un medio electrónico para realizar transacciones comerciales. La mayoría de las veces hace referencia a la venta de productos por Internet, pero el término comercio electrónico también abarca mecanismos de compra por Internet (de empresa a empresa).
Los clientes que compran en Internet se denominan ciberconsumidores. El comercio electrónico no se limita a las ventas en línea, sino que también abarca:
• La preparación de presupuestos en línea
• Las consultas de los usuarios
• El suministro de catálogos electrónicos
• Los planes de acceso a los puntos de venta
• La gestión en tiempo real de la disponibilidad de los productos existentes.
• Los pagos en línea
• El rastreo de las entregas
• Los servicios posventa
En algunos casos, el comercio electrónico permite personalizar los productos de manera significativa, en especial si el sitio de comercio electrónico está vinculado con el sistema de producción de la empresa (por ejemplo tarjetas comerciales, productos personalizados como camisetas, tazas, gorras, etc.).
Por último, en lo que respecta a servicios y productos (archivos MP3, programas de software, libros electrónicos, etc.), el comercio electrónico permite recibir las compras en un tiempo breve, o incluso de inmediato.


30/8/09

APORTACIONES DE LAS TICS









Las TICs están transformando las economías domésticas y mundiales, pues permiten generar riqueza a distancia y en red.
En términos de productividad y competitividad, las computadoras pueden producir, a la creatividad del ser humano que motiva la innovación sobre los usos de estas herramientas de Información y Comunicación. Los beneficios que aportan son de gran importancia, puesto que elimina las barreras de tiempo y espacio y facilita las comunicaciones, Internet como herramienta estándar de comunicación, permite un acceso igualitario a la información y conocimiento, favorece la cooperación y colaboración entre distintos actores, aumenta la producción de bienes y servicios de valor agregado y potencialmente, eleva la calidad de vida de los individuos.

Las TIC tienen un gran impacto en el actual proceso de enseñanza-aprendizaje, profundizando en las ventajas y problemas que ocasiona este nuevo reto para la educación. Aportando como herramienta de construcción, facilitando el aprendizaje, el desarrollo de habilidades y distintas formas de aprender, estilos y ritmos de los aprendices.
En el caso concreto de la educación no hay excepción, a lo largo de estos últimos años, se enfatiza mucho en relación con el cambio en el perfil del maestro como consecuencia de la integración de las nuevas tecnologías en el ámbito escolar.

FRENOS A LA EXPANSION DE LAS TICS


Problemas técnicos: Aun cuando los sistemas modernos buscan la estandarización y la interoperabilidad entre ellos, se mantienen en operación sistemas antiguos incompatibles por los grandes costos que representa su modernización, cambios de infraestructura y tiempos de puesta en operación. Por ejemplo la interconexión entre sistemas con anchos de banda diferentes puede llegar a convertirse en verdaderos cuellos de botella.


Falta de formación: Niveles de Formación técnico-práctico deficientes, sobre todo en países subdesarrollados. Sobre todo por falta de apoyo gubernamental y politización de la educación.

Problemas de seguridad: Accesos no autorizados a través de por ejemplo hackers hacen inseguros las redes informáticas. Así se da el caso del fishing en las compras con tarjetas de crédito por internet.

Barreras económicas: En el mundo un gran sector de la población se encuentra en extractos socio-económicos de pobreza lo que le hace imposible alcanzar las nuevas tecnologías a pesar de que sus costos van disminuyendo.


Barreras culturales: El idioma de la documentación técnica es primordialmente en inglés. Y hoy en día muchas personas no dominan el inglés.

SISTEMA DE INFORMACION Y TICS


Las TIC agrupan un conjunto de sistemas necesarios para administrar la información, y especialmente los ordenadores y programas necesarios para convertirla, almacenarla, administrarla, transmitirla y encontrarla.
La revolución tecnológica que vive en la humanidad actualmente es debida en buena parte a los avances significativos en las tecnologías de la información y la comunicación. Los grandes cambios que caracterizan esencialmente esta nueva sociedad son: la generalización del uso de las tecnologías, las redes de comunicación, el rápido desenvolvimiento tecnológico y científico y la globalización de la información.