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 pomoc
Pascal - třídící algoritmy
- ITCrowd
- Tvůrce článků
-
Guru Level 13.5
- Příspěvky: 23605
- Registrován: březen 10
- Pohlaví:
- Stav:
Offline
Re: Pascal - třídící algoritmy
Podle jakého klíče?
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Re: Pascal - třídící algoritmy
Mám zadány recepty, které se liší počtem surovin. A tyto recepty
mám uspořádat postupně za sebe od těch, co potřebují surovin
nejméně až po ty s nejvíce surovinami.
mám uspořádat postupně za sebe od těch, co potřebují surovin
nejméně až po ty s nejvíce surovinami.
- ITCrowd
- Tvůrce článků
-
Guru Level 13.5
- Příspěvky: 23605
- Registrován: březen 10
- Pohlaví:
- Stav:
Offline
Re: Pascal - třídící algoritmy
for each
vem si seznam surovin jako kolekci a pomocí for each zjistíš počet prvků v kolekci. Pak už si jednotlivé kolekce seřadíš.
vem si seznam surovin jako kolekci a pomocí for each zjistíš počet prvků v kolekci. Pak už si jednotlivé kolekce seřadíš.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Re: Pascal - třídící algoritmy
Co to je for each? Já to musím udělat v Pascalu
- ITCrowd
- Tvůrce článků
-
Guru Level 13.5
- Příspěvky: 23605
- Registrován: březen 10
- Pohlaví:
- Stav:
Offline
Re: Pascal - třídící algoritmy
Psal jsi algoritmus. To máš do školy?
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Re: Pascal - třídící algoritmy
Jojo a musí to být v Pascalu.
Mám program, ve kterém můžeš zapisovat recepty, mazat, vybírat podle doby přípravy
a taky bych chtěl, aby uměl seřadit recepty podle počtu potřebných surovin.
Mám program, ve kterém můžeš zapisovat recepty, mazat, vybírat podle doby přípravy
a taky bych chtěl, aby uměl seřadit recepty podle počtu potřebných surovin.
Re: Pascal - třídící algoritmy
Už se ti to podařilo načíst do paměti? Máš to ve statickém poli nebo alokuješ dynamicky?
Složitosti vůbec neřeš, jestli potřebuješ jednou za čas seřadit pár desítek položek, dej tam to nejjednodušší co umíš. BubbleSort je "good enough", navíc na rozdíl od jiných metod stabilní.
Co myslíš tím "a přitom zaznamenal jejich původní pořadí"?
Jestli si tím chceš zachránit vysvědčení, tak už moc času nemáš
P.S. Turbo Pascal, Free Pascal, nebo něco jiného?
Složitosti vůbec neřeš, jestli potřebuješ jednou za čas seřadit pár desítek položek, dej tam to nejjednodušší co umíš. BubbleSort je "good enough", navíc na rozdíl od jiných metod stabilní.
Co myslíš tím "a přitom zaznamenal jejich původní pořadí"?
Jestli si tím chceš zachránit vysvědčení, tak už moc času nemáš
P.S. Turbo Pascal, Free Pascal, nebo něco jiného?
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Pascal - třídící algoritmy
Udělal jsem to takto:
procedure SERAZENI1;
var serazeni,poradi: array [1..100] of integer;
poz1,poz2:boolean;
begin
n:=filesize(SC);
poz1:=false;poz2:=false;
i:=1;
reset(SC);
while not eof(SC) do begin
read(SC, recept);
serazeni[i]:=recept.pocetsurovin;
i:=i+1 end;
Mám recepty seřazené podle stran, a když použiji jakýkoli třídící algoritmus,
tak se mi přehází pořadí, které původně souhlasí se stranami, je v čudu.
Bez příkladu vysvědčení nebude
procedure SERAZENI1;
var serazeni,poradi: array [1..100] of integer;
poz1,poz2:boolean;
begin
n:=filesize(SC);
poz1:=false;poz2:=false;
i:=1;
reset(SC);
while not eof(SC) do begin
read(SC, recept);
serazeni[i]:=recept.pocetsurovin;
i:=i+1 end;
Mám recepty seřazené podle stran, a když použiji jakýkoli třídící algoritmus,
tak se mi přehází pořadí, které původně souhlasí se stranami, je v čudu.
Bez příkladu vysvědčení nebude
- ITCrowd
- Tvůrce článků
-
Guru Level 13.5
- Příspěvky: 23605
- Registrován: březen 10
- Pohlaví:
- Stav:
Offline
Re: Pascal - třídící algoritmy
Petr2000 píše:
Mám recepty seřazené podle stran, a když použiji jakýkoli třídící algoritmus,
tak se mi přehází pořadí, které původně souhlasí se stranami, je v čudu.
Bez příkladu vysvědčení nebude
Tak si na základě třídícího algoritmu vytvoř nové pole.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router
Re: Pascal - třídící algoritmy
Jenže když vytvořím nové pole, které seřadím, tak my stejně zůstanou
jen seřazené hodnoty, které se mohou opakovat a potom jsem na začátku.
Dodatečně přidáno po 20 vteřinách:
Nebo jsem to nepochopil?
jen seřazené hodnoty, které se mohou opakovat a potom jsem na začátku.
Dodatečně přidáno po 20 vteřinách:
Nebo jsem to nepochopil?
Re: Pascal - třídící algoritmy
Mohl bys sem dát do přílohy soubor, který načítáš? Ať si to odzkouším na reálných datech...
A zkus při vkládání zdrojového kódu použít tag (code), to je páté tlačítko zleva v horní řadě, tady nad editačním polem. Takhle se ten zdroják vůbec nedá číst, je strašně nepřehledný. Doufám teda, že to nějak slušně formátuješ už u sebe, aby ses v tom sám vyznal
A zkus při vkládání zdrojového kódu použít tag (code), to je páté tlačítko zleva v horní řadě, tady nad editačním polem. Takhle se ten zdroják vůbec nedá číst, je strašně nepřehledný. Doufám teda, že to nějak slušně formátuješ už u sebe, aby ses v tom sám vyznal
Kód: Vybrat vše
procedure SERAZENI1;
var serazeni,poradi: array [1..100] of integer;
poz1,poz2:boolean;
begin
n:=filesize(SC);
poz1:=false;poz2:=false;
i:=1;
reset(SC);
while not eof(SC) do
begin
read(SC, recept);
serazeni[i]:=recept.pocetsurovin;
i:=i+1
end;
{tady mi chybí další end - konec procedury}
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 2
- 2175
-
od Kopusek
Zobrazit poslední příspěvek
02 pro 2023 10:13
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti