» Poradna » Programy

Pascal - třídící algoritmy

 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

Ahoj. Chtěl bych se zeptat, jak vytvořit algoritmus, kterýby mi seřadil proměnné v řetězci, a přitom zaznamenal jejich původní pořadí, abych je mohl následně popořadě vypsat ze záznamu společně s ostatními údaji.Já jsem začal řešit složitosti, a teď si s tím nevím rady.Díky za pomochttps://pastebin.com/q5QAYUc0//Doplněn odkaz na kód.//

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Android AppleMAC-Safari 5.0

Dej sem, co už máš.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

https://pastebin.com/q5QAYUc0Je to dost zmatené//Zkráceno přes odkaz.//

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Chrome 73.0.3683.88

Tvůj kód nehodlám číst, takže jen obecně. Na začátku před tím než budeš data řadit, tak si udělej jejich kopii. Pak si data seřaď a máš co jsi chtěl. V té kopii máš původní neseřazená data v původním pořadí.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

A co když se mi hodnoty opakují?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 75.0.3770.80

A co vlastně potřebuješ? Chceš znát pozici "seřazeného" prvku v původním neseřazeném poli?Pak je to trošku jinak než jsem psal původně. Stále platí že budeš potřebovat druhé pomocné pole, které musí být stejně velké jako pole s daty. Toto pole naplň popořadě čísly 1, 2, 3, 4 atd až do konce.A teď v tom řazení. Nevím jak ho máš udělané, ale hádám že tam někde máš kousek, který prohazuje dva prvky řazeného pole. Tj máš tam pozici X a Y, kterou prohazuješ. A stačí když v tom novém pomocném poli také prohodíš pozici X a Y. Až budeš mít datové pole seřazené tak máš hotovo.V datovém poli například na 4té pozici najdeš nějaký prvek. Stejně tak v tom pomocném poli na 4té pozici najdeš nějaké číslo. Např 15. To znamená že prvek co je v seřazeném poli na 4té pozici tak v původním neseřazeném poli byl na 15té pozici.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 73.0.3683.103

A copak kdybys zadání úkolu dal rovnou celý?https://www.zive.cz/poradna/pascal---nacteni-... Asi i tohle: https://www.zive.cz/poradna/tridy-ip-masky/sc... , že?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

Ne jsem jen ten první. Myslel jsem si, že ostatní bude brnkačka, ale nepovedlo se.Ono zadání žádné není. Měli jsme pracovat se záznamy. Já chci vytvořit kuchařku, do které zapíšu recepty a ony se mi seřadí podle počtu potřebných surovin.Záznamy umím přidat vypsat i smazat, ale to seřazení se mi pořád nedaří.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 73.0.3683.103

Ehm, nebylo by lépe použít nějakou relační databázi? Třeba SQLite, nebo klidně Firebird Embedded, atd...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

Bohužel, jedině v Pascalu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 73.0.3683.103

Takže přeci domácí úkol ze školy.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

Přesně tak

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

Nevíte jak na to? Alespoň lehké nakopnutí.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 74.0.3729.169

Ty čísla v poli jen porovnávej mezi sebou, pokud je menší tak ho zapis do matice

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Pastebin, Algoritmus