uses crt;
type
slovo = record
dlz,pozicia : integer;
end;
var slova: array[1..100] of string;
pocet,i: integer;
max : slovo;
f: text;
begin
clrscr;
assign(f,'slova.txt');
reset(f);
i:=1;
pocet:=0;
while not eof(f) do
begin
readln(f,slova[i]);
inc(pocet);
writeln(slova[i]);
inc(i);
end;
max.dlz:=length(slova[1]);
max.pozicia:=1;
for i:=2 to pocet do
begin
if length(slova[i])>max.dlz
then begin
max.dlz:=length(slova[i]);
max.pozicia:=i;
end;
end;
writeln('Najdlhsie slovo sa nachadza na ',max.pozicia,'. mieste');
writeln('najdlhsie slovo je: ',slova[max.pozicia]);
readln;
end.
celé to pole je ti zbytočné, rovnako ako ten record, a aj druhý cyklus. Na začiatok si inicalizuj premennú max na 0 a slovo ktoré bude typu string na prázdny reťazec. Potom ako čítaš súbor porovnáš dlžku aktuálneho slova a porovnáš s max. Ak je väčšia, tak si uložíš novú dlžku a nové slovo. A takto prejdeš celý súbor. Nepotrebuješ si pamätať ostatné slová, tak zbytočne ich načítavaš do poľa. Okrem toho, čo ak bude mať súbor viac ako 100 slov? Aj tým recordom si to komplikuješ
uses crt;
var slova: string;
pocet,i: integer;
max : integer;
f: text;
begin
clrscr;
assign(f,'slova.txt');
reset(f);
i:=1;
pocet:=0;
max:=0;
slova:=' ';
while not eof(f) do
begin
readln(f,slova);
inc(pocet);
writeln(slova);
inc(i);
end;
for i:=1 to pocet do
begin
if length(slova)>max
then begin
max:=length(slova[i+1]);
end;
end;
writeln('najdlhsie slovo je: ',slova);
readln;
end.
to je čo za kravinu? Vieš mi vysvetliť čo to má podľa teba robiť? A v tom cykle si stále prepisuješ premennú slova, takže po skončení cyklu tam máš uložené iba posledné slovo
V pascale sa moc nevyznám, ale spravil by som to tak, že si vytvoríš premennú "najSlovo". Potom budeš čítať zo súboru jednotlivé slová, a ak je prečítané slovo dlhšie ako "najSlovo" tak do tejto premennej nalepíš toto prečítaná slovo. Pokiaľ bude kratšie, tak jednoducho budeš pokračovať ďalej.
Ak chceš ešte všetky prečítané slová vložiť do poľa, a potom prečítať ktoré je najdlhšie,sprav to tak, ako som napísal vyššie, že precheckuješ pole, najdlhšie a jeho pozíciu hodíš do premennej.