Zadejte hledaný výraz...

Programování C – char pole

Tomáš
verified
rating uzivatele
30. 11. 2013 00:37:19
Zakládám nové vlákno, protože na staré už nikdo neodpovídal.
Odevzdal jsem úkol, ale učiteli se nelíbí provedení, ikdyž jsem splnil vše co chtěl. Protože tam bylo málo vektorů, takže jsem nehledal jiný způsob.
Mám tento kód:
Vím, že pro více vektorů je neefektivní...
Napsal mi:
Ty instrukce rozebírat znak po znaku. Co kdybych měl třeba deset různých
vektorů, ABCDEFGHIJ? Měl bych tam pokaždé 10*10=100 ifů pro všechny kombinace,
a všechna ta volání atd. tam měl stokrát?
Nerozumím tomu znak po znaku .. nějakej ochotnej človíček, co by mi to vysvětlil jak se s tím poprat?
Pro někoho prkotina, ale pro mě velká věc (zatím).
A taky mi dělá starosti, že budu muset ignorovat odenterovaný prvky .. při zadávání hodnot..
Děkuji
30. 11. 2013 00:37:19
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971534
Josef Vyhnánek
verified
rating uzivatele
(6 hodnocení)
30. 11. 2013 08:50:13
Chtěl tím říci, že tam máš příliš podmínek a chtěl by to univerzálněji.
Např. přečíst 3 znaky a podle nich rozhodovat (první písmeno, znaménko, druhé písmeno)
Při rozšiřování funkcí algoritmu by jsi vytvářel totiž další podmínky pro další aritmetické operace s vektory. Můžeš to ale udělat dynamicky podle toho co tam je za jednotlivé znaky. Třeba by jsi tam měl proměnné operand1, operand2 a operator. Podle hodnoty znaků by jsi doplnil ukazatele do operand1, operand2 a znaménko do operatoru. V tu chvíli můžeš s tím pracovat dynamicky a nemusíš pro každou možnost dělat všechny varianty, algoritmus to vyřeší sám :)
30. 11. 2013 08:50:13
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971533
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
30. 11. 2013 10:56:05
Co kdybys zadání více vektorů udělal následovně
ve funkci main()
char vektory ;
vektory = 'A';
int vektoryData[];
vektoryData = {1,2,3} resp. zadání scanf
a ve funkci soucetVektoru()
bys načetl instrukci a rozdělil dle http://stackoverflow.com/questions/11198604/c-split-string-into-an-array-of-strings
pak by šlo identifikovat, který vektor byl zadán ke zpracování
a nad příslušnými vektory z vektoryData bys provedl operaci.
30. 11. 2013 10:56:05
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971532
Tomáš
verified
rating uzivatele
30. 11. 2013 14:26:37
Napsal Tawre;1027928
Chtěl tím říci, že tam máš příliš podmínek a chtěl by to univerzálněji.
Např. přečíst 3 znaky a podle nich rozhodovat (první písmeno, znaménko, druhé písmeno)
Při rozšiřování funkcí algoritmu by jsi vytvářel totiž další podmínky pro další aritmetické operace s vektory. Můžeš to ale udělat dynamicky podle toho co tam je za jednotlivé znaky. Třeba by jsi tam měl proměnné operand1, operand2 a operator. Podle hodnoty znaků by jsi doplnil ukazatele do operand1, operand2 a znaménko do operatoru. V tu chvíli můžeš s tím pracovat dynamicky a nemusíš pro každou možnost dělat všechny varianty, algoritmus to vyřeší sám :)
Nad tím jsem rozmýšlel, ale nevěděl jsem jak to dotáhnout do konce ..
Ale vyhodí mi to hned chybu, protože nevím jak to dál implementovat.
Co kdybys zadání více vektorů udělal následovně
ve funkci main()
char vektory ;
vektory = 'A';
int vektoryData[];
vektoryData = {1,2,3} resp. zadání scanf
a ve funkci soucetVektoru()
bys načetl instrukci a rozdělil dle http://stackoverflow.com/questions/1...ray-of-strings
pak by šlo identifikovat, který vektor byl zadán ke zpracování
a nad příslušnými vektory z vektoryData bys provedl operaci.
Šlo by to nějak popsat i pro blbý, nějak se nechytám. Promiň
30. 11. 2013 14:26:37
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971531
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
30. 11. 2013 14:39:29
Pak by to mohlo být tak, že se na vstupu zadá.
Kolik vektorů počítáme?: 3 (uloženo jako int pocetVektoru)
Kolik hodnot má vektor?: 3 (uloženo jako int delkaVektoru)
Zadej název 1. vektoru: A (uloženo jako vektor)
Zadej název 2. vektoru: B (uloženo jako vektor)
Zadej název 3. vektoru: D (uloženo jako vektor)
Zadej 1. souřadnici vektoru A: 1 (uloženo jako int vektorData)
Zadej 2. souřadnici vektoru A: 2 (uloženo jako int vektorData)
....
Pak ve funkci soucetVektoru() přijmeš instrukci např. A+D. Podle fce, kterou jsem poslal to vyparseruješ a pak stačí porovnat jestli je první instrukce, tedy A = vektor, tak víš, že máš pracovat s vektorData, a tak dále pro všechny instrukce.
30. 11. 2013 14:39:29
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971530
Tomáš
verified
rating uzivatele
30. 11. 2013 15:17:22
Napsal Bedříšek;1028033
Pak by to mohlo být tak, že se na vstupu zadá.
Kolik vektorů počítáme?: 3 (uloženo jako int pocetVektoru)
Kolik hodnot má vektor?: 3 (uloženo jako int delkaVektoru)
Zadej název 1. vektoru: A (uloženo jako vektor)
Zadej název 2. vektoru: B (uloženo jako vektor)
Zadej název 3. vektoru: D (uloženo jako vektor)
Zadej 1. souřadnici vektoru A: 1 (uloženo jako int vektorData)
Zadej 2. souřadnici vektoru A: 2 (uloženo jako int vektorData)
....
Pak ve funkci soucetVektoru() přijmeš instrukci např. A+D. Podle fce, kterou jsem poslal to vyparseruješ a pak stačí porovnat jestli je první instrukce, tedy A = vektor, tak víš, že máš pracovat s vektorData, a tak dále pro všechny instrukce.
To, ale pak vypisuješ instrukce jako A enter + enter D enter .. rozumím-li tomu, protože v zadání máme, že to musí být na jednom řádku: A+B takhle za sebou...
30. 11. 2013 15:17:22
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971529
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
30. 11. 2013 15:32:49
Poslal jsem ti fci jak rozparserovat string do pole http://stackoverflow.com/questions/11198604/c-split-string-into-an-array-of-strings
30. 11. 2013 15:32:49
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971528
Tomáš
verified
rating uzivatele
30. 11. 2013 16:25:41
Napsal Bedříšek;1028050
Poslal jsem ti fci jak rozparserovat string do pole http://stackoverflow.com/questions/11198604/c-split-string-into-an-array-of-strings
Mně to přijde nějaké celé složité a vůbec jsme se tohle neučili ve škole.
30. 11. 2013 16:25:41
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971527
Josef Vyhnánek
verified
rating uzivatele
(6 hodnocení)
30. 11. 2013 16:38:57
Jaký parsování proboha, vždyť "string" (ten totiž v Cčkku ani neexistuje) se chová jako pole charů sám o sobě :D
Pak jen získat hodnoty vektorů podle písmena a pomocí switche provést operaci mezi nimi :D
30. 11. 2013 16:38:57
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971526
Tomáš
verified
rating uzivatele
30. 11. 2013 16:42:08
Napsal Tawre;1028069
Jaký parsování proboha, vždyť "string" (ten totiž v Cčkku ani neexistuje) se chová jako pole charů sám o sobě :D
Pak jen získat hodnoty vektorů podle písmena a pomocí switche provést operaci mezi nimi :D
Mohl bys ukázat malou ukázku, ať se mám čeho chytit?
---------- Příspěvek doplněn 01.12.2013 v 18:14 ----------
Fakt nikdo blíže mě nedokáže nakopnout k tomu zdárně to napsat? ... Hledám na netu, zkouším switch a pořád nic ...
30. 11. 2013 16:42:08
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971525
Tomáš
verified
rating uzivatele
6. 12. 2013 19:55:43
Hotovo
6. 12. 2013 19:55:43
https://webtrh.cz/diskuse/programovani-c-char-pole#reply971524
Pro odpověď se přihlašte.
Přihlásit