Aprendiendo H++ Desde Cero..
Sintaxis
Comenzando con un hola mundo
Generando nuestro primer programa
Variables
Estructura
Nuevos comandos
Estructura FOR
Librerías
Módulos
Creando un módulo
Utilizando modulos
Utilizando librerías
Libreria paint (mas sencilla)
Librería teclado
Librería loadimage (cuando se empieza a poner interesante)
Sintaxis:
En H++ es obligatoria una pequeña estructura:
Código: Seleccionar todo
iniciar...
Código: Seleccionar todo
titulo: bla bla bla
Código: Seleccionar todo
color: A2
y todo code debe finalizar con
Código: Seleccionar todo
...finalizar
entonces esto es obligatorio:
Código: Seleccionar todo
iniciar...
color:
titulo:
...finalizar
Hola Mundo:
Bueno, ahora que ya sabemos lo mínimo que hay que poner para que nuestro programa funcione, lo pondremos de entrada y realizaremos nuestro primer código.
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
...finalizar
ahora hay un boton para probar que se encuentra en herramientas - testear
prueben...
uh que pasa!! ya esto tira error!! ya me enojé!! ps es normal que pase de largo, se abre y se cierra pero no es un error, pero entonces que pasa? en H++ hay que indicar todo lo que queremos que haga la computadora, y como inicia el programa, asigna el titulo y pone el color y lo cierra, no nos da tiempo a ver porque la pc es muy rapida, entonces para que se frene tenemos algo que se llama sentencia pausa.../pausar:
son dos comandos.
si agregamos pausa... se frenará cuando el pc lea esa linea, osea que si inicia, y luego cambia el color, luego cambia el titulo, y llega a esa linea, se frenará y no se cierra entonces nos deja ver. pero no es por un tiempo, es hasta que la persona apriete una tecla, osea que si el code llega a pausa... y no se aprieta un tecla, nunca se cierra.
existe pausa... y pausar:
la diferencia es que pausa... solo espera y no dice nada y pausar: espera pero además pone en la pantalla "presione una tecla para continuar"
aveces es mas efectivo pausa... y aveces pausar: depende para que lo uses...
ahora al code agreguemosle la sentencia pausa, así se frena:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
pausa...
...finalizar
ahora prueben, verán que aparece la pantalla verde y con el titulo que dice hola mundo. ahora probemos que pasa si le pongo pausar:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
pausar:
...finalizar
prueben poner el pausa... antes del titulo
Código: Seleccionar todo
iniciar...
color: 2A
pausa...
titulo: hola mundo
...finalizar
Código: Seleccionar todo
iniciar...
color: 2A
pausa...
titulo: hola mundo
pausa...
...finalizar
como ven las pausas son interesantes, podemos hacer que cambie el titulo de esta forma:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
pausa...
titulo: sos un salame
pausa...
titulo: hola mundo
pausa...
...finalizar
bien, ahora hagamos que escriba hola mundo, acá se pudrió todo xD
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
pausa...
...finalizar
así:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: hola mundillo gigirigillo
pausa...
...finalizar
Entendí que puedo escribir y hacer algunas cosas, pero hasta ahora para que pueda mostrar el programa necesito que se abra el compilador... Tranquilo, ahora te enseñaré como generar un .exe al abrir el archivo, solo se abre la ventanita, no el compilador.
Pongamos el code con el que estábamos trabajando:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: hola mundillo gigirigillo
pausa...
...finalizar
y decidimos donde guardar y listo, ahora prueben de abrir lo que recien guardaron, solo les aparece la ventanita "hola mundo" de titulo y dentro dice "hola mundillo gigirigillo"
bien, excelente... pero algo mas emocionante, mejoremos un poco el code:
abrimos de nuevo el compilador y ... perdimos el code si lo cerramos, porque no se puede abrir el archivo que hicimos hace un rato :P para eso está archivo - guardar pero si fueron precavidos ya lo guardaron antes...
de todos modos este es el code:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: hola mundillo gigirigillo
pausa...
...finalizar
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir:
escribir: /\
escribir: /__\
escribir: | |
escribir: | |
escribir: |__|
pausa...
...finalizar
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: /\
escribir: /__\
escribir: | |
salto:
escribir: | |
escribir: |__|
pausa...
...finalizar
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: /\
escribir: /__\
escribir: | |
escribir: | |
escribir: |__|
pausa...
...finalizar
por ejemplo este code:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: /\
escribir: /__\
escribir: | |
escribir: | |
escribir: |__|
pausa...
...finalizar
¿que diferencia hay entre compilar (generar el .exe) y testear (probar)?
es mas rapido y molesta menos el probar, si es solo para ver si funciona un código entonces es mejor el testear, por ejemplo, si sacas el color, el testear no se queja, pero al intentar compilarlo si se queja.
Variables:
¿que es una variable?
Una variable es un espacio reservado en memoria para guardar algun tipo de dato.
esto quiere decir que las variables son como cajas virtuales, donde nosotros podemos poner textos, letras, numeros para luego usarlas, podemos guardar muchos datos.
¿para que la puedo usar?
las puedo usar para sacar cuentas, para esperar a que el usuario meta un dato en la variable.
las variables pueden llenarse de datos, los que tu quieras, puedes meterles un texto que diga "hola" en la variable que se llame jorgito o caja1 y luego puedes usar caja1 para mostrar lo que tenga. para mostrar lo que tiene una variable se hace así:
Código: Seleccionar todo
escribir: */*caja1*/*
tambien se pude meter en otros textos, de esta forma:
Código: Seleccionar todo
escribir: hola */*caja1*/* bienvenido al programa
¿como la uso en mi code?
Código: Seleccionar todo
declarar: ingreso: caja1=
declarar significa que se creará una variable, ingreso significa que ba a ser para que guarde lo que la persona ingresa, y caja1 será la variable, al crear una variable de esta forma no se necesita */*caja1*/* solo se pone caja1 pero para luego mostrar debes poner */*caja1*/* veamos, eso hace una pausa, y espera a que el usuario escriba algo y apriete enter, una vez que aprieta enter se guarda lo que escribió en la variable...
podemos hacer que luego muestre lo que escribió el usuario, miren este ejemplo:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: ingrese un nombre
declarar: ingreso: caja1=
escribir: hola */*caja1*/* bienvenido
pausa...
...finalizar
y lo pausa. prueben :D
si se fijan, antes del declarar: pusimos escribir: ingrese un nombre, esto no hace falta, y ahorra espacio en el code si lo ponemos luego del =, el declarar nos permite tambien escribir, miren así:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
declarar: ingreso: caja1= ingrese un nombre
escribir: hola */*caja1*/* bienvenido
pausa...
...finalizar
hay un comando que se llama
limpiar:
sirve para borrar todo lo que escribimos antes del limpiar, prueben:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
declarar: ingreso: caja1= ingrese un nombre
limpiar:
escribir: hola */*caja1*/* bienvenido
pausa...
...finalizar
¿que son las variables de entorno?
las variables de entorno, son variables que consiguen informacion especial, no sirven para meterle datos, vienen con datos predefinidos, pueden traer la ruta de windows, la ruta de system32, la ruta de archivos de programa, el nombre de usuario del pc, la version de windows, ETC.
¿como las uso en mi code?
por ejemplo si nosotros creamos un programa y queremos saber la ruta donde se encuentra windows, (porque se puede instalar en el disco C, D, etc.) y no sabemos en que disco está entonces podemos usar la variable {windir}
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola mundo
escribir: la ruta de windows es: {windir}
pausa...
...finalizar
probemos esta variable de entorno:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: {nombre_de_usuario}
pausa...
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
:opcion1
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
:opcion1
escribir: hola
pausa...
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
:inicio
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
:opcion1
escribir: hola
pausa...
ir::inicio
...finalizar
pero como ven queda feo que halla un menu debajo del otro asique pongamos un limpiar abajo del lugar:
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
:inicio
limpiar:
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
:opcion1
escribir: hola
pausa...
ir::inicio
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
:inicio
limpiar:
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
si: */*opcionmenu*/*==2 ir::opcion2
:opcion1
escribir: hola
pausa...
ir::inicio
:opcion2
escribir: sacar una cuenta
pausa...
ir::inicio
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
:inicio
limpiar:
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: */*opcionmenu*/*==1 ir::opcion1
si: */*opcionmenu*/*==2 ir::opcion2
si: */*opcionmenu*/*==3 ir::opcion3
:opcion1
escribir: hola
pausa...
ir::inicio
:opcion2
escribir: sacar una cuenta
pausa...
ir::inicio
:opcion3
...finalizar
pero que pasa si ponemos otra opcion que no esté? ps el code manda lo que sigue porque ningun if es correcto y pone hola, hay una opcion, que se llama nodefinido/definido esto sirve para que si el numero no está haga otra cosa:
1 º declaramos opcionmenu para poder usarlo en definido/nodefinido
Código: Seleccionar todo
declarar: "opcionmenu="
Código: Seleccionar todo
si: no: definido: opcionmenu ir::error1
Código: Seleccionar todo
si: definido: opcionmenu ir::error2
entonces podemos usarlo así:
Código: Seleccionar todo
iniciar...
declarar: "opcionmenu="
titulo: menu
color: 17
:inicio
limpiar:
escribir: Elija la opcion deseada [1/2/3/4]
salto:
escribir: 1. escribir hola
escribir: 2. sacar una cuenta
escribir: 3. salir
declarar: ingreso: opcionmenu=
si: no: definido: opcionmenu ir::error1
si: */*opcionmenu*/*==1 ir::opcion1
si: */*opcionmenu*/*==2 ir::opcion2
si: */*opcionmenu*/*==3 ir::opcion3
si: definido: opcionmenu ir::error2
:opcion1
escribir: hola
pausa...
ir::inicio
:opcion2
escribir: sacar una cuenta
pausa...
ir::inicio
:error1
escribir: debe ingresar una opcion.
pausa...
ir::inicio
:error2
escribir: debe ingresar una opcion valida
pausa...
ir::inicio
:opcion3
...finalizar
Mensaje: Muestra un mensaje emergente o popup
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
mensaje: hola
...finalizar
es para eliminar cierto archivo, por ejemplo
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
eliminar: C:\miarchivo.txt
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
iniciar: {windir}\explorer.exe
...finalizar
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
eliminar_proceso: explorer.exe
pausa...
...finalizar
Crear_carpeta: Pues creo que es obvio no?
Copiar: Copia archivos x'd
Código: Seleccionar todo
iniciar...
titulo: menu
color: 17
copiar: C:\prueba.bat C:\ojoooj.bat
pausa...
...finalizar
Stop: Hace una pausa
Enviar_paquetes: Es como el ping, sirve para enviar un ping a esa direccion
Código: Seleccionar todo
enviar_paquetes: 192.168.1.1
Bueno, hay dos tipos de estructuras For, el For y el For-simple
FOR:
Código: Seleccionar todo
iniciar...
titulo: prueba FOR
color: F1
for: /D *//*i en: ("manzana","pata","roca","zandia") hacer: (escribir: me como una *//*,.,i)
pausa...
...finalizar
mas simple, es que carga la primer cosa que está en el primer paretesis ("manzana") en la variable i, luego hace lo que esté en el segundo parentesis, luego carga en la variable i la segunda cosa que hay en el primer parentesis, y hace lo del segundo, así hasta terminar, entonces el resultado es:
me como una manzana
me como una patata
me como una roca
me como una sandia
deben poner siempre las variables del for en este formato *//*variable y para llamarla en el hacer usar *//*,.,
hasta ahora usabamos */*variable*/* esto es aplicable solo en el for...
For simple:
Código: Seleccionar todo
declarar: devolucion: alex=0
:fos
simple: */*alex*/*:for7 ir::salida
escribir: alex
declarar: devolucion: alex=*/*alex*/*+1
volver:fos
:salida
funciona facil, primero declaramos la variable alex y le asignamos 0. luego el lugar de inicio (acá nombrada fos)
hacemos que inicie el for hasta 7 (:for7) y cuando llegue al 7 que valla a la salida.
ponemos nuestro comando, luego hacemos que aumente la variable alex, volvemos al inicio (fos) y creamos el lugar salida.
Librerias:
Las librerías de h++ son llamadas .lhc y sirven para agregar mas comandos de los que existen ya en h++, por ejemplo, podría existir una librería que agregue un comando llamado pelota: y que al insertar esa librería, escribir "pelota:" aparezca una pelota que gira.
el laboratorio de Hpp está creando algunas nuevas librerías, que vienen con un parche para que funcionen, estas librerías son: (como adelanto les digo las novedades)
HTTP/TCP.lhc para crear tipo un explorador de inet.
GraphicGeneralLib.lhc (ggl) para crear un entorno gráfico (formularios, textboxes, etiquetas, etc.)
puedes agregar una libreria en el menu librerías y modulos/insertar libreria (no es recomendable usar la opcion ver librerías)
Modulos:
Los módulos sirven para no tener un code de 3000 lineas, osea, creas un modulo y agregas una pate del código, y luego en tu code solo con una palabra llamas al codigo que guardaste en ese modulo. y puedes usar esa palabra en cualquier parte del código, repetirla, etc. Con el objetivo de programar mas organizadamente...
Creando Un Modulo:
Para crear un modulo, es como crear el codigo de un programa, primero lo hacemos, se hacen de esta forma:
Código: Seleccionar todo
:alex:
escribir: hola alex!
escribir: alex es un genio!
escribir: hola alexiiiito!!!
pausa...
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hoa
:alex:
...finalizar
Código: Seleccionar todo
escribir: hola alex!
escribir: alex es un genio!
escribir: hola alexiiiito!!!
pausa...
para poder modificar un modulo en el menu librerías y modulos/ abrir modulo
Usando Modulos:
Puedes usar uno o mas modulos cargandolo en memoria, puedes usar modulos de todo tipo, en los modulos solo se permite código de h++ no librerías, las librerías pueden usarse en un modulo, con la condición de que descarguen el parche RC6 A RC7.zip (actualmente 18/6/10 no está habilitada la descarga aún).
puedes usar mas de un modulo, pero no es ecomendable usar dos modulos que tengan la misma primera linea, porque solo funcionará uno.
puedes usar modulos hechos por cualquier personas..
Usando Librerías:
Para usar una librería debes tener encuenta algunas cosas:
1 º para que version fue hecha
2 º tener el parche necesario (si es necesario alguno)
3 º que no todas las librerías funcionan igual, generalmente traen con la descarga un archivo uso.txt que trae informacion acerca de las variables...
¿que hago si no funciona una librería?
descarga el ultimo parche, si aún deja de funcionar, reporta el error en algún post.
¿que hago si una librería no funciona como devería?
reporta a ver que solucion te damos.
¿que hago si no se usar la librería y no trae el uso.txt?
preguntame, o aca en el foro y se resolveran tus dudas..
Libreria Paint:
Esta librería fue una de las primeras, pronto se mejorará, pero de momento solo trae dos dibujos...
casa.lhc
castle.lhc
:casa: (dibuja una casa)
:castillo: (dibuja un castillo)
Libreria Teclado:
La librería teclado es una de las librerías para captar que tecla fue apretada, espera a que se apriete una tecla y la guarda en :tecla:
para usar esta librería debes cargar los archivos:
keypress.lhc
keyboard.lhc
ejemplo de uso:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: hola
:hoas
.tecla.
escribir: el codigo de la tecla que ingreso es: :tecla:
pausa...
...finalizar
con :tecla: se devuelve el valor de la tecla apretada.
Libreria LoadImage:
para su uso requiere estos archivos:
alto.lhc
ancho.lhc
findelarchivo.lhc
imageuses.lhc
ventana.lhc
esta librería permite incluir imágenes al programa.
ejemplo de uso:
Código: Seleccionar todo
iniciar...
color: 2A
titulo: holaaaa
cargar:"image.jpg" :ancho:640 :alto:75 /X:0 /Y:0 :ventana:"holaaaa" ::fin
pausa...
...finalizar
Luego de cargar va la imagen a cargar. luego se le asigna las medidas.
Luego tienen el Eje X y el Y para posicionar la imagen. luego la ventana,
AQUI OBLIGATORIAMENTE VA EL NOMBRE QUE LE PUSIERON A LA VENTANA ACTUAL.
Luego Se Añadiran Mas Codigos & Funciones Un Saludo