Bubble sort en C (arreglos de tamaño fijo)

// BUBBLE SORT
#include

int main(void){
int i, j, largo=100;
int arreglo[largo];

void bubble_sort_az (int arreglo[], int largo){
int i, j, aux;
for ( i = 0 ; i < largo-1 ; i++ ) {
for ( j = 0 ; j arreglo[j+1] ) {
aux = arreglo[j];
arreglo[j] = arreglo[j+1];
arreglo[j+1] = aux;
}
}
}
}

void bubble_sort_za (int arreglo[], int largo){
int i, j, aux;
for ( i = 0 ; i < largo-1 ; i++ ) {
for ( j = 0 ; j < largo-1 ; j++ ) {
if ( arreglo[j] < arreglo[j+1] ) {
aux = arreglo[j];
arreglo[j] = arreglo[j+1];
arreglo[j+1] = aux;
}
}
}
}

for ( i = 0 , j = largo ; i 0 ; i++ , j-- )
arreglo[i] = j;

for ( i = 0 ; i < largo ; i++ )
printf("%d ",arreglo[i]);

printf("\n");

bubble_sort_az(arreglo, largo);

for ( i = 0 ; i < largo ; i++ )
printf("%d ",arreglo[i]);

printf("\n");

bubble_sort_za(arreglo, largo);

for ( i = 0 ; i < largo ; i++ )
printf("%d ",arreglo[i]);

getchar();getchar();

return 0;
}

Cambiar color de texto en consola (C/C++)

Función que cambia el color del resto de texto que salga a consola (probada en windows):

inline int SetColor(const int foreground, const int background) {

int Color = foreground + (background * 16);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, Color);

return 0;
}

Ejemplo de uso:

#include
/* include enumeration list & function */

int main() {

printf("Text is grey by default\n");
SetColor(BLACK, WHITE);
printf("This text is white now!\n");
SetColor(BLACK, WHITE);
printf("Now it's black...\n");

SetColor(GREY, WHITE);
printf("Now it's back to normal! :(\n");

cin.get();
return 0;
}

Limpiar consola usando la API (C/C++)

Función (en C) que limpia la consola (API) (probada en Windows)
Vendría siendo equivalente a usar:

System("CLS");

Función:

int ClrScrn(void)
{
// Top left corner coordinates
COORD coord = {0};

// Contains information about screen buffer
CONSOLE_SCREEN_BUFFER_INFO cBufferInfo;

// Characters written in buffer
DWORD dwI;

// Characters to clear ("area" of console, so to speak)
DWORD dwSize;

// Handle to console
HANDLE hI = GetStdHandle(STD_OUTPUT_HANDLE);

// Just a bit error handling
if(hI == INVALID_HANDLE_VALUE) return (EXIT_FAILURE);

// GetConsoleScreenBufferInfo returns 0 on error
if (GetConsoleScreenBufferInfo(hI, &cBufferInfo))
{
// Calculate characters to clear
dwSize = cBufferInfo.dwSize.X * cBufferInfo.dwSize.Y;

// Write space characters to buffer as many times as needed, i.e. dwSize
FillConsoleOutputCharacter(hI, TEXT(' '), dwSize, coord, &dwI );

// Set console cursor to top left coord
SetConsoleCursorPosition(hI, coord);

return (EXIT_SUCCESS);

} else
return (EXIT_FAILURE);
}

lagzero regala juego steam!

LagZero.NET está regalando cualquier juego del catálogo de Steam de hasta U$50, para participar en el concurso solo debes publicar esta frase en otros sitios, para concursar sigue este enlace: http://www.lagzero.net/2009/03/lagzero-regala-un-juego-del-catalogo-de-steam-concursos/

Los Simpsons, nuevo opening en HD

Con motivo de la nueva “versión” de los Simpsons en HD, podemos ver su nueva presentación.

Windows: Enlaces Simbólicos a lo Unix para Windows.

Hola,

Sé que muchos de ustedes no saben (me incluyo hasta anteayer) que en Windows se pueden tener enlaces simbólicos, similar a “ln -s”.

¿Para qué sirve? Un ejemplo sería poder engañar a un programa, que busca una carpeta donde guarda sus datos dentro de C: para que las guarde en otra carpeta en D: sin que este se de cuenta.

En Windows XP, estos se llaman “Junction”, y sirven solo para directorios, aun así, son una ayuda, tampoco sirven para directorios en red, ni son reconocidos por otros SOs como Vista o Linux. (OJO: no se pueden enlazar archivos en red)

Manos a la obra:

1º debemos descargar este Junction.exe desde Microsoft.

2º copiamos Junction.exe a C:\Windows\System32\

Modo de uso:

En una consola de Windows (cmd.exe) escribir:

Junction (AYUDA DEL PROGRAMA)

Junction directorio_enlace directorio_real (NORMAL)

Junction -s directorio_enlace directorio_real (RECURSIVO)

Junction -d directorio_enlace directorio_real (ELIMINAR EL ENLACE)

ejemplos:

Junction C:\Documents and Settings\Alejandro\Escritorio\Fotos D:\archivos\fotos

En Windows Vista, se usa un comando que viene en el sistema (mklink), el cual no está limitado solo a carpetas, pero solo funciona con Windows Vista (o posterior) y NO en archivos en red:

mklink (AYUDA DEL PROGRAMA)

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

Puedes tener más info sobre esto en:

Vista (mklink)
Windows XP (junction)

Tips básicos: Usando la consola de Linux

Nota: Este tema nunca termina de actualizarse. (quizás nunca sea demasiado, pero se entiende la idea).

Nota: Hay archivos que necesitan ser modificados solo por root o con sudo.

Nota: # significa root o sudo; $ significa usuario normal.

Entrar a una carpeta:

$ cd carpeta

ó

$ cd /mount/datos/carpeta

ó (subir un directorio en la jerarquía de carpetas)

$ cd ..

Seguir leyendo