c# pomoc s kodem
c# pomoc s kodem
Dobrý den, zkouším si dělat v C# a jsem začátečník, dělám program, že z 5 čísel nejvyšší a nejnižší smaže a zbylé sečte v grafickém prostředí, udělal jsem to co mám v příloze, ale když napíšu víc stejných čísel, tak nefunguje, jinak jo. Vím, že to není úplně šťastné řešení, ale jsem rád, že jsem něco vyplodil, jen nevím jak to ošetřit. Prosím o radu a nebo i návrh na lepší řešení, děkuji :))
Re: c# pomoc s kodem
A nebylo by lepší použít pole a ta čísla nejdřív seřadit?
Nebo aspoň těch pět proměnných projít a extrémy vyhodit někam bokem, tak abys pracoval jen s tím tvým rozmezím?
Nebo aspoň těch pět proměnných projít a extrémy vyhodit někam bokem, tak abys pracoval jen s tím tvým rozmezím?
"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: c# pomoc s kodem
Jo určitě si myslím, že přes pole by to bylo lepší, ale ještě je moc neumím
nevim jak bych to zapsal, s tím mam problém největší 


- domitea
- Tvůrce článků
-
Level 4.5
- Příspěvky: 1971
- Registrován: červen 09
- Bydliště: Královehradecký kraj
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: c# pomoc s kodem
Kam přesně zadáváš ty stejná čísla? Ono totiž, když se porovnávají pouze vůči jedné známce a né ještě mezi sebou, tak to někdy takhle nefunguje
P.S: Na zdrojáky tu je tag [code]

P.S: Na zdrojáky tu je tag [code]

Re: c# pomoc s kodem
Tady je to v grafice, když zadam takhle ty 3 čísla stejné, tak se to po....
jinak to funguje, asi je teda musim nějak porovnat, ale nevim jak 


- domitea
- Tvůrce článků
-
Level 4.5
- Příspěvky: 1971
- Registrován: červen 09
- Bydliště: Královehradecký kraj
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: c# pomoc s kodem
Naházíš do kolekce (nebo seznamu), zavoláš nějaký sort, poslední změníš na nulu a všechny sečteš.... Je to kanón na vrabce, ale takhle se to dnes dělá. Pro tebe to ale je odstrašující příklad!
Počkej si na Faraona, ten ti napíše krásnou esej na seřazení
Počkej si na Faraona, ten ti napíše krásnou esej na seřazení

Re: c# pomoc s kodem
Nejspíš budu potřebovat doučování
když to je odstrašující, tak by se to dělat nemělo?
proč se to dnes tedy dělá?
nějaký kontakt, abych mu mohl napsat do zpráv? :) díky :)



- domitea
- Tvůrce článků
-
Level 4.5
- Příspěvky: 1971
- Registrován: červen 09
- Bydliště: Královehradecký kraj
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: c# pomoc s kodem
Počkej si na něj, on odpoví 
Na to tohle je vhodné pole (float[] cisla = new float[5]). Potom pomocí napsané funkce na setřídění (tady postačí BubbleSort) si čísla setřídíš. Potom budeš mít na posledním místě to nejnižší číslo (nebo na prvním, podle toho jak si to napíšeš
) a místo něj dáš 0, potom pomocí cyklu uděláš součet a máš to 

Na to tohle je vhodné pole (float[] cisla = new float[5]). Potom pomocí napsané funkce na setřídění (tady postačí BubbleSort) si čísla setřídíš. Potom budeš mít na posledním místě to nejnižší číslo (nebo na prvním, podle toho jak si to napíšeš


Re: c# pomoc s kodem
dobře díky, počkám na něj :) dneska už to nechám
stejnak nevim jak tam ten bubble sort přidat nějak 


Re: c# pomoc s kodem
C# neumím,ale napsat to v jiným programovacím jazyce by byla sranda.Řešil bych to tak,že bych čísla srovnal (porovnání v cyklu) a pak s nimi pracoval podle potřeby.
Re: c# pomoc s kodem
Když ještě neumíš pole, tak to zkusíme přímo s proměnnými. Pro přehlednost si je přejmenuji na A,B,C,D,E. Pak budeš potřebovat ještě nějakou dočasnou na prohazování obsahů, třeba T jako temp.
Po zadání všech pěti čísel (šlo by to i během zadávání) si je projdeš a porovnáš s krajními, uděláme to tak že v A bude nejmenší a v E největší, na pořadí zbylých B,C,D tentokrát nezáleží, z těch jen vypočítáš výsledek.
Z toho je vidět že ty krajní s ničím porovnávat nemusíš, stačí tedy otestovat ty tři uprostřed, a pokud je potřeba, prohodit je s krajními:
Takhle to provedeš pro vyhození minima z B do A:
Takhle pro vyhození maxima z B do E:
To samé musíš potom udělat i s C a D. Kdybys měl pole a prováděl to cyklem, nemusel bys to vypisovat třikrát za sebou
Když v nich bude nové minimum nebo maximum, tak se prohodí s tím bývalým, takže se nakonec může stát že se čísla mezi sebou proházela úplně, pokud by to mělo něčemu vadit, musel by se vymyslet jiný postup.
Pokud tam budeš mít víc stejných čísel, tak se samozřejmě do těch krajních vyhodí jen jedno z nich a ostatní zůstanou uvnitř, s tím počítej.
A než to naťukáš do počítače, zkus si to nejdřív ručně na stole. Nastříhej si pět lístečků, na ně napiš různá čísla, zamíchej je, a potom s nimi prováděj tenhle postup. Vyzkoušej to několikrát pro různé kombinace, ať vidíš co se přesně v tom programu děje.
Po zadání všech pěti čísel (šlo by to i během zadávání) si je projdeš a porovnáš s krajními, uděláme to tak že v A bude nejmenší a v E největší, na pořadí zbylých B,C,D tentokrát nezáleží, z těch jen vypočítáš výsledek.
Z toho je vidět že ty krajní s ničím porovnávat nemusíš, stačí tedy otestovat ty tři uprostřed, a pokud je potřeba, prohodit je s krajními:
Takhle to provedeš pro vyhození minima z B do A:
Kód: Vybrat vše
if (B < A)
{
T = A;
A = B;
B = T;
}
Takhle pro vyhození maxima z B do E:
Kód: Vybrat vše
if (B > E)
{
T = E;
E = B;
B = T;
}
To samé musíš potom udělat i s C a D. Kdybys měl pole a prováděl to cyklem, nemusel bys to vypisovat třikrát za sebou

Když v nich bude nové minimum nebo maximum, tak se prohodí s tím bývalým, takže se nakonec může stát že se čísla mezi sebou proházela úplně, pokud by to mělo něčemu vadit, musel by se vymyslet jiný postup.
Pokud tam budeš mít víc stejných čísel, tak se samozřejmě do těch krajních vyhodí jen jedno z nich a ostatní zůstanou uvnitř, s tím počítej.
A než to naťukáš do počítače, zkus si to nejdřív ručně na stole. Nastříhej si pět lístečků, na ně napiš různá čísla, zamíchej je, a potom s nimi prováděj tenhle postup. Vyzkoušej to několikrát pro různé kombinace, ať vidíš co se přesně v tom programu děje.
"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: c# pomoc s kodem
Díky moc du se na to podívat jestli to nějak dokážu předělat, každopádně mohl byste mi říci jak by se to udělalo přes ty pole? nebo nějakým bubble sortem? :)) děkuju.
--- Doplnění předchozího příspěvku (22 Úno 2014 15:38) ---
Super, funguje to, ale teď bych se ještě rád naučil jak to zkrátit přes ty pole a cykly, vážně bych byl moc vděčný, ale i tak to stačí, díky moc :))
--- Doplnění předchozího příspěvku (22 Úno 2014 15:38) ---
Super, funguje to, ale teď bych se ještě rád naučil jak to zkrátit přes ty pole a cykly, vážně bych byl moc vděčný, ale i tak to stačí, díky moc :))
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 5
- 19811
-
od Tay
Zobrazit poslední příspěvek
10 úno 2025 12:09
-
- 2
- 6794
-
od Dyonysos
Zobrazit poslední příspěvek
14 led 2025 16:19
-
- 5
- 3049
-
od petr22
Zobrazit poslední příspěvek
17 úno 2025 12:45
-
-
Pomoc s výběrem PC monitoru. Příloha(y)
od ski1961 » 17 dub 2025 11:17 » v Rady s výběrem hw a sestavením PC - 29
- 6509
-
od windroid2
Zobrazit poslední příspěvek
22 dub 2025 20:28
-
-
- 5
- 2723
-
od Alferi
Zobrazit poslední příspěvek
31 bře 2025 19:37
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 5 hostů