Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Ahoj, chci napsat program v Pascalu, takový aby ze zadaného textu vybral vsechny slova, spocital jejich vyskyt a vypsal <SLOVO> <POCET_VYSKYTU>. Text muze byt nejasne delky takze jsem použil spojový seznam, dostal jsem se do bodu kdy mam nalezena všechna slova a spočítaný jejich výskyt. Ale výpis má být řazen od největšího počtu po nejmenší a slova kde je jejich výskyt stejně častý mají být uspořádána lexikograficky. A zde si nevím rady, a budu rád za každou radu!! :)
Předem děkuji za pomoc! :)
Offline
Jedna z možných cest je udělat si pomocné dvouprvkové pole (pomocí type) o délce odpovídající spojovému seznamu který už máš. Snad se mi to podaří popsat aspoň trochu srozumitelně.
Každý první prvek pomocného pole bude obsahovat index - prostě jen pořadové číslo které je shodné s pořadím spojového seznamu. Tedy první prvek pomocného pole bude mít 1, druhý 2 atd.
Každý druhý prvek pomocného pole naplň klíčem. V tvojem případě bych viděl nějakou hodnotu třeba jako string počtu nálezů (je třeba ho udělat na plný počet řádů nejvyššího výskytu, tj pokud máš třeba desítky výskytů, musíš kódovat jako dvouznakový string, kde výskyt 7 nebude "7" ale "07"), a za ním string toho slova. Tedy např. adam s deseti nálezy (v případě že bude nejvyšší výskyt dvojciferný) bude "10adam", pokud bude nejvyšší výskyt trojciferný bude to "010adam" atd.
Takže v pomocném poli budeš mít nakonec vlastně otisk spojáku spolu s přidaným indexem. Index bude pamatovat kolikátý prvek ze spojáku to je, a místo slova tam budou ty nově generované klíče.
No a pak pomocné pole prostě setřídíš podle klíče, a nakonec jen projdeš setříděné pomocné pole a index (první prvek pomocného pole) ti bude ukazovat který prvek spojového seznamu má přijít správně na řadu.
Offline
Stránky: 1