Malý program

Programovacie jazyky, rady, poradňa...
panter86
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 129
Registrovaný: 23 jún 2009, 12:11
Bydlisko: SVK, Banska Bystrica
Kontaktovať používateľa:

Malý program

Príspevok od používateľa panter86 »

Ahojte, chcel by som Vás šikovnejších poprosiť o malú aplikáciu, prípadne excelovský dokument...
Teda ak by bol niekto taký milý a vytvoril niečo kde hodím istý počet čísiel, dvadsať, sto, viac... A tá aplikácia by mi v nich vyhľadala čísla, ktoré dokopy majú súčet, ktorý by som tam tiež zadal, a buď ich ukázalo, alebo vyznačilo v zozname... Ak by bolo viacej variant, ukázalo aspoň prvú možnú, alebo aj všetky...
Napr.
hodím čísla:
20,5
10,598
30,25
10,3
40,45
atď

a súčet by mal byť:
50,75

ukázalo by mi teda čísla 20,5 a 30,25 ako prvú možnosť a 10,3 s 40,45 ako druhú možnosť.

Ak by zadané čísla nedávali ten súčet ukázalo by najbližší možný, napr. 50,8

Ak by to bolo možné vytvoriť a našiel by sa niekto ochotný bol by som mu veeeeeľmi vďačný.
Samozrejme karma +
xadman
Medium Star
Medium Star
Príspevky: 305
Registrovaný: 09 mar 2011, 17:02

Re: Malý program

Príspevok od používateľa xadman »

A koľko bude tých čísel, to mu tiež zadáš ?
panter86
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 129
Registrovaný: 23 jún 2009, 12:11
Bydlisko: SVK, Banska Bystrica
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa panter86 »

Ak bude treba, tak počet čísel zadám... Raz ich môže byť viac, inokedy menej...
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa axxis »

panter86
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 129
Registrovaný: 23 jún 2009, 12:11
Bydlisko: SVK, Banska Bystrica
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa panter86 »

eh, ak by som mohol ešte...
kým to priateľka otestuje, ja som "našiel" jednu vec... aplikácia vie pracovať len s dvomi číslami?
ak zadám napríklad čísla
1, 2, 3, 6, 8, 9
a výsledok chcem 11
tak mi vypíše len, 9 a 2, 3 a 8, ale v kombinácii by mohlo byť aj 6 a 2 a 3

bol by veľký problém s tým?

pretože to na čo je to potrebné, sám vlastne ani neviem presne na čo :oops: , môže sa výsledok skladať aj z troch alebo aj viacerých čísel
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa jorg22 »

Tak spravil som nieco v C++ ale poriadne mi to dalo zabrat, sice to nieje najvyhodnejsie ani najrychlejsie riesenie kodu ale malo by to fungovat. Bohuzial zatial som nemal cas spravit to aby pri nenajdeni ziadneho suctu vypisal najblizssiu hodnotu.

http://jorg.cholerik.cz/cisla_scitavanie.exe
panter86
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 129
Registrovaný: 23 jún 2009, 12:11
Bydlisko: SVK, Banska Bystrica
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa panter86 »

jorg, ďakujem, ale pri spustení mi to hlási chybu...
Microsoft Visual C++ 2010 Redistributable Package mám nainštalované
Prílohy
2012-01-05_225018.png
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa jorg22 »

Zle som to asi skompiloval, opravil som par bugov uz by to malo byt 100%tne skus znova:
http://jorg.cholerik.cz/cisla_scitavanie.exe
panter86
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 129
Registrovaný: 23 jún 2009, 12:11
Bydlisko: SVK, Banska Bystrica
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa panter86 »

už to šlape, a ráta to super...
ďakujem
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa jorg22 »

Este by ma zajimalo ako by to riesli ostatny co sa tyka kodu, stacil by mi nejaky pseudokod, lebo ten moj navrh pri 1000 desatinnych cislach a sucte 1000 nedokaze v rozumnom case vyhodit vysledky(>=5 minut) na dvojjadrovom procaku. Ja som na to pouzil rekurziu a vektory v C++ a neviem ci prave to nespomaluje.
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa axxis »

to je strasne, clovek sa urve, naprogramuje to a este za to dostane zapornu karmu. :nono:

no je toto svet :lol:

inac, sorry. som myslel, ze len 2 cisla. ale kedze uz mas riesenie tak to nejdem opravovat

jorg22 napísal:Este by ma zajimalo ako by to riesli ostatny co sa tyka kodu, stacil by mi nejaky pseudokod, lebo ten moj navrh pri 1000 desatinnych cislach a sucte 1000 nedokaze v rozumnom case vyhodit vysledky(>=5 minut) na dvojjadrovom procaku. Ja som na to pouzil rekurziu a vektory v C++ a neviem ci prave to nespomaluje.
rekurzivny kod ma vzdy tendenciu byt pomalsi ako nerekurzivny (ktory na druhu stranu byva daleko dlhsi).
Ja som to robil natvrdo preiterovanim celej kolekcie zadanych cisel (kedze som si myslel, ze sucet ma byt len 2 cisel). Ale ka by to malo fungovat na generalne N cisel tak by som tam musel pridat este jeden cyklus navyse kotry by sa spustil ak je sucet cisel, s ktorymu prave pracujem mensi ako hladany (resp. ukonci sa ked hladany sucet prekroci).

najblizsi mozny sucet som hladal tak, ze som hladal kombinacie, ktorych rozdiel s hladanym suctom je najblizsi nule.
V podstate uplne totozny kod ako na hladanie suctu akurat trochu ina podmienka.

Kód: Vybrať všetko

 if (Math.Abs(dohladat - (cis + dohladavane)) < Math.Abs(najblizsiRozdiel))
                            {
                                najblizsiRozdiel = Math.Abs(dohladat - (cis + dohladavane));
                                najblizsiSucet = cis + dohladavane;
                            }
dohladat = hladany sucet
cis,dohladavane = cisla, s ktorymi sa prave pracuje, zase raz, keby to malo byt N cisle tak by hentie 2 nahradila kolekcia, resp. jej suma
panter86
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 129
Registrovaný: 23 jún 2009, 12:11
Bydlisko: SVK, Banska Bystrica
Kontaktovať používateľa:

Re: Malý program

Príspevok od používateľa panter86 »

zápornú som ti dal?
eh prepáč, hneď to napravím

jorg tebe som dal plus?

:oops:


neviem prečo mi píše "Prepáčte, ale nemôžete teraz karmovať." :(
Napísať odpoveď