Ver Mensaje Individual
  #6  
Antiguo 04-01-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Te hago una observación sobre la funcion frend, no es necesario utilices var en los parámetros
Código Delphi [-]
function frend(n1, n2:integer):Real;
begin
   frend:= (n1/n2)*100;
end;


Sobre tu primera pregunta, creo que podes hacerlo de dos maneras:
1)
Código Delphi [-]
const
  Nmax= 1000; // o lo que gustes
var
  i, Tope: Integer;
  s: string;
begin
  Str(Nmax, s);
  Write('Cuantos jugadores?'+' (Maximo: '+ s +'):');
  Readln(Tope);
  for i:= 1 to Tope do
  ...

2)Pero creo que es un poco mejor finalizar el ingreso cuando se de Intro sin ingresar nada ('')
Código Delphi [-]
var
  player: t_club;
  Ingresados: Integer;
...
var
  x,y: Integer;
  rendto:real;
begin
  Ingresados:= 1;
  write('Nombre del jugador (nada para terminar): ');
  readln(player[Ingresados].nombre);
  while (i < Nmax) and (Player[Ingresados].nombre <> '') do
  begin
    Inc(Ingresados); 
    // pedir demas datos y mostrar resultados
    ...
    write('Nombre del jugador (nada para terminar): ');
    readln(player[Ingresados].nombre);
  end;
  ....
  ...
end.

Sobre tu segunda pregunta podrías hacer una función que te devuelva la posición dentro del arreglo si encuentra el dato,
o cero si no.
Código Delphi [-]
function Buscar(Nombre: string; Num: Integer): Integer;
var
  i,sw: Integer;
begin
  sw:= 0;
  for i:= 1 to Num do
  begin
    writeln(player[i].Nombre+' '+Nombre);
    if Player[i].Nombre = Nombre then
      sw:= i;
  end;
  Buscar:= sw;
end;

Una vez lleno el arreglo, se usaria así:
Código Delphi [-]
...
var
  jugador: string;// nombre a buscar
  Posic: Integer; // posición del dato en el arreglo
begin
  write('Buscar: '); Readln(jugador);
  Posic:= Buscar(Jugador, Ingresados); 
  if Posic > 0 then 
    //  los datos a modificar estarán en Player[Posic]
  ...

Es muy útil el consejo de Neftali si usas datos en memoria. Te va a ahorrar bastante tiempo...

También sería mejor si hicieras un procedimiento/función para el ingreso, otro para modificar, etc.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-01-2011 a las 18:19:47.
Responder Con Cita