NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 8 - Pole v C++

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:19.9.2017 18:39

Ano, mám odučeno stovky lidí osobně a z 99% mám pozitivní feedback, ale to snad víš, že jsem dřív učil, než jsem začal psát články na fulltime.

Odpovědět
19.9.2017 18:39
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Neaktivní uživatel:20.9.2017 1:54

Vím že jsi učil, ale ptal jsem se na ten feedback. Bylo by zajímavý si to pročíst a třeba by to zajímalo mimojiné i nějaký budoucí zájemce o kurzy.

Odpovědět
20.9.2017 1:54
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:20.9.2017 10:05

Na takový feedback se nepodíváš, protože jde o reakce stovek lidí na určité postupy ve výuce :) Osobní reakce, doplním, aby nedošlo opět k omylu.

Editováno 20.9.2017 10:06
Odpovědět
20.9.2017 10:05
New kid back on the block with a R.I.P
Avatar
Filistin
Člen
Avatar
Filistin:23.9.2017 7:17

Asi se to dozvím až přejdu k ukazatelům ... ake zkusim se zeptat.

U tý funkce find() ...
Pozici získám tak, že odečtu i a pole.
Když si do konzole oba objekty vypíšu, dostanu něco takovýho:
0x28fe84 a* 0x28fe80*

To jsou adresy v paměti, pod kterými pak najdu dané hodnoty?

Tak jsem to pochopil, protože když pak vypíšu ** i** a ** *pole**, dostanu hodnoty z mýho pole:
*4(hodnota, co hledám) a 21(první prvek v poli)

Co mi nedává smysl je, jaktože když odečtu dvě adresy (pokud jde tedy o adresy a taky pokud jde vůbec o odečítaní), dostanu pozici to mýho hledanýho prvku.

 
Odpovědět
23.9.2017 7:17
Avatar
Odpovídá na Filistin
Patrik Valkovič:23.9.2017 8:30

Je na celý jeden díl v seriálu (konkrétně se jedná o aritmetiku ukazatelů).

Odpovědět
23.9.2017 8:30
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Filistin
David Hartinger:23.9.2017 15:55

Upravil jsem popisek u funkce, snad to bude teď jasnější.

Odpovědět
23.9.2017 15:55
New kid back on the block with a R.I.P
Avatar
Filistin
Člen
Avatar
Filistin:23.9.2017 17:22

Díky za odpovědi.
Projdu si pak ty ukazatele dopodrobna a vrátim se sem a snad tomu porozumim maximalně už pak.
Jinak ... parádní tutoriály ... ze školy mě c++ hrozně děsilo ,ale zatim to neni tak strašný - uvidim samozřejmě ale až se dostanku k objektovýmu programování. :D

 
Odpovědět
23.9.2017 17:22
Avatar
Ludek Novak
Člen
Avatar
Ludek Novak:24.11.2017 16:33

tu find() funkci teda vubec nechapu, neni totiz nikde vysvetleno co presne znamena syntax

int *i = find(pole, pole + delkaPole, hledanyPrvek);

a hlavne jakou hodnotu ma pole jako takove?

 
Odpovědět
24.11.2017 16:33
Avatar
Oli Wonder
Člen
Avatar
Oli Wonder:21.5.2018 18:35

Zdravím, mohol by mi niekto poradiť aká je zostupne usporiadanie čísel v poli? :)

 
Odpovědět
21.5.2018 18:35
Avatar
Zakk
Člen
Avatar
Odpovídá na Ludek Novak
Zakk:13.11.2018 23:27

Vím, že odpovídám na starý komentáře, ale třeba se to bude hodit někomu, kdo si to tů bude pročítat.

int *i = find(pole, pole + delkaPole, hledanyPrvek);

Hodnota pole je adresa prvního prvku v paměti, takže logicky pole + delkaPole bude adresa posledního prvku v paměti, takže první a druhej parametr tý funkce vlastně zadává interval odkud kam to má hledat a třetí parametr je hodnota kterou hledáme a funkce nám vrátí adresu v paměti, kde je nalezenej prvek, kterou v tomhle případě uložíme do ukazatele i.

Asi nejjednodušší (určitě ne nejefektivnější) vlastní hledání prvku v poli by vypadalo nějak takhle

for (int i=0;i<delkaPole;i++){
        if (pole[i]==hledany){
            pozice=i;
           }
    }

Nejsem zkušenej programátor, takže mě prosím opravte jestli píšu blbosti, ale takhle to chápu.

Co se týče sestupného řazení, tak bych ho prostě seřadil vzestupně a pak použil funkci reverse().

 
Odpovědět
13.11.2018 23:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 46.