Teoria obliczeń: ciągi, otacja 0 Wykład 7 Ο( log ) Σ
Ciąg to fukcja określoa a zbiorze liczb aturalych N a, a,..., a 1, a, a 1,... N Ciąg opisuje się jako listę: 1 + w której dla każdej liczby aturalej obiekt a ma określoą wartość. Waże ciągi: a = 1/ a = a = a = log Idetyczość Pierwiastek kwadratowy Kwadrat Logarytm przy podstawie Wykładicza o podstawie a = Szczególe ciągi w teorii wydajości algorytmów: a = log a =! a = Ile wyiesie czas oczekiwaia a wyik jeśli obliczeie / przetwarzaie dotyczy elemetów? D. Makowiec: Programowaie dla I BioIf 013-04-08
Zadaie: Przetestuj szybkość wzrostu astępujących ciągów: Dae: liczba aturala i przepisy a obliczeie wyrazów kolejych ciągów: ide, kwadr, pierw, log_, pot_, log, _, silia wyświetleie 10 pierwszych wyrazów ciągów Wyik: 1/ Dla =0 do 10 z krokiem 1wykouj oblicz wyraz kolejy badaego ciągu wyświetl obliczeia log Operad lewy a + b Operad prawy Wyrażeia jako kombiacje operatorów i operadów log Operator dwuargumetowy! 3 D. Makowiec: Programowaie dla I BioIf 013-04-08
Operator: zak służący kostrukcji wyrażeń. -argumetowy -argumetowy 1-argumetowy -argumetowy -argumetowy -argumetowy 1-argumetowy 1-argumetowy 4 D. Makowiec: Programowaie dla I BioIf 013-04-08
3 + 5 * 6 * -arg. ma wyższy priorytet iż + -arg. kolejość: zgodie z priorytetem Realizacja obliczeia: 3 + (5 * 6) = 3+30= 33 10 / 6 * 5 * -arg. i / -arg. mają te sam priorytet, kolejość: od lewego do prawego Realizacja obliczeia : (10 / 6) * 5 = 0 * 5 =100 char * str = Alicja ; char ch = *str++; ++ postfixowy ma wyższy priorytet iż * 1-arg. Realizacja obliczeia : ch= * (str++), czyli ch uzyskuje wartość l char * str = Alicja ; char ch = *++str; ++ prefixowy ma te sam priorytet co * 1-arg, kolejość: od prawego do lewego Realizacja obliczeia : ch= * (++str), czyli ch uzyskuje wartość l 5 D. Makowiec: Programowaie dla I BioIf 013-04-08
Rodzaje operatorów: Matematycze o dodawaia: + - ++ -- o możeia: * / % Relacji o rówości: == oierówości :!= owiększości: > >= omiejszości: < <= Logicze: okoiukcji: && oalteratywy : onegacji:! Bitowe: okoiukcji : & oalteratywy : oalteratywy wyłączającej ^ onegacji: ~ oprzesuięcia w lewo << oprzesuięcia w prawo >> Przypisaia: o podstawowy = o += -= *= /= %= >>= <<= &= ^=!= D. Makowiec: Programowaie dla I BioIf Operator 3 argumetowy :? : 6 013-04-08
Prio - ryte -ty operato - rów od ajwyż - szego prio - ryte -tu: ++(przedrostek) --(przedrostek ) ( ) wywołaie fukcji [ ] { } ++ (przyrostek) -- (przyrostek) - + (operatory zaku) ~! sizeof *( dereferecja) & (adres) (wszystkie jedoargumetowe) (typ) Od prawa do lewa Od prawa do lewa * / % + - (dwuargumetowe) << >> W zasadzie kolejość działań < > <= >= jest zgoda z matematyczą ==!= ituicją, ajpierw jedoargumetowe, & potem możeie, dalej dodawaie. ^ Przypisaie ma prawie ajiższy priorytet && II Uważać a operatory bitowe? : (operator warukowy) Od prawa do lewa = *= /= %= += -= <<= >>= &= = Od prawa do lewa ^= 013-04-1, (przeciek) 7 Ł Ą C Z N O Ś Ć O P E R T O R Ó W D. Makowiec: Programowaie dla I BioIf 013-04-08
ide=; kwadr= *; Dołączyć bibliotekę <cmath> mai pierw=sqrt( double ( ) ); 1/ log_= log(double ( ) ); log log= * log(double ( ) ); log pot_= 1<<; silia = ( == 0 )? 1 : *silia;! for(j=0; j<; ++j) _ = (==0)? 1: *_; 8 D. Makowiec: Programowaie dla I BioIf 013-04-08
usiged bit_pot_ ( it ){ retur 1<<;} double ide(double x){ retur x;} double pierw( double x){ retur sqrt(x);} double kwadr(double x){ retur x*x; } double _( double x){ double rob=1; for(it j=1; j<= x; ++j) rob *=x; retur rob;} double silia ( double x){ if ( x < 1 ) retur 1; else retur x*silia(x-1);} fukc je wska zik farray double log_ ( double x){ retur log( x); } double pot_ ( double x){ if ( x < 1 ) retur 1; else retur *pot_(x-1);} double log( double x){ retur x* log(x);} 9 D. Makowiec: Programowaie dla I BioIf 013-04-08
wyswietl to fukcja, której parametrem wywołaia jest wskaźik do fukcji, której parametrem jest liczba typu double a fukcja daje wyik typu double void wyswietl( double (*)(double), double, it, it); ftab to tablica wskaźików do fukcji wymieioych a liście iicjującej double( *ftab[])(double)= {ide, pierw, kwadr, log_, log, pot_, silia, _}; D. Makowiec: Programowaie dla I BioIf 013-04-08