<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=6230&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-03-04T23:16:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6230&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-03-04T23:16:19+01:00</updated>
<published>2014-03-04T23:16:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73047#p73047</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73047#p73047"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73047#p73047"><![CDATA[
Jeśli ja coś mogę dodać - to powiem, że zdecydowanie lepszym rozwiązaniem jest zastosowanie continue jak to pokazał kolega nixie.<br /><br />xor - ma rację mówiąc, że nie warto ingerować w zmienne służące do iteracji pętli. I wcale nie chodzi o to żeby to był jakiś błąd co pokazał kolega kurnachatka .... dlatego, że widać - że rozwiązań będzie tyle ilu programistów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />to jednak continue i brak ingerencji w zmienną iteracyjną pozwala przede wszystkim na <br /><br />1. większą czytelność kodu<br />2. zdecydowanie mniejsze ryzyko popełnienia błędów, których na tak prostym przykładzie ciężko wskazać<br />3. często nawet lepszą optymalizację kodu<br /><br />a na zakończenie - zastosowanie w takim wypadku continue to naturalna droga w C (i nie tylko w C) w takim wypadku, dobry styl programowania a widać, że niewiele osób korzysta z continue, często nie do końca nawet rozumiejąc do czego i kiedy można to zastosować. Tymczasem tu mamy właśnie taki ciekawy i dobrze przemawiający do wyobraźni przypadek - gdzie? i jak? stosować continue<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 mar 2014, o 23:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-03-04T23:00:48+01:00</updated>
<published>2014-03-04T23:00:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73045#p73045</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73045#p73045"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73045#p73045"><![CDATA[
Nie &quot;Xor&quot; tylko &quot;xor&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Gdzie leży błąd? No niby błędu nie ma, rzekomo wszystko działa, gra i bucy, ale...masz zamiar za każdym razem dla sprawdzenia pisać program? Albo gapić sie nie wiadomo ile czasu w kod zastanawiając jak zmieni sie indeks w każdym obrocie pętli? A do tego prowadzi łamanie zasad. W tym wypadku zasadą jest skupienie CALEGO sterowania w nagłówku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 4 mar 2014, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-04T22:35:46+01:00</updated>
<published>2014-03-04T22:35:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73043#p73043</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73043#p73043"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73043#p73043"><![CDATA[
Prawdopodobnie tyle rozwiązań co autorów <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Zamiast tych if-ów można by jeszcze wykonać trzy pętle for jedna za drugą każda dla żądanego zakresu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 4 mar 2014, o 22:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2014-03-04T22:30:36+01:00</updated>
<published>2014-03-04T22:30:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73042#p73042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73042#p73042"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73042#p73042"><![CDATA[
Nie bardzo wiem gdzie tam widzisz błąd Xor<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 4 mar 2014, o 22:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-03-04T22:24:03+01:00</updated>
<published>2014-03-04T22:24:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73041#p73041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73041#p73041"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73041#p73041"><![CDATA[
Jeśli działa to w porządku. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />...ale lepiej unikać takich potworków. Lepiej dla wszystkich a przede wszystkim dla autora.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 4 mar 2014, o 22:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-04T20:19:45+01:00</updated>
<published>2014-03-04T20:19:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73024#p73024</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73024#p73024"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73024#p73024"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />kurnachatka napisał(a):<br />Może tak.<br /><br /><br />Nie. <br />Po pierwsze<br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br />for(uint8_t i=80; i&lt;190; i++)<br />{<br />  bla;<br />  ble;<br />}<br />GeSHi<br /><br />jest odpowiednikiem <br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br />uint8_t i=80;<br />while( i&lt;190)<br />{<br />  bla;<br />  ble;<br />  i++;<br />}<br />GeSHi<br /><br />Po drugie i przede wszystkim, ingerencja w wartość zmiennej poza nagłówkiem pętli for to marny pomysł. I nie chodzi o to, że nie można tylko o to, że tak się po prostu nie robi. Zobacz: już na dzień dobry zrobiłeś kiksa w przypisanej wartości, a to tylko jeden z wielu potencjalnych problemów stworzonych przez taki zapis.<br /></div><br /><br />Kolego xor nie za bardzo wiem o co ci chodzi.<br />Rozumiem że na pewno są inne bardziej optymalne metody rozwiązania tego zagadnienia.<br />To może kolega by się nimi pochwalił.<br />Moje rozwiązanie na pewno działa.<br />Poniżej umieszczam cały kod który sobie możesz wyświetlić na terminalu i sprawdzić czy spełnia pożądany rezultat kolegi mickeu.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br /><br />int main(void) {<br /><br />USART_Init( __UBRR );// inicjalizacja UART<br /><br />sei();// globalne odblokowanie przerwań<br /><br />for(uint8_t i=80; i&lt;=190; i++){<br /><br />  if((i&gt;=91)&amp;&amp;(i&lt;=109)) i=110;<br />  if((i&gt;=121)&amp;&amp;(i&lt;=149)) i=150;<br /><br />  uart_putint(i,10);<br />  uart_putc(',');<br /><br />}<br /><br />while(1) {<br /><br />}<br /><br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 29 minutach ]</span></strong><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/930/9326f70112605d662f5027c0d79f36d2.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/930/9326f70112605d662f5027c0d79f36d2.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 4 mar 2014, o 20:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-03-04T14:33:56+01:00</updated>
<published>2014-03-04T14:33:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73001#p73001</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73001#p73001"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=73001#p73001"><![CDATA[
<div class="quotetitle">kurnachatka napisał(a):</div><div class="quotecontent"><br />Może tak.<br /></div><br /><br />Nie. <br />Po pierwsze<br />[syntax=c]for(uint8_t i=80; i&lt;190; i++) <br />{ <br />  bla;<br />  ble;<br />}[/syntax]<br />jest odpowiednikiem <br />[syntax=c]uint8_t i=80;<br />while( i&lt;190) <br />{ <br />  bla;<br />  ble;<br />  i++;<br />}[/syntax]<br />Po drugie i przede wszystkim, ingerencja w wartość zmiennej poza nagłówkiem pętli for to marny pomysł. I nie chodzi o to, że nie można tylko o to, że tak się po prostu nie robi. Zobacz: już na dzień dobry zrobiłeś kiksa w przypisanej wartości, a to tylko jeden z wielu potencjalnych problemów stworzonych przez taki zapis.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 4 mar 2014, o 14:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-04T13:42:21+01:00</updated>
<published>2014-03-04T13:42:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72994#p72994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72994#p72994"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72994#p72994"><![CDATA[
Może tak.<br />[syntax=c]for(uint8_t i=80; i&lt;190; i++){<br />            <br />            if((i&gt;=91)&amp;&amp;(i&lt;=109)) i=110;<br />            if((i&gt;=121)&amp;&amp;(i&lt;=149)) i=150;<br />            <br />            <br />             <br />            <br />            }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 4 mar 2014, o 13:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2014-03-04T13:32:36+01:00</updated>
<published>2014-03-04T13:32:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72992#p72992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72992#p72992"/>
<title type="html"><![CDATA[Re: Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72992#p72992"><![CDATA[
[syntax=c]for(uint8_t i=80; i&lt;191; i++){<br />   if(i&gt;90 &amp;&amp; i&lt;110 || i&gt;120 &amp;&amp; i&lt;150) continue;<br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 4 mar 2014, o 13:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mickeu]]></name></author>
<updated>2014-03-04T13:23:52+01:00</updated>
<published>2014-03-04T13:23:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72990#p72990</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72990#p72990"/>
<title type="html"><![CDATA[Pętla for()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6230&amp;p=72990#p72990"><![CDATA[
Witam<br /><br />Prosiłbym o podpowiedź jak zmodyfikować pętlę:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">for(uint8_t i=80; i&lt;190; i++){}</div><br /><br />mogła przybierać wartości w kilku zakresach np:<br />80 do 90<br />110 do 120<br />150 do  190<br /><br />z wykluczeniem<br />91 do 109<br />121 do 149<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1584">mickeu</a> — 4 mar 2014, o 13:23</p><hr />
]]></content>
</entry>
</feed>