PROGRAMOWANIE MIKROKONTROLERÓW

Wielkość: px
Rozpocząć pokaz od strony:

Download "PROGRAMOWANIE MIKROKONTROLERÓW"

Transkrypt

1 PROGRAMOWANIE MIKROKONTROLERÓW

2 Wprowadzenie Gdy już skompletujemy nasz warsztat programistyczny i sprzętowy, pora na napisanie pierwszego programu w języku C. Najbardziej efektowne są programy, których działanie można od razu zobaczyć na własne oczy. Ja zwykle, gdy zaczynam pracę z nowym mikrokontrolerem, piszę program, który zapala diodę LED. W ten sposób można najszybciej przekonać się o poprawnym działaniu programu. Do mikrokontrolera należy podłączyć 8 diod LED w sposób pokazany na rysunku : Wartości rezystorów należy dobrać odpowiednio do posiadanych diod LED. Jeśli są to diody standardowe, to rezystancja rezystorów powinna mieć wartość ok. 330 Ohm. Natomiast gdy dysponujemy diodami niskoprądowymi, to rezystancja rezystorów może mieć wartość ponad 1 kohm (należy zwrócić także uwagę na wydajność prądową portów mikrokontrolera).

3 Operator przypisania. W tym podtemacie zapoznamy się z najczęściej używanym operatorem - operatorem przypisania. Służy on, jak jego nazwa wskazuje, do przypisania do danej zmiennej wartości innej zmiennej, bądź stałej. // zawierającego definicje rejestrów // wewnętrznych procesora // zapisanie do portu P0 liczby 0x55 P0 = 0x55; // pusta pętla nieskończona - zatrzymanie programu while(1); Na początku musimy dołączyć plik nagłówkowy z definicjami rejestrów procesora. Gdybyśmy tego nie zrobili, to nie moglibyśmy odwoływać się do rejestrów procesora za pomocą nazw symbolicznych, tylko przez podawanie adresu danego rejestru. Takie rozwiązanie byłoby bardzo niewygodne. Ja w naszym przykładzie dołączyłem plik 8051.h - "bezpieczny" dla większości mikrokontrolerów z rodziny W przypadku, gdybyśmy korzystali z rejestrów specyficznych dla danego mikrokontrolera, nie występujących w standardowym 8051, to musimy dołączyć odpowiedni dla danego mikrokontrolera plik nagłówkowy. W sytuacji, gdy używamy tylko typowych rejestrów można spokojnie zastosować plik 8051.h.

4 Każdy program pisany w języku C musi się składać z głównej funkcji main. Funkcja ta nie zwraca żadnej wartości ani do funkcji nie jest przekazywana żadna wartość, więc funkcję tą deklarujemy jako. Słowo void przed nazwą funkcji mówi kompilatorowi, że funkcja nie zwraca wartości, albo inaczej mówiąc, że zwracana wartość jest typu void (pusty, brak typu). Słowo void w nawiasach okrągłych po nazwie funkcji mówi kompilatorowi, że do funkcji nie jest przekazywana żadna wartość. W zależności od tego, jaką funkcję chcemy napisać i jakie parametry ma ona przyjmować oraz jaką wartość może zwracać, deklaracja funkcji może przyjmować najróżniejsze postaci : void funkcja(char x) - funkcja przyjmująca jeden parametr typu char (znak), niezwracająca wartości void funkcja(char x, char y) - funkcja przyjmująca dwa parametry typu char, niezwracająca wartości char funkcja(void) - funkcja nieprzyjmująca żadnych parametrów, zwracająca wartość typu char Oczywiście możliwych kombinacji jest bardzo dużo i zależą one od tego, jakie zadania ma spełniać dana funkcja. Gdy już mamy szkielet programu, to należy wpisać właściwy kod programu. W naszym pierwszym programie w zasadzie decydujące znaczenia ma jeden wiersz programu : P0 = 0x55;. Jest to instrukcja przypisująca do portu P0 wartość 55h. Objawi się to zapaleniem co drugiej diody LED podłączonej do portu P0. Liczby w systemie szesnastkowym w języku C zapisujemy właśnie w podany sposób : liczbę szesnastkową (bez znaku 'h' na końcu) należy poprzedzić ciągiem znaków '0x'. Po zapisaniu do portu właściwej wartości należy zatrzymać wykonywanie programu. Najłatwiej dokonać tego wykorzystując pętlę while. Pętla ta jest wykonywana tak długo, aż jej warunek jest prawdziwy. Ponieważ w naszym programie warunek pętli jest wartością stałą, reprezentującą prawdę logiczną, to nasza pętla będzie się wykonywała bez końca.

5 Funkcje logiczne. Wyzerowanie odpowiednich linii portu możemy zrealizować także w inny sposób, przez wykonanie iloczynu logicznego portu ze stałą. Przedstawia to tabela prawdy funkcji AND : Jeśli potraktujemy zmienną A jako nasz port, a zmienną B jako maskę określającą które bity należy wyzerować, to będą nas interesować dwa ostatnie wiersze tej tabeli. Jak wynika z tabeli odpowieni bit rejestru zostanie wyzerowany, gdy odpowiadający mu bit maski będzie miał wartość 0. W przeciwnym przypadku stan bitu rejestru sie nie zmieni. Rzeczą ważną jest aby pamietać, że odpowiednie bity rejestru, na których chcemy przerowadzić iloczyn musza być w stanie 1. Kod programu realizującego zerowanie linii portu P0 za pomocą iloczynu logicznego jest przedstawiony poniżej : // zawierajacego definicje rejestrow // wewnetrznych procesora // iloczyn logiczny portu P0 ze stałą 55h P0 &= 0x55; // pusta pętla nieskończona - zatrzymanie programu while(1); // zawierającego definicje rejestrów // wewnętrznych procesora // iloczyn logiczny portu P0 ze stałą 55h P0 &= 0x55; // pusta pętla nieskończona - zatrzymanie programu while(1);

6 Funkcje arytmetyczne i logiczne Funkcja Zapis skrócony Zapis normalny Język C umożliwia stosowanie skróconych wyrażeń, będących połączeniem operatora przypisania z operatorami arytmetycznymi, bądź logicznymi. Możliwe są następujące skrócone formy zapisu wyrażeń : dodawanie a += b a = a + b odejmowanie a -= b a = a - b mnożenie a *= b a = a * b dzielenie a /= b a = a / b iloczyn logiczny a &= b a = a & b suma lgiczna a = b a = a b przesunięcie w lewo a <<= b a = a << b przesunięcie w prawo a >>= b a = a >> b alternatywa logiczna a ^= b a = a ^ b Do ustawiania linii portów służy funkcja logiczna OR. Tabela prawdy funkcji OR jest przedstawiona poniżej : Tym razem interesują nasz dwa pierwsze wiersze tabeli. Wynika z nich, że aby ustawić odpowiedni bit rejestru, to odpowiadający mu bit maski musi mieć wartość 1 no i oczywiście bity do ustawienia muszą mieć wartość 0. Program przedstawiony jest poniżej : W naszym programie pojawił się dodatkowy wiersz kodu : P0 = 0xF0; Ponownie zastosowałem skrócony zapis łączący operator przypisania z operatorem sumy logicznej. Ustawia on wszystkie linie portu P0 w stan niski. Ponieważ chcemy linie portu P0 ustawić więc muszą być w stanie niskim. Jednak zaraz po zresetowaniu procesora wszystkie pory są ustawiane w stan niski. Musimy więc zaraz przed ich ustawieniem je wyzerować. Samo ustawienie wybranych linii w stan wysoki realizuje poniższy kod :

7 // zawierającego definicje rejestrów // wewnętrznych procesora // ustawienie wszystkich linii portu P0 w stan niski P0 = 0; // suma logiczna portu P0 ze stałą F0h P0 = 0xF0; // pusta pętla nieskończona - zatrzymanie programu while(1); W naszym programie pojawił się dodatkowy wiersz kodu : P0 = 0; Ustawia on wszystkie linie portu P0 w stan niski. Ponieważ chcemy linie portu P0 ustawić więc muszą być w stanie niskim. Jednak zaraz po zresetowaniu procesora wszystkie pory są ustawiane w stan niski. Musimy więc zaraz przed ich ustawieniem je wyzerować. Samo ustawienie wybranych linii w stan wysoki realizuje poniższy kod : P0 = 0xF0; Ponownie zastosowałem skrócony zapis łączący operator przypisania z operatorem sumy logicznej. Nie są wymagane żadne dodatkowe zmienne pośredniczące w przesyłaniu danych z portu P3 do portu P0.

8 Programowanie mikrokontrolerów 8051 w języku C - część 2 W drugiej części kursu programowania zapoznamy się z obsługą klawiatury. W tym celu musimy podłączyć do układu z poprzedniej części kursu, do portu P3, 8 przycisków w sposób pokazany na poniższym rysunku : Klawiatura ta działa w następujący sposób : po naciśnięciu przycisku wyprowadzenie portu, do którego jest podłączony przycisk, jest zwierane do masy, co wymusza na wyprowadzeniu portu stan niski. Port musi zawierać wewnętrzne rezystory podciągające linie portu do szyny zasilającej. W przeciwnym razie będziemy musieli dołączyć zewnętrzne rezystory podciągające. W typowych mikrokontrolerach rodziny 8051 rezystory te są wbudowane w każdy port, za wyjątkiem portu P0 a także w bardzo popularnym AT89C2051 za wyjątkiem linii P1.0 i P1.1. Tak wiec przed podłączeniem klawiatury należy się upewnić, że port do którego chcemy podłączyć klawiaturę posada rezystory podciągające.

9 Pierwszy program wykorzystujący klawiaturę jest bardzo prosty i zamieszczony poniżej : // zawierającego definicje rejestrów // wewnętrznych procesora // pętla nieskończona while(1) // przepisanie do portu p0 stanu linii portu p3 p0 = p3; cały program opiera się w zasadzie na nieustannym przepisywaniu stanu linii portu p3 do portu p0. efektem tego jest zapalanie odpowiedniej diody LEDpo naciśnięciu dowolnego przycisku. zauważmy, że naciśniecie przycisku wywołuje wymuszenie na odpowiednim wyprowadzeniu portu p3 stanu niskiego, a zapalenie diody LEDjest spowodowane ustawieniem na odpowiednim wyprowadzeniu portu p0 również stanu niskiego. dzięki temu możemy po prostu przepisać stan linii portu p3 do portu p0, bez żadnych dodatkowych zabiegów. jest to zrealizowane przez instrukcję : p0 = p3;

10 Instrukcja warunkowa if Teraz poznamy bardzo ważną instrukcję warunkową if. Służy ona do warunkowego wykonania fragmentu programu. Najprostsza wersja instrukcji if wygląda następująco : if(warunek) instrukcja; Jesli warunek ma wartość true (prawda) to wykonywana jest instrukcja, w przeciwnym razie instrukcja nie będzie wykonana. Przykład zastosowania instrukcji warunkowe if jest pokazany poniżej : // zawierajacego definicje rejestrow // wewnetrznych procesora // Pętla nieskończona while(1) // jeśli P3.0 jest w stanie niskim if(p3_0 == 0) // to ustaw na P0.0 stan niski P0_0 = 0; // jesli P3.1 jest w stanie niskim if(p3_1 == 0) // to ustaw na P0.0 stan wysoki P0_0 = 1;

11 zapisowi P3.0, czyli określa pin 0 portu P3. Przyjrzyjmy się teraz dokładniej instrukcji if : if(p3_0 == 0) P0_0 = 0; W nawiasach okrągłych po słowie if umieszczono warunek. Warunkiem musi być wyrażenie zwracające wartość logiczną, czyli prawda lub fałsz. W naszym przykładzie dokonujemy sprawdzenia, czy wyprowadzenie P3.0 jest w stanie niskim. Jeśli tak, to oznacza to, że naciśnięty został przycisk podłączony do tego wyprowadzenia. Należy podjąć wtedy odpowiednie działanie, czyli ustawić wyprowadzenie P0.0 w stan niski. Początkujących adeptów programowania w języku C może zadziwić znak "==", czyli operator porównania. Jest on inny niż w językach Basic lub Pascal i z początku bardzo łatwo się myli z operatorem przypisania "=". Instrukcja if może także wyglądać następująco: if(warunek) instrukcja1; else instrukcja2; Słowo else (w przeciwnym przypadku) umieszczone przed instrukcja2 mówi, że instrukcja2 zostanie wykonana tylko wtedy, gdy warunek instrukcji if będzie niespełniony, czyli będzie wartości false. W sytuacji, gdy w przypadku spełnienia danego warunku wykonanych ma być kilka instrukcji, to należy blok tych instrukcji ująć w nawiasy klamrowe : if(warunek) instrukcja1; instrukcja2; instrukcja3;

12 Instrukcja iteracyjna for Zapoznamy się teraz z kolejną niezwykle użyteczna instrukcją - z instrukcją for. Służy ona do realizowania wszelkiego rodzaju pętli. Ogólna postać instrukcji for wygląda następująco : for(inicjalizacja zmiennej licznikowej; warunek; modyfikacja zmiennej licznikowej) inicjalizacja zmiennej licznikowej - jest to przypisanie do zmiennej licznikowej jej wartości początkowej warunek - warunek, który określa kiedy pętla ma być wykonywana modyfikacja zmiennej licznikowej - odpowiednie zmodyfikowanie zmiennej licznikowej (inkrementacja, dekrementacja lub cokolwiek innego) W przykładowym programie wykorzystamy pętlę for do wygenerowania pewnego opóźnienia. Funkcja generująca opóźnienie (a raczej przerwę w wykonywaniu programu) jest bardzo przydatna przy współpracy mikrokontrolera z wolniejszymi układami peryferyjnymi, gdzie trzeba czekać np. na zakończenie pomiaru, itp. W naszym programie wykorzystamy funkcję opóźniającą do generowania prostego efektu świetlnego // zawierającego definicje rejestrów // wewnętrznych procesora // definicja funkcji opóźniającej void czekaj(unsigned char x) // deklaracja dwóch zmiennych pomocniczych unsigned char a, b; // potrójnie zagnieżdzona pętla for // ta pętla zostanie wykonana x-razy for( ; x > 0; x--) // ta 10 razy for(a = 0; a < 10; ++a) // a ta 100 razy for(b = 0; b < 25; ++b); // pętla nieskończona while(1) // zapal odpowiednią kombinacje diod LED P0 = 0x55; // odczekaj pewien okres czasu czekaj(250); // zapal inną kombinację diod LED P0 = 0xAA; // odczekaj pewien okres czasu czekaj(250);

13 Po raz pierwszy stworzyliśmy własną funkcję. Zgodnie z tym, co napisałem w pierwszej części kursu, funkcja czekaj nie zwraca żadnej wartości (void) i wymaga jednego parametru typu unsigned char (liczba 8-bitowa bez znaku). Parametrem tym będzie żądana przez nas długość opóźnienia (mniej-więcej w milisekundach). Przyjrzyjmy się pierwszej pętli for : for( ; x > 0; x--) Brakuje tutaj części inicjalizacji zmiennej licznikowej, ponieważ tą zmienną jest parametr przekazywany do funkcji. Gdybyśmy w tym miejscy zainicjalizowali zmienną x, to przekazywany parametr zostałby zamazany. W pętli for może brakować dowolnego elementu - może nawet pętla for wyglądać następująco : for( ; ; ; ) W takim przypadku pętla ta będzie wykonywana bez końca. Nasza funkcja opóźniająca składa się z trzech zagnieżdżonych pętli for. W wyniku tego łączny czas wykonywania tych pętli jest iloczynem powtórzeń każdej pętli. Dokładny czas opóźnienia trudno jest określić, ponieważ ze względu na różne techniki optymalizacji kodu przez kompilator nie jest znany dokładny czas wykonywania jednej pętli. Można co prawda odczytać z pliku *.asm generowanego przez kompilator jakie instrukcje zostały użyte do realizacji tych pętli i określić dokładny czas ich wykonania, ale nie mamy gwarancji, że po zmianie bądź warunku pętli, bądź wartości początkowych oraz końcowych kompilator nie zastosuje innego kodu. Tak więc generowanie opóźnień za pomocą pętli jest przydatne tylko przy generowaniu przybliżonych opóźnień. Do odmierzania dokładnych odcinków czasu należy zastosować wewnętrzne timery mikrokontrolera.

14 Programowanie mikrokontrolerów 8051 w jezyku C - część 3 Instrukcja switch i preprocesor. W sytuacji, gdy chcemy sprawdzić jedną zmienną na okoliczność różnych jej wartości, zamiast użycia rozbudowanego bloku instrukcji if-else wygodniej jest zastosować instrukcję switch. Ogólna postać instrukcji switch wygląda następująco : switch(zmienna) case jakaswartosc1: instrukcja; break; case jakaswartosc2: instrukcja; break;... case jakaswartoscn: instrukcja; break; default : instrukcja; break; zmienna może być dowolnym wyrażeniem bądź zmienną, pod warunkiem że wartość tej zmiennej lub wyrażenia jest typu całkowitego. Nasz przykładowy program niech realizuje następującą funkcję : po naciśnięciu przycisku zapal przeciwną diodę LED (tzn. "od drugiej strony").

15 Przyjrzyjmy się kodowi: // zawierajacego definicje rejestrow // wewnetrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 // pętla nieskończona while(1) // zgaszenie diod LED diody = 0xFF; // w zależnosci od wciśniętego przycisku // zapal odpowiednią diodę LED switch(klawiatura) case 254 : diody = 127; break; case 253 : diody = 191; break; case 251 : diody = 223; break; case 247 : diody = 239; break; case 239 : diody = 247; break; case 223 : diody = 251; break; case 191 : diody = 253; break; case 127 : diody = 254; break; - #define - jak nazwa wskazuje służy ona do definiowania. W rzeczywistości ma ona dwojakie zastosowanie. Po pierwsze służy do prostego przypisania do ciągu znaków bądź stałęj wartości liczbowej lub, jak w naszym przypadku, do określenia "wygodniejszej" nazwy jakiejś zmiennej. Po drugie do definiowania symboli kompilacji warunkowej. Z drugim zagadnieniem spotkamy się w dalszej części kursu, więc teraz nie zaprzątajmy nim sobie uwagi. Tak więc za pomocą dyrektywy #define przypisaliśmy do napisu klawiatura napis P2. W tym miejscu należy wyjaśnić co to takiego jest preprocesor. Tak więc słowo "preproesor" jest połączeniem słów "pre" - przed oraz "procesor" - w tym przypadku kompilator. Tak więc preprocesor jest programem uruchamianym przed uruchomieniem właściwego kompilatora.

16 Preprocesor służy do wstępnej obróbki pliku źródłowego. Gdy preprocesor przegląda plik źródłowy i natrafi na ciąg znaków zdefiniowany przez dyrektywę #define, to zastąpi ten ciąg, ciągiem do niego przypisanym. Dzięki temu możemy zamiast niewiele znaczących nazw portu używać w programie jasnych i jednoznacznie mówiących o ich przeznaczeniu nazw zmiennych i stałych. Po nadaniu portom naszego mikrokontrolera wygodnych i przejrzystych nazw nadchodzi czas na właściwy program. I znowu będzie on wykonywany w pętli nieskończonej while(1). Na początku tej pętli przypiszemy do portu diody liczbę 0xFF czyli 255. Spowoduje to wygaszenie diod po zwolnieniu przycisku, a także w sytuacji gdy naciśniemy więcej niż jeden przycisk. Następnie pojawia się instrukcja switch. Jako zmienną tej instrukcji wykorzystamy naszą klawiaturę. Teraz należy sprawdzić przypadek naciśnięcia każdego z przycisków osobno. Ponieważ naciśnięcie przycisku jest sygnalizowane wymuszeniem na linii, do której jest podłączony stanu niskiego, to po naciśnięciu przycisku S1 klawiatura przyjmie wartość binarnie, czyli 254 dziesiętnie. Jeżeli naciśnięcie tego przycisku zostanie stwierdzone, to należy zapalić diodę D8 - przez przypisanie do portu diody liczby dwójkowo, czyli 127 dziesiętnie. Po wykonaniu założonego zadania należy opuścić instrukcję switch za pomocą słowa kluczowego break. W podobny sposób sprawdzamy pozostałe siedem przypadków.

17 W powyższym przykładzie niezbyt elegancko wygląda zarówno sprawdzanie który klawisz został naciśnięty, jak i zapalanie odpowiedniej diody LED. Podczas pisania programu nie należy podawać stałych liczbowych (ani żadnych innych) bezpośrednio, tylko należy wcześniej zdefiniować stałą o nazwie jasno mówiącej o jej przeznaczeniu. Poza tym, w sytuacji gdy będziemy musieli zmienić stałą (oczywiście na etapie pisania programu, a nie w czasie jego działania) to w bardziej rozbudowanych programach zmienienie tej liczby w miejscach w których należy ją zmienić będzie bardzo kłopotliwe. Tym bardziej, że nie będziemy mogli użyć mechanizmu "znajdź/zamień", ponieważ łatwo zmienimy nie ten znak co trzeba. Bardziej elegancka (oczywiście nie najbardziej - ta będzie za chwile) wersja programu jest przedstawiona obok : // zawierającego definicje rejestrów // wewnętrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 // #define poz1 254 #define poz2 253 #define poz3 251 #define poz4 247 #define poz5 239 #define poz6 223 #define poz7 191 #define poz8 127 // pętla nieskończona // zawierającego definicje rejestrów // wewnętrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 //

18 o przeznaczeniu stałej" wybrałem pozx, gdzie x = Jak łatwo można się domyśleć "poz" to skrót od "pozycja". Ponieważ stałe liczbowe odpowiadające przyciskom, jaki diodom LED sa identyczne nie zastosowałem rozróżnienia czy chodzi o pozycję przycisku czy diody LED. Jednak już naprawdę elegancko będzie, gdy użyjemy odpowiednich stałych dla diod i przycisków osobno #define poz1 254 #define poz2 253 #define poz3 251 #define poz4 247 #define poz5 239 #define poz6 223 #define poz7 191 #define poz8 127 // pętla nieskończona while(1) // zgaszenie diod LED diody = 0xFF; // w zależnosci od wciśniętego przycisku // zapal odpowiednią diodę LED switch(klawiatura) case poz1 : diody = poz8; break; case poz2 : diody = poz7; break; case poz3 : diody = poz6; break; case poz4 : diody = poz5; break; case poz5 : diody = poz4; break; case poz6 : diody = poz3; break; case poz7 : diody = poz2; break; case poz8 : diody = poz1; break;

19 // zawierajacego definicje rejestrow // wewnetrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 // #define S1 254 #define S2 253 #define S3 251no. // zawierajacego definicje rejestrow // wewnetrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 // #define S1 254 #define S2 253 #define S3 251 #define S4 247 #define S5 239 #define S6 223 #define S7 191 #define S8 127 // #define D1 254 #define D2 253 #define D3 251 #define D4 247 #define D5 239 #define D6 223 #define D7 191 #define D8 127 // pętla nieskończona while(1) // zgaszenie diod LED diody = 0xFF; // w zależnosci od wciśniętego przycisku // zapal odpowiednią diodę LED switch(klawiatura) case S1 : diody = D8; break; case S2 : diody = D7; break; case S3 : diody = D6; break; case S4 : diody = D5; break; case S5 : diody = D4; break; case S6 : diody = D3; break; case S7 : diody = D2; break; case S8 : diody = D1; break;

20 cd z poprzedniej strony // zawierającego definicje rejestrów // wewnętrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zawierającego definicje rejestrów // wewnętrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 // #define S1 254 #define S2 253 #define S3 251 #define S4 247 #define S5 239 #define S6 223 #define S7 191 #define S8 127 // #define D1 254 #define D2 253 #define D3 251 #define D4 247 #define D5 239 #define D6 223 #define D7 191 #define D8 127 // pętla nieskończona while(1) // zgaszenie diod LED diody = 0xFF; // w zależności od wciśniętego przycisku // zapal odpowiednią diodę LED switch(klawiatura) case S1 : diody = D8; break; case S2 : diody = D7; break; case S3 : diody = D6; break; case S4 : diody = D5; break; case S5 : diody = D4; break; case S6 : diody = D3; break; case S7 : diody = D2; break; case S8 : diody = D1; break; Z powyższych trzech programów to dla każdego z nich byłby identyczny. Dzieje się tak, że z punktu widzenia kompilatora te trzy programy są identyczne, ponieważ w "miejscach strategicznych" występują te same dane. Jest to kolejnym objawem preprocesora - kod źródłowy programu przed kompilacją został doprowadzony do postaci zrozumiałej przez kompilator (gdyby pominąć proces przetwarzania pliku przez preprocesor, to kompilator zgłosiłby mnóstwo błędów).

21 cd z poprzedniej strony // zawierającego definicje rejestrów // wewnętrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zawierającego definicje rejestrów // wewnętrznych procesora // zdefiniowanie alternatywnej nazwy portu P2 #define klawiatura P2 // zdefiniowanie alternatywnej nazwy portu P0 #define diody P0 // #define S1 254 #define S2 253 #define S3 251 #define S4 247 #define S5 239 #define S6 223 #define S7 191 #define S8 127 // #define D1 254 #define D2 253 #define D3 251 #define D4 247 #define D5 239 #define D6 223 #define D7 191 #define D8 127 // pętla nieskończona while(1) // zgaszenie diod LED diody = 0xFF; // w zależności od wciśniętego przycisku // zapal odpowiednią diodę LED switch(klawiatura) case S1 : diody = D8; break; case S2 : diody = D7; break; case S3 : diody = D6; break; case S4 : diody = D5; break; case S5 : diody = D4; break; case S6 : diody = D3; break; case S7 : diody = D2; break; case S8 : diody = D1; break; Z powyższych trzech programów to dla każdego z nich byłby identyczny. Dzieje się tak, że z punktu widzenia kompilatora te trzy programy są identyczne, ponieważ w "miejscach strategicznych" występują te same dane. Jest to kolejnym objawem preprocesora - kod źródłowy programu przed kompilacją został doprowadzony do postaci zrozumiałej przez kompilator (gdyby pominąć proces przetwarzania pliku przez preprocesor, to kompilator zgłosiłby mnóstwo błędów).

22 Programowanie mikrokontrolerów 8051 w języku C - część 4 Tablice danych. Tablica jest miejscem przechowywania danych o tym samym typie. Tablicę deklarujemy podając typ elementów w niej przechowywanych, jej nazwę oraz rozmiar. Rozmiar podaje się w nawiasach kwadratowych []. Elementy tablicy są przechowywane w kolejno następujących po sobie komórkach pamięci. Przykładowa deklaracja tablicy może wyglądać następująco : int tablica[5]; Powyższy zapis deklaruje pięcioelementową tablicę danych typu int. Dostęp do poszczególnych elementów tablicy uzyskujemy przez podanie nazwy tablicy, oraz numeru elementu tablicy, do którego dostęp chcemy uzyskać. Przykładowo, zapisanie do drugiego elementu tablicy jakiejś wartości może wyglądac nastepująco : tablica[1] = 0; W tym miejscu ważna uwaga : elementy tablicy sa numerowane od 0 a nie od 1. Tak więc pierwszy element ma numer 0, drugi 1 itd. Aby w miejscu deklaracji tablicy od razu umieścić w niej jakieś dane należy zastosować poniższy zapis : int tablica[5] = 5, 2, 31, 55, 40; char code tablica[4] = 0x55,0xAA,0x0F,0xF0; // definicja funkcji opóźniającej void czekaj(unsigned char x) // deklaracja dwóch zmiennych pomocniczych unsigned char a, b; // potrójnie zagnieżdżona pętla for // ta pętla zostanie wykonana x-razy for( ; x > 0; x--) // ta 10 razy for(a = 0; a < 10; ++a) // a ta 100 razy for(b = 0; b < 25; ++b); while(1) P0 = tablica[0]; czekaj(250); P0 = tablica[1]; czekaj(250); P0 = tablica[2]; czekaj(250); P0 = tablica[3]; czekaj(250);

23 Program ten ma za zadanie generować prostą sekwencję (przechowywaną właśnie w tablicy) odpowiednio zapalanych diod LED, podłączonych do portu P0. Ponieważ poszczególne elementy tej tablicy nie będą się nigdy zmieniać (są to dane stałe), możemy ją umieścić w pamięci programu. Określa to słowo code przed nazwą tablicy. Po deklaracji tablicy pojawia się znajoma już nam funkcja opóźniająca czekaj, służąca do generowania opóźnień w wykonaniu programu. Program główny opiera się na wysyłaniu na port, do którego podłączone sa diody LED, kolejnych elementów tablicy zawierającej dane sterujące diodami. Gdy tablica składa się z niewielu elementów, to powyższy program jeszcze może zostać uznany za poprawny, ale w sytuacji gdy tablica będzie się składać z kilkunastu, lub nawet kilkudziesięciu elementów, to przepisywanie elementów z tablicy do portu należy już zrealizować w pętli. Przykładowa realizacja pętli: char code tablica[4] = 0x55,0xAA,0x0F,0xF0; // definicja funkcji opóźniającej void czekaj(unsigned char x) // deklaracja dwóch zmiennych pomocniczych unsigned char a, b; // potrójnie zagnieżdżona pętla for // ta pętla zostanie wykonana x-razy for( ; x > 0; x--) // ta 10 razy for(a = 0; a < 10; ++a) // a ta 100 razy for(b = 0; b < 25; ++b); char i; while(1) for(i = 0; i < 4; i++) P0 = tablica[i]; czekaj(250);

24 Wskaźniki Wskaźniki są bardzo ważnym elementem języka C. Ogólnie mówiąc wskaźnik jest zmienną przechowująca adres innej zmiennej. Wskaźniki deklarujemy w następujący sposób : typ*wskaźnik = 0; Aby uzyskać dostęp do zmiennej wskazywanej przez wskaźnik należy użyć operatora wyłuskania *, na przykład poniższa instrukcja : typ * nazwa; spowoduje zapisanie do zmiennej (a raczej do komórki pamięci) wskazywanej przez wskaźnik liczby 0. Można sobie zadać pytanie jaki jest cel stosowania wskaźników, skoro wskazują ona na inną zmienną, jakby nie można było się posługiwać tylko tą zmienną. Wskaźniki odgrywają dużą rolę w przekazywaniu do funkcji parametrów, a ściślej mówiąc pozwalają na modyfikowanie parametru przekazanego do funkcji. Jednak na razie użyjemy wskaźników do innego celu, a mianowicie do dostępu do poznanej wcześniej tablicy z danymi. Przyjrzyjmy się poniższemu programowi : char code tablica[] = 0x55,0xAA,0x0F,0xF0; char code * wskaznik; // definicja funkcji opóźniającej void czekaj(unsigned char x) // deklaracja dwóch zmiennych pomocniczych unsigned char a, b; // potrójnie zagnieżdzona pętla for // ta pętla zostanie wykonana x-razy for( ; x > 0; x--) // ta 10 razy for(a = 0; a < 10; ++a) // a ta 100 razy for(b = 0; b < 25; ++b); while(1) wskaznik = tablica; P0 = *wskaznik++; czekaj(250); P0 = *wskaznik++; czekaj(250); P0 = *wskaznik++; czekaj(250); P0 = *wskaznik++; czekaj(250);

25 Realizuje on dokładnie taką samą funkcję jak pierwszy program z tej części kursu. Pierwszą zmianą w stosunku do poprzedniego programu jest deklaracja wskaźnika : char code * wskaznik; Zgodnie z tym, co pisałem o deklarowaniu wskaźnika wskazuje on na typ char umieszczony w pamięci programu code. Jednak samo zadeklarowanie wskaźnika nie pozwolą nam na jego używanie. W tym momencie nasz wskaźnik nie przechowuje żadnego adresu, a zwłaszcza adresu naszej tablicy. Przed jego użyciem, należy zapisać do niego adres tablicy. Dokonujemy tego w poniższy sposób : wskaznik = tablica; I tu powstanie małe zamieszanie, ponieważ tablica również jest wskaźnikiem! Tak więc powyższy zapis przepisuje do jednego wskaźnika zawartość innego wskaźnika. Aby w jawny sposób do wskaźnika przypisać adres jakiejś zmiennej należy użyć operator adresu &, tak jak pokazano poniżej : I tu znów małe zamieszanie, ponieważ chcemy do wskaźnika zapisać adres pierwszego elementu tablicy, do którego dostęp uzyskamy przez podanie w nawiasach kwadratowych jego numeru. Gdybyśmy użyli takiego zapisu : wskaznik = &tablica; często sprawiają problemy początkującym programistom. to kompilator zgłosi błąd, gdyż zapis ten oznacza przypisanie do wskaźnika adresu innego wskaźnika, a nie adresu danej typu char. Wiem, że to na początku jest bardzo skomplikowane, bowiem wskaźniki należą do najtrudniejszych

PROGRAMOWANIE MIKROKONTROLERÓW 8051 W JĘZYKU C

PROGRAMOWANIE MIKROKONTROLERÓW 8051 W JĘZYKU C PROGRAMOWANIE MIKROKONTROLERÓW 8051 W JĘZYKU C KŁ ZSP4 2012 Programowanie mikrokontrolerów 8051 w jezyku C - część 1 Gdy już skompletujemy nasz warsztat programistyczny i sprzętowy, pora na napisanie pierwszego

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 4

Programowanie komputerowe. Zajęcia 4 Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5. Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

Klawiatura matrycowa

Klawiatura matrycowa Klawiatura matrycowa Budowa matrycy klawiatury. Nieodzownym elementem każdego systemu mikroprocesorowego jest klawiatura. Umożliwia ona wpływ użytkownika na wykonywany przez niego program. Jednak teoretycznie

Bardziej szczegółowo

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja Część VIII C++ Przedrostkowa i przyrostkowa inkrementacja i dekrementacja W poprzednim ćwiczeniu operatory inkrementacji i dekrementacji występowały w wersji przyrostkowej. Istnieje inny sposób zapisu

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Zestaw Edukacyjny Atmega-8 (AJAWe-0711) Porty wejścia-wyjścia.

Zestaw Edukacyjny Atmega-8 (AJAWe-0711) Porty wejścia-wyjścia. Zestaw Edukacyjny Atmega-8 (AJAWe-0711) LEKCJA 4 Porty wejścia-wyjścia W poprzedniej lekcji napisaliśmy pierwszy program, który zapalił nam jedną diodę led Teraz omówimy szczegółowo działanie niniejszego

Bardziej szczegółowo

Język C, tablice i funkcje (laboratorium, EE1-DI)

Język C, tablice i funkcje (laboratorium, EE1-DI) Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:

ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy: Ostatnio kontynuowaliśmy temat "rozmawiania" z Arduino (komunikacji z wykorzystaniem portu szeregowego), która jest nam o tyle potrzebna, że właśnie w ten sposób później będziemy rozmawiać z płytką wykorzystując

Bardziej szczegółowo

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32) Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32) wersja 0.4 (20 kwietnia 2015) Filip A. Sala W niniejszym, bardzo krótkim opracowaniu, postaram się przedstawić

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

Bardziej szczegółowo

Odczyt danych z klawiatury Operatory w Javie

Odczyt danych z klawiatury Operatory w Javie Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Lekcja : Tablice + pętle

Lekcja : Tablice + pętle Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Mikrooperacje. Mikrooperacje arytmetyczne

Mikrooperacje. Mikrooperacje arytmetyczne Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Mikrooperacje Mikrooperacja to elementarna operacja wykonywana podczas jednego taktu zegara mikroprocesora na informacji przechowywanej

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe: Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część druga Instrukcje sterujące przebiegiem programu Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik

Bardziej szczegółowo

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach

Bardziej szczegółowo

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 9 Funkcje 1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Język C, tablice i funkcje (laboratorium)

Język C, tablice i funkcje (laboratorium) Język C, tablice i funkcje (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

1 Wielokrotne powtarzanie tych samych operacji

1 Wielokrotne powtarzanie tych samych operacji 1 Wielokrotne powtarzanie tych samych operacji Zadanie 1. roszę porównać następujące programy(efekt działania każdego z nich jest takisam). rzykład 1 przedstawia najbardziej typowy zapis, powodujący wykonanie

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=

Bardziej szczegółowo

Instrukcja do ćwiczeń

Instrukcja do ćwiczeń Instrukcja do ćwiczeń SYSTEMY WBUDOWANE Lab. 3 Przetwornik ADC + potencjometr 1. Należy wejść na stronę Olimexu w celu znalezienia zestawu uruchomieniowego SAM7-EX256 (https://www.olimex.com/products/arm/atmel/sam7-ex256/).

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne

Bardziej szczegółowo