Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
Ayuda con los array

Hola soy nuevo por acá, y nuevo también en este lenguaje de programación.
Mi pregunta es sencilla... como hago para declarar un arreglo con sus elementos... osea quiero asignarles los valores como constante.. alguna ayudita..???

gracias
Responder Con Cita
  #2  
Antiguo 21-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y se puede saber que es lo que quieres hacer?, algo un poco mas concreto ya que se pueden hacer diversos tipos de array y creo que seria bueno que ayudaras a los que te quieran ayudar.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 21-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Una pequeña busqueda en google y salio un buen ejemplo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 21-07-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
hola caral especificamente necesito resolver este problema propuesto en clases:

Diseñe un algoritmo que lea un numero cualquiera y lo busque en el vector X, el cual tiene almacenados 8 elementos. Escribir la posición donde se encuentra almacenado el numero en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.

el vector X lo debe almacenar el programador (osea yo) y no el usuario....

gracias y saludos
Responder Con Cita
  #5  
Antiguo 21-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Encontre esta funcion que esta interesante:
No es exactamente con numeros, pero me parece que te dara una idea de como hacerlo.
Código Delphi [-]
function TFunciones.DiaDeLaSemana(Fecha: TDate; Completo:Boolean=False): string;
var
  DiasSemana:array[1..7] of string;
begin
  //Calculamos la letra del día de la semana
  if Completo then
    begin
      DiasSemana[1] := 'DOMINGO'; DiasSemana[2] := 'LUNES';
      DiasSemana[3] := 'MARTES';  DiasSemana[4] := 'MIERCOLES';
      DiasSemana[5] := 'JUEVES';  DiasSemana[6] := 'VIERNES';
      DiasSemana[7] := 'SABADO';
    end
  else
    begin
      DiasSemana[1] := 'D'; DiasSemana[2] := 'L'; DiasSemana[3] := 'M';
      DiasSemana[4] := 'X'; DiasSemana[5] := 'J'; DiasSemana[6] := 'V';
      DiasSemana[7] := 'S';
    end;
  Result := DiasSemana[DayOfWeek(Fecha)];
end;
Con esto se puede establecer en donde esta el dia de semana, seria el mismo caso con numeros, me parece.
En esto de los arrays estoy para aprender pero ten paciencia, ya deben de estar por llegar los maestros.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 21-07-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
Caral..... mil gracias me servirá de mucho la información graciassssss

mañana tengo evaluación de esto y estoy un poco perdido XD
Responder Con Cita
  #7  
Antiguo 21-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En la pagina que puse al principio esta un ejemplo que se acerca mas a lo que buscas, aunque siempre este en letras, define mejor la posicion.
Revisalo, tal vez te guíe algo mas:
Código Delphi [-]
type
  TCharArray = array of char; // Required below
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FurnishDynamicArray(var typeArray : TCharArray);
????procedure ShowOpenTypeArray(typeArray : Array of char);
????procedure ShowOpenConstArray(const constArray : Array of const); 
  end;
 
var
  Form1: TForm1;
 
implementation
{$R *.dfm} // Include form definitions
 
procedure TForm1.FormCreate(Sender: TObject);
var
  // Define a dynamic array
  charArray : TCharArray;
  openArray : Array [0..2] of char;

  i : Integer;

begin
  // Pass the undefined array as a dynamic array to a subroutine
  FurnishDynamicArray(charArray);

  // Furnish an array for the next routine
  openArray[0] := 'N';
  openArray[1] := 'o';
  openArray[2] := 'w';

  // Pass this predefined array as an open array to a subroutine
  ShowOpenTypeArray(openArray);

  // Show all elements of the passed array
  for i := 0 to High(charArray) do
      ShowMessage('charArray['+intToStr(i)+'] = '+charArray[i]);

  // Pass a number of characters as an open constant array to a subroutine
  ShowOpenConstArray(['H','e','l','l','o']);
end;

// Procedure that updates a dynamic array size
// IMPORTANT - note that the array type must not be defined here -
//             we must use an array type to avoid the array being treated
//             as an open array.
procedure TForm1.FurnishDynamicArray(var typeArray : TCharArray);
var
  i : Integer;

begin
  // Set the length of the single dimension array
  SetLength(typeArray, 5);

  // Furnish this array - remember that dynamic arrays start at 0
  for i := 0 to 4 do
    typeArray[i] := Chr(Ord('A') + i);
end;

// Procedure that takes an open array
procedure TForm1.ShowOpenTypeArray(typeArray : Array of char);
var
  i : Integer;

begin
  // Show all elements of the passed array
  for i := 0 to High(typeArray) do
    ShowMessage('typeArray['+intToStr(i)+'] = '+typeArray[i]);
end;

// Procedure that takes an open constant array
procedure TForm1.ShowOpenConstArray(const constArray : Array of const);
var
  i : Integer;

begin
  // Show all elements of the passed array
  // IMPORTANT - we assume here that the constant types are all char
  //             See the TVarRec type for more on Variant types.
  for i := 0 to High(constArray) do
    ShowMessage('constArray['+intToStr(i)+'] = '+constArray[i].VChar);
end;

 
end.
Y da un mensaje con esto:
Cita:
typeArray[0] = N
typeArray[1] = o
typeArray[2] = w
charArray[0] = A
charArray[1] = B
charArray[2] = C
charArray[3] = D
charArray[4] = E
constArray[0] = H
constArray[1] = e
constArray[2] = l
constArray[3] = l
constArray[4] = o
Como veras en la posicion 1 esta o, en la 2 esta w y asi sucesivamente.
Estoy aprendiendo mucho, que bueno.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 21-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aqui el asunto esta en cambiar Length por algo que funcione ya que esto lo que hace es indicar la cantidad de elementos del array y compararlo con el dato que esta en el edit.
Es lo que se me ocurre de momento ya que no manejo bien los array.
Código Delphi [-]

  TPosicion = array[1..8] of integer;

const
  Posicion_dada: TPosicion = (1,7,3,4,8,6,2,5);

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  total, Numero :Integer;
begin
  Numero:= StrToInt(Edit1.Text);
  total := Length(Posicion_dada);
  if (Numero = total) then begin
  ShowMessage(IntToStr(Posicion_dada[total]));
  end
  else
  ShowMessage('No esta en esa posicion');
end;
Ya vendra algun maestro y ayudara.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 21-07-2010 a las 04:38:52.
Responder Con Cita
  #9  
Antiguo 22-07-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Si entiendo lo que querés hacer, sería algo así:

Código Delphi [-]
const MisDatos : array[1..8] of Integer = (13, 32, 134, 76, 9, 41, 3, 17);

procedure Buscar(QueCosa: Integer);
var Ind: Integer;
begin
  Ind:= 1;
  while (Ind <= 8) {o length(MisDatos)} and (MisDatos[Ind] <> QueCosa) do
    Inc(Ind);

  if Ind <= 8 {o Length(MisDatos)} then
    ShowMessage('Encontrado en la posición ' + IntToStr(Ind))
  else
    ShowMessage('No encontrado.');
end;

Por cierto, si lo que querés declarar es una matriz, se sigue el mismo principio:

Código Delphi [-]
const  MiMatriz: array[1..3, 1..5] of Integer = 
(
      (1, 2, 3, 4, 5),
      (1, 2, 3, 4, 5),
      (1, 2, 3, 4, 5)
);

Por cierto, hay un 99% de probabilidad de que le erres con la cantidad de valores que pongas y obtengas el error "[Error] Unit1.pas(30): Number of elements differs from declaration"... Eso es porque pusiste cuatro en vez de cinco, o mezclaste las dimensiones y pusiste 3x5 en vez de 5x3...

¿Eso es lo que querías?

Saludetes.
Responder Con Cita
  #10  
Antiguo 07-08-2010
snake25237 snake25237 is offline
Registrado
 
Registrado: jul 2010
Posts: 9
Poder: 0
snake25237 Va por buen camino
hola..!!!! muchas gracias por su ayuda amigos me sirvió de mucho
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda String to Array of Bytes vicoxl16 Varios 3 20-04-2009 02:04:04
Ayuda! Array dinámico Cristalero Varios 3 01-04-2009 12:56:14
Ayuda con ARRAY lord shadow OOP 6 18-02-2008 14:36:29
ayuda con array... foetus HTML, Javascript y otros 7 31-07-2007 01:58:26
ayuda con array virtual Varios 5 27-01-2004 20:06:47


La franja horaria es GMT +2. Ahora son las 13:02:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi