pensando en objetos + consejos











bueno este documento quiero que sea una combinacion de algo que a la verdad hasta ahora aprendo que son las propiedades de los objetos donde usamos get para retornar y set para procesar los valores. es decir:

todo objeto tiene una propiedad, digamos que tenemos monedas de 100, 200, 500 "una de cada una" estos objetos estarían encerradas dentro de una plantilla que llamaremos "yo tengo dinero :D". Pero estos objetos "monedas" tienen sus propiedades aquí la mas destacables son su valor $100, $200 y $500 respectivamente, otra propiedad seria el tamaño, cada una posee un tamaño diferente. pero comparten métodos que las hace pertenecer a una misma plantilla los cuales son comprar cosas. Asi es como hablando de propiedades las declaramos como

public Property moneda () As double
get
return valor
end get

set (Byval valor as double)
end set
End Property

Ahora por lo que me motiva a publicar esta pequeña practica es que trabaje con diferencia de fechas. es decir conocer el tiempo transcurrido entre uno y otro. para los que usan la biblioteca sabrán que esto es lo básico de sistema toman la fecha de préstamo y la de entrega, luego obtiene la diferencia y si te pasa de dos días por decir algo te empiezan a multar. por lo que supongo que habrán algunos que les interese estos algoritmo, y mas que eso funciones de visual basic que ayudan a calcular estas diferencias.

utilizo estructuras para la fecha por como dije quería probar las propiedades de los objetos:

pues ahora si, aqui esta el codigo "solo una parte> la mas pequeña" la otra clase la pueden descargar con el proyecto completo:

Public Class actividad

'esta es una clase que supuestamente mostraria el comportamiento de un usuario en un for0
' si lo extendemos mas, esto seria el nivel de trabajo de un empleado en una empresa
' con lo que podriamos tener sus bajas o mejorar a nivel laborar, con lo q llevaria
' a memonrandos para su hoja de vida u ascensos en caso contrario
' pero vamos por el lado facil: un usuario d eun foro.



Structure Fderegistro
Dim dia As Byte
Dim mes As Byte
Dim anio As Short
End Structure
Public nick As String
Private Ndemensajes As Integer
Private registro As Fderegistro

Public Property nombre() As String ' propiedad #1: los nick deben contener almenos un caracter asi sea tipo alfanumerico o un caracter especial
Get 'aqui se devuelbe el valor del atributo
Return nick
End Get

Set(ByVal nom As String) 'aqui se procesa el valor del atributo
If (nom.Length = 0) Then
Console.WriteLine("")
Console.WriteLine("(X) Nombre vacio")
nick = 0 'mmm aquimando una bandera para que vuelba a ingresar nuevos datos
Console.ReadKey()
Console.Clear()
Else
nick = nom
End If
End Set
End Property


Public Property numdemesnajes() As Integer 'propiedad #2: el numero de mensajes no es <>
Get
Return Ndemensajes
End Get

Set(ByVal valor As Integer)
If (valor <>
Console.WriteLine("(X) El numero de mensajes es invalido, intentelo de nuevo")
Ndemensajes = -1
Console.ReadKey()
Console.Clear()
Console.Write("nombre del usuario: " & nick) ' esto lo ago para cuando se produce una excepcion de conversion de tipo y ahora que el numero es negativo

Else
Ndemensajes = valor
End If
End Set
End Property


Public Property ingFecha() As Fderegistro

Get 'aqui devulebo la info
Return registro
End Get
Set(ByVal recibido As Fderegistro) 'aqui proceso la info
If (recibido.anio <>
Console.WriteLine("(X) no existen fechas negativas")
recibido.anio = -1

Console.ReadKey()
'ahora algo mas estetico para que no se vea un desorden

Console.Clear()
Console.Write("nombre del usuario: " & nick)
Console.WriteLine("")
Console.Write("numero de mensajes: " & Ndemensajes)


Else
registro = recibido
End If
End Set
End Property



End Class



Nota: estaré haciendo las demás aplicaciones en modo gráfico jejejej o bueno eso creo.

borland c++ "Este es el que se usa en la U."


Borland C++ es un lenguaje de programación derivado de C++. Desarrollado por la compañía Borland Software Corporation.


Nota: es bueno tenerlo siempre a mano, pues para mi no existe solo un lenguaje de programación al cual dedicarme y al usar varios se amplian las posibilidades

factura en java

bueno primero que todo aclarar que solo es un bosquejo de una factura en java no ultiliza archivos para almacenamiento de datos
permanentes ya que era una aplicación solo para mi segundo parcial y solo manejabamos arrays.

aqui estan unas capturas:




mmm veo que es muy largo para subir todo el codigo pero aqui esta el proyecto completo para descargar:

y úes ya saben si quieren editarla y agregarle nuevas funcionalidades no se les olvide subir el proyecto nuevamente :D


JAVA, DLL y C -project-ric.org

Este es un documento sacado desde project-ric.org claro con permiso de los administradores "Lozano". bueno en fin este blog quiero que sea como una base de datos creada por todos dodne podamso ver informacion respecto ala programacion y bajar codigos fuentes. entre tanto este tuto de un programa que usa java,dll y c para su funcionamiento.

en fin aqui esta el tuto:

Les recuerdo: Hacer dos programas y se comuniquen por medio de librerías dinamias o DLL. El ejercicio trata de instanciar un arreglo de enteros con un dimensión de 5000 y en cada espacio agregar un numero radom de 0 a 60000 :xD y en su salida imprimir estos numeros en orden ascendente. La cuestion es que el arreglo se debe instanciar en C o C++ (use C), el arreglo lo recibe un programa en java y este los ordena y después el programa en java envia el arreglo en orden a C y este los imprime. (Facil no??? ='()

mi proyecto final de asm

bueno este programa fue mi proyecto final para la materia de programacion a bajo nivel. esta echo en C con asm, claro q la mayor parte del codigo es asm

cuenta de tres partes
  1. la entrada: es una aniamcion echa con las librerias graphic de c es un guiño sonriendo y que saca la lengua tambien emite unos pitidos.
  2. menu principal tiene creo q cuatro opciones:
  • matematica: operaciones matematicas
  • cadenas: manejo de cadenas, como busqueda de caracteres, invertir la cadena
  • archivos: este es el q mas me gusta, es como el sistema de prestamo de una biblioteca (basico, ya que no habia mucho tiempo para entrar en detalle)
  • autores: son los nombres de los autores con efectos al mover el mouse, jajaj me preguntan que como los hice :D pero digamos que fue suerte jajajaja
el programa esta echo en borland c++. me hubiera gustado colocar imagenes del programa talves se hubieran animado mas a leerlo pero se ejecutaba en pantalla completa y no me mostraba nada la capturas de pantallas y mi camara fotografica no es muy buena. pero q les quede la inquietud.

este es el codigo, esta es una carpeta con toda la documentacion que ultilice para desarrollarlo (pdf y paginas web)


structuras en visual basic


bueno el siguiente es un ejemplo de como ultilizar las estructuras es visual basic. este ha sido realizado como un proyecto de aplicacion de consola, es simple lo unico que hace es leer lso datos personales de un alumno y luego mostrarlos en la tabla, el codigo es muy limitado, no es personalisable pero en el codigo veran en los comentarios ideas de como personalisarlos para n registros.

este codigo ultiliza una matriz dado el caso de como quiero mostrar los datos "asi como se ven en el resultado final" y utilisa uan structure que se decalra de la siguiente forma

(nivel de acceso) structure
-
-
end structure

como este es mi primer post sobre visual y para los que apenas comenzamos veamos que a diferencia de c/c++ visual no ultiliza llaves ni punto y coma(;) para finalizar una linea
termina con palabras como end por ejemplo un if seria

if (condicion)then 'digamso que aqui las lalves serian then y la de cierre end if
-
end if

bueno despues de una brebe introduccion al lenguaje aqui esta el codigo:

'Imports System
Module Module1
Private Structure datos
Dim nombres As String
Dim apellidos As String
Dim telefono As String
Dim id As Long
Dim fnacimieto As fecha
End Structure ' end estrucuta datos

Private Structure fecha
Dim dia As Byte, mes As Byte
Dim año As Int16
End Structure 'm end estrucutra fecha

Private Sub graficar(ByVal tabla(,) As String)
Dim i As Byte, j As Byte
Dim x As Byte = 0, y As Byte = 0
Console.Title = "BD virtual"
Console.SetCursorPosition(2, 1)
Console.Write("Nombres")
Console.SetCursorPosition(15, 1)
Console.Write("Apellidos")
Console.SetCursorPosition(37, 1)
Console.Write("Telefono")
Console.SetCursorPosition(53, 1)
Console.Write("ID")
Console.SetCursorPosition(66, 1)
Console.Write("Fnacimiento")



For i = 1 To 77 Step 1 'cuadro principal
Console.SetCursorPosition(i, 0)
Console.Write("-")
Console.SetCursorPosition(i, 22)
Console.Write("-")
If (i <>
Console.SetCursorPosition(0, i)
Console.Write("|")
Console.SetCursorPosition(77, i)
Console.Write("|")
End If

Next i 'cuadro principal

For i = 1 To 22 Step 1 'lineas intermedias verticales
Console.SetCursorPosition(14, i) 'este es el q limita a nombres
Console.Write("|")
Console.SetCursorPosition(36, i) 'este es el q limita a apellidos
Console.Write("|")

Console.SetCursorPosition(52, i) 'este es el q limita a telefonos
Console.Write("|")
Console.SetCursorPosition(65, i) 'este es el q limita a ID
Console.Write("|")
Next i 'lineas intermedias verticales


For j = 3 To 17 Step 6 ' lineas horizontales

For i = 1 To 77 Step 1
Console.SetCursorPosition(i, j)
Console.Write("-")
Next i 'lineas horizontales

Next j


j = 0
i = 0
For x = 0 To 2 Step 1

j += 6

Console.SetCursorPosition(2, j)
Console.Write(tabla(x, 0))

Console.SetCursorPosition(15, j)
Console.Write(tabla(x, 1))


Console.SetCursorPosition(37, j)
Console.Write(tabla(x, 2))

Console.SetCursorPosition(53, j)
Console.Write(tabla(x, 3))

Console.SetCursorPosition(66, j)
Console.Write(tabla(x, 4))

If j = 18 Then
j = 6
End If

Next x

'nota para mi: si quisieramos hacer el anterior proceso automatico con un numero
'dificil de manejar redimecnioar la pantalla para encontrar posiciones iguales
' creo que se usa Console.SetWindowSize asi correriamos en la posciion x y en y
' ademas hay q diseñar bien los siclo cuadno sale de uno y entrar en el otro porq ademas
'manejariamos las pociones en la matriz.





Console.Read()
End Sub

Sub Main()
Console.Clear()
Dim cp As datos '= New datos
Dim i As Byte = 0, j As Byte = 0
Dim ftabla As String 'la fecha en la tabal sera del tipo aa/mm//dd pero si tubiera q hacer algun conteo lo trabajo internamente como numericoS
' Dim continuar As Char
Dim continuar As ConsoleKeyInfo ' ojo ultilizar keyinfo ya que es lo mas recomendado porq si leyeramso una respuesta
'con read el entraria en un siclo si se precionaran mas teclas, es decir no se limita a leer
'un solo caracter, porloq genera repeticiones innecesarias y q podrias provocar problemas


System.Console.Title = "☺☻ " ' no los escribe pero se ven bn


'Dim BDvirtual(2, 4) As datos ' esto me declara una matriz de estructura o BDvirtual(100) As datos algo mas sencillo
'BDvirtual(i, j) = cp 'aqui ago la asiganacion

Dim BDvirtual(2, 4) As String 'pero parq mi proposito es una tabla lo que quiero realizar

While (i <= 2) ' el numero de registro que quiero presentar puede ser indefinido pero para este caso es estatico
j = 0
While (j <>
Try

Console.SetCursorPosition(30, 1)
System.Console.WriteLine("!!!!BD VIRTUAL!!!!")

Console.SetCursorPosition(0, 3)
System.Console.Write("Nombre Alumno: ")
cp.nombres = System.Console.ReadLine()

Console.SetCursorPosition(0, 4)
System.Console.Write("Apellido Alumno: ")
cp.apellidos = System.Console.ReadLine()

Console.SetCursorPosition(0, 5)
System.Console.Write("Telefono Alumno: ")
cp.telefono = System.Console.ReadLine()

Console.SetCursorPosition(0, 6)
System.Console.Write("Identificacion Alumno: ")
cp.id = System.Console.ReadLine()

Console.SetCursorPosition(0, 8)
System.Console.WriteLine("Fecha de Nacimiento:") 'fecha de naciminto
Console.SetCursorPosition(0, 9)
System.Console.Write("DD: MM: AA: ")
Console.SetCursorPosition(5, 9) 'leo el dia denacimeinto
cp.fnacimieto.dia = Convert.ToByte(Console.ReadLine)
Console.SetCursorPosition(12, 9) 'posicion del mes
cp.fnacimieto.mes = Convert.ToByte(Console.ReadLine)
Console.SetCursorPosition(21, 9) 'posicion del año
cp.fnacimieto.año = Convert.ToInt16(Console.ReadLine)

'ahora realizo la asignacion a mi BD virtual
BDvirtual(i, j) = cp.nombres
j += 1
BDvirtual(i, j) = cp.apellidos
j += 1
BDvirtual(i, j) = cp.telefono
j += 1
BDvirtual(i, j) = cp.id
j += 1
ftabla = cp.fnacimieto.dia & "-" & cp.fnacimieto.mes & "-" & cp.fnacimieto.año
BDvirtual(i, j) = ftabla

Catch ex As System.InvalidCastException ' no es la manera correcta pero tengo flojera
Console.Clear()
Console.WriteLine("(X) tenga cuidado con el tipo de dato que suministra")
Console.WriteLine("")
Console.WriteLine("")
Console.WriteLine("info del error (" & ex.ToString & ")")
Console.ReadKey()
Main()
End Try


'preguntemos si se registraran nuevos datos
Do
Console.SetCursorPosition(1, 10)
Console.WriteLine("Desea continuar s/n: ")
Console.SetCursorPosition(22, 10) ' borro donde recibo la respuesta
Console.Write(" ")
Console.SetCursorPosition(22, 10)
'continuar = Convert.ToChar(Console.Read())
continuar = Console.ReadKey()


If continuar.KeyChar = "s"c Then
i += 1
Console.Clear()
ElseIf continuar.KeyChar = "n"c Then 'hay q espesificar porq puede ser cualquier otra tecla
i = 3
End If


Loop While (continuar.KeyChar <> "s"c And continuar.KeyChar <> "n"c) 'fin wuile de decicion de continuar
End While 'while del j

End While ' while del i

System.Console.Clear()
'''' ahora boy a graficar la BDvirtual

graficar(BDvirtual)
System.Console.Read()
End Sub ' fin main

End Module

y aqui esta el proyecto en visual

el codigo es simple, son solo pruebas!!!!


tiempo sin escribir!!!!!!!

mmmmmmmmmm el semestre pasado fue algo dificil la u me quedaba muy poco tiempo, y ahora estoy a poco tiempo de entrar a clases he leido algunas cosas durante estas vacaciones, aunque tambein he visto muchas series. quisiera colocarles lo que vi sobre java pero sera + adelante quiero aprender java de verdad aunque les soy sincero no es q me guste mucho. pero esucriñemoslo hasta el fondo y encpntremos cosas q me llamen la atencion jejeje.

En fin ahora veré en la u programación avanzada con lo que utilizaremos la plataforma .net estoy un poco decepcionado por no usar C# aunque la verdad ya se me olvido jeje pero trabajaremso con vb.net y estado leyendo algo para familiarisarme con el lenguaje estare subiendo codigos, cabes destacar q son practicas pequeñas pero ayuda a entender cosas del lenguaje. y sobre linux nos estaremos escribiendo mas adelante.