elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45
411  Programación / Programación C/C++ / Re: Compilación cruzada en linux me deja ejecutables de 1 mega para un hola mundo en: 28 Octubre 2010, 21:37 pm
Es por la librería iostream, prueba a sustituirla por stdio y ya verás.

Saludos.
412  Programación / Programación General / [DELPHI] Juego TicTacToe! en: 27 Octubre 2010, 19:49 pm
Hace algún tiempo hice el juego del 3 en raya para jugar con la máquina. La máquina decide donde mover de forma aleatoria y/o combinando las posibilidades que tiene de perder o de ganar. Es decir, si tiene 2 fichas en una línea y le falta 1 para ganar, gana la partida, si no, evita perder la partida o mueve de forma aleatoria.

Se podrían programar una serie de jugadas para dotar al sistema de cierta "inteligencia" pero eso ya es otra historia  ;)





Y aquí tenéis todo el código fuente con el ejecutable compilado:

http://www.megaupload.com/?d=Y0HL5SUW

Saludos.
413  Programación / .NET (C#, VB.NET, ASP) / Re: AYUDA C#!!! COMO ORDENAR UAN LISTA en: 27 Octubre 2010, 19:42 pm
C# al igual que Java tiene clases para todo, es programación para tontos, todo te viene hecho e implementado. Los arrays y listas tienen un método llamado Sort() que te ordena los elementos.

De todas formas, no es muy difícil implementar un algoritmo de ordenación: tienes el método de la burbuja, el quicksort, el shell, etc..

PD: Léete las normas y utiliza Geshi para resaltar el código.

Saludos.
414  Programación / Programación General / Re: Cual crees que es la mejor forma de aprender programacion? en: 26 Octubre 2010, 17:21 pm
Yo empecé al revés  ;D ;D

Comencé con la programación a los 14 años por mi padre, que programa en Delphi.
Empecé trabajando con programas visuales, arrastrando botones, listas, etc.. al principio no tenía mucha idea, pero esa es la programación que se hace agradable y divertida de aprender, desde mi punto de vista.

Saludos.
415  Programación / Programación General / Re: Glosario de téminos de programación [elhacker.net] en: 26 Octubre 2010, 17:18 pm
PascalCase. Es una práctica de programación que consiste en declarar funciones y/o variables mediante varias palabras sin espacios, escribiendo en mayúsculas la primera letra de cada palabra. Ejemplo: CreateRemoteThread.

CamelCase. Es similar a PascalCase, salvo que la primera letra de la primera palabra va en minúsculas. Ejemplo: numeroCuenta.
416  Programación / Programación General / Re: Curso de Delphi en: 26 Octubre 2010, 17:06 pm
Capítulo 8. Vectores I.

Los vectores o matrices, en inglés Arrays, es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de una matriz. Son muy utilizados en programación y se declaran empleando la palabra reservada array.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  Lista: array [0..3] of integer;
  10. begin
  11.  Lista[0]:= 3;
  12.  Lista[1]:= 7;
  13.  Lista[2]:= 16;
  14.  Lista[3]:= 15;
  15. end.
  16.  

La sintaxis es simple: se emplea array a continuación el rango del vector entre corchetes y con 2 puntos, y para terminar la palabra reservada of y el tipo de dato. Para acceder a los elementos se emplea el identificador de la variable y el número de elemento va entre corchetes.

En C/C++ y otros lenguajes, la primera posición de un array siempre es 0, en Delphi esta restricción no existe, pudiendo declarar el rango que quieras dentro del array (siempre que sea positiva y no sea descendente). Ejemplo:

Código
  1. var
  2.  Lista: array [14..18] of integer;
  3.  

De esta forma un array puede no tener su primera posición en 0, por lo que surgen 2 funciones para determinar la primera posición del array  y la última: Low y High. Son más utilizadas en arrays dinámicos (que ya los veremos) pero también se pueden emplear.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  i: integer;
  10.  Lista: array [12..15] of integer;
  11. begin
  12.  
  13. for i := 12 to 15 do
  14.  Lista[i]:= i;
  15. end.
  16.  

Con Low y High sería así:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  i: integer;
  10.  Lista: array [12..15] of integer;
  11. begin
  12.  
  13. for i := Low(Lista) to High(Lista) do
  14.  Lista[i]:= i;
  15. end.
  16.  

Arrays Inicializados.

Existe la posibilidad de declarar un array con sus valores inicializados. Ejemplo:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  Meses: array [1..12] of string = ('Enero', 'Febrero',
  10.  'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto',
  11.  'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
  12.  Mes: integer;
  13. begin
  14.  
  15.  Write('Introduce el numero del mes: ');
  16.  Readln(Mes);
  17.  if (Mes >= 1) and (Mes <= 12) then
  18.    Writeln('Estamos en : ' + Meses[Mes]);
  19.  
  20.  Readln;
  21. end.
  22.  

La variable Meses se declara un array de tipo string, con los valores de los Meses. Para inicializar un array con valores, se tienen que introducir exactamente el número de elementos. No puedes declarar un array con 12 meses y inicializar 11 meses.

Tendríamos algo como esto:



Arrays Multidimensionales.

Existe la posibilidad de crear arrays con varias dimensiones.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. var
  9.  Matriz: array [1..4, 1..5] of integer;
  10.  //Matriz bidimensional
  11. begin
  12.  Matriz[1,2]:= 5;
  13.  Readln;
  14. end.
  15.  
417  Programación / Programación General / Re: Curso de Delphi en: 26 Octubre 2010, 16:30 pm
Capítulo 7. Procedimientos y Funciones I.

Como vimos anteriormente los Procedimientos, al contrario que las funciones, no devuelven ningún valor. Para declarar un procedimiento empleamos la siguiente sintaxis:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. procedure MiProcedimiento;
  9. begin
  10.  
  11. end;
  12.  
  13. begin
  14.  
  15. end.
  16.  

En el archivo .dpr del programa los procedimientos y funciones se declaran siempre encima del begin y del end. (es el punto de entrada del programa o EntryPoint). Utilizamos la palabra reservada procedure y a continuación ponemos el identificador de nuestro procedimiento seguido de un punto y coma. El identificador de los procedimientos y funciones siguen las mismas reglas que las variables y constantes. A continuación ponemos un begin y un end; terminado en punto y coma. Una vez hecho esto, podemos poner código dentro de nuestro procedimiento entre el begin y el end;.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. procedure MiProcedimiento;
  9. begin
  10.  Writeln('Este es mi procedimiento');
  11.  Writeln('....');
  12. end;
  13.  
  14. begin
  15.  MiProcedimiento; //También sirve MiProcedimiento();
  16.  Readln;
  17. end.
  18.  

El procedimiento escribe un par de líneas en la consola y lo llamamos desde el punto de entrada de nuestro programa.

Para declarar una función utilizamos la palabra reservada function y sigue las mismas reglas que los procedimientos, excepto que después del identificador de la función va seguida de : y el tipo de dato a devolver.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. function Funcion: integer;
  9. var
  10. Operacion: integer;
  11. begin
  12.  Operacion:= ((14 * 27) div 2) - 4;
  13.  Result:= Operacion; //También vale Funcion:= Operacion;
  14. end;
  15.  
  16. begin
  17.  Writeln('Funcion: ', Funcion);
  18.  Readln;
  19. end.
  20.  

Nuestra función devuelve un valor entero. Dentro de un procedimiento y función se pueden declarar nuevas variables que solamente son accesibles desde el interior de ellas. Para ello se declaran antes del begin.
Para devolver el valor de la función se emplea Result seguido del operador de asignación aunque también sirve empleando el nombre de la función. Al contrario que C/C++ y otros lenguajes de programación, el hecho de llamar a result no interrumpe la ejecución de la función. Si quieres interrumpir la ejecución de un procedimiento o función puedes emplear Exit;.

Paso de parámetros

Para que una función o procedimiento reciba unos parámetros se realiza de la siguiente forma:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. function Suma(a: integer; b: integer): integer;
  9. begin
  10.  Result:= a + b;
  11. end;
  12.  
  13. begin
  14.  Writeln('Suma: ', Suma(2, 3));
  15.  Readln;
  16. end.
  17.  

Los parámetros se declaran a continuación del identificador de la función o procedimiento, entre paréntesis. Los parámetros se separan con punto y coma, aunque si son del mismo tipo se pueden declarar así:

Código
  1. function Suma(a,b: integer; mensaje: string): integer;
  2. begin
  3.  Writeln(Mensaje);
  4.  Result:= a + b;
  5. end;
  6.  

Los parámetros que se pasan a una función/procedimiento se pueden modificar dentro de ella. Para evitar esto, los parámetros se pueden declarar como constantes. Según el libro Delphi 5, declarar los parámetros como constantes optimizan el ejecutable generado, así que si sus valores no van a variar, es un buen hábito.

Código
  1. function Resta(const a, b: integer): integer;
  2. begin
  3.  Result:= a - b;
  4. end;
  5.  

Si en tu programa tienes varias funciones/procedimientos tienes que plantear el orden de declaración para que no se produzcan errores. Por ejemplo:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. procedure Proc1;
  9. begin
  10.  Proc2;
  11. end;
  12.  
  13. procedure Proc2;
  14. begin
  15.  Writeln('Hacer algo');
  16. end;
  17.  
  18. begin
  19.  Readln;
  20. end.
  21.  

Este código NO se podría compilar, el compilador daría una excepción. En el procedimiento Proc1 se está llamando a Proc2 que está declarado a continuación, así que Proc1 no tiene ninguna referencia para llamar a Proc2 por lo que se produce un error. Para corregir este error, bastaría con poner Proc2 encima de Proc1.

Dentro de unos cuantos capítulos veremos como declarar funciones y procedimientos en archivos .pas y tendríamos otra forma de solucionar este error.
418  Programación / Programación General / Re: [Ehn-Dev 2010] FAQ - Hilo para preguntar todas las dudas acerca del concurso! en: 20 Octubre 2010, 15:25 pm
Pues yo representaré a Delphi, aunque todavía no sé si hacer malware o un juego...
419  Programación / Programación General / Re: ¿Te gustaría que se haga un concurso de programación en el hacker.net? en: 16 Octubre 2010, 14:21 pm
Me apunto
420  Programación / Programación C/C++ / Re: Ayuda con codigo en C en: 13 Octubre 2010, 01:28 am
Hola DARKDMR, para empezar tienes varios errores conceptuales bastante graves:

Código:
scanf("%c",&tipo);
Aquí, lees un solo carácter y lo almacenas en una variable de tipo int. Lo correcto sería declarar tipo como char.

Código:
if (tipo=='estandar')
Esto en c no se puede hacer así, de hecho, tipo lo tienes declarado como una variable de tipo integer y la estas comparando con una cadena de caracteres. Para comparar cadenas de caracteres utiliza strcmp().

Código:
int main ()

Si declaras el procedimiento main() para que devuelva un int, al final de la función debes devolver algún valor o al compilar te dará un error.
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines