<?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=24&amp;t=2561&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-03-26T08:38:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=24&amp;t=2561&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-03-26T08:38:33+01:00</updated>
<published>2013-03-26T08:38:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31789#p31789</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31789#p31789"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31789#p31789"><![CDATA[
hehe .. pamiętaj leechu łatwo się tylko ze schodów spada  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Ale ogarniesz ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 26 mar 2013, o 08:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-25T22:56:30+01:00</updated>
<published>2013-03-25T22:56:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31771#p31771</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31771#p31771"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31771#p31771"><![CDATA[
Hej<br /><br />A %s nie rozpoznaje znaków białych........  I wszystko jasne. <br /><br />Ale szczerze. Nie wpadłbym na to. W książce nie było jeszcze ograniczeń zapodanych przez SunRiver'a dlatego poległem. Walczę z następnymi zadaniami, ale te obliczeniowe mi wychodzą. Jakoś matematyczne bardziej kumam. Te mi przeszły bez większych problemów Teraz głowie się nad zapisem tekstu w tablicy i wyświetleniem wspak, ma być pomocna funkcja strlen(). Zobaczymy, narazie walczę. Przyznam szczerze że fajne to jest ale nieraz zaskakuje, jednak trudne, ale postawiłem sobie cel i jakoś będę dążył. <br /><br />Dzięki<br /><br />Pozdrawiam<br />Piotrek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 25 mar 2013, o 22:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2013-03-25T22:44:13+01:00</updated>
<published>2013-03-25T22:44:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31770#p31770</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31770#p31770"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31770#p31770"><![CDATA[
Dodales sobie &quot;debugger&quot; jak pisalem? Co ci wyswietlil? nie zastanowilo cie dlaczego po podaniu dwoch liter a i b masz:<br />tablica[1] = a<br />tablica[2] = <br /><br />tablica[3] = b<br />tablica[4] = <br /><br />Chodzi o to, ze typ c bedzie ci czytal zawsze jeden znak, dowolny. A jak dowalny, to koniec linii tez.<br />Czyli przy obracaniu petli masz: odczytanie a, odczytanie enter (w koncu go wcisnales, nie? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ), odczytanie b, odczytanie enter.<br /><br />Jak rozwiazac? Ograniczyc do odpowiednich znakow (malych liter), podpowiedz koncowka wypowiedzi Sun'a. <br />Samo ograniczenie to nie wszystko zapewne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 25 mar 2013, o 22:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-25T22:13:26+01:00</updated>
<published>2013-03-25T22:13:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31767#p31767</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31767#p31767"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31767#p31767"><![CDATA[
Hej<br /><br />Zadziałało!<br /><br />[syntax=c]<br /><br />#include &lt;string.h&gt;<br />#include &lt;stdio.h&gt;<br /><br />int main(void) <br />{<br /><br />  char str[7]; <br />  int i;<br />  <br /><br />  for ( i = 0; i &lt; 5 ; i++)<br />  scanf(&quot;%s&quot; , &amp;str[i]);<br /><br /><br />  for (i = 0; i &lt; 5; i++) {<br /><br />  printf(&quot;%c&quot;, str[i]);<br /><br />  }<br /> <br />  getchar();<br />  return 0;<br />}<br /><br />[/syntax]<br /><br />Z tym że nie wiem dlaczego nie działa tak jak chce z scanf(&quot;%c , str[i]). teoretycznie typ c zawiera 1 bajt. powinno się zmieścić. Nie deklaruje łańcuchów ale tablice. <br />Właśnie jak piszę scanf(&quot;%s&quot; , text[x])   to deklaruje łańcuch, a jak piszę scanf(&quot;%s&quot; , &amp;text[x]) to deklaruje tablicę tak? Tutaj pewien nie jestem. <br /><br />Siedzę trochę nad tym, jedyne co wiem to że na zakończenie łańcucha dochodzi jeszcze 0 i to może powodować niezamierzone wyniki, ale ja deklaruje tablicę( tak mi się bynajmniej wydaje)<br /><br /><br />Pozdrawiam<br />Piotrek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 25 mar 2013, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2013-03-25T15:15:00+01:00</updated>
<published>2013-03-25T15:15:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31714#p31714</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31714#p31714"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31714#p31714"><![CDATA[
Przede wszystkim musisz nauczyć się rozwiązywać problemy. Bo pisanie przy każdym problemie o pomoc wiele Cie nie nauczy, no może nauczy zadawać poprawnie pytania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Powiem Ci co ja bym zrobił jakbym miał taki problem. Po pierwsze zastanowiłbym się jak działa funkcja która używam i która może być podejrzana o złe zachowanie - scanf. Spójrz do dokumentacji, poczytaj dokładnie o formacie %c itp.<br /><br />Jeśli czytanie dokumentacji poszłoby nie tak, albo nie mógłbyś znaleźć o co chodzi, zastanów się jak możesz zweryfikować to co napisałeś, czyi jak wykonać testy. To bardzo ważna działka programowania, której mało kto uczy.<br /><br />No więc skoro zapisało się coś do tablicy to należałoby ją wyświetlić. Stwórz nową pętle: [syntax=c]for (index = 0 ; index &lt; 4; ++index){<br /><br />        printf(&quot;tablica[%d]=%c\n&quot;, index, tablica[index]);<br />}<br />[/syntax] i popatrz co tam się dzieje. <br /><br />Znam oczywiście powód dla którego się to dzieje, ale nie chcę Ci dawać gotowego rozwiązania. Liczę, że sam wpadniesz na to co jest problemem, a potem spróbujesz znaleźć rozwiązanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 25 mar 2013, o 15:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-25T14:37:17+01:00</updated>
<published>2013-03-25T14:37:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31708#p31708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31708#p31708"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31708#p31708"><![CDATA[
Hej<br /><br />A tak oprócz tych moich kłopotów mam takie pytanie. Ile wy opanowywaliście C żeby coś zrobić. No chodzi mi może o wyższy poziom niż migająca dioda. Np. na za rok by się przydało zrobić obrotomierz( właściwie zliczacz impulsów co będzie wyświetlał to na wyswietlaczu 7-segmentowym no i ewentualnie przeliczy je w czasie czyli będzie obrotomierzem, np na czujniku Halla. Czy powiedzmy jak bede ćwiczył godzzinę dziennie C, a narazie tak robie, godzina dzienne 5 dni na tydzień( narazie PC potem AVR) to czy w ciągu powiedzmy 6 miesięcy opanuje się wyswietlacze i takie projekty będzie można tworzyć bez większych kłopotów? czy to już wymaga bardziej zaawansowanej wiedzy? <br /><br /><br />Pozdrawiam<br />Piotrek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 25 mar 2013, o 14:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-24T22:09:38+01:00</updated>
<published>2013-03-24T22:09:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31632#p31632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31632#p31632"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31632#p31632"><![CDATA[
Hej<br /><br />Dzięki za wskazówki. Rzeczywiście głupio pomyliłem się i nie dałem &amp;tablica. <br />Dzięki SunRiver za obszerny wykład. Dużo z tych rzeczy jeszcze nie przerobiłem więc nie wszystko jest dla mnie jasne ale i tak dużo mi przybliżyłes problematykę.<br /><br />Jeśli chodzi o program to:   <br /><br />Zdurniałem do reszty. Proszę spójrzcie na te 2 zrzuty ekranu. Nie rozumiem czemu ta sama funkcja pobiera cztery znaki typu int a tylko 2 typu char( już nawet nie pisałem całego programu, tylko ten początek. Żeby pobrać 4 typy char musiałem wstawić index &lt; 8) . jestem w kropce <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Funkcji fflush nie było mi jeszcze dane poznać więc zapewne nie będzie ona potrzebna, myślę że autor chciał to inaczej napisać. <br />Właściwie głupia prośba, czy mógłby ktoś mi napisać ten programik co pobiera 4 znaki char i potem je wyświetla, bo walczę i walczę i nic. Nie chodzi mi o ogólne robienie gotowców bo to tylko ćwiczenie z książki ale chciałbym wiedzieć jak wygląda działający program tego typu, nie mam pojęcia co robię źle, przecież to jakiś banalny program, pisałem już trudniejsze cwiczenia <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br />Aha i słyszałem że niby to IDE Visual Studio razem z kompilatorem jest słabe. Czy to prawda? Jest sens bawić się innym( mam Eclipse ale skonfigurowane wg Mirka pod AVR i nie chce go popsuć)<br /><br /><br />Pozdrawiam<br />Piotrek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 24 mar 2013, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-03-24T14:50:55+01:00</updated>
<published>2013-03-24T14:50:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31561#p31561</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31561#p31561"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31561#p31561"><![CDATA[
Funkcje odczytują dane zgodnie z podanym formatem opisanym niżej. Funkcje scanf i vscanf odczytują dane ze standardowego <br />wejścia (tj. stdin); fscanf i vfscanf ze strumienia podanego jako argument; a sscanf i vsscanf z podanego ciągu znaków.<br />Funkcje vscanf, vfscanf i vsscanf różnią się od odpowiadających im funkcjom scanf, fscanf i sscanf tym, że zamiast <br />zmiennej liczby argumentów przyjmują argument typu va_list.<br /><br />Argumenty<br />format - format odczytu danych<br />stream - strumień wejściowy, z którego mają być odczytane dane<br />str - tablica znaków, z której mają być odczytane dane<br />ap - wskaźnik na pierwszy argument z listy zmiennej liczby argumentów<br /><br /><br />Format składa się ze zwykłych znaków (innych niż znak '%') oraz sekwencji sterujących, zaczynających się od symbolu procenta, po którym następuje:<br />opcjonalna gwiazdka,<br />opcjonalne maksymalna szerokość pola,<br />opcjonalne określenie rozmiaru argumentu,<br />określenie formatu.<br />Jeżeli po znaku procenta występuje od razu drugi procent to cała sekwencja traktowana jest jak zwykły znak procenta <br />(tzn. jest on wypisywany na wyjście).Wystąpienie w formacie białego znaku powoduje, że funkcje z rodziny scanf będą <br />odczytywać i odrzucać znaki, aż do napotkania pierwszego znaku nie będącego białym znakiem.<br />Wszystkie inne znaki (tj. nie białe znaki oraz nie sekwencje sterujące) muszą dokładnie pasować do danych wejściowych.<br />Wszystkie białe znaki z wejścia są ignorowane, chyba że sekwencja sterująca określa format [, c lub n.<br />Jeżeli w sekwencji sterującej występuje gwiazdka to dane z wejścia zostaną pobrane zgodnie z formatem, <br />ale wynik konwersji nie zostanie nigdzie zapisany. W ten sposób można pomijać część danych.<br />Maksymalna szerokość pola przyjmuje postać dodatniej liczby całkowitej zaczynającej się od cyfry różnej od zera. <br />Określa ona ile maksymalnie znaków dany format może odczytać. Jest to szczególnie przydatne przy odczytywaniu ciągu znaków, <br />gdyż dzięki temu można podać wielkość tablicy (minus jeden) i tym samym uniknąć błędów przepełnienia bufora.<br /><br />Funkcje z rodziny scanf obsługują takie formaty<br />d, i odczytuje liczbę całkowitą, której format jest taki sam jak oczekiwany format przy wywołaniu funkcji strtol z argumentem base równym odpowiednio 10 dla d lub 0 dla i, argument powinien być wskaźnikiem na int;<br />o, u, x odczytuje liczbę całkowitą, której format jest taki sam jak oczekiwany format przy wywołaniu funkcji strtoul z argumentem base równym odpowiednio 8 dla o, 10 dla u lub 16 dla x, argument powinien być wskaźnikiem na unsigned int;<br />a, e, f, g odczytuje liczbę rzeczywistą, nieskończoność lub NaN, których format jest taki sam jak oczekiwany przy wywołaniu funkcji strtod, argument powinien być wskaźnikiem na float;<br />c odczytuje dokładnie tyle znaków ile określono w maksymalnym rozmiarze pola (domyślnie 1), argument powinien być wskaźnikiem na char;<br />s odczytuje sekwencje znaków nie będących białymi znakami, argument powinien być wskaźnikiem na char;<br />[ odczytuje niepusty ciąg znaków, z których każdy musi należeć do określonego zbioru, argument powinien być wskaźnikiem na char;<br />p odczytuje sekwencje znaków zależną od implementacji odpowiadającą ciągowi wypisywanemu przez funkcję printf, gdy podano sekwencję %p, argument powinien być typu wskaźnik na wskaźnik na void;<br />n nie odczytuje żadnych znaków, ale zamiast tego zapisuje do podanej zmiennej liczbę odczytanych do tej pory znaków, argument powinien być typu wskaźnik na int.<br />Słówko więcej o formacie [. Po otwierającym nawiasie następuje ciąg określający znaki jakie mogą występować w odczytanym napisie i kończy się on nawiasem zamykającym tj. ]. Znaki pomiędzy nawiasami (tzw. scanlist) określają możliwe znaki, chyba że pierwszym znakiem jest ^ - wówczas w odczytanym ciągu znaków mogą występować znaki nie występujące w scanlist. Jeżeli sekwencja zaczyna się od [] lub [^] to ten pierwszy nawias zamykający nie jest traktowany jako koniec sekwencji tylko jak zwykły znak. Jeżeli wewnątrz sekwencji występuje znak - (minus), który nie jest pierwszym lub drugim jeżeli pierwszym jest ^ ani ostatnim znakiem zachowanie jest zależne od implementacji.<br />Formaty A, E, F, G i X są również dopuszczalne i mają takie same działanie jak a, e, f, g i x.<br /><br />Funkcja zwraca EOF jeżeli nastąpi koniec danych lub błąd odczytu zanim jakiekolwiek konwersje zostaną dokonane lub liczbę poprawnie wczytanych pól (która może być równa zero).<br />Przykładowo można zastosować wywołanie służące do pobrania tylko i wyłącznie znaków:<br /> - (myślnik), ' (apostrof), (spacja) oraz małych i wielkich liter - co wygląda tak<br /><br />scanf(&quot; %[-' A-Za-z]s&quot;,&amp;zmienna);<br /><br />czy teraz jaśniej ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 24 mar 2013, o 14:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-24T02:06:41+01:00</updated>
<published>2013-03-24T02:06:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31522#p31522</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31522#p31522"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=31522#p31522"><![CDATA[
Hej<br /><br />Mojej walki ciąg dalszy<br /><br />mam następujące zadanie : Napisz program, który tworzy tablice n elementów , zapisuje w niej n małych liter i wyświetla jej zawartość.<br /><br /><br />napisałem kod[syntax=c]#include &lt;stdio.h&gt;<br /><br />int main(void)<br />{<br /><br />int index;<br /> char tablica[4];<br /><br />printf(&quot;podaj litere\n&quot;);<br /><br />for (index = 0 ; index &lt; 4; ++index)<br />{<br />scanf(&quot;%c&quot; , tablica[index]);<br />printf(&quot;podaj litere\n&quot;);<br />}<br /><br />for (index = 0 ; index &lt; 4; ++index)<br />printf (&quot;%c&quot; , tablica[index]);<br /><br /><br />getchar();<br />return 0;<br />}[/syntax]<br /><br /><br />Problem w tym że po kompilacji program wyskakuje ale po wpisaniu 1 literki mam taki error w Visual Studio. Jak daje identyczny schemat tyle że nie używam tablicy char a int/double to wszystko jest ok<br /><br />Prosiłbym o pomoc co robie nie tak <br /><br /><br />Pozdrawiam<br />Piotrek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 24 mar 2013, o 02:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-14T16:01:16+01:00</updated>
<published>2013-03-14T16:01:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30732#p30732</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30732#p30732"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30732#p30732"><![CDATA[
Hej<br /><br />Dziekuje bardzo za pomoc. <br /><br />Tutaj miałem inny problem bo np petla if jest w rozdziale 7 czyli mam jeszcze 45 stron do przebrnięcia tak samo jak do break.<br /><br />W rozdziale 6 jest jest to co napisał Domanoid - użycie wyniku z scanf. Już sobie poradziłem tak:<br /><br />[syntax=cpp]<br /><br />#include &lt;stdio.h&gt;<br />#define STALA 18<br /> <br /> <br />float wynik;<br />float celsjusz;<br />int zmienne;<br /> <br />int main(void)<br />{<br /><br />printf(&quot;Podaj temperature w stopniach celsjusza\n&quot;);<br />zmienne = scanf(&quot;%f&quot; , &amp;celsjusz);<br /><br />while (zmienne == 1)<br /><br />{<br />wynik = celsjusz * STALA + 32<br /> <br />printf(&quot;%1.2f&quot; , wynik);<br /> <br />printf(&quot;Podaj temperature w stopniach celsjusza\n&quot;);<br />zmienne = scanf(&quot;%f&quot; , &amp;celsjusz);<br />}<br /><br />printf(&quot;KONIEC\n&quot;);<br /><br />getchar();<br />return 0;<br /><br />[/syntax] <br /><br /><br />Problem w tym że informacja na temat mozliwości zastosowania while (zmienne == 1) pokawiła się później, w następnym rozdziale a ja lece po kolei<br /><br />Dzieki za pomoc<br /><br />Pozdrawiam<br />Piotrek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 14 mar 2013, o 16:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2013-03-13T17:47:27+01:00</updated>
<published>2013-03-13T17:47:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30669#p30669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30669#p30669"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30669#p30669"><![CDATA[
Nie wiem jak bardzo chcesz zeby ci pomoc, wiec narazie podpowiedz. <br /><strong>Scanf ze standardowego wejscia (stdin) odczyta tylko znaki ktore odpowiadaja formatowi jaki mu podasz. I tu jest problem. </strong><br />Teraz twoj program dziala tak:<br /><br />[poczatek]<br />- monit o podanie liczby<br />- proba odczytu liczb w formacie float z bufora <br />petla nieskonczona()<br />    - wyliczenie i przedstawienie wyniku<br />    - monit o podanie liczby<br />    - proba odczytu liczby w formacie float z bufora<br />koniec dzialan w petli, powroc do pierwszego dzialania w petli<br />- oczekiwanie na znak<br />- zakonczenie programu<br /><br />Na konsoli bedzie nastepujacy efekt po uruchomieniu programu i caly czas podawaniu mu poprawnego formatu liczby:<br />[syntax=c]<br />Podaj temperature w stopniach celsjusza<br />[oczekiwanie na odzew od uzytkownika, w tym przypadku uzytkownik napisze 123enter]123<br />2246Podaj temperature w stopniach celsjusza<br />[oczekiwanie na odzew od uzytkownika, tu poda 1 i enter]1<br />50Podaj Podaj temperature w stopniach celsjusza<br />[oczekiwanie na odzew]<br />[/syntax]<br /><br />I tak az do przerwania programu albo pomylki i podania nieliczby. <br />Jesli podamy nie liczbe, scanf nie odczyta jej z bufora i bedzie w tym buforze siedziec i kazda kolejna proba znalezienia tam liczby bedzie nieudana. <br /><br />Tak przynajmniej zachowuje sie to u mnie, inny kompilator moze inaczej obslugiwac scanf i nawet przy podaniu prawidlowej liczby (prawidlowej tzn zgodnej z zadanym formatem) moze wariowac poniewaz znak konca linia bedzie mu wisial caly czas w buforze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 13 mar 2013, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-03-13T17:49:49+01:00</updated>
<published>2013-03-13T17:46:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30668#p30668</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30668#p30668"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30668#p30668"><![CDATA[
Proszę bardzo, z komentarzami <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]#include &lt;stdio.h&gt;<br />#define STALA 18<br /><br /><br /><br />float wynik;<br />float celsjusz;<br />int i = 1;<br />int return_val;<br /><br />int main(void)<br />{<br /><br />while (i) //sprawdza czy warunek spelniony<br />{<br />    printf(&quot;Podaj temperature w stopniach celsjusza\n&quot;);<br />    return_val =  scanf(&quot;%f&quot; , &amp;celsjusz); // pyta o liczbe, jesli jest blad return_val przyjmuje 1 (error)<br /><br />    if (return_val == 0) { <br />        i = 0; // warunek nie spelniony!! <br />        printf(&quot;Wpisales litere!! Wychodze!\n&quot;);<br />    }<br /><br />    wynik = celsjusz * STALA + 32;<br /><br />    printf(&quot;%1.2f&quot; , wynik);<br /><br />}<br /><br />getchar();<br />return 0;<br />}<br />[/syntax]<br /><br />Jak są pytania pytaj <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />BEZ BREAK <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />co do tego poniżej.. scanf wywala 1 jeśli poda mu się zły argument, trzeba &quot;tylko&quot; umieć ten błąd (tą 1) odczytać.<br /><br />Oczywiście można bez zmiennej i to zrobić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=750">Domanoid</a> — 13 mar 2013, o 17:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-13T14:52:06+01:00</updated>
<published>2013-03-13T14:52:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30642#p30642</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30642#p30642"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30642#p30642"><![CDATA[
Hej<br /><br />Dzięki. W tym rozdziale nie było o Break ani Do while, dlatego się zastanawiałem. Inne petle będa w nastepnym rozdziale, jak widze komenda break też. Pętle sa podzielone na 3 rozdziały, ja skończyłem 1 z nich i się zawiesiłem na ostatnim cwiczeniu. Nie było tez nic o przyjmowaniu tylko wybranych znaków także jeszcze nie wiem jak sie ustala aby przyjmowane były tylko liczby, dlatego miałem taką zagwozdkę. Pozatym własnie nie mam jeszcze break opanowanego. Jade zgodnie z książką. <br /><br /><br />Pozdrawiam<br />Piotrek<br /><br />P.S. <br /><br />Mam książke Mirka o C dla AVR ale niestety nie miałem pojecia o C i trochę to dla mnie za szybko było, gubiłem się. Stephen jednak znacznie wolniej jedzie z tematem. Daje radę mniej więcej ogarniać temat. Z tym że zostało mi jeszcze jakieś 550 stron do końca. W tym tempie, na które moge sobie pozwolić do wakacji może skończe. potem wezme się za AVR<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 13 mar 2013, o 14:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-03-13T14:36:17+01:00</updated>
<published>2013-03-13T14:31:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30637#p30637</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30637#p30637"/>
<title type="html"><![CDATA[Re: Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30637#p30637"><![CDATA[
Doczytaj o opcji Break, dla pętli while.....<p>Statystyki: Napisane przez Gość — 13 mar 2013, o 14:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leech10]]></name></author>
<updated>2013-03-13T14:11:01+01:00</updated>
<published>2013-03-13T14:11:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30632#p30632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30632#p30632"/>
<title type="html"><![CDATA[Język C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2561&amp;p=30632#p30632"><![CDATA[
Hej<br /><br />Ucze się języka C z ksiązki z Sthephena Praty. Oczywiście główny cel to AVR ale narazie poznaje C<br /><br />Wykonuje zadania na końcu każdego z rozdziałów i mam teraz zagwozdkę. Zadanie polega na  użyciu pętli while do przeliczania temperatur. Co do wzoru to banał chodzi mi o inną rzecz. Autor powiedziął że program ma prosić o podanie temperatury tyle razy dopóki nie pojawi się litera zamiast cyfry. Nietety nie wiem jak to rozwiązac przy pomocy petli while. <br /><br />podstawowa działająca pętla wygląda tak<br /><br /> <br /><br />[syntax=c]<br />#include &lt;stdio.h&gt;<br />#define STALA 18 <br /><br /><br />float wynik;<br />float celsjusz;<br /><br />int main(void)<br />{<br /><br /><br /><br />printf(&quot;Podaj temperature w stopniach celsjusza\n&quot;);<br />scanf(&quot;%f&quot; , &amp;celsjusz);<br /><br />while (1)<br />{<br /><br />wynik = celsjusz * STALA + 32<br /><br />printf(&quot;%1.2f&quot; , wynik);<br /><br />printf(&quot;Podaj temperature w stopniach celsjusza\n&quot;);<br />scanf(&quot;%f&quot; , &amp;celsjusz);<br /><br />}<br /><br />getchar();<br />return 0;<br />} <br /> [/syntax]<br />Problem w tym że nie wiem jak zrobić by pętla zakończyła działanie po podaniu litery. ( teraz jak podam literę to wyświetla całe kolumny tekstu i leci tak w nieskończonośc)<br /><br /><br />pozdrawiam<br />Piotrek<br /><br /><span style="color: #FF0000">Kod wstawiamy przy pomocy [syntax=c] - Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=935">leech10</a> — 13 mar 2013, o 14:11</p><hr />
]]></content>
</entry>
</feed>