ClearScreen [C++] Mayo 2, 2008
Posted by erik in : C/C++/C# , add a commentPara limpiar la pantalla en Windows, usariamos el metodo system, antes de nada incluimos la libreria:
Código:
#include <cstdlib>
y despues en el codigo, añadiriamos esto:
Código:
system("cls");
Linux:
Código:
system("clear");
Con la misma libreria, y el ultimo metodo que se podria utilizar en ambos:
Código:
char a[5]={27,'[','2','J',0};
cout << a;
Y listo.
Float vs double Mayo 2, 2008
Posted by erik in : C/C++/C# , add a commentPor que es peor o mejor Float que Double, descubrelo brevemente.
Lo bueno de float:
· Nos permite usar numeros con decimales
· Ahorro de espació y menos costo
Lo malo de float:
· Menos precisión
Lo bueno de double:
· Nos permite usar numeros con decimales
· Más precisión
Lo malo de double:
· Menos ahorro en espacio
Mi recomendación:
No usar ni Double ni Float, usar long Double.
Mejor sin duda, + Decimales, + Precision, +Ahorro.
Es genial y sin duda rapido.
Declaración:
Float:
Código:
float <identificador> = <valor>;
Double:
Código:
double <identificador> = <valor>;
long Double:
Código:
long double <identificador> = <valor>;
Datos:
Float: 32 Bits - Precisión (7-Digitos)
Double: 60 Bits - Precisión (15-Digitos)
long Double: 80 Bits - Precisión (18-Digitos)
Que os vaya bien.
Char Mayo 2, 2008
Posted by erik in : C/C++/C# , add a commentLas variables char son las que utilizaremos para introducir texto plano en ellas, como maximo, siempre pondremos un limite de 250 letras.
Declaración:
La sintaxis:
Código:
char <nombre>[<longitud>];
Para añadirle texto desde un inicio no deberiamos hacerlo así:
Código:
char Hola[10]; Hola = "Buenas";
Eso seria incorrectisimo, lo preferente seria hacerlo así.
Código:
char Hola[10] = "Buenas";
O tambien tenemos otro metodo:
Código:
char Hola[10]; Hola[0] = "B"; Hola[1] = "U"; Hola[2] = "E"; Hola[3] = "N"; Hola[4] = "A"; Hola[5] = "S"; Hola[6] = "00";
¿Por que añadimos 00 al final:
Significa que ya no declararemos más de esas X letras.
Tambien se puede rellenar mediante flujo de datos, una salida de variables:
Código:
cin >> Hola;
Habeis visto que sencillo, bueno, espero que os vaya bien,
Erik.
Palabras reservadas en C++ Mayo 2, 2008
Posted by erik in : C/C++/C# , add a commentPalabras reservadas en C++:
- and
- and_eq
- asm
- bitand
- bitor
- bool
- catch
- class
- compl
- const_cast
- delete
- dynamic_cast
- explicit
- export
- false
- friend
- inline
- mutable
- namespace
- new
- not
- not_eq
- operator
- or
- or_eq
- private
- protected
- public
- reinterpret_cast
- static_cast
- template
- this
- throw
- true
- try
- typeid
- typename
- usin
- virtual
- w_char
- xor
- xor_eq
Estas se añaden a las que tenia C.
Sentencia GOTO Mayo 2, 2008
Posted by erik in : C/C++/C# , add a commentLa sentencia goto nos permite hacer saltos en el código, muchos lo recordareis de BATCH, pero tiene una sintaxis un poquito diferente.
Estructura:
int main()
{
Primero:
// codigo...
// codigo...
// codigo...
goto Primero;
}
Ejemplo:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
Inicio:
char Tom[255];
cout << "Como te llamas\n";
cin >> Tom;
cout << "Me llamo " << Tom;
cout << "\nVolvemos al inicio\n\n";
goto Inicio;
}
Interceptar la función WM_QUERYENDSESSION Mayo 1, 2008
Posted by erik in : VisualBasic , add a commentEste codigo sirve para interceptar la funcion WM_QUERYENDSESSION que se produce en el sistema, este codigo es util para virus, y etc…
Primero lo que tendriamos de hacer es crear un modulo BAS:
Option Explicit Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _ ByVal lpPrevWndFunc As Long, _ ByVal Hwnd As Long, _ ByVal MSG As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ ByVal Hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Public Const GWL_WNDPROC = -4 Public Const WM_QUERYENDSESSION = &H11 Global Const WM_CANCELMODE = &H1F Global lpPrevWndProc As Long Public Sub Hook(Hwnd_Form As Long) lpPrevWndProc = SetWindowLong(Hwnd_Form, GWL_WNDPROC, AddressOf WindowProc) End Sub Public Sub Unhook(Hwnd_Form As Long) Dim ret As Long ret = SetWindowLong(Hwnd_Form, GWL_WNDPROC, lpPrevWndProc) End Sub Function WindowProc(ByVal Hwnd As Long, _ ByVal uMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long If uMsg = WM_QUERYENDSESSION Then WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, WM_CANCELMODE, wParam, wParam) MsgBox "WM_QUERYENDSESSION Interceptado", vbInformation, "WM_QUERYENDSESSION" Exit Function End If WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, uMsg, wParam, lParam) End Function
Luego creamos el formulario:
Option Explicit Private Sub Form_Load() Hook Me.Hwnd End Sub Private Sub Form_Unload(Cancel As Integer) Unhook Me.Hwnd End Sub
Variables Double Mayo 1, 2008
Posted by erik in : C/C++/C# , add a commentdouble <identificador>
Las variables de este tipo almacenan números en formato de coma flotante, mantisa y exponente, al igual que float, pero usan mayor precisión. Son aptos para variables de tipo real. Usaremos estas variables cuando trabajemos con números grandes, pero también necesitemos gran precisión. Lo siento, pero no se me ocurre ahora ningún ejemplo.
Bueno, también me han preguntado por qué no usar siempre double o long double y olvidarnos de float. La respuesta es que C siempre ha estado orientado a la economía de recursos, tanto en cuanto al uso de memoria como al uso de procesador. Si tu problema no requiere la precisión de un double o long double, ¿por qué derrochar recursos?. Por ejemplo, en el compilador Dev-C++ float requiere 4 bytes, double 8 y long double 12, por lo tanto, para manejar un número en formato de long double se requiere el triple de memoria y el triple o más tiempo de procesador que para manejar un float.
Como programadores estamos en la obligación de no desperdiciar nuestros recursos, y mucho más los recursos de nuestros clientes, para los que haremos nuestros programas. C y C++ nos dan un gran control sobre estas características, es nuestra responsabilidad aprender a usarlos como es debido.
Mayo 1, 2008
Posted by erik in : Batch , add a commentPara hacer movimientos con las rutas en batch es muy sencillo, lo unico que hay que hacer es a�adir c�digos.
Y aqui os ense�are y explicare unos cuantos codigos.
El codigo CD, esto hace cambiar la ruta, y tu deseas hacia donde quieres que vaya;
Código:
@echo off cd c:\warezspain pause>nul exit
Con este simple codigo, lo que hariamos es movernos hacia una carpeta existente en C:\,
claro que si no existiera esa carpeta utilizariamos el segundo codigo que os voy a ense�ar;
El codigo MD, su funcion es crear carpetas en el directorio seleccionado, por ejemplo:
Código:
@echo off md c:\warezspain
pause>nul exit
Entonces creariamos el directorio.
Ahora conjuntaremos (CD y MD);
Código:
@echo off md c:\warezspain cd c:\warezspain pause>nul exit
Explicaci�n sencilla:
md c:\warezspain // Crea la carpeta en C:\ llamada warezspain
cd c:\warezspain // Nos movemos a la carpeta warezspain para ejecutar una orden.
Espero que os sirva de ayuda.