- By Juan M.Feil - Este sitio contiene fuentes y/o experimentos en JavaScript, Visual Basic, C, C++, ASP. En mayor proporción Leguaje C/C++ (Borland Turbo 3.00) |
LENGUAJE C/C++
Compilador: Turbo Borland C++ 3.00. Una masa.
Mi objetivo no es realizar tutorial porque el C es infinito. Simplemente voy a poner mis descubrimientos, ya que con C se empieza desde 0. Hay (message box), menus, listados con desplazamientos de vectores, etc.
INTRODUCCION
La programación, como sabemos es resolver un problema de la vida "sin la compu" mediante un artilujio, una estrategia, después si programarlo en la computadora. Por supuesto nuestro cerebro lavado con análisis estratégicos, entre otros "Divide y Vencerás", Objetos, etc. Pero hay algo innato en un programador.
No se puede considerar a una persona como genia si se sabe en un 100% las fórmulas de Einstein. Genio es Einstein porque las inventó.
Ok?. Se entendió?. Hay que inventar, crear, para que la tecnología avance. Vos podés cambiar el mundo, y yo también. En computación es normal que se flajien fuentes, no me interesa que lo hagan, todavía existen personas que les gusta llamar la atención cuando en realidad un artísta se gana al público haciendo una buena, y única canción, y por supuesto se lo mantiene innovando todos los días. En el mercado, un vendedor entretiene a sus clientes con cosas nuevas (modernizandose). Y para culminar este razonamiento, toda la tecnología mundial avanza con un objetivo: "La felicidad del hombre". Los avances industriales evitan que el hombre haga fuerza mediante maquinarias, la medicina aporta formulas para evitar enfermedades. Todas estas ramas están dentro de una gran rama, esa rama o sistema la podes programar vos.
BIENVENIDOS AL MUNDO DE LOS SISTEMAS
La rama más alta e importante de la humanidad
LAS FUENTES
============
Estarán en un archivo.h y le voy a poner un manual de programador para que puedan usarlo como library.
1)_
Cómo hacer un message box en C.
Esta función nació ni bien formé parte del grupo integrador de un trabajo final de prog II, se me ocurrió hacerlo, en una función como está hecho en Visual Basic. Su llamada es casi idéntica ejemplo: msgbox("TITULO", "Tu P.C. tiene virus");
Algoritmo en pseudocódigo castellano
Tomar la posición actual del cursor mediante wherex() y wherey();
Capturar en un buffer los carácteres que hay en la pantalla debajo del msgbox a mostrar para que después de cerrarlo lo deje como estaba, esto simula la ventana. Para copiar al buffer usé gettext(x1,y1,x2,y2).
Mostrar el msgbox en el centro de la pantalla, mostrando los parámetros pasados por valor.
Una vez que respondió Si. No, o puso enter retornar valor y pegar con puttext(x1,y1,x2,y2);
Dejar el cursor en donte estaba, con gotoxy().
Lo que hice fue poner 2 cartelitos en esta función.
CARTEL A: un cartel de alerta, Enter para continuar...
CARTEL B: un cartel de pregunta Si/No. Y retorna 0 si puso Si,
Función: (usa valores predeterminado, como el título, y op).
int msgbox(char *titulo="Lizard System", char *msg, int op);
Parámetros:
*titulo: puntero de la cadena correspondiente al titulo del cartel.
*msg: puntero de la cadena correspondiente al mensaje.
int op: Si es 0 es un cartel de Tipo A: Alerta,
si es 1: es un cartel de Tipo B: Si / No.
Retorna 0: si contestó que si
else contestó que no.
No hace falta tomar lo que retorna cuando ponemos un cartel de alerta obviamente.
2)_
Cómo hacer un MENU COPADO.
Caracteristicas:
Se mueva como las flechitas y su selección sea un contraste igual que un menu de Windwos, ejemplo, botón derecho (ese menu).
Bueno para un programa en DOS, basta y sobra. Todos los sistemas están organizados en Menu.
Algoritmo
Cargar una estructura vector con dos campos, el nombre de la opción, y la aclaración para ponerlo en una barra de estado.
Desplegar todas las opciones con un for, y usar dos variables:, una para marcar la posición del vector que está seleccionada, y una auxiliar para poner la posicion que se había seleccionado antes.
Cuando mueve la flecha imprimir con otro color constrastado la nueva opción, y con el color normal la opcion anterior.
Cuando se da ENTER retorna la posición del vector.
Podemos agregar detalles, como tiene windows, que si bajaste con la flecha a la ultima opcion empiece arriba, teclas home, end, etc.
Función
int menu(int cant,char *titulo, struct OPCION *opm,int pos)
Parámetros:
int cant: cantidad de opciones (tamaño del vector).
*titulo: Un Titulo al MENU para que se ponga arriba, ejemplo: MENU PRINCIPAL
struct OPCION *: Puntero para el vector OPCION donde tiene cargado los dos campos.
int pos: "Detalle importante"es la opción que arranca seleccionada por defecto. Utilizada cuando se sale de un sub-menu para que aparezca esa opcion seleccionada.
Retorna el valor del vector:
hacer un switch para ejecutar.
ejemplo de llamada:
void main(void)
{
int val=0, pred=0;
struct OPCION { char nombre[20]; char aclara[40]; };
OPCION elejir[3]; //3 opciones
strcpy(elejir[0].nombre, "VENTAS");
strcpy(elejir[0].aclara, "Ingreso de Ventas anuales");
strcpy(elejir[1].nombre, "COMPRAS");
strcpy(elejir[1].aclara, "Compras actuales");
strcpy(elejir[2].nombre, "SALIR");
strcpy(elejir[2].aclara, "Hasta la vista");
//vector cargado
while(val!=2)
{
clrscr();
val=menu( 3 ,"MENU PRINCIPAL", OPCION *elejir,pred);
pred=val;
switch (val)
{
case 0: ventas();
break;
case 1: compras();
break;
case 2: //saldria del while
break;
}//end switch
}//end while
}//end main
Listo: Para tomar las opciones de la flecha lo podés hacer con un getch();
Pero...
las flechas toman doble getch();
tenés que poner 2 getch(); para controlar las flechas.
si puso enter el primer getch() es 13.
si presiono una FLECHA, el 1er getch() dió "0", entonces tomar otro getch(); y este nos da 72 para flecha arriba. 80 abajo, etc.
Feliz programación.-
3)_
Cómo evitar invadir memoria escribiendo más del limite del string.
Como sabemos cuando declaramos un string le ponemos un tamaño, y cuando escribimos con scanf, o puts, podemos pasarnos y se nos cuelga la máquina quizás.
Solución:
Con un getch();
Pasar por valor la cantidad o límite del vector, ejemplo 20 : (19 letras + el \0)
Pasar por dirección el string ó "vector de carácteres".
Considerar 2 cosas. Dentro de la Implementación la posición del vector. Y para la interfáz (lo que ve el usuario) la posición del cursor para imprimirle el carácter escrito.
La posición del cursor es necesario para reubicar luego de que se apretó el backspace.
Tomar caracteres normales del 32 al 170 ASCII, que sería letras y números.
Guardar cada posición en un vector y mostrar ese carácter por pantalla.
Si se quiere escribir y la posición del vector +1 == al límite entonces no escribir más.
Si puso BackSpace, descontar la posicion del vector y el cursor, e imprimir un espacio para borrar la letra (interfaz), No hace falta borrar el vector, porque el caracter nulo iría siempre en pos_vector+1
Si puso ENTER poner el carácter nulo que iría en la posición del vector +1;
Y como dato hay una serie de cuestiones que tiene todos los editores, las flechas, la tecla suprimir, la tecla backspace en el medio de una cadena. Es un kilombo pero salió. Una vez que sacaste este podés hacer un editor, imprimir lo que tenes y poder modificarlo. Podes aprovechar el editor para editar numeros, tenes funciones para convertir de caracter a entero, y alrevez, ver atoi(), atof(), gcvt().
PRONTO HABRÁ MÁS EN C/C++
- - - JAVA SCRIPT - - -
Java Script
(Para entenderlo mejor conocer Clases y Objetos, propiedades, procedimientos,etc
y la codificación es la misma que en C).
proyecto: New!!!! BASE DE DATOS "LFQL" ?? ENTER
Investigaciones en JavaScript.
Ej.28 Practico 2. Para controlar su peso. CONTROLE SU COMIDA !!!! ====>>
------------------------------------------------------------------
ACCESO CON CONTRASEÑA
Password:"InGreso55"
COmo está hecho en JavaScript el único que ingresará será el que edite el html, y bueno al menos crearemos material especializado para especializados.
ESTUBE PRACTICANDO ASP con bases de datos si querés jugar un poco entra:
nombre: juan
password: shareware
en http://free.7host02.com/juanfeil