Evo ti prepravljene verzije tvog programa.
Kod tebe je greska bila sto si samo jednom ucitavo niz.
Takodje treba da mu dozvolis i da ucitava max_el stringova jer kaze da je to maksimalan broj (sto znaci da se i on racuna).
Code:
program dz3;
const max_el=10;
type niz=array[1..max_el] of string[20];
var a:niz;
pom:string[20];
i,p:1..20;
n:integer;
begin
write('Unesite broj el. niza: ');read(n);
while (n>0) and (n<=max_el) do
begin
for i:= 1 to n do
readln(a[i]);
for i:= 1 to n-1 do
for p:= i+1 to n do
if length(a[i]) > length(a[p]) then
begin
pom:=a[i];
a[i]:=a[p];
a[p]:=pom;
end;
for i:=1 to n do
writeln(a[i]);
write('Unesite broj el. niza: ');read(n);
end
end.