kejkun Temat założony przez niniejszego użytkownika |
nietypowe petle for » 2013-05-02 13:27:19 mam pytanie odnosnie takich petli for, ktorych niestety nie znalazlem w waszym tutorialu np. for( int i = pobrane.size(); --i; rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ) )
czy jest to równowazne: for( int i = pobrane.size(); rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ); --i )
?? tzn.ze petla bedzie sie wykonywala do poki: rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0
nie da wartosci fałszu tj. " 0 " ? 2. petla: for(; liczba; liczba /= 10 ) suma_cyfr += liczba % 10;
tutaj nie rozumiem, bo nie ma 1 czynnika ? wiec jak to jest ?? Dodam, ze kody sa poprawne, bo nie moje :D |
|
pekfos |
» 2013-05-02 13:29:18 Co w nich nietypowego? Nie trzeba podawać wszystkich 3 "czynników". for( int i = pobrane.size(); --i; rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ) )
czy jest to równowazne:
for( int i = pobrane.size(); rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ); --i )
?? |
Nie. for(; liczba; liczba /= 10 ) suma_cyfr += liczba % 10;
tutaj nie rozumiem, bo nie ma 1 czynnika ? wiec jak to jest ?? |
Po co pierwszy czynnik, skoro nie jest potrzebny? |
|
kejkun Temat założony przez niniejszego użytkownika |
» 2013-05-02 13:32:34 to, ze wtedy laik taki jak ja, gubi sie jak wtedy sie ZACHOWuja te petle ; / . to w takim razie tam gdzie nie podalismy " 1 " czynnika to : jak mam rozumiec mechanizm petli ? bo zwykle jest for( od np.i = 0; do i < n; co krok: i++ ) tu : for(; liczba; liczba /= 10 ) od ????, do liczby ?, co krok liczba /= 10 ?
a co do 1. petli to sa sobie rownowazne tamte petle ?? to czym sie roznia ??? nie ogarniam mechanizmu od : do: co jaki krok : w tym przypadku ;/ moglbys mi słownie przyblizyc mechanizm ? bo sie gubie ;x |
|
pekfos |
» 2013-05-02 13:36:38 to w takim razie tam gdzie nie podalismy " 1 " czynnika to :
jak mam rozumiec mechanizm petli ? |
Pętla może być nawet taka: Przypominam, że działanie pętli for jest bardziej ogólne, niż te, co podałeś: for( inicializacja; warunek; modyfikacja )
Żaden z argumentów pętli for nie jest wymagany. for( int i = pobrane.size(); --i; rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ) )
Tu warunkiem jest --i , a modyfikacją rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ) . Pętla będzie tak długo się wykonywać, dopóki i pomniejszone o 1 będzie prawdziwe logicznie. |
|
kubek3898 |
» 2013-05-02 13:37:06 Pierwsze dwie pętle nie są równoważne, ponieważ w pierwszej wyrażenie --i; jest wyrażeniem kończącym pracę pętli, a w drugiej jest wyrażeniem zwiększającym licznik pętli. |
|
kejkun Temat założony przez niniejszego użytkownika |
» 2013-05-02 13:43:32 for( inicializacja; warunek; modyfikacja )"
"Pętla będzie tak długo się wykonywać, dopóki i pomniejszone o 1 będzie prawdziwe logicznie. |
tzn. dopoki i rozne od zera ? w takim razie ta petla : for(; liczba; liczba /= 10 )
jest dla liczby, wiec nie trzeba inicjalizowac jej. potem warunek : liczba , wiec jest on zawsze spełniony, tzn . petla ile razy sie wykona ?? nastepnie petla robi :liczba /= 10 ) 1. przypadek: for( int i = pobrane.size(); --i; rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ) )
inicjalizacja ok. warunek : --i -> tzn. ze jak dlugo sie wykona petla, to nie tutaj powinnismy nadac warunek jak dlugo ma sie wykonywac? 3. modyfikacja : rosnaca +=( pobrane[ i ] - pobrane[ i - 1 ] > 0 ) tzn. co sie dzieje z rosnaca. albo jest rosnaca + 1 , albo + 0 . |
|
pekfos |
» 2013-05-02 13:48:31 Kurs STC liczba , wiec jest on zawsze spełniony, tzn . petla ile razy sie wykona ?? |
Na jakiej podstawie sądzisz, że jest zawsze spełniony? |
|
kejkun Temat założony przez niniejszego użytkownika |
» 2013-05-02 13:49:46 no bo właśnie nie wiem jak interpretowac te petle ;/
a skoro mamy jakis warunek : liczba no to nie wiem kiedy mialaby sie petla skonczyc ? eh ;x
i dobrze mysle, ze dopoki " i " rozne od zera ta petla sie wykona ?? |
|
« 1 » 2 |