Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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: maximum

Aktivity
Avatar
Zdeněk Pavlátka:16.8.2012 13:14

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
Odpovídá na Zdeněk Pavlátka
Drahomír Hanák:16.8.2012 13:19

Zkus operátory >, < ;)

 
Nahoru Odpovědět
16.8.2012 13:19
Avatar
Odpovídá na Drahomír Hanák
Zdeněk Pavlátka:16.8.2012 13:21

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:16.8.2012 13:23

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
Nahoru Odpovědět
16.8.2012 13:26
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Hartinger
Vlastník
Avatar
Nahoru Odpovědět
16.8.2012 15:30
You are the greatest project you will ever work on.
Avatar
Zdeněk Pavlátka:13.11.2012 19:10

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
David Jančík
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Jančík:13.11.2012 19:28

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
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Zdeněk Pavlátka:13.11.2012 19:32

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
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
matesax:13.11.2012 19:32

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 Hartinger
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Hartinger:13.11.2012 19:35

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
You are the greatest project you will ever work on.
Avatar
Odpovídá na matesax
Zdeněk Pavlátka:13.11.2012 19:35

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
David Jančík
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Jančík:13.11.2012 19:37

Podívej se do sekce Algoritmy.

Nahoru Odpovědět
13.11.2012 19:37
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
matesax:13.11.2012 19:39

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
Odpovídá na David Jančík
Zdeněk Pavlátka:13.11.2012 19:40

Potřebuju Log-space algoritmus.

Nahoru Odpovědět
13.11.2012 19:40
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:13.11.2012 19:44

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
You are the greatest project you will ever work on.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Hartinger:13.11.2012 19:45

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

Nahoru Odpovědět
13.11.2012 19:45
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
Zdeněk Pavlátka:13.11.2012 19:50

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 Hartinger
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Hartinger:13.11.2012 19:53

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
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
Zdeněk Pavlátka:13.11.2012 19:55

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
David Jančík
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Jančík:13.11.2012 19:57

Koukám. Už sem ti je spravil.

Nahoru Odpovědět
13.11.2012 19:57
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Hartinger:13.11.2012 19:57

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, 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
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
Zdeněk Pavlátka:13.11.2012 20:00

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 Hartinger
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Hartinger:13.11.2012 20:03

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
You are the greatest project you will ever work on.
Avatar
Zdeněk Pavlátka:13.11.2012 20:04

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 Hartinger
Vlastník
Avatar
Odpovídá na Zdeněk Pavlátka
David Hartinger:13.11.2012 20:06

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
You are the greatest project you will ever work on.
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Lukáš Hruda:13.11.2012 20:13
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
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Kit:13.11.2012 20:14

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
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:13.11.2012 20:22

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
13.11.2012 20:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Lukáš Hruda:13.11.2012 20:31

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

 
Nahoru Odpovědět
13.11.2012 20:31
Avatar
Odpovídá na Kit
Zdeněk Pavlátka:14.11.2012 6:53

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
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Kit:14.11.2012 7:16

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
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:14.11.2012 7:27

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 Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:14.11.2012 10:10

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
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:14.11.2012 10:59

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 Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:14.11.2012 11:16

To abych to tu upřesnil :)

Nahoru Odpovědět
14.11.2012 11:16
You are the greatest project you will ever work on.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:14.11.2012 11:39

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

 
Nahoru Odpovědět
14.11.2012 11:39
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:14.11.2012 11:43

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
Tvůrce
Avatar
Odpovídá na Kit
matesax:14.11.2012 16:08

Reagoval jsem na:

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

 
Nahoru Odpovědět
14.11.2012 16:08
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:14.11.2012 16:12

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
Tvůrce
Avatar
Odpovídá na Kit
matesax:14.11.2012 16:16

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
Tvůrce
Avatar
Odpovídá na matesax
Kit:14.11.2012 16:21

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 Hartinger
Vlastník
Avatar
David Hartinger:14.11.2012 16:26

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

Nahoru Odpovědět
14.11.2012 16:26
You are the greatest project you will ever work on.
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.