Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Khronos14

#411
Es por la librería iostream, prueba a sustituirla por stdio y ya verás.

Saludos.
#412
Programación General / [DELPHI] Juego TicTacToe!
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
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
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
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 General / Re: Curso de Delphi
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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  Lista: array [0..3] of integer;
begin
  Lista[0]:= 3;
  Lista[1]:= 7;
  Lista[2]:= 16;
  Lista[3]:= 15;
end.


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 (delphi) [Seleccionar]

var
  Lista: array [14..18] of integer;


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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i: integer;
  Lista: array [12..15] of integer;
begin

for i := 12 to 15 do
  Lista[i]:= i;
end.


Con Low y High sería así:

Código (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i: integer;
  Lista: array [12..15] of integer;
begin

for i := Low(Lista) to High(Lista) do
  Lista[i]:= i;
end.


Arrays Inicializados.

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

Código (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  Meses: array [1..12] of string = ('Enero', 'Febrero',
  'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto',
  'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
  Mes: integer;
begin

  Write('Introduce el numero del mes: ');
  Readln(Mes);
  if (Mes >= 1) and (Mes <= 12) then
    Writeln('Estamos en : ' + Meses[Mes]);

  Readln;
end.


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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  Matriz: array [1..4, 1..5] of integer;
  //Matriz bidimensional
begin
  Matriz[1,2]:= 5;
  Readln;
end.

#417
Programación General / Re: Curso de Delphi
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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure MiProcedimiento;
begin

end;

begin

end.


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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure MiProcedimiento;
begin
  Writeln('Este es mi procedimiento');
  Writeln('....');
end;

begin
  MiProcedimiento; //También sirve MiProcedimiento();
  Readln;
end.


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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function Funcion: integer;
var
Operacion: integer;
begin
  Operacion:= ((14 * 27) div 2) - 4;
  Result:= Operacion; //También vale Funcion:= Operacion;
end;

begin
  Writeln('Funcion: ', Funcion);
  Readln;
end.


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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function Suma(a: integer; b: integer): integer;
begin
  Result:= a + b;
end;

begin
  Writeln('Suma: ', Suma(2, 3));
  Readln;
end.


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 (delphi) [Seleccionar]

function Suma(a,b: integer; mensaje: string): integer;
begin
  Writeln(Mensaje);
  Result:= a + b;
end;


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 (delphi) [Seleccionar]

function Resta(const a, b: integer): integer;
begin
  Result:= a - b;
end;


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 (delphi) [Seleccionar]

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure Proc1;
begin
  Proc2;
end;

procedure Proc2;
begin
  Writeln('Hacer algo');
end;

begin
  Readln;
end.


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
Pues yo representaré a Delphi, aunque todavía no sé si hacer malware o un juego...
#420
Programación C/C++ / Re: Ayuda con codigo en C
13 Octubre 2010, 01:28 AM
Hola DARKDMR, para empezar tienes varios errores conceptuales bastante graves:


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.


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().


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.