Pole v C
Zdeněk Materna
zdenek.materna@gmail.com
Středa Listopad 26 14:42:32 CET 2008
Dne 26. listopad 2008 14:25 Lukáš Grepl <L.Grepl@sh.cvut.cz> napsal(a):
> > Toto nefunguje:
> >
> > for(uint8_t i=0; i<((*m).e_arr_len-1);i++)
> > (*m).e[i] = (*m).e[i+1];
>
> Na prvnà pohled to vypadá, že by to principiálně fungovat mohlo. Určitě
> máte v tom m a m->e_arr_len to, co předpokládáte?
MyslĂm, Ĺľe uĹľ jsem tu chybu odhalil - holt obÄŤas se ÄŤlovÄ›k musĂ trochu
znemoĹľnit...
>
>
> > A toto ano:
> >
> > (*m).e[0] = (*m).e[1];
> > (*m).e[1] = (*m).e[2];
> > (*m).e[2] = (*m).e[3];
> > (*m).e[4] = ((*m).req_speed - (*m).act_speed);
> >
> > SamozĹ™ejmÄ› bych radši pouĹľĂval for, protoĹľe je to ÄŤistšà a navĂc chci to
> > pole alokovat dynamicky. Ale ať na to koukám, jak na to koukám, chybu
> > nevidĂm. Kompilátorem to projde, ale bohuĹľel to nefunguje.
>
> Pro ÄŤtyĹ™i poloĹľky je to asi skoro jedno, ale obvykle bĂ˝vá efektivnÄ›jšĂ
> mĂsto pĹ™erovnávánĂ a sÄŤĂtánĂ celĂ©ho pole napsat klouzavĂ˝ prĹŻmÄ›r
> přibližně takto:
>
> int update_moving_average(int value)
> {
> static int acc, buffer[N], i;
>
> acc = acc - buffer[i] + value;
> buffer[i] = value;
> if (++i >= N)
> i = 0;
>
> return acc; // nebo acc/N podle potřeby
> }
DĂky za inspiraci, vyzkoušĂm.
>
>
> Lukáš Grepl
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- daląí část ---------------
HTML pĹ™Ăloha byla odstranÄ›na...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20081126/496adf64/attachment-0002.htm
Daląí informace o konferenci Hw-list