Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Naprogramovat v excelu

Dobrý den, potřeboval bych poradit s takovým jedním příkladem v excelu. Ten příklad je o bankomatu a třeba zadám 8700 a aby ten program vyjel kolik tam bude jednotlivejch bankovek, tzn. 1 pětitisícovka, 1 dvoutisícovka, 1 tisícovka, 1 pětistovka a jedna dvoustovka. Prostě aby mi napsal co mi má z toho bankomatu vyjet. Když tak to někam hoďte ve wordu, abych si to mohl stáhnout. Díky za pomoc

Předmět Autor Datum
A nechtěl bys rovnou zadat číslo účtu, že bysme ti tam rovnou poslali ty bankovky? Co takhle trochu…
Pavel 16.04.2009 12:34
Pavel
Bohužel neporadím, ale je nutno také zohlednit bankovky, které bankomat vydává. Ještě jsem nenašel t…
Moas 16.04.2009 12:44
Moas
Od pětitisícovky dolu, tzn. 5000,2000,1000,500,200,100. Já jsem to nenašel ten algorytmus, tak kdyžt…
Service pack1 16.04.2009 12:48
Service pack1
Algoritmus je jednoduchy: vydelis nejvyssi bankovkou, dostanes pocet zbytek vydelis nizsi bankovkou,…
Jan Fiala 16.04.2009 12:56
Jan Fiala
Tak aspoň naznačte princip třeba jen začátek např. Function bankomat(a) If ............. Nebo aspoň…
Service pack1 16.04.2009 13:03
Service pack1
Zaklady_algorimizace.pdf
jirka44 16.04.2009 13:23
jirka44
Procedura Vycetka(castka) Bankovky = (5000,2000,1000,500,200,100) Index = 1 Opakuj Pocet = Celocisel…
Jan Fiala 16.04.2009 13:37
Jan Fiala
To máš domácí úkol do školy? Jestli jo, tak jsi projevil dost málo snahy. Jinak to co hledáš se jme…
host 16.04.2009 13:29
host
zkusím to v PHP, v excelu to bude podobný ;-) $castka = 8700; $kolikpetitisicovek = floor($castka/5…
marekdrtic 16.04.2009 13:36
marekdrtic
Mohl jsi bankovky vložit do pole a pak to projet cyklem. ;-)
host 16.04.2009 13:37
host
$castka = 8700; $array = array(5000, 2000, 1000, 500, 200, 100); foreach($array as $match) { if($cas…
marekdrtic 16.04.2009 13:41
marekdrtic
To už vypadá líp! :beer:
host 16.04.2009 13:46
host
Lip jo, jen tu castku to odecita spatne...
Jan Fiala 16.04.2009 13:52
Jan Fiala
sakra :-D $castka = 8700; $array = array(5000, 2000, 1000, 500, 200, 100); foreach($array as $match…
marekdrtic 16.04.2009 13:53
marekdrtic
vložit do pole a pak to projet cyklem A ted se ukažte, pořád mi to vrtá hlavou : Jak obecně pro n…
AZOR 16.04.2009 22:29
AZOR
myslis neco takoveho? [http://pc.poradna.net/file/view/825-900-png] [http://pc.poradna.net/file/vi…
JR_Ewing 16.04.2009 14:05
JR_Ewing
Přesně, to je ono, jak vypadá ten algoritmus?
Service pack1 16.04.2009 18:49
Service pack1
Algoritmus tam neni zadny, alespon ne tak, jak to chapou programatori. Jsou tam dva primitivni vzore…
JR_Ewing 16.04.2009 18:59
JR_Ewing
A nechceš to sem dát, protože já jsem laik a vůbec netušim.
Service pack1 16.04.2009 19:06
Service pack1
Co zas netušíš? Když jsi laik, tak se pouštěj do věcí, na který stačíš. A postupně se můžeš zdokonal…
host 16.04.2009 19:21
host
Mě by to zajímalo jak to vypadá. Normálně na papír bych ten algoritmus sestavil, ale neumim to napsa…
Service pack1 16.04.2009 19:25
Service pack1
Vždyť ti JR_Ewing napsal jak to udělal. Ani jsi to nezkusil a už křičíš, že to nejde. Hm. :-|
host 16.04.2009 19:30
host
Já ale nekřičim, já jsem rád že mi tady radíte, ale já to prostě nedokážu jako JR ewing, nejsem asi…
Service pack1 16.04.2009 19:36
Service pack1
Takže jsi to podle JR_Ewinga zkusil? A co ti na tom nejde?
host 16.04.2009 19:39
host
No vůbec nevim jak to mám řadit za sebou, a jak to všechno pojmenovávat, protože tam je samý DIV a M…
Service pack1 16.04.2009 19:43
Service pack1
Koukni se do prilohy - jedno narycho spachane blbe reseni natvrdo
Jan Fiala 16.04.2009 20:13
Jan Fiala
Takhle je to v poho, nemohl byste sem dát zkopírovanej zdrojovej program ve wordu? Díky moc:-):-)
Service pack1 16.04.2009 21:03
Service pack1
Teda, nic mi do toho není a nechci se plést mezi velký kluky, ale: nechceš toho trochu moc? To se ce…
Pavel 16.04.2009 21:51
Pavel
Zkopirovanej program ve Wordu? Nejak nechapu. Chtel jsi vzorecky, mas vzorecky. Tak si z toho progra…
Jan Fiala 16.04.2009 21:53
Jan Fiala
U spousty dnesnich mladych (dobra, mladsich nez ja) pozoruji prakticky rceni o tom, ze "mysleni boli…
JR_Ewing 17.04.2009 00:11
JR_Ewing
Víte co to je? U mě je to lenost a ne blbost, já bych to klidně udělal, klidně bych to vymyslel i be…
Service pack1 17.04.2009 18:00
Service pack1
Kriste clovece snad si nemyslis ze v bankomate je excel :-) Jak to funguje ti tu uz napisali aspon d…
mm 17.04.2009 18:06
mm
Kdoví jestli nemám IQ větší než ty, 140
Service pack1 17.04.2009 18:24
Service pack1
Nemachruj tady s nějakýma nepodloženýma numerama. Kdybys měl takové IQ, tak už bys to měl dávno v Ex…
host 17.04.2009 19:29
host
Tak až budeš mít příště zase nějakej problém, klidně si ho vyřeš sám. Většina z nás tu bude spokojen…
Pavel 17.04.2009 19:45
Pavel
Já jsem tady všem poděkoval, a jsem vděčný za rady.
Service pack1 17.04.2009 19:54
Service pack1
Algoritmus asi vypada tak ze: zadanou castku celociselne vydelis nejvyssi vydavanou bankovou, vysled…
JR_Ewing 17.04.2009 20:22
JR_Ewing
Este je dobre podotknut ze naozajstne slusne bankomaty poslednu velku bankovku rozdelia na mensie. N…
mm 18.04.2009 02:16
mm
Děkuju, a pane JR Ewing, já se s ničim nechlubim,jen jsem se bránil.
Service pack1 19.04.2009 13:29
Service pack1
Nevím, jestli je to ještě aktuální - řešení podobného příkladu je třeba zde: http://o-excelu.blogsp…
adadadad 30.01.2011 22:08
adadadad
Po skoro 2 letech to moc aktualni nebude...
Jan Fiala 31.01.2011 05:27
Jan Fiala
Pro autora dotazu možná ne, pro někoho dalšího možná ano.
adadadad 31.01.2011 12:13
adadadad
Já si původní dotaz nepamatuju. Koukal jsem se na ten blog a je to tam vysvětleno opravdu podrobně a… poslední
L-Core 31.01.2011 17:38
L-Core
Ty jsi evidentně nečetl celou diskusi, protože jinak bys věděl, že tazatel to chtěl přepsané do Word…
jbo 31.01.2011 15:05
jbo

A nechtěl bys rovnou zadat číslo účtu, že bysme ti tam rovnou poslali ty bankovky?

Co takhle trochu snahy a najít si přes google.com příslušnej algoritmus? Co ty na to? V podstatě se jen nadefinujou bankovky a pak se může např. cyklem odečítat hodnota bankovky, dokud je částka větší či rovna. Poté se přejde na menší bankovku a tak dokola.

Jistě ale existuje i elegantnější způsob.

Pavel

Bohužel neporadím, ale je nutno také zohlednit bankovky, které bankomat vydává. Ještě jsem nenašel takový, který by vydával 5 druhů bankovek, ale možná to nějaký ústav tak má....

Procedura Vycetka(castka)
  Bankovky = (5000,2000,1000,500,200,100)
  Index = 1
  Opakuj
    Pocet = CelociselneDeleni(Castka, Bankovky(Index))
    Kdyz Pocet > 0
      Vytiskni "Bankovka: " + Bankovky(Index) + " Pocet: " + Pocet
      Castka := Castka - Pocet * Bankovky(Index)
    Index := Index + 1
  Dokud Castka >= 100
konec procedury

zkusím to v PHP, v excelu to bude podobný ;-)

$castka = 8700;

$kolikpetitisicovek = floor($castka/5000);
$castka = $castka - 5000*$kolikpetitisicovek;

$kolikdvoutisicovek = floor($castka/2000);
$castka = $castka - 2000*$kolikdvoutisicovek;

Javisti jako MaSo prominou, že to dělám takhle prasácky, šlo by to určitě vyřešit lépe :-D

vložit do pole a pak to projet cyklem

A ted se ukažte, pořád mi to vrtá hlavou :

Jak obecně pro n bakovek bez použití cyklu?

//edit, chtěl jsem pochopitelně oponovat, ale momntálně nic nenapadá.

Algoritmus tam neni zadny, alespon ne tak, jak to chapou programatori. Jsou tam dva primitivni vzorecky pro "celociselne deleni" a "zbytek po celociselnem deleni" v kazdem radku.

A aby sis nemyslel, ze te chci nechat na stiru:
Hodnota sloupce F je vysledek celociselneho deleni. Vstupni hodnoty jsou: zbytek z predchoziho radku (u prvniho je to vstupni hodnota) a hodnota bankovy v tom radku
Hodnota sloupecku G (skryty) je zbytek po celociselnem deleni. Vstupni hodnoty jsou tytez co do celociselneho deleni.

U spousty dnesnich mladych (dobra, mladsich nez ja) pozoruji prakticky rceni o tom, ze "mysleni boli". On nechce znat reseni, on chce, aby to nekdo udelal za nej aby nemusel namahat ani jeden mozkovy zavit. Jinak o takovych to lidech pojednava napriklad D-fencuv blog.

Pouzil bych take neco ze svateho pisma, neb v Bibli je psano, ze "nemiluje sve deti ten, ktery jich nikdy nebije".

Víte co to je? U mě je to lenost a ne blbost, já bych to klidně udělal, klidně bych to vymyslel i bez vás, ale myslel jsem si že i v dnešním světě se dá čekat pomocná ruka. Nedá. Neberte to jako urážku, ale vim jak jste mluvili o tý mládeži, plně s váma souhlasim, vim jaký to jsou sígři, ale já tam nepatřim. Jen se chci podivat jak to má vypadat. Jak takovej bankomat vůbec funguje, tak jestli ten program má zkopírovanej ve wordu, tak ať ho sem dá. A ostatním díky:-)

Nemachruj tady s nějakýma nepodloženýma numerama. Kdybys měl takové IQ, tak už bys to měl dávno v Excelu hotové.

Vadí mně, že se cítíš dotčený a tvrdíš, že ti nebyla podána pomocná ruka. Přitom já tady vidím odpovědi minimálně deseti lidí, kteří ti poradili. Asi si ale neuvědomuješ rozdíl mezi "poradit" a "udělat". Nuž co, není lehké se zavděčit.

Algoritmus asi vypada tak ze:
zadanou castku celociselne vydelis nejvyssi vydavanou bankovou, vysledne cislo je pocet bankovek nejvyssi hodnoty
zjistis zbytek po celociselnem deleni, toto cislo je vstupni hodnota pro nasledujici krok
zbytek vydelis hodnotou druhe nejvyssi bankovy..

atd az do posledni bankovy, na miste je osestrit, aby vstupni castka byla zaokrouhlena na stovky nebo dvoustovky (podle nejnizsi bankovky) a pripadne nabidnout misto zadane castky nejblizsi alternativu

Ja to jen napasoval do excelove tabulky, zadny program, zadne makro, jen vzorecky

a jestli si tohle nepochopil, tak uz pak nevim, co ti poradit

PS: nechlub se IQ, mam vyssi :-D

Este je dobre podotknut ze naozajstne slusne bankomaty poslednu velku bankovku rozdelia na mensie. Napr. ak si vyberem 100eur tak u hovada bankomatu dostanem 2x50 (podla vami uvedenych algoritmov), ale u slusneho dostanem napr. 1x50eur, 2x20eur a 2x5eur, aby som mal aj drobnejsie ;)

Zpět do poradny Odpovědět na původní otázku Nahoru