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; 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);
...
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; Posic: Integer; begin
write('Buscar: '); Readln(jugador);
Posic:= Buscar(Jugador, Ingresados);
if Posic > 0 then
...
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.