Máš to převrácené - z hlavního řetězce skládáš ty ostatní (podle příkladu), možná jde jen o chybu v popisu.
Jinak bych zahodil Pascal(jsou z něj jen nervy a programuje se pomalu), je to už zastaralá technologie a udělal to moderně
def rozklad(w) w.split(//).uniq end
puts "Zadej hlavní"
t=gets.chomp
puts "piš slova"
loop do
g=gets.chomp
puts "%s: %s" % [ (rozklad(g)-rozklad(t)==[])?"ano":"ne",g]
end
Hrátky s formátováním nebo záměnu testovacího řetězce za hlavní snad zvládneš.A jestli má jít o interaktivní aplikaci nebo se slova předávají přes argumenty už je detail.