Programowanie w C Biblioteka grafiki winbgim i tworzenie obiektów graficznych
|
|
- Damian Kuczyński
- 7 lat temu
- Przeglądów:
Transkrypt
1 Programowanie w C Biblioteka grafiki winbgim i tworzenie obiektów graficznych Artur Opaliński (pokój E112) (p.wykład administracyjny) URL: (p.wykład administracyjny)
2 Treść wykładu Biblioteka winbgim Od C do C++ Otwieranie i wymiary okna graficznego Tworzenie i usuwanie graficznego Elementu prostego Elementu złożonego Z elementów prostych Z użyciem mapy Jako wielokąta Jako obrazu z pliku 2
3 Support for Yoda Master Slajdy nie były przygotowane z myślą o samodzielnej nauce. Przyjdź na wykład, żeby je lepiej zrozumieć! Zdobądź punkty bonusowe: Korzystając z informacji z wykładu, Internetu, własnych doświadczeń, itp. - opisz myśli z tej prezentacji dokładniej i złóż na Wiki! Zaznacz, które numery slajdów omawiasz 3
4 Biblioteka winbgim Biblioteka winbgim Nie należy do standardu C++ =Może nie być dostępna z każdym kompilatorem C++...jednak do większości kompilatorów istnieją jakieś biblioteki graficzne, o podobnym przeznaczeniu jest wzorowana na bibliotece Borland Graphics Interface Wymaga dodania do środowiska IDE Samej biblioteki, zawierającej m.in. skompilowane funkcje Definicji w pliku nagłówkowym Dość tradycyjna biblioteka... Nie wymaga znajomości programowania obiektowego Nie wprowadza złożonych pojęć Jest niewielka (ok. 100 funkcji) 4
5 Biblioteka winbgim od C do C++ winbgim jest napisana w C++ i tym samym wymaga programowania w C++ Gratuluję znajomości już dwóch języków (C i C++) Język C++ stanowi nadzbiór języka C Programy w C można kompilować jako progr. w C++ - wystarczy użyć kompilatora do C++ Każdy program w C jest programem poprawnym w C++ Oczywiście, program napisany w C jest ubogi - nie korzysta z dodatkowych cech oferowanych przez C++ 5
6 Od C do C++ Na większość platform kompilatory C i C++ są dystrybuowane razem Również kompilatory MinGW w naszym IDE Należy wskazać, którym kompilatorem ma być kompilowany kod źródłowy Najprostszą metodą wskazania jest wybór rozszerzenia nazwy pliku: Kod w pliku z rozszerzeniem *.C jest domyślnie kompilowany przez kompilator C Kod w pliku z rozszerzeniem *.CPP jest domyślnie kompilowany przez kompilator C++ 6
7 Wskazanie kompilatora Kod źródłowy (w dowolnym języku) W pliku o nazwie z rozszerzeniem *.C Kompilator C Kod wykonywalny (maszynowy) W pliku o nazwie z rozszerzeniem *.CPP Kompilator C++ Kod wykonywalny (maszynowy) Kod wykonywalny przeważnie dłuższy; przeważnie dodatkowe Warnings pomagające w kompilacji 7
8 Od C do C++ Stosowanie kompilatora C++ może wymagać pewnych zmian w programie, np: Plik powinien mieć rozszerzenie *.cpp, nie *.c Kompilatory C++ produkują bardziej precyzyjne Warnings Nie można upraszczać definicji main() pomijając jej typ: Poprawne w C: Poprawne w C++: main(){ int main() { /* */ tu kod programu /* */ tu kod programu } return 0; } // mozna pominąć w main() 8
9 Biblioteka winbgim Rozpoczęcie i zakończenie: Zanim program będzie mógł rozpocząć korzystanie z grafiki, musi otworzyć dodatkowe okno graficzne: int maxw, maxh; maxw = getmaxwidth(); maxh = getmaxheight(); initwindow( maxw, maxh ); //jaki szeroki jest ekran? //jaki wysoki jest ekran? //otwórz okno na cały ekran Ekran komputera składa się z punktów, tzw. pikseli, i stąd rozdzielczość, rozmiary, czy współrzędne 9 podawane są jako liczba punktów na ekranie.
10 Test Jak otworzyć okno zajmujące ¼ powierzchni ekranu? a) initwindow( getmaxwidth(), getmaxheight() ); b) initwindow( getmaxwidth()/4, getmaxheight()/4 ); c) initwindow( getmaxwidth()/2, getmaxheight()/2 ); d) initwindow( 1024/2, 768/2 ); 10
11 Test Jak otworzyć okno zajmujące ¼ powierzchni ekranu? a) initwindow( getmaxwidth(), getmaxheight() ); b) initwindow( getmaxwidth()/4, getmaxheight()/4 ); c) initwindow( getmaxwidth()/2, getmaxheight()/2 ); d) initwindow( 1024/2, 768/2 ); Nie wiadomo czy to okno w ogóle zmieści się na ekranie (w niektórych urządzeniach bywają mniejsze ekrany i rozdzielczości) jaką część powierzchni ekranu zajmie okno? 11
12 Biblioteka winbgim Rozpoczęcie i zakończenie: Po zakończeniu korzystania z grafiki, program powinien zamknąć okno graficzne: closegraph(); Nie jest to konieczne przy kończeniu programu wszystkie okna zostaną zamknięte przez system operacyjny Od chwili otwarcia okna graficznego, program ma do dyspozycji (co najmniej) dwa okna! 12 Jak wskazać, gdzie program ma wyświetlić animację?
13 Biblioteka winbgim Funkcje Operacje w oknie tekstowym: printf(), putchar(), puts(), scanf(), itd. z <stdio.h> Operacje w oknie graficznym: getmaxx() //zwraca rozmiar poziomy okna, w punktach getmaxy() //zwraca rozmiar pionowy okna, w punktach putpixel(x,y,kol) //punkt na współrzędnych (x,y) w kolorze o numerze kol getpixel(x,y) //zwraca kolor punktu na współrzędnych (x,y) line(xp,yp,xk,yk) // linia od punktu (xp,yp) do (xk,yx) circle(x,y,r) //koło o środku w (x,y) i promieniu r rectangle(xp,yp,xk,yk) // prostokąt od punktu (xp,yp) do (xk,yx) outtextxy(x,y,"tekst"); // napis tekst od współrzędnych (x,y) 13 getch(); // pobranie kodu klawisza; czeka na wciśnięcie
14 Biblioteka winbgim Test inicjalizacji grafiki Otwarcie okna graficznego wiąże się z tzw. inicjalizacją grafiki Zostaje przydzielona dodatkowo pamięć dla programu Zostają zainicjalizowane zmienne w bibliotece winbgim Żąda się od systemu operacyjnego otwarcia okna graficznego Każdy z powyższych kroków może zawieźć Brak pamięci Niemożliwe otwarcie okna graficznego Inne nieoczekiwane sytuacje Dlatego po zakończeniu działania initwindow() wcale nie należy zakładać w ciemno, ze program może już korzystać z pozostałych funkcji winbgim Skąd program może wiedzieć, czy udało mu się otworzyć okno 14 graficzne?
15 Biblioteka winbgim Test inicjalizacji grafiki #include <graphics.h> #include <stdio.h> int main() { int errorcode; Ten program musi być w pliku z rozszerzeniem nazwy *.CPP initwindow(getmaxwidth()/2, getmaxheight()/2); /* otwar cie okna graficznego */ errorcode = graphresult(); // czy inicjalizacja sie udala? if (errorcode!= grok) { // Inicjalizacja nieudana! :-( printf("blad BGI: %s\n", grapherrormsg(errorcode)); printf("wcisnij dowolny klawicz, zeby zakonczyc:"); getch(); } else 15
16 Biblioteka winbgim Test inicjalizacji grafiki (c.d.) { // zadziałało else, czyli inicjalizacja sie udala! :-) line(0, 0, getmaxx(), getmaxy()); //narysuj linie outtextxy(0,0," Udało się, widzisz grafikę!"); getch(); closegraph(); //zamknij okno graficzne } } 16
17 Biblioteka winbgim Test inicjalizacji grafiki (c.d.) Przydatne elementy podczas testu inicjalizacji grafiki: graphresult() - funkcja winbgim zwracająca liczbe typu int tzw. kod błędu, informujący czy winbgim nie natrafiła na problemy w ostatnio wykonywanej swojej funkcji. Zwrócenie wartości niezerowej oznacza problem. Po odczytaniu kodu błędu wartość przechowywana przez winb- GIm zostaje wyzerowana (wskazując, że wykonanie ostatniej funkcji t.j. graphresult() się powiodło). grapherrormsg() - funkcja winbgim zamieniająca liczbę typu int (kod błędu), podaną jako jej argument, na łańcuch znaków - komunikat w języku angielskim, który opisuje na czym polegał błąd. 17
18 Biblioteka winbgim Test inicjalizacji grafiki (c.d.) Przydatne elementy podczas testu inicjalizacji grafiki: grok stała liczbowa winbgim. Zwrócenie takiej liczby przez graphresult() oznaczająca brak problemów w winbgim. Jest zdefiniowana w graphics.h jako zero: # define grok 0 exit() - standardowa funkcja języka C/C++. Jej deklaracja jest jednak dołączana poprzez #include zawarte w pliku graphics.h nie trzeba zatem dodawać we własnym kodzie #include <stdlib.h>. Natrafienie na nią w programie oznacza natychmiastowe zakończenie całego programu. Wartość int przekazana jej jako argument jest wówczas wartością zwracaną przez cały program; zwyczajowo wartość niezerowa 18 oznacza błąd, ale w naszym projekcie nie gra ona roli.
19 Funkcja pomocnicza W dalszych przykładach dla uproszczenia będzie wykorzystywana funkcja: #include <graphics.h> #include <stdio.h> void initgrafiki(unsigned int x, unsigned int y) { int errorcode; initwindow(x, y); // proba otwar cia okna graficznego errorcode = graphresult(); // czy inicjalizacja sie udala? if (errorcode!= grok) { // Inicjalizacja nieudana! :-( printf("blad nr %d BGI przy otwieraniu okna (%d, %d): %s\n", errorcode, x, y, grapherrormsg(errorcode) ); printf("wcisnij dowolny klawicz, zeby zakonczyc:"); getch(); exit(-1); // zakończ program; koniec zabawy :-( } 19 }
20 TEST: Jakie są możliwe kody błędów winbgim? Jak sprawdzić wszystkie możliwe kody błędów winb- GIm? Czyli: co może w programie pójść nie tak podczas działania winbgim? 20
21 TEST: Jakie są możliwe kody błędów winbgim? Jak sprawdzić wszystkie możliwe kody błędów winb- GIm? Czyli: co może w programie pójść nie tak podczas działania winbgim? Odp 1: Zajrzyj w Internecie do dokumentacji funkcji graphresult() Odp2: Uruchom kod, który wyświetli wszystkie (16) możliwe komunikaty o błędach: #include <graphics.h> #include <stdio.h> int i; initgrafiki(getmaxwidth()/10, getmaxheight()/10); /*malutkie okno; konieczne tylko, żeby zainicjalizować winbgim */ for(i=0; i>-16; i--) 21 printf("%d = %s\n", i, grapherrormsg(i));
22 Biblioteka winbgim Rozmiary ekranu i współrzędne na nim getmaxwidth() Otwarte okno graficzne winbgim getmaxheight() 22
23 Biblioteka winbgim Rozmiary ekranu i współrzędne na nim getmaxwidth() getmaxx() Otwarte okno graficzne winbgim getmaxy() getmaxheight() 23
24 Biblioteka winbgim Rozmiary ekranu i współrzędne na nim Punkt o współrzędnych (0;0) Otwarte okno graficzne winbgim Tak rośnie wartość y Tak rośnie wartość x Punkt o współrzędnych 24 (getmaxx(); getmaxy())
25 WinBGIm: Tworzenie prostego elementu Punkt #include <graphics.h> #include <stdio.h> Pierwszy argument to współrzędna x; drugi argument to współrzędna y, trzeci argument to kolor. Nazwy stałych liczbowych do oznaczenia kolorów patrz dokumentacja winbgim initgrafiki(getmaxwidth()/3, getmaxheight()/3); putpixel(5,15,white); /* ten punkt będzie blisko lewego górnego narożnika okna */ putpixel(getmaxx()-5,getmaxy()-15,yellow); /* ten punkt będzie blisko prawego dolnego narożnika okna */ 25
26 WinBGIm: Tworzenie prostego elementu Linie i prostokąty #include <graphics.h> #include <stdio.h> Argument pierwszy i drugi to współrzędne (x,y) jednego końca linii. Argument trzeci i czwarty to współrzędne (x,y) drugiego końca linii. Domyślny kolor rysowania. initgrafiki(getmaxwidth()/3, getmaxheight()/3); line(getmaxx(),0,0,getmaxy()) ;//przekątna od prawego górnego rogu do lewego dolnego */ rectangle(20,20,100,40); //prostokąt poziomy setcolor(green); Zmień domyślny kolor rysowania. //zmiana koloru rectangle(20,50,40,150); //prostokąt pionowy Argument pierwszy i drugi to współrzędne (x,y) lewego górnego narożnika prosto- 26 kąta. Argument trzeci i czwarty to współrzędne (x,y) prawego dolnego narożnika.
27 WinBGIm: Tworzenie prostego elementu Linie i prostokąty (c.d.) Do rysowania linii niekiedy mogą być wygodniejsze funkcje: void linerel (int dx, int dy); void lineto (int x, int y); Ich przeznaczenie doczytaj w dokumentacji winbgim 27
28 WinBGIm: Tworzenie prostego elementu Tekst w oknie graficznym #include <graphics.h> #include <stdio.h> initgrafiki(getmaxwidth()/3, getmaxheight()/3); outtextxy(10,160,"oto tekst"); ; //napis oto tekst Argument pierwszy i drugi to współrzędne (x,y) tekstu, t.j. jego lewego górnego narożnika. Sprawdź w dokumentacji winbgim: Jak zmienić kolor tekstu? Jak zmienić wielkość i krój czcionki? x=10 Jak zmienić kierunek tekstu (np. napisać pionowo) Jak zmienić justyfikację (ang. justify) tekstu? Sprawdź, co będze, gdy tekst nie zmieści się na ekranie lub gdy ma wiele linii y=160 oto tekst 28
29 WinBGIm: Tworzenie prostego elementu Tekst w oknie graficznym Funkcja outtextxy(), oraz podobna do niej outtext() to jedyne funkcje do wyświetlania znaków na ekranie graficznym Jako argument wymagają napisu: albo jako stałej łańcuchowej, albo jaki zmiennej łańcuchowej: x=10; y=160; v=oblicz(); char napis[]="twoja predkosc to:"; outtextxy(x, y, napis); Jak wyświetlić wartość stałej czy zmiennej liczbowej (np. powyżej zmiennej v, opisującej prędkość)? Czyli znaki: 0,1,2,3,4 29
30 Test: Tekst w oknie graficznym x=10; y=160; v=oblicz(); char napis[]="twoja predkosc to:"; outtextxy(x, y, napis); Jak wyświetlić wartość stałej czy zmiennej liczbowej (np. powyżej zmiennej v, opisującej prędkość)? Czyli znaki: 0,1,2,3,...,8,9, może z kropką dziesiętną, może z minusem, może w notacji wykładniczej (np.. 3.4E-10) a) outtext(x,y,v); b) outtext(x,y,"v"); c) outtext(x,y,"\v"); d) outtext(x,y,char(v)); e) outtext(x,y,"%f",v); f) nie ma takiej możliwości 30
31 Test: Tekst w oknie graficznym x=10; y=160; v=oblicz(); char napis[]="twoja predkosc to:"; outtextxy(x, y, napis); Jak wyświetlić wartość stałej czy zmiennej liczbowej (np. powyżej zmiennej v, opisującej prędkość)? Czyli znaki: 0,1,2,3,...,8,9, może z kropką dziesiętną, może z minusem, może w notacji wykładniczej (np.. 3.4E-10) a) outtext(x,y,v); b) outtext(x,y,"v"); c) outtext(x,y,"\v"); d) outtext(x,y,char(v)); e) outtext(x,y,"%f",v); f) nie ma takiej możliwości Biblioteka winbgim drukuje wyłącznie gotowe łańcuchy. Wkrótce poznamy w C/C++ sposób zamiany dowolnej liczby 31 na łańcuch.
32 WinBGIm: Tworzenie prostego elementu Wypełnanie Dotychczas prostokąty były rysowane tylko w postaci boków Żeby wypełnić figurę kolorem: Można ją od razu narysować wypełnioną kolorem Można ją od pokolorować później W każdym wypadku kolorowanie odbędzie się zgodnie z aktualnymi wartościami dwóch wewnętrznych zmiennych winbgim: koloru wypełnienia wzoru wypełnienia 32
33 WinBGIm: Tworzenie prostego elementu Wypełnanie Dotychczas prostokąty były rysowane tylko w postaci boków Żeby wypełnić figurę kolorem: Można ją od razu narysować wypełnioną kolorem Można ją od pokolorować później W każdym wypadku kolorowanie odbędzie się zgodnie z aktualnymi wartościami dwóch wewnętrznych zmiennych winbgim: koloru wypełnienia wzoru wypełnienia 33
34 WinBGIm: Tworzenie prostego elementu Wypełnanie setcolor(green); circle(200, 300, 100); /* narysuj okrąg w kolorze GREEN; niewypelniony */ floodfill (200, 300, GREEN); /* pokoloruj domyślnymi ustawieniami wzoru i koloru wypełnienia wszystkie punkty: --- poczynając od punktu (200, 300) t.j. od środka okręgu, --- aż do natrafienia na kolor GREEN) */ 34
35 WinBGIm: Tworzenie prostego elementu Wypełnanie setcolor(green); circle(200, 300, 100); /* narysuj okrąg w kolorze GREEN; niewypelniony */ setfillstyle(solid_fill, BLUE); /* zmień aktualne ustawienia wzoru i koloru wypełnienia */ floodfill (200, 300, GREEN); /* pokoloruj aktualnymi ustawieniami wzoru i koloru wypełnienia wszystkie punkty: --- poczynając od punktu (200, 300) t.j. od środka okręgu, --- aż do natrafienia na kolor GREEN) */ 35
36 WinBGIm: Tworzenie prostego elementu Wypełnanie setcolor(black); setfillstyle(line_fill, RED); /* zmień aktualne ustawienia wzoru i koloru wypełnienia na wypełnianie czerwonymi liniami*/ fillellipse (100, 200, 50, 50); /* narysuj koło (elipsę o promieniach 50 i 50, i środku w punkcie (100,200)) o obrzeżu czarnym, w aktualnych ustawieniach wypełnienia */ Zachodzące słońce? 36
37 Tworzenie prostego elementu Podsumowanie Tworzenie prostego elementu w trybie graficznym wymaga: Ustalenia współrzędnych, które mieszczą się w otwartym oknie Uwzględnienia przy tym że element ma swoje rozmiary, i zapewne cały ma się mieścić na ekranie Wyboru koloru (zawsze) Wyboru wypełnienia (dla figur innych niż punkt i linia) Oczywiście zawsze najpierw trzeba zainicjalizować okno graficzne 37
38 Tworzenie elementu złożonego Najprostsze tworzenie elementów złożonych to komponowanie ich z elementów prostych Jeżeli komponenty proste będą miały odpowiednio dobrane kolory obwodu, to można łatwiej wypełnić złożony element przez floodfill() Podobnie jak przy otwieraniu okna należy uwzględnić, że ekrany miewają różną rozdzielczość. Najlepiej, żeby wielkość obiektów była zależna od wielkości aktualnie otwartego okna. Współrzędne poszczególnych prostych elementów powinny być sparametryzowane względem wybranego punktu odniesienia (np. środka głowy) jeżeli zmieni się współrzędne głowy, wówczas łatwo przemieścić cała postać 9 prostokątów i jedno koło 38
39 Tworzenie elementu złożonego Jak tworzyć bardziej skomplikowane elementy, złożone z wielu punktów? Skoro można narysować punkt, to w czym problem z wieloma punktami? Rozwiązanie 1: skoro element składa się ze 100 punktów, to założyć zmienne x1..x100 i y1..y100 Wiele punktów, to Wiele np. współrzędnych do przechowywania...które trzeba aktualizować...które trzeba sprawdzać (mieszczą się na ekranie? Czy ich wyświetlenie nie zakryje innego elementu? Rozwiązanie 2: Przechowywać tylko współrzędne jednego narożnika elementu, zaś punkty składowe opisać mapą (tablicą dwuwymiarową) 39
40 Tworzenie elementu złożonego (c.d.) Ustalenie współrzędnych prowadzone tylko dla tego punktu Wszystkie pozostałe punkty elementu wyświetlane są zawsze na tych samych pozycjach względem lewego górnego narożnika Jak długo oba objęte czerwonym kółkiem punkty mieszczą się na ekranie, tak długo widać cały element 40
41 Tworzenie elementu złożonego z użyciem mapy #include <graphics.h> #define POKAZ 1 #define UKRYJ 0 #define SZER 18 #define WYS 22 41
42 Tworzenie elementu złożonego z użyciem mapy (c.d.) void samolot(int x, int y, int widzialny){ int w,k; char rys[wys][szer]={ {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1, 1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1, 1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1, 1,1,1,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1, 1,1,1,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1, 1,1,1,1,1,0,0,0,0}, {0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,0}, {1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1}, {0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,0}, {0,0,0,0,1,1,1,1,1, 1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,1,1,1, 1,1,1,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1, 1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1, 1,1,1,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1, 1,1,1,1,1,0,0,0,0}, {0,0,0,0,1,1,1,1,1, 1,1,1,1,1,0,0,0,0} }; Wartości 0 oznaczają, że dany piksel nie ma być rysowany; wartości 1 że dany piksel ma być rysowany. Ew. zamiast wartości 0 i 1 można podawać numery koloru piksela 42
43 Tworzenie elementu złożonego z użyciem mapy (c.d.) kontynuacja funkcji samolot() rysowanie elementu na pozycjach (w;k) względem lewego górnego narożnika (x;y): for(w=0;w<wys;w++) for(k=0;k<szer;k++) if(widzialny) { if(rys[w][k]==1) // jak uzyskać kolorowy obrazek? putpixel(x+k,y+w, YELLOW); } else { if(rys[w][k]==1) putpixel(x+k,y+w, BLACK); } } 43
44 Tworzenie elementu złożonego, z użyciem mapy: wady Powolność wywołanie funkcji samolot()...rysuje SZER*WYS punktów Oko ludzkie rejestruje momenty na ekranie, gdy element nie jest w całości narysowany Rozwiązania: Przyspieszyć realizację funkcji samolot()? Jak? :-( Zmniejszyć ilość punktów do rysowania np. zauwazyć, że w kolejnej klatce większość punktów i tak zostanie narysowanych tam, gdzie (inne) punkty były w poprzedniej klatce Zastosować szybszy język programowania Funkcje winbgim są częściowo napisane w assemblerze, i dobrze zoptymalizowane 44
45 Tworzenie elementu złożonego jako wielokąta: fillpolly() Funkcja fillpoly() o nagłówku: void fillpoly (int numpoints, int polypoints[] )...rysuje dowolny wielokąt (=dowolny kształt), i zamalowuje jego wnętrze Działa bardzo szybko, mimo że rysuje wiele punktów Parametr numpoints podaje, z ilu wierzchołków składa się wielokąt Parametr polypoints[] to tablica liczb int, zawierająca współrzędne wierzchołków w postaci: {x1,y1, x2,y2, x3,y3,...} Współrzędne (x,y) pierwszego punktu, współrzędne (x,y) drugiego punktu, itd.. 45
46 Tworzenie elementu złożonego jako wielokąta: fillpolly(), c.d. Przed fillpoly() wcześniej warto wskazać kolor, oraz linię obwodu, oraz sposób wypełnienia: Nagłówek funkcji do ustawienia koloru linii obwodu: void setcolor(int color) Nazwa: setcolor() Nic nie zwraca Pobiera jeden parametr: liczbę określającą numer koloru Nagłówek funkcji do ustawienia stylu linii obwodu: void setlinestyle (int linestyle, unsigned upattern, int thickness) Nazwa: setlinestyle(); Nic nie zwraca linestyle to np. SOLID_LINE, wówczas upattern jest pomijany (można podać dowolną wartość) thickness to NORM_WIDTH (1 pixel) lub THICK_WIDTH (3 pixele) 46
47 Tworzenie elementu złożonego jako wielokąta: fillpolly(), c.d. Nagłówek funkcji do ustawienia stylu wypełnienia wielokąta: void setfillstyle (int pattern, int color); Nazwa: setfillstyle() Nic nie zwraca Parametr pattern określa szraf, np. SOLID_FILL Parametr color to numer koloru (np. YELLOW) 47
48 Tworzenie elementu złożonego jako wielokąta (DEMO) #include <graphics.h> #define WIERZCHOLKI 3 int obrys[wierzcholki*2]={ /*Trójkat równoramienny. Każdy wierzchołek ma 2 współrzędne */ 10,0, 0,20, 20,20 }; setlinestyle(solid_line,0,norm_width); /* obwód linią ciągłą, normalnej szerokości */ setcolor(black); // czarny kolor linii obwodu setfillstyle(solid_fill, YELLOW); // wypełnienie żółte fillpoly(wierzcholki, obrys); //narysuj wypełniony wielokąt 48
49 Tworzenie elementu złożonego jako wielokąta (DEMO) Niezamalowany wielokąt można utworzyć funkcją o nagłówku: void drawpoly (int numpoints, int polypoints[]) Taki wielokąt może być wypełniony kolorem i szrafem w dowolnym momencie. Szczegóły w dokumentacji wingbim 49
50 Tworzenie elementu złożonego jako obrazu Biblioteka wingbim pozwala wyświetlić jako element gotowy obraz Z pliku Z pamięci komputera Do wyświetlenia obrazu z pliku służy funkcja o nagłówku: void readimagefile( const char* filename, int left, int top, int right, int bottom ) Szczegóły w dokumentacji winbgim 50
51 Tworzenie elementu złożonego jako obrazu Do manipulowania obrazami w pamięci komputera służą funkcje o nagłówkach: unsigned imagesize (int left, int top, int right, int bottom); Podaje, ile miejsca przygotować w pamięci na zadany fragment obrazu pobrany z ekranu komputera void getimage (int left, int top, int right, int bottom, void bitmap[]); Kopiuje do zadanego miejsca w pamięci zadany fragment obrazu, pobrany z ekranu komputera void putimage(int left, int top, void bitmap[], int op); Przenosi obraz z pamięci na ekran, i nakłada go na istniejący w tym miejscu obraz zgodnie z operacją op 51
52 Usuwanie elementu graficznego Tło jednolite Główną metodą usunięcia elementy graficznego z ekrany jest zamalowanie go w kolorze tła Np. na jednolitym, czarnym tle można wyświetlić elementy: putpixel(a,b,white); //współrzędne a,b powinny mieścić się na ekranie setcolor(white); //wybierz kolor do rysowania okręgu poniżej circle(x,y,r); //zmienne x,y,r powinny zapewniać zmieszczenie elementu na ekranie...i usunąć te elementy, poprzez narysowanie ich w tym samym miejscu, w kolorze tła: putpixel(a,b,black); // jeśli tło było czarne element zniknie setcolor(black); circle(x,y,r); // jeśli tło było czarne element zniknie 52
53 Usuwanie elementu graficznego Tło niejednolite W przypadku, gdy tło nie jest jednolite (np. narysowana trawa), trzeba jego poprzednią zawartość - która była w tym miejscy przed narysowaniem nowego elementu - narysować na nowo zamalowując w ten sposób usuwany element Czyli poprzednią zawartość obszaru trzeba zapamiętać, przed narysowaniem elementu To (względnie) łatwe, jeśli ten oobszar to stały element tła, i wiadomo, jak go narysować Jeśli trudno jest odtworzyć tło, przed narysowaniem elementu trzeba zapamiętać obszar, przykrywany przez ten element, np. używając: unsigned int getpixel(int x, int y); void getimage (int left, int top, int right, int bottom, void bitmap[]); 53
54 Co powinienem wiedzieć? Znać podstawowe podobieństwa i róznice przy programowaniu w C i C++ Znać podstawowe funkcje do tworzenia i zamykania okna grafiki w winbgim Znać podstawowe funkcje wykorzystujące okno grafiki Umieć tworzyć proste obiekty graficzne Umieć tworzyć złożone obiekty graficzne, Z elementów prostych Opisane mapą punktów Opisane jako wielokąt (wierzchołkami) Umieć sprawdzić, czy obiekt w całości mieści się na ekranie Umieć odczytywać podstawowe informacje z prototypów funkcji Znać sposoby wypełniania obiektów kolorem i szrafem 54 Rozumieć problem usuwania obiektów graficznych
Instrukcja instalacji winbgim
Instrukcja instalacji winbgim 1. Przegląd instalacji Instalacja winbgim polega na przekopiowaniu w odpowiednie miejsca dwóch plików: pliku biblioteki, zawierającego m.in. skompilowane funkcje (libbgi.a),
Wykład VII PASCAL - grafika;
Podstawy programowania Wykład VII PASCAL - grafika; 1 Procedura InitGraph() InitGraph ( var sterownik,tryb:integer; katalog:string ); biblioteka: GRAPH Służy do włączenia trybu graficznego. Możliwe sterowniki
Kod źródłowy programu: program Grafika1; uses crt, graph; (1) var sterownik, tryb:smallint; (2)
Grafika w Pascalu. Do tej pory, tworząc programy w Pascalu, wykorzystywaliśmy jedynie tryb tekstowy. Jednak Pascal, tak jak i inne języki programowania, umoŝliwia korzystanie równieŝ z trybu graficznego.
Programowanie w C Wartości pseudolosowe i pomiar czasu
Programowanie w C Wartości pseudolosowe i pomiar czasu Artur Opaliński (pokój E112) e-mail: (p. wykład administracyjny) URL: (p. wykład administracyjny) Treść wykładu Generowanie wartości losowych Wartości
Pascal - grafika. Uruchomienie trybu graficznego. Moduł graph. Domyślny tryb graficzny
Moduł graph Pascal - grafika Pascal zawiera standardowy moduł do tworzenia obiektów graficznych linii, punktów, figur geometrycznych itp. Chcąc go użyć należy w programie (w nagłówku) wstawić deklarację:
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
Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.
Przyszedł czas na rysowanie własnych figur, czyli prymitywy, obracanie bitmap, oraz alpha blending-czyli półprzezroczystość. Będę opisywał tylko rzeczy nowe-nie ma potrzeby abym się powtarzał. Zaczynajmny
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.
Elementy programu Paint Aby otworzyć program Paint, należy kliknąć przycisk Start i Paint., Wszystkie programy, Akcesoria Po uruchomieniu programu Paint jest wyświetlane okno, które jest w większej części
Moduł graph w Pascalu
Moduł graph w Pascalu Wykład: uses graph, InitGraph, Detect, SetGraphMode, kolory, wypełnienia, linie, SetFillStyle, FloodFill, SetLineStyle, SetTextStyle, OutTextXY, SetTextJustify, GetMaxX, ClearDevice,
Szybkie tworzenie grafiki w GcIde
Szybkie tworzenie grafiki w GcIde Opracował: Ryszard Olchawa Poniższy opis dotyczy aplikacji okienkowej w systemie Windows lub Linux bazującej na obiektowej bibliotece rofrm stworzonej w środowisku GcIde.
// Potrzebne do memset oraz memcpy, czyli kopiowania bloków
ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using
Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup
Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie
Okna i liczby pseudolosowe
8.1. Okno graficzne ViewPort Zacznijmy od rzutu oka na tabelkę graficznych funkcji i procedur bibliotecznych. Znajduje się tam procedura graficzna SetViewPort(), która służy do tworzenia okien graficznych
Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Obsługa obrazków w PHP Wprowadzenie Tworzenie i niszczenie obrazka Kolory Funkcje od obsługi obrazków - 1 - Wprowadzenie Przygotowanie
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Rysowanie punktów na powierzchni graficznej
Rysowanie punktów na powierzchni graficznej Tworzenie biblioteki rozpoczniemy od podstawowej funkcji graficznej gfxplot() - rysowania pojedynczego punktu na zadanych współrzędnych i o zadanym kolorze RGB.
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
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,
Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp
Cykl lekcji informatyki w klasie IV szkoły podstawowej Wstęp Poniżej przedstawiam cykl początkowych lekcji informatyki poświęconym programowi Paint. Nie są to scenariusze lekcji, lecz coś w rodzaju kart
GRAFIKA PROGRAMOWANA W PASCALU ==================================
GRAFIKA PROGRAMOWANA Cg to kompletne środowisko programistyczne do szybkiego tworzenia efektów specjalnych i grafiki o kinowej jakości w czasie rzeczywistym dla wielu platform. Ponieważ język jest niezależny
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ę
Pokaz slajdów na stronie internetowej
Pokaz slajdów na stronie internetowej... 1 Podpisy pod zdjęciami... 3 Publikacja pokazu slajdów w Internecie... 4 Generator strony Uczelni... 4 Funkcje dla zaawansowanych użytkowników... 5 Zmiana kolorów
TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;
Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst
P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe
Pakiet crt zawiera procedury i funkcje, które pozwalają na sterowanie trybem ekranu, kolorami, oknami i dźwiękiem. Opisy procedur są zawarte w pliku pomocy, można je wyświetlić z menu Help Standard units
Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy.
Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy. #include #include #include #include
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
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
W zależności od posiadanej karty, różna może być rozdzielczość i liczba kolorów. Schemat programu. zainicjowanie grafiki. operacje w trybie graficznym
GRAFIKA Moduł graphicsh zawiera funkcje umożliwiające: obsługę kart graficznych wybór i zmianę trybu graficznego rysowanie różnych figur geometrycznych z zastosowaniem linii o różnej grubości i fakturze
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Tematy lekcji informatyki klasa 4a styczeń 2013
Tematy lekcji informatyki klasa 4a styczeń 2013 temat 7. z podręcznika (str. 70-72); sztuczki 4. i 5. (str. 78); Narysuj ikony narzędzi do zaznaczania i opisz je. 19 Zaznaczamy fragment rysunku i przenosimy
Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.
Programowanie Wizualno-Obiektowe (studia zaoczne - inżynieria komputerowa) Zajęcia z Delphi 5, program 1 Temat: Zadanie: Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków
Praktyka programowania projekt
Praktyka programowania projekt Zadanie projektowe nr. 2 Gra PacMan K. M. Ocetkiewicz, T Goluch 19 listopada 2012 Plan prezentacji Opis 2 zadania projektowego Plan prezentacji Opis 2 zadania projektowego
Programowanie w językach wysokiego poziomu
Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie
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
int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania
Rok akademicki 2013/2014, Pracownia nr 10 2/20 Informatyka 1 Tablica elementów ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu Politechnika Białostocka - Wydział Elektryczny Elektrotechnika,
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
TWORZENIE OBIEKTÓW GRAFICZNYCH
R O Z D Z I A Ł 2 TWORZENIE OBIEKTÓW GRAFICZNYCH Rozdział ten poświęcony będzie dokładnemu wyjaśnieniu, w jaki sposób działają polecenia służące do rysowania różnych obiektów oraz jak z nich korzystać.
Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum
Grażyna Koba Grafika komputerowa materiały dodatkowe do podręcznika Informatyka dla gimnazjum Rysunki i animacje w Edytorze postaci 1. Rysunek w Edytorze postaci Edytor postaci (rys. 1.) jest częścią programu
ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 4 : Napisy. Tablice dwuwymiarowe. Formaty
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
C Biblioteka G2. C.1 Koncepcja biblioteki G2.
C Biblioteka G2. J a c e k Ta r a s i u k C.1 Koncepcja biblioteki G2. Biblioteka graficzna G2 umożliwia tworzenie rysunków 2D z wykorzystaniem prostych funkcji rysujących. Niezwykle użyteczną cechą biblioteki
Tworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD
Wizualne systemy programowania Wykład 11 Grafika 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Grafika GDI+ GDI+ - Graphics Device Interface jeden z trzech podstawowych komponentów
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
Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA
Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,
Utworzenie pliku. Dowiesz się:
Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program
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
utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.
Spis treści: 1 Podstawy pracy z aplikacją... 2 1.1 Układ strony... 2 strona 1 z 7 1 Podstawy pracy z aplikacją InDesign jest następcą starzejącego się PageMakera. Pod wieloma względami jest do niego bardzo
8. Dynamiczne generowanie grafiki, cz. 2
8. Dynamiczne generowanie grafiki, cz. 2 8.1. Generowanie tekstu Chociaż tekst można umieścić na grafice korzystając z HTML (używając grafiki jako tła obiektu), często wygodniej jest umieścić tekst bezpośrednio
KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012
Rysowanie precyzyjne 7 W ćwiczeniu tym pokazane zostaną wybrane techniki bardzo dokładnego rysowania obiektów w programie AutoCAD 2012, między innymi wykorzystanie punktów charakterystycznych. Narysować
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
IX. Wskaźniki.(3 godz.)
Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje
3.4. Opis konfiguracji layoutów.
Definicja layout-ów dla tablicy odczytywana jest z tabeli w bazie danych: [UnitId_System] Gdańsk = 42, Gdynia = 43 [UnitId_Subsytem] 6 = TZT, 7 = ZZT [UnitId_Unit] identyfikator obiektu [Update_TimeStamp]
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
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
Wprowadzenie do rysowania w 3D. Praca w środowisku 3D
Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać
Tablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Obsługa programu Paint. mgr Katarzyna Paliwoda
Obsługa programu Paint. mgr Katarzyna Paliwoda Podstawowo program mieści się w Systemie a dojście do niego odbywa się przez polecenia: Start- Wszystkie programy - Akcesoria - Paint. Program otwiera się
POMOC / INSTRUKCJA OBSŁUGI
POMOC / INSTRUKCJA OBSŁUGI 1. Powiększanie mapy 2. Plakat 3. Schemat lekcji 4. Broszura informacyjna 5. Instrukcja obsługi Pasek narzędzi i menu wyboru Zmiana skali mapy Mini mapa - podgląd na położenie
Informatyka I : Tworzenie projektu
Tworzenie nowego projektu w programie Microsoft Visual Studio 2013 Instrukcja opisuje w jaki sposób stworzyć projekt wykorzystujący bibliotekę winbgi2 w programie Microsoft Visual Studio 2013. 1. Otwórz
3. Instrukcje warunkowe
. Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include
7. Dynamiczne generowanie grafiki
7. Dynamiczne generowanie grafiki 7.1. Biblioteka GD Dynamiczne generowanie kodu HTML to podstawowe zastosowanie języka PHP. Często jednak to nie wystarczy i mieszanka: dynamiczny HTML plus statyczna grafika,
Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2
Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2 1 Program nauczania. Przedmiotowy system oceniania. Regulamin pracowni komputerowej. - 7 punktów regulaminu potrafi powiedzieć, czego się będzie
Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.
Dokumentacja dla Scandroid. Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Scandroid to aplikacja przeznaczona
#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,
WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy zmiennych języka C++ Nazwa typu (nazwa skrócona) Rozmiar (bajtów) unsigned char 1 signed char (char) unsigned short int (unsigned) signed short int (int)
Microsoft Small Basic
Microsoft Small Basic Okno grafiki Szacowany czas trwania lekcji: 1 godzina Okno grafiki Podczas tej lekcji uzyskasz informacje na temat: Instrukcji używających obiektu GraphicsWindow. Właściwości obiektu
OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres: Funkcje czyli wieloużywalność kodu Omówienie przekazywania argumentów: "przez
tablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
1 Wstęp teoretyczny. Temat: Obcinanie odcinków do prostokąta. Grafika komputerowa 2D. Instrukcja laboratoryjna Prostokąt obcinający
Instrukcja laboratoryjna 3 Grafika komputerowa 2D Temat: Obcinanie odcinków do prostokąta Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1
Zmienne i struktury dynamiczne
Zmienne i struktury dynamiczne Zmienne dynamiczne są to zmienne, które tworzymy w trakcie działania programu za pomocą operatora new. Usuwa się je operatorem delete. Czas ich występowania w programie jest
Wstęp. Opis programu :
Wstęp Program komputerowy to ciąg zrozumiałych dla komputera poleceń, każdy program jest napisany w jakimś języku programowania (np. C#, C++, Batch :), Java, Basic, PHP i wiele, wiele innych ). Każdy z
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja
Laboratorium 10: Maszyna stanów
Wojciech Myszka Laboratorium 10: Maszyna stanów 2016-05-07 09:05:39 +0200 1. Wprowadzenie Laboratorium poświęcone jest operacjom na napisach (ciągach znaków). Przypominam, że: a to stała typu char o wartości
Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego
Projekt graficzny z metamorfozą (ćwiczenie dla grup I i II modułowych) Otwórz nowy rysunek. Ustal rozmiar arkusza na A4. Z przybornika wybierz rysowanie elipsy (1). Narysuj okrąg i nadaj mu średnicę 100
ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)
ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) LABORATORIUM 5 - LOKALIZACJA OBIEKTÓW METODĄ HISTOGRAMU KOLORU 1. WYBÓR LOKALIZOWANEGO OBIEKTU Pierwszy etap laboratorium polega na wybraniu lokalizowanego obiektu.
przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,
Baltie Zadanie 1. Budowanie W trybie Budowanie wybuduj domek jak na rysunku. Przedmioty do wybudowania domku weź z banku 0. Zadanie 2. Czarowanie sterowanie i powtarzanie W trybie Czarowanie z pomocą czarodzieja
Biblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Co nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
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,
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ęść
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ą
Praca w środowisku Visual Studio 2008, Visual C
Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Tworzenie aplikacji konsolowych 2 3 Tworzenie nowego projektu aplikacji
Rysowanie precyzyjne. Polecenie:
7 Rysowanie precyzyjne W ćwiczeniu tym pokazane zostaną różne techniki bardzo dokładnego rysowania obiektów w programie AutoCAD 2010, między innymi wykorzystanie punktów charakterystycznych. Z uwagi na
Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++
Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2
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
KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH
Wstęp Ten multimedialny program edukacyjny zawiera zadania konstrukcyjne pozwalające na samodzielne ćwiczenie i sprawdzenie wiadomości w zakresie konstrukcji podstawowych figur geometrycznych. Jest przeznaczony
Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:
Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji
Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9
Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Uruchamianie edytora OpenOffice.ux.pl Writer 9 Dostosowywanie środowiska pracy 11 Menu Widok 14 Ustawienia dokumentu 16 Rozdział 2. OpenOffice
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
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