Nazwa implementacji: Zróbmy grę - Tetris. Autor: Łukasz Ciężki

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

Download "Nazwa implementacji: Zróbmy grę - Tetris. Autor: Łukasz Ciężki"

Transkrypt

1 Nazwa implementacji: Zróbmy grę - Tetris Autor: Łukasz Ciężki Opis implementacji: Implementacja zawiera sposób na stworzenie gry TETRIS obsługiwanej przez Arduino Kto z nas nie zna gry Tetris? Znając bibliotekę TVout zróbmy ją na Arduino. Uwaga: aby móc w nią zagrać należy posiadać Arduino z co najmniej 2kB RAM'u (np. UNO). Schemat połączeniowy (przyciski jako pull-up, czyli z podciąganiem do napięcia): Kod: #include <avr/io.h> #include <TVout.h> #include <fontall.h> #include "tetrislogo.h" TVout TV; #define szerokosc 116 #define wysokosc 106 #define gora 2 #define dol 3 #define lewo 4 #define prawo 5 #define funkcyjny 6 byte predkosc = 1; byte muzyka = 0; byte glosnosc = 5; boolean start = false; 1

2 boolean matrix[10][20]; byte pomocnik_szerokosci1 = 0.5 * szerokosc - 20; byte pomocnik_szerokosci2 = 0.5 * szerokosc + 20; byte odstep = 10; byte pozycjax = 4; byte pozycjay = 0; byte obecny = 0; byte nastepny = 0; byte obrot = 0; boolean prawa_strona = false; boolean kolizja = false; boolean kolizja_prawa = false; boolean kolizja_lewa = false; boolean nadmiar[3] = {0,0,0; byte mnoznik = 0; unsigned long punkty = 0; byte opadanie = 0; boolean blokada_obrotu = false; unsigned int linie = 0; unsigned int dwojki = 0; unsigned int trojki = 0; byte tetrisy = 0; void ekran_startowy(){ TV.bitmap(0,0,tetrislogo); digitalwrite(8,low); digitalwrite(10,high); digitalwrite(12,high); digitalwrite(13,high); while(1){ if((!digitalread(lewo)) (!digitalread(prawo)) (!digitalread(dol)) (!digitalread(gora))) return void(); void wybor_menu(byte &wybor, boolean kontynuacja){ while(1){ if(kontynuacja){ switch(wybor){ if((!digitalread(lewo)) && muzyka > 0) muzyka--; if((!digitalread(prawo)) && muzyka < 7) muzyka++; if(!digitalread(funkcyjny)){ start = true; return void(); default: else{ 2

3 switch(wybor){ if((!digitalread(lewo)) && predkosc > 1) predkosc--; if((!digitalread(prawo)) && predkosc < 10) predkosc++; if((!digitalread(lewo)) && muzyka > 0) muzyka--; if((!digitalread(prawo)) && muzyka < 7) muzyka++; if(!digitalread(funkcyjny)){ start = true; return void(); default: if((!digitalread(gora) && wybor > 0)) wybor--; if((!digitalread(dol) && wybor < 2)) wybor++; void koniec_gry(){ TV.select_font(font8x8ext); TV.draw_rect(0.3 * szerokosc - 4, 0.24 * wysokosc, 0.47 * szerokosc, 0.29 * wysokosc, 1, 0); TV.printPGM(0.5 * szerokosc - 24, 0.3 * wysokosc, PSTR("KONIEC")); TV.printPGM(0.5 * szerokosc - 24, 0.4 * wysokosc, PSTR(" GRY ")); while(1){ if((!digitalread(lewo)) (!digitalread(prawo)) (!digitalread(dol)) (!digitalread(gora)) (!digitalread(funkcyjny) void graj_muzyke(byte numer){ switch(numer){ digitalwrite(8,high); digitalwrite(10,low); digitalwrite(12,low); digitalwrite(13,low); digitalwrite(8,high); digitalwrite(10,low); digitalwrite(12,low); digitalwrite(13,high); digitalwrite(8,high); digitalwrite(10,low); digitalwrite(12,high); digitalwrite(13,low); 3

4 digitalwrite(8,high); digitalwrite(10,low); digitalwrite(12,high); digitalwrite(13,high); case 4: digitalwrite(8,high); digitalwrite(10,high); digitalwrite(12,low); digitalwrite(13,low); case 5: digitalwrite(8,high); digitalwrite(10,high); digitalwrite(12,low); digitalwrite(13,high); case 6: digitalwrite(8,high); digitalwrite(10,high); digitalwrite(12,high); digitalwrite(13,low); case 7: digitalwrite(8,high); digitalwrite(10,high); digitalwrite(12,high); digitalwrite(13,high); default: void menu(){ start = false; byte wybor = 0; //0 - wybór prędkości, 1 - wybór muzyki, 2 - wybor głośności, 3 - start byte *wsk_wybor = &wybor; boolean zmiana = false; TV.select_font(font8x8ext); while(1){ zmiana = false; if((!digitalread(lewo)) (!digitalread(prawo)) (!digitalread(dol)) (!digitalread(gora))) zmiana = true; wybor_menu(*wsk_wybor,false); if(zmiana){ TV.clear_screen(); TV.printPGM(9,5,PSTR("T E T R I S")); TV.printPGM(5,30,PSTR("Predkosc")); TV.set_cursor(5,40); for(byte i = 0; i < predkosc; i++) TV.print("*"); TV.printPGM(5,50,PSTR("Muzyka")); TV.set_cursor(5,60); switch(muzyka){ TV.print("-- Cisza --"); 4

5 TV.print("Korobeiniki"); TV.print("Bradinsky"); TV.print("Kalinka"); case 4: TV.print("Smuglianka"); case 5: TV.print("PoliuszkaPole"); case 6: TV.print("Na drodze"); case 7: TV.print("Bella Ciao"); default: TV.printPGM(18,96,PSTR("S T A R T")); switch(wybor){ TV.draw_rect(0,29,szerokosc,20,2,2); TV.draw_rect(0,49,szerokosc,20,2,2); TV.draw_rect(0,95,szerokosc,10,2,2); graj_muzyke(muzyka); if(start){ TV.clear_screen(); return void(); TV.delay(200); void pauza(){ start = false; byte wybor = 0; //0 - wybór muzyki, 1 - wybor głośności, 2 - wznow byte *wsk_wybor = &wybor; boolean zmiana = false; TV.select_font(font8x8ext); while(1){ zmiana = false; 5

6 if((!digitalread(lewo)) (!digitalread(prawo)) (!digitalread(dol)) (!digitalread(gora))) zmiana = true; wybor_menu(*wsk_wybor,true); if(zmiana){ TV.clear_screen(); TV.printPGM(9,5,PSTR("PAUZA")); TV.printPGM(5,30,PSTR("Muzyka")); TV.set_cursor(5,40); switch(muzyka){ TV.print("-- Cisza --"); TV.print("Korobeiniki"); TV.print("Bradinsky"); TV.print("Kalinka"); case 4: TV.print("Smuglianka"); case 5: TV.print("PoliuszkaPole"); case 6: TV.print("Na drodze"); case 7: TV.print("Bella Ciao"); default: TV.printPGM(18,70,PSTR("W Z N O W")); switch(wybor){ TV.draw_rect(0,29,szerokosc,20,2,2); TV.draw_rect(0,69,szerokosc,10,2,2); graj_muzyke(muzyka); if(start){ TV.clear_screen(); ramka(); rysuj_matrix(); return void(); if(wybor == 2) wybor = 0; TV.delay(200); 6

7 //poszczególne tetromino void L(byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ blok(x,y+2,p); blok(x+1,y+2,p); blok(x+2,y,p); blok(x+2,y+1,p); blok(x+1,y+2,p); blok(x+2,y,p); void J(byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ blok(x+1,y+2,p); 7

8 blok(x,y+2,p); blok(x+2,y+1,p); blok(x,y+2,p); blok(x+2,y,p); blok(x+2,y+1,p); void S (byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ blok(x+2,y,p); blok(x+1,y+2,p); 8

9 blok(x+2,y,p); blok(x+1,y+2,p); void Z (byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ blok(x+2,y+1,p); blok(x,y+2,p); blok(x+2,y+1,p); blok(x,y+2,p); 9

10 void I (byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ blok(x,y+2,p); blok(x,y+3,p); if(x == 9) prawa_strona = true; blok(x+2,y,p); blok(x+3,y,p); if(x+3 == 9) prawa_strona = true; blok(x,y+2,p); blok(x,y+3,p); if(x == 9) prawa_strona = true; blok(x+2,y,p); blok(x+3,y,p); if(x+3 == 9) prawa_strona = true; void O (byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ default: 10

11 void T (byte x, byte y, byte p){ byte ot = obrot; if(p == 4){ ot++; if(ot == 4) ot = 0; switch(ot){ blok(x+2,y+1,p); blok(x,y+2,p); blok(x+2,y,p); blok(x+1,y+2,p); byte przesuniecie_wiersz = 0; void sprawdz_wiersze(){ byte w = 0; for(byte j = 0; j < 20; j++){ for(byte i = 0; i < 10; i++){ if(matrix[i][j]) w++; 11

12 if(w == 10){ for(byte i = 0; i < 10; i++){ pisz_matrix(i,j,false); mnoznik++; przesuniecie_wiersz = j; przesun_wiersze(); w = 0; switch(mnoznik){ punkty += 100; linie++; punkty += 250; dwojki++; punkty += 1000; trojki++; case 4: punkty += 4000; tetrisy++; mnoznik = 0; void przesun_wiersze(){ for(byte j = przesuniecie_wiersz; j > 0; j--){ for(byte i = 0; i < 10; i++){ matrix[i][j] = matrix[i][j-1]; void losuj_tetromino(){ obecny = random(0,7); void wstaw_tetromino(byte rozkaz){ switch(obecny){ L(pozycjax, pozycjay, rozkaz); J(pozycjax, pozycjay, rozkaz); S(pozycjax, pozycjay, rozkaz); Z(pozycjax, pozycjay, rozkaz); case 4: I(pozycjax, pozycjay, rozkaz); case 5: O(pozycjax, pozycjay, rozkaz); case 6: T(pozycjax, pozycjay, rozkaz); boolean sprawdz_kolizje(byte x, byte y){ if(y == 19) return true; if(matrix[x][y + 1]) return true; return false; boolean sprawdz_kolizje_prawa(byte x, byte y){ if(x == 9) return true; if(matrix[x+1][y]) return true; return false; 12

13 boolean sprawdz_kolizje_lewa(byte x, byte y){ if(x == 0) return true; if(matrix[x-1][y]) return true; return false; boolean sprawdz_kolizje_matrix(byte x, byte y){ if(matrix[x][y]) return true; return false; void ramka(){ TV.draw_column(pomocnik_szerokosci1-1, odstep, wysokosc - odstep + 4, 1); TV.draw_column(pomocnik_szerokosci2, odstep, wysokosc - odstep + 4, 1); TV.draw_row(wysokosc - odstep + 4, 0.5 * szerokosc - 21, 0.5 * szerokosc + 21, 1); void czysc_matrix(){ for(byte i = 0; i < 10; i++){ for (byte j = 0; j < 20; j++){ matrix[i][j] = false; void rysuj_matrix(){ TV.draw_rect(pomocnik_szerokosci1, odstep + 1, 39, pomocnik_szerokosci2 + odstep, 0, 0); for(byte i = 0; i < 10; i++){ for(byte j = 0; j < 20; j++){ if(matrix[i][j]) blok_matrix(i,j); void pisz_matrix(byte x, byte y, boolean typ){ matrix[x][y] = typ; void blok(byte x, byte y, byte w){ if(w == 4){ if(sprawdz_kolizje(x,y - 1)) blokada_obrotu = true; if(sprawdz_kolizje_matrix(x,y)) blokada_obrotu = true; if(x > 9) blokada_obrotu = true; if(w == 3){ //czyszczenie z ekranu poprzedniej pozycji bloku TV.draw_rect(x * 4 + pomocnik_szerokosci1, y * * odstep, 3, 3, 0, 0); if(w == 2){ if(x == 10) nadmiar[0] = true; if(x == 11) nadmiar[1] = true; if(x == 12) nadmiar[2] = true; if(w == 1) matrix[x][y] = true; 13

14 if(w == 0){ TV.draw_rect(x * 4 + pomocnik_szerokosci1, y * * odstep, 3, 3, 1, 1); kolizja = sprawdz_kolizje(x,y); kolizja_lewa = sprawdz_kolizje_lewa(x,y); kolizja_prawa = sprawdz_kolizje_prawa(x,y); void blok_matrix(byte x, byte y){ TV.draw_rect(x * 4 + pomocnik_szerokosci1, y * * odstep, 3, 3, 1, 1); void steruj(){ if((!digitalread(lewo)) && pozycjax > 0 &&!kolizja_lewa) pozycjax--; if((!digitalread(prawo)) && pozycjax < 9 &&!kolizja_prawa) pozycjax++; if((!digitalread(gora))){ pauza(); TV.select_font(font4x6); if((!digitalread(dol)) && pozycjay < 19) pozycjay++; wstaw_tetromino(4); if((!digitalread(funkcyjny)) && obrot < 4 &&!blokada_obrotu){ obrot++; if(obrot == 4) obrot = 0; void gra(){ pozycjax = 4; pozycjay = 0; punkty = 0; linie = 0; dwojki = 0; trojki = 0; tetrisy = 0; TV.select_font(font4x6); TV.set_cursor(0,36); TV.print("Linie:"); TV.set_cursor(0,44); TV.print(linie, DEC); TV.set_cursor(0,54); TV.print("Dwojki:"); TV.set_cursor(0,60); TV.print(dwojki, DEC); TV.set_cursor(0,70); TV.print("Trojki:"); TV.set_cursor(0,78); TV.print(trojki, DEC); TV.set_cursor(0,88); TV.print("Tetris:"); TV.set_cursor(0,96); TV.print(tetrisy, DEC); kolizja = false; kolizja_prawa = false; kolizja_lewa = false; obecny = random(0,7); nastepny = random(0,7); TV.select_font(font4x6); czysc_matrix(); ramka(); nastepny = random(0,7); rysuj_matrix(); while(1){ 14

15 TV.set_cursor(0,30); if(kolizja && pozycjay == 0){ digitalwrite(8,low); digitalwrite(10,high); digitalwrite(12,high); digitalwrite(13,low); koniec_gry(); return void(); if(kolizja){ kolizja = false; punkty += 15; wstaw_tetromino(1); pozycjax = 4; pozycjay = 0; sprawdz_wiersze(); obecny = nastepny; nastepny = random(0,7); rysuj_matrix(); TV.set_cursor(0,36); TV.print("Linie:"); TV.set_cursor(0,44); TV.print(linie, DEC); TV.set_cursor(0,54); TV.print("Dwojki:"); TV.set_cursor(0,60); TV.print(dwojki, DEC); TV.set_cursor(0,70); TV.print("Trojki:"); TV.set_cursor(0,78); TV.print(trojki, DEC); TV.set_cursor(0,88); TV.print("Tetris:"); TV.set_cursor(0,96); TV.print(tetrisy, DEC); kolizja = false; wstaw_tetromino(3); //usun z ekranu tetromino wstaw_tetromino(4); //sprawdz mozliwą kolizje przy obrocie bloku steruj(); if(digitalread(dol)){ opadanie++; if(opadanie == 10 - predkosc){ opadanie = 0; pozycjay++; else{ punkty += predkosc; kolizja_lewa = false; kolizja_prawa = false; blokada_obrotu = false; //TV.set_cursor(0,0); TV.print(obecny,DEC); TV.print(" o"); //TV.set_cursor(0,10); TV.print(nastepny,DEC); TV.println(" n"); TV.set_cursor(0,10); TV.print("Punkty:"); TV.set_cursor(0,18); TV.print(punkty, DEC); wstaw_tetromino(0); TV.delay(100); 15

16 void setup(){ pinmode(8,output); pinmode(10,output); pinmode(12,output); pinmode(13,output); pinmode(gora,input_pullup); pinmode(dol,input_pullup); pinmode(lewo,input_pullup); pinmode(prawo,input_pullup); pinmode(funkcyjny,input_pullup); randomseed(analogread(0)); TV.begin(PAL,szerokosc,wysokosc); TV.select_font(font8x8); void loop(){ ekran_startowy(); TV.clear_screen(); menu(); TV.clear_screen(); gra(); Piny 8, 10, 12, 13 tworzą liczbę binarną, która jest przekazana do prostego odtwarzacza tonów (opartego na atmega8). Efekt: 16

17 17

Nazwa implementacji: Pamięć i zręczność - zapamiętaj kolejność. Autor: Krzysztof Bytow

Nazwa implementacji: Pamięć i zręczność - zapamiętaj kolejność. Autor: Krzysztof Bytow Nazwa implementacji: Pamięć i zręczność - zapamiętaj kolejność Autor: Krzysztof Bytow Opis implementacji: Budowa układu i programu do symulacji losowania jednej z sześciu liczb, jak w kostce do gry. Prezentacja

Bardziej szczegółowo

Schemat blokowy architektury AVR

Schemat blokowy architektury AVR Schemat blokowy architektury AVR Rejestry procesora AVR dostępne programowo Rejestry procesora AVR związane z pobraniem i wykonaniem rozkazu Schemat blokowy procesora ATMega 2560 ATMEL ATMEGA328P MEMORY

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

Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę.

Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę. Projekt zegara. Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę. Aktualny czas należy wpisać na monitorze portu szeregowego po podłączeniu płytki. Godzina jest pokazywana mechanicznie

Bardziej szczegółowo

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe Arduino C - stałe Systemy Wbudowane Arduino C Wersja 2018 Unikać redefiniowania istniejących stałych. Stosowane dla polepszenia zrozumiałości kodu. Lepiej HIGH niż 0x01 Lepiej INPUT_PULLUP niż 0x2 Uwzględniają

Bardziej szczegółowo

Algorytmy z powrotami. Algorytm minimax

Algorytmy z powrotami. Algorytm minimax Algorytmy z powrotami. Algorytm minimax Algorytmy i struktury danych. Wykład 7. Rok akademicki: 2010/2011 Algorytm z powrotami rozwiązanie problemu budowane jest w kolejnych krokach, po stwierdzeniu (w

Bardziej szczegółowo

ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM

ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM Adam MUC, Lech MURAWSKI, Grzegorz GESELLA, Adam SZELEZIŃSKI, Arkadiusz SZARMACH CEL Wykorzystanie popularnych

Bardziej szczegółowo

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND Nazwa implementacji: Budowa RTC w oparciu o DS1307 Autor: Krzysztof Bytow Opis implementacji: Układ DS1307 jest to zegar czasu rzeczywistego (Real Time Clock) służy do odliczania czasu niezależnie od stanu

Bardziej szczegółowo

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================

Bardziej szczegółowo

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji Ćwiczenie nr 3 Temat: Definicje i wykorzystanie funkcji, parametry funkcji Zagadnienia: Definicja funkcji składnia podstawowa. Sposoby przekazania parametrów (argumentów) funkcji: przez wartość, przez

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

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Instytut Informatyki Politechnika Poznańska AVR ang. Advanced Virtual RISC Twórcami są Alf Egil Bogen, Vegard Wollan RISC Architektura AVR została opracowana przez dwóch studentów w Norweskim Instytucie

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe Arduino C - stałe Systemy Wbudowane Arduino C Wersja 2019 Unikać redefiniowania istniejących stałych. Stosowane dla polepszenia zrozumiałości kodu. Lepiej HIGH niż 0x01 Lepiej INPUT_PULLUP niż 0x2 Uwzględniają

Bardziej szczegółowo

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

Bardziej szczegółowo

Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów

Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów Artem Poliszczuk 1 Opis działania urządzenia W ramach projektu skonstruowano urządzenie pozwalające na granie

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowanie mikrokontrolerów AVR z rodziny ATmega. Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

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

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Systemy Czasu Rzeczywistego Programowanie wyświetlacza graficznego LCD laboratorium: 01 autor: mgr inż. Paweł Pławiak

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

SPRAWOZDANIE. Architektura systemów komputerowych projekt robota W Y K O N A N I E :

SPRAWOZDANIE. Architektura systemów komputerowych projekt robota W Y K O N A N I E : Grupa I5a (poniedziałek godz. 8:00) Poznań dn. 08.06.2008r. SPRAWOZDANIE Architektura systemów komputerowych projekt robota W Y K O N A N I E : Tomasz Stróżyk 80150 Kamil Piska 80125 Paweł Skrzypek 80144

Bardziej szczegółowo

XII. Warunek wielokrotnego wyboru switch... case

XII. Warunek wielokrotnego wyboru switch... case XII. Warunek wielokrotnego wyboru switch... case 12.1. Gdy mamy więcej niŝ dwie moŝliwości Do tej pory poznaliśmy warunek if... else... Po co nam kolejny? Trudno powiedzieć, ale na pewno nie po to, Ŝeby

Bardziej szczegółowo

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja

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

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt

Bardziej szczegółowo

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

Bardziej szczegółowo

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

Prosty system alarmowy z Arduino

Prosty system alarmowy z Arduino W tym opracowaniu chcemy zaproponować skonstruowanie prostego urządzenia, które chciałby posiadać każdy tajny agent lub detektyw, a mianowicie prosty system alarmowy, który będzie się uruchamiał, gdy detektor

Bardziej szczegółowo

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja Opis zagadnieo 1-3 Iteracja, rekurencja i ich realizacja Iteracja Iteracja to czynnośd powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa

Bardziej szczegółowo

Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI MMI 2G. Spis treści

Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI MMI 2G. Spis treści JMC-03 Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI MMI 2G Spis treści 1. 2. 3. 4. 5. 6. WSTĘP... URUCHOMIENIE... OBSŁUGA TV... OBSŁUGA ODTWARZACZA AUDIO/VIDEO... USTAWIENIA PARAMETRÓW...

Bardziej szczegółowo

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Nazwa implementacji: Gra w życie Autor: Piotr Fiorek Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Zaprojektuj prostą grę, której celem

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=

Bardziej szczegółowo

Układy Cyfrowe. Specyfikacja wstępna Zebranie informacji dotyczących tematyki projektu oraz przedstawienie koncepcji realizacji projektu.

Układy Cyfrowe. Specyfikacja wstępna Zebranie informacji dotyczących tematyki projektu oraz przedstawienie koncepcji realizacji projektu. Układy Cyfrowe Specyfikacja wstępna Zebranie informacji dotyczących tematyki projektu oraz przedstawienie koncepcji realizacji projektu Projekt: Realizacja: Emil Rosłanowski Adrian Staniec Michał Waśkiewicz

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska nrf24l01 transmisja w trybie Shockburst W tym trybie ramka ma prostą strukturę: Zakończona jest opcjonalnym polem kontrolnym, które obsługiwane

Bardziej szczegółowo

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0. Podstawowe funkcje sterowania pinami cyfrowymi pinmode(8, OUTPUT); //ustawienie końcówki jako wyjście pinmode(8, INPUT); // ustawienie końcówki jako wejście pinmode(8, INPUT_PULLUP); // ustawienie końcówki

Bardziej szczegółowo

Systemy Wbudowane. Arduino, AVR (wersja 2019) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

Systemy Wbudowane. Arduino, AVR (wersja 2019) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler Mikrokontroler Platforma Mikrokontroler AVR Uno Systemy Wbudowane IDE: Środowisko Preprocesor kodu Terminal Uruchamianie, AVR (wersja 09) mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział Inżynierii

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

Systemy Wbudowane. Arduino, AVR (wersja 2018) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

Systemy Wbudowane. Arduino, AVR (wersja 2018) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler Mikrokontroler Platforma Mikrokontroler AVR Uno Systemy Wbudowane IDE: Środowisko Preprocesor kodu Terminal Uruchamianie, AVR (wersja 018) mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział

Bardziej szczegółowo

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

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

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

Budowa i generowanie planszy

Budowa i generowanie planszy Gra Saper została napisana w. Jest dostępna w każdej wersji systemu Windows. Polega na odkrywaniu zaminowanej planszy tak, aby nie trafić na minę. Gra działa na bardzo prostej zasadzie i nie wymaga zaawansowanego

Bardziej szczegółowo

Kontrola przebiegu programu

Kontrola przebiegu programu Kontrola przebiegu programu Wykład 9 Instrukcje sterujące: pętle rozgałęzienia skoki PRZYPOMINAJKA Zadanie : Zaprojektuj rekurencyjny przepis na wyznaczenie największej takiej liczby m, że 2 m jest podzielnikiem

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Pętla while Pętla while Pętla

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

Systemy Wbudowane. Arduino, AVR (wersja ) Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler

Systemy Wbudowane. Arduino, AVR (wersja ) Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler Mikrokontroler Platforma Systemy Wbudowane IDE:, AVR (wersja 016-0) mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków Mikrokontroler

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Pytania dla języka C++

Pytania dla języka C++ XIV OIJ, zawody I stopnia, tura testowa 16 września 2019 13 stycznia 2020 Poniżej znajdują się pytania testowe z zawodów I stopnia XIV Olimpiady Informatycznej Juniorów () na teście wiedzy (do rozwiązania

Bardziej szczegółowo

Łukasz Wieczorek 75971 Paweł Zaleski 75975 Grupa I3 [REFLEKSOMETR] Systemy wbudowane projekt laboratoryjny.

Łukasz Wieczorek 75971 Paweł Zaleski 75975 Grupa I3 [REFLEKSOMETR] Systemy wbudowane projekt laboratoryjny. 2008 Łukasz Wieczorek 75971 Paweł Zaleski 75975 Grupa I3 [REFLEKSOMETR] Systemy wbudowane projekt laboratoryjny. Spis treści 1 OPIS PROJEKTU... 3 2 UKŁAD ELEKTRONICZNY... 4 2.1 SCHEMAT UKŁADU... 4 2.2

Bardziej szczegółowo

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Platforma.NET. Laboratorium nr 1 Podstawy języka C# Platforma.NET Laboratorium nr 1 Podstawy języka C# Ćwiczenie 1 1. Utwórz nowy projekt a. Z menu File wybierz New/Project b. W oknie dialogowym New Project określ następujące właściwości: typu projektu:

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

Bardziej szczegółowo

Język C zajęcia nr 5

Język C zajęcia nr 5 Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego

Bardziej szczegółowo

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3.

Problem Próby rozwiązania Maszyna stanów Inne zastosowania Podsumowanie. Maszyny stanów. Programowanie gier bez Unity, cz. 3. Maszyny stanów Programowanie gier bez Unity, cz. 3 Piotr Korgul Koło Naukowe Twórców Gier Polygon 3 grudnia 2014 r. Cykl Programowanie gier bez Unity 1 Jak zorganizować prace nad grą? 2 Jak działa gra?

Bardziej szczegółowo

INSTRUKCJE REPETYCYJNE PĘTLE

INSTRUKCJE REPETYCYJNE PĘTLE INSTRUKCJE REPETYCYJNE PĘTLE Pętla while( ) while ( wyrażenie ) instrukcja; while ( wyrażenie ) instrukcja_1; instrukcja_2;... instrukcja_n; Pętla wykonywana jest tak długo jak wartość wyrażenie jest różna

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

6 ARDUINO DLA POCZĄTKUJĄCYCH. PODSTAWY I SZKICE

6 ARDUINO DLA POCZĄTKUJĄCYCH. PODSTAWY I SZKICE Spis treści O autorze... 9 Podziękowania... 10 Wstęp... 11 Czym jest Arduino?... 11 Co będzie potrzebne?... 12 Korzystanie z niniejszej książki... 12 Pomoce... 13 Rozdział 1. Oto Arduino... 15 Mikrokontrolery...

Bardziej szczegółowo

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio. Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio. IComsat jest to shield GSM/GPRS współpracujący z Arduino oparty o moduł SIM900 firmy SIMCOM.

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Instytut Informatyki Politechnika Poznańska Oprac. na podst. : Potocki L., Elektronika dla Wszystkich, 2002 Program wg: Simon Monk, https://learn.adafruit.com/downloads/pdf/adafruitarduino-lesson-16-stepper-motors.pdf

Bardziej szczegółowo

INSTRUKCJE REPETYCYJNE PĘTLE

INSTRUKCJE REPETYCYJNE PĘTLE INSTRUKCJE REPETYCYJNE PĘTLE Pętla while( ): while ( wyrażenie ) instrukcja; while ( wyrażenie ) instrukcja_1; instrukcja_2;... instrukcja_n; Pętla wykonywana jest tak długo jak wartość wyrażenie jest

Bardziej szczegółowo

Wykład 1

Wykład 1 Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego

Bardziej szczegółowo

int tab_a [ 2 ] [ 3 ];

int tab_a [ 2 ] [ 3 ]; // PROGRAM 4_1 - Przyklady dynamicznego tworzenia // i usuwania tablicy dwuwymiarowej int [2][3] #include void main(void) //------------------------------ Przyklad A -------------------------------------------

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Pages Celem ćwiczenia jest zbudowanie kilku prostych stron internetowych z użyciem technologii JSP. Podczas ćwiczenia wykorzystany zostanie algorytm sortowania bąbelkowego

Bardziej szczegółowo

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C: Mikrokontroler Platforma Systemy Wbudowane IDE:, AVR mgr inż. Marek Wilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków Mikrokontroler AVR Uno Środowisko Terminal Uruchamianie http://home.agh.edu.pl/~mwilkus

Bardziej szczegółowo

Instrukcje sterujące. Programowanie Proceduralne 1

Instrukcje sterujące. Programowanie Proceduralne 1 Instrukcje sterujące Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne * mnożenie x * y x y x / dzielenie x / y y + dodawanie x +

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

Bardziej szczegółowo

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie

Bardziej szczegółowo

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A

Bardziej szczegółowo

Języki programowania - podstawy

Języki programowania - podstawy Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania

Bardziej szczegółowo

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy. 12. Rekurencja. Funkcja rekurencyjna funkcja, która wywołuje samą siebie. Naturalne postępowanie: np. zbierając rozsypane pionki do gry podnosi się zwykle pierwszy, a potem zbiera się resztę w ten sam

Bardziej szczegółowo

Wykład 9 2014-06-20 09:37 PP2_W9

Wykład 9 2014-06-20 09:37 PP2_W9 Wykład 9 Przykłady programów z wykorzystaniem klas - przykład funkcji operatorowych - obiektowa implementacja listy jednokierunkowej kopiowanie obiektów - klasa "latający napis" Pozycjonowanie w plikach

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowanie mikrokontrolerów AVR z rodziny ATmega. Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora

Bardziej szczegółowo

Wstęp do programowania 1

Wstęp do programowania 1 Wstęp do programowania 1 Argumenty funkcji main Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Argumenty funkcji main dwa równoważne sposoby int main(int argc, char*

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard

Bardziej szczegółowo

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody Pomiar odległości z Arduino czujniki, schematy, przykładowe kody W robotyce, mechatronice czy modelarstwie do rozwiązania jest problem pomiaru odległości do czegoś, na przykład do ściany lub do kogoś idącego

Bardziej szczegółowo

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM. Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Właściwości: Nadajnik pilot MX804 zasilanie pilota bateria L1028 23A 12V Napięcie zasilające 3V do 12 V Pobierany

Bardziej szczegółowo

dr Gabriela Omiecińska pokój 274 piątek: sobota PDF stworzony przez wersję demonstracyjną pdffactory

dr Gabriela Omiecińska pokój 274 piątek: sobota PDF stworzony przez wersję demonstracyjną pdffactory dr Gabriela Omiecińska pokój 274 piątek: 11.30-12.15 sobota 13-13.45 Literatura J. Grębosz- Symfonia C++ standard. S. Prata Szkoła programowania, Język C++ (wydanie V). S. Lippman, J. Lajoie Podstawy języka

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI RNS-E. Spis treści

INSTRUKCJA OBSŁUGI RNS-E. Spis treści JMC-03 Model: JMC-03_RNS-E TV DVB-T for CAR INSTRUKCJA OBSŁUGI RNS-E Spis treści 1 WSTĘP 2 2 URUCHOMIENIE 2 3 OBSŁUGA TV 3 Wybór i przełączanie stacji TV 3 Informacji o programach [EPG] 3 Wyszukiwanie

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

DYNAMICZNE PRZYDZIELANIE PAMIECI DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne

Bardziej szczegółowo

Język C - podstawowe informacje

Język C - podstawowe informacje Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły

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

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

Wykład 5: Więcej o Klasach i Metodach

Wykład 5: Więcej o Klasach i Metodach Wykład 5: Więcej o Klasach i Metodach Przeciążanie Metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą

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

Piotr Rzeszut Arduino Każdy może zostać elektronikiem. Obsługa kart pamięci i generowanie dźwięku przy pomocy modułu ARD WAV Shield

Piotr Rzeszut Arduino Każdy może zostać elektronikiem. Obsługa kart pamięci i generowanie dźwięku przy pomocy modułu ARD WAV Shield Obsługa kart pamięci i generowanie dźwięku przy pomocy modułu ARD WAV Shield 1 Wstęp Dzisiejszy wykład postanowiłem podzielić na 2 bloki, bo choć cały czas będziemy korzystać z modułu Wav Shield, to zrealizujemy

Bardziej szczegółowo

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych SCENARIUSZ 13. GRA REWOLWEROWIEC scenariusz zajęć pozalekcyjnych autor: Wojciech Karcz

Bardziej szczegółowo

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 3 Konstrukcje sterujące Krzysztof Banaś Podstawy programowania 1 Kod źródłowy i wykonanie programu Kod źródłowy w języku programowania zawiera przepis wykonania programu

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 3 Instrukcje wyboru 1 INSTRUKCJE WYBORU Instrukcje sterujące to takie instrukcje, które sterują przebiegiem programu w zależności od spełnienia

Bardziej szczegółowo

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie

Bardziej szczegółowo

Języki programowania obiektowego Nieobiektowe elementy języka C++

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Instrukcje sterujące wykonaniem programu, przykłady wykorzystania

Bardziej szczegółowo

Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI RNS 510. Spis treści

Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI RNS 510. Spis treści JMC-0 Model: JMC-0_V2.2_RNS10 TV DVB-T for CAR INSTRUKCJA OBSŁUGI RNS 10 Spis treści 1. WSTĘP... 2. URUCHOMIENIE.... OBSŁUGA TV... Wybór i przełączanie stacji TV... Właczanie informacji o programach [EPG]...

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 3 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości

Bardziej szczegółowo