Tähekombinatsioonide väljatrükk. Ülesandeks oli trükkida rekursiivselt välja etteantud tähtede kõikvõimalikud kombinatsioonid. I lahendus: program variandid; var s: string; procedure trykiVariandid(paigas, vaba: string); var uuspaigas, uusvaba: string; i: integer; begin writeln(paigas); for i:=1 to length(vaba) do begin uuspaigas:=paigas+copy(vaba, i, 1); uusvaba:=vaba; delete(uusvaba, i, 1); trykiVariandid(uuspaigas, uusvaba); end; end; begin writeln('Palun tekst:'); readln(s); trykiVariandid('', s); end. Kui soovida, et alamprogrammide väljakutseid veidi vähem oleks, siis võib väljatrüki paigutada paigasolevale jadale ühekaupa tähti lisava tsükli sisse. Sellisel juhul pole vaja pelgalt väljatrükiks uut väljakutset ette võtta. Uuele sügavamale tasemele minnakse vaid juhul, kui jääb edaspidigi tähti, mida proovida. program variandid2; var s: string; procedure trykiVariandid(paigas, vaba: string); var uuspaigas, uusvaba: string; i: integer; begin for i:=1 to length(vaba) do begin uuspaigas:=paigas+copy(vaba, i, 1); writeln(uuspaigas); uusvaba:=vaba; delete(uusvaba, i, 1); if length(uusvaba)>0 then begin trykiVariandid(uuspaigas, uusvaba); end; end; end; begin writeln('Palun tekst:'); readln(s); trykiVariandid('', s); end. Ülesandeid näidete läbi mõtlemiseks * Püüa muuta koodi nõnda, et alustataks väljatrükki kombinatsioonidest, mis olid esialgsel sisestamisel tagapool * Trüki välja vaid kombinatsioonid, mis on esialgse sisestatud tekstiga sama pikkused. Edasi lahendage järgmine ülesanne: Failist loetakse trips-traps-trulli mängu seis. Alustas X Väljastatakse kõik võimalikud kombinatsioonid, kuidas mäng võib edasi kuni lõpuni kulgeda. Kasuta sarnast variantide läbivaatust rekursiooni abil. ______ Kel tundub siinne eelkirjeldatu liialt lihtne olema, võiks lahendada ülesande nr. 3 (Linker) failist ftp://ftp.ttkool.ut.ee/comp/olymp/io02v3yev.pdf või ülesande nr.4 (Minotaurose koopad) failist ftp://ftp.ttkool.ut.ee/comp/olymp/io01v3ey.pdf