Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Poradí mi někdo, jak z daných hodnot dostat největší a nejmenší?

Odpovědět 16.8.2012 13:14
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Drahomír Hanák
Zdeněk Pavlátka:

Nemyslím porovnání dvou hodnot, ale vyhledání největší a nejmenší hodnoty z 16 čísel.

Nahoru Odpovědět 16.8.2012 13:21
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Drahomír Hanák:

To je jedno. Jestli je máš třeba v poli, udělej to asi takhle:

int i, nejvetsi;
for(i = 0; i < delkaPole; i++) {
   if (pole[i] > nejvetsi)
      nejvetsi = pole[i];
}
 
Nahoru Odpovědět 16.8.2012 13:23
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 16.8.2012 13:26
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 16.8.2012 15:30
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Prosím, nemohl by mi někdo pomoci najít chybu?

for(i = 0; i < n; i++)//n=počet prvků v poli
{
        for(j = 0; j < n; j++)
        {
                if (vstup[j] < vstup[used] && (vstup[j] > vstup[c] || c == -1))
                {
                        c = j;
                }
        }
        vystup[i] = vstup[c];
        used = c;
}

for(i = 0; i < n; i++)
{
        cout << vystup[i] << " ";
}
Editováno 13.11.2012 19:16
Nahoru Odpovědět 13.11.2012 19:10
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
David Jančík [sczdavos]:

Co to má dělat nepovíš?

PS: Trošku ty zdrojáky formátuj, ať se v tom dá vyznat ;)

Nahoru Odpovědět 13.11.2012 19:28
Čím více času dostaneš, tím méně ho máš.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Má to setřídit pole čísel. (-1 pro c je počáteční hodnota)
Problém je v tom, že to najde maximum a všechny hodnoty v poli vystup nastaví na něj.
PS: Co myslíš tím formátováním?

Nahoru Odpovědět 13.11.2012 19:32
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
matesax:

Cykly - nač? LINQ...

int
   max = xxx.Max(),
   min = xxx.Min();
Editováno 13.11.2012 19:34
 
Nahoru Odpovědět 13.11.2012 19:32
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:

Vidím 2x tu samou řídící proměnnou cyklu u vnořených cyklů... Kdybys používal normální jazyk, napsal bys pole.Sort a měl bys hotovo.

Editováno 13.11.2012 19:36
Nahoru Odpovědět 13.11.2012 19:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na matesax
Zdeněk Pavlátka:

Co to má bejt? Tady jde o C++!

Nahoru Odpovědět 13.11.2012 19:35
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Nahoru Odpovědět 13.11.2012 19:37
Čím více času dostaneš, tím méně ho máš.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
matesax:

Ano - a proč by jsi tam nemohl použít LINQ?

from s in xxx orderby s.xxx descending group s by s.name into g where g.Count() > 1 select g.First();
Editováno 13.11.2012 19:42
 
Nahoru Odpovědět 13.11.2012 19:39
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 13.11.2012 19:40
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

Protože používat řízené knihovny v C++ nemá žádný smysl. Zase píšeš někam, kam nemáš.

Nahoru Odpovědět 13.11.2012 19:44
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:

Oprav si tu řídící proměnnou, máš tam 2x íčko.

Nahoru Odpovědět 13.11.2012 19:45
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Zdeněk Pavlátka:

Nepomáhá... A ten kód se tu zobrazil nějak divně, měl jsem to takhle:

for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
if (vstup[j]<vstup[used] && (vstup[j]>vstup[c] || c==-1))
c=j;
}
vystup[i]=vstup[c];
used=c;
}
for(i = 0; i < n; i++)
{
cout << vystup[i] << " ";
}
Nahoru Odpovědět 13.11.2012 19:50
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:

Ano, to protože se nad tebou David slitoval a naformátoval ho, aby se to dalo číst... 8|

Nahoru Odpovědět 13.11.2012 19:53
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Zdeněk Pavlátka:

Jenže tam asi dal špatně ty závorky. ;)

Nahoru Odpovědět 13.11.2012 19:55
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Nahoru Odpovědět 13.11.2012 19:57
Čím více času dostaneš, tím méně ho máš.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:

To mu nemůžeš mít za zlé, když se to nedalo číst :D Co používáš za IDE, že neformátuješ kód?

Napiš nám prosím co chceš udělat, už se tě na to ptal David Jančík [sczdavos], pořád tu nevidím odpověď. Pokud chceš maximum, nahoře ti to psal Drahomír Hanák, setřídění polí máš v sekci algoritmy asi 10x se zdrojákem, vyber si.

Nahoru Odpovědět 13.11.2012 19:57
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Zdeněk Pavlátka:

Microsoft Visual C++ 2010 Express
Potřebuju Log-space algoritmus na setřídění pole.

Nahoru Odpovědět 13.11.2012 20:00
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:

A proč pomocí VS neformátuješ kód? Za tohle by tě ve firmě vyhodili.

O log-space jsem v životě neslyšel a koukám, že ani Google ne. Zeptal bych se ještě jednou, co chceš udělat, ale už mě to moc nebaví :)

Nahoru Odpovědět 13.11.2012 20:03
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Algoritmus s logaritmickým množstvím paměti.

Nahoru Odpovědět 13.11.2012 20:04
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:

Takový algoritmus neexistuje. Pokud máš na mysli asymptotickou časovou složitost, tak nejlepší čas pro setřídění pole je n log n, opět tě odkáži na sekci algoritmy, vyber si tam nějaký, např. Quicksort.

Nahoru Odpovědět 13.11.2012 20:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na Zdeněk Pavlátka
Lukáš Hruda (Luckin):
template <typename type>
inline swapf(type & a, type & b)  //prohodi hodnoty
{
  type c = a;
  a = b;
  b = c;
}

template <typename type>
void bubble_sort(type* ar, int count)
{
  bool sorted = false;
  while(!sorted)
  {
    sorted = true;
    for(int i=0;i<count-1;i++)
      if(ar[i] > ar[i+1])
      {
        swapf(ar[i],ar[i+1]);
        sorted = false;
      }
  }
}

template <typename type>
void insert_sort(type* ar, int count)
{
  for(int i=0;i<count-1;i++)
    while(ar[i] > ar[i+1])
    {
      swapf(ar[i], ar[i+1]);
      if(i > 0) i--;
    }
}

template <typename type>
void select_sort(type* ar, int count)
{
  int min = 0;
  int first = 0;
  for(int i=0;i<count;i++)
  {
    for(int j=first;j<count;j++)
      if(ar[j] < ar[min])
        min = j;
    swapf(ar[min], ar[first]);
    first++;
    min = first;
  }
}

template <typename type>
void quick_sort(type* ar, int count, int b, int e)
{
  type pivot = ar[(e + b) / 2];
  int begin = b;
  int end = e;

  while(begin < end)
  {
    while(ar[begin] < pivot && begin < e) begin++;
    while(ar[end] > pivot && end > b) end--;

    if(begin <= end)
    {
      swapf(ar[begin], ar[end]);
      if(begin < e) begin++;
      if(end > b) end--;
    }
  }
  if(end > b) quick(b,end);
  if(begin < e) quick(begin,e);
}

Můžeš si vybrat.
(Byly to členský funkce třídy, narychlo sem to upravil, může tam bejt chyba.)

 
Nahoru Odpovědět 13.11.2012 20:13
Avatar
Kit
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Kit:

Nerozumím tomu. Máš to pole třídit na malá a velká čísla nebo ho máš seřadit podle velikosti?

Nahoru Odpovědět 13.11.2012 20:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Zdeněk Pavlátka psal s "logaritmickým množstvím paměti". Což je také blbost.

Editováno 13.11.2012 20:22
Nahoru Odpovědět  +1 13.11.2012 20:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Zdeněk Pavlátka
Lukáš Hruda (Luckin):

oprava... má tam bejt inline void swapf(...)

 
Nahoru Odpovědět 13.11.2012 20:31
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Kit
Zdeněk Pavlátka:

Jo jo jo. Je to do školy. Tam to pojmenovali takhle. (já se taky divil) Hodnota žádné proměnné nesmí přesáhnout to n, všechny proměnné mají být celočíselných typů a nesmím použít rekurzi. Jediná výjimka je vstup a výstup. Ze vstupu se smí jen číst a do výstupu jen zapisovat.

Editováno 14.11.2012 6:53
Nahoru Odpovědět 14.11.2012 6:53
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Kit:

Mně už přišlo podivné, že místo pojmu "řazení" používají pojem "třídění", který znamená něco jiného, než co po vás chce. Učitel informatiky by to měl znát.

Nahoru Odpovědět 14.11.2012 7:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Radix sort může být ještě o něco rychlejší, ale má smysl jen u obrovského množství dat s pevnou strukturou. Má složitost m×n, kde m je počet průchodů, který se nastavuje pevně předem. Hodí se zejména když se data nevejdou do RAM.

Nahoru Odpovědět 14.11.2012 7:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Můžeš upřesnit rozdíl mezi tříděním a řazením? Nám na vejšce říkali něco jako že to nemáme řešit, že se to stejně zaměňuje.

Nahoru Odpovědět 14.11.2012 10:10
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Třídí se do skupin. Řazení je podle abecedy či velikosti.

Například broskve se třídí podle velikosti a kvality, ale neřadí se podle velikosti. Stejně tak se třídí dopisy podle PSČ, ale řazení u nich nemá význam.

Na vaší vejšce si to možná pletou, ale na naší si to nepletli a tvrdě vyžadovali rozlišování.

Například radix sort je řazení tříděním. Kdybys napsal "třídění tříděním", asi by to vypadalo trochu divně.

Nahoru Odpovědět 14.11.2012 10:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

To abych to tu upřesnil :)

Nahoru Odpovědět 14.11.2012 11:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Ale ony se řadí... :) Podle rozměrů a váhy platíš známku...

 
Nahoru Odpovědět 14.11.2012 11:39
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Posílají se dál balíky seřazené podle velikosti? To asi ne. Balíky se pouze třídí.

Nahoru Odpovědět 14.11.2012 11:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Reagoval jsem na:

"Stejně tak se třídí dopisy ..."

 
Nahoru Odpovědět 14.11.2012 16:08
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Napsal jsi "Ale ony se řadí...", tedy dopisy nebo i balíky. Neřadí se, ale třídí. Tak to nepřekrucuj.

Nahoru Odpovědět 14.11.2012 16:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

To ty překrucuješ - o balíkách tam nemáš ani písmenko. Takže jsem na balíky nemohl reagovat... Podle tvé definice se i řadí...

 
Nahoru Odpovědět 14.11.2012 16:16
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

A jak se tedy podle mé definice a tvých představ řadí dopisy? Podle velikosti (od nejmenšího po největší nebo naopak) nebo podle abecedy? Případně podle PSČ vzestupně nebo sestupně?

Nahoru Odpovědět 14.11.2012 16:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Myslím, že Kit to zde vysvětlil jasně a není potřeba další diskuze.

Nahoru Odpovědět 14.11.2012 16:26
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Tato diskuze byla označena moderátorem jako nekonstruktivní a myslíme si, že nemá pro veřejnost příliš vysokou hodnotu. Členy můžete samozřejmě stále oslovit soukromě a to formou zpráv nebo chatu.

Zobrazeno 43 zpráv z 43.