KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT
|
|
- Feliks Paluch
- 9 lat temu
- Przeglądów:
Transkrypt
1 KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT Temat: Zaimplementować system kryptografii wizualnej Autor: Tomasz Mitręga NSMW Grupa 1 Sekcja 2
2 1. Temat projektu Zrealizować program pozwalający na tworzenie dwóch obrazów które podzielone przypominają szum, a po złożeniu tworzą czytelną wiadomość. Program powinien pozwalać na połączenie obu obrazów w celu odczytania zakodowanej wiadomości. Odczytanie z jednego obrazu nie powinno być możliwe. Dla każdego piksela generowana będzie losowo z prawdopodobieństwem 0,5 jedna z dwóch możliwych jego reprezentacji w bitmapach wyjściowych. Pozwoli to na zagwarantowanie niemożności odczytania ukrytej informacji na podstawie tylko jednej bitmapy. Program powinien przekształcać monochromatyczne pliki map bitowych. 2. Analiza rozwiązania Kryptografia wizualna jest sposobem takiego zakodowania obrazu monochromatycznego lub tekstu aby po podziale obrazu treść w nim zapisana nie była możliwa do odczytania. Po poprawnym połączeniu dwóch obrazów bez większej trudności zawartość dało była zrozumiała. Algorytm zaimplementowany przeze mnie został po raz pierwszy zaprezentowany przez Moni Naor i Adi Shamir na międzynarodowej konferencji EUROCRYPT w 1994 roku. Polega on na podziale obrazu wejściowego na dwa obrazy wyjściowe. Każdy piksel z obrazu źródłowego jest dzielony na 2 subpiksele. Jeśli wybrany piksel w obrazie wejściowym ma kolor biały to zostaje on podzielony na 2 subpiksele i z prawdopodobieństwem 0,5 wybierana jest kombinacja czarnybiały, czarny-biały lub biały-czarny, biały-czarny jeśli jednak piksel jest czarny wybierane są piksele czarny-biały, biały-czarny lub biały-czarny, czarny-biały. Zależności między pikselami przedstawia poniższa tabelka. Pixel Prawdopodobieństwo Piksel w obrazie 1 Piksel w obrazie 2 Piksele po połączeniu P = 0,5 P = 0,5 P = 0,5 P = 0,5 Złączenie obrazów polega na wpisaniu w miejsca białych pikseli z obrazu pierwszego czarnych pikseli z obrazu drugiego.
3 3. Przykład działania programu Na poniższych ilustracjach został przedstawiony program podczas działania. Rysunek 1 Zakodowany rysunek Powyższy rysunek przedstawia oryginalny obraz oraz obrazy utworzone poprzez zastosowanie zaimplementowanego algorytmu.
4 Rysunek 2 Rysunek po odkodowaniu Rysunek 2 przedstawia wygenerowane w poprzednim kroku obrazy po ich połączeniu. W programie mamy możliwość oczyszczenia obrazu ze zbędnych czarnych pikseli, oraz zapisania obrazu wynikowego do pliku. 4. Opis algorytmu Algorytm tworzenia zakodowanych map bitowych. 1 public void makecrypto() 2 { 3 Bitmap b1 = new Bitmap(src.Width + (src.width % 2), src.height); //pierwsza bitmapa wynikowa 4 Bitmap b2 = new Bitmap(src.Width + (src.width % 2), src.height); //druga bitmapa wynikowa 5 Random r = new Random(); // Random słuŝący do losowania liczby 6 int rand = -1; // Losowanie liczby 1 lub 0 z prawdopodobieństwem 1/2 7 this.form.invoke(this.form.startth, null); 8 for (int i = 0; i < src.width; i += 2) //przechodzimy po co drugim pikselu bitmapy Ŝródłowej (szerokość) 9 { 10 for (int j = 0; j < src.height; j++) //przechodzimy po kaŝdym pikselu bitmapy Ŝródłowej (wysokość) 11 { 12 rand = r.next(2); //losujemy liczbę 13 if (src.getpixel(i, j).toargb() == Color.White.ToArgb()) //jeśli pobrany piksel jest biały 14 { 15 if (rand == 0) // w zaleŝności od wylosowanej liczby ustawiamy piksele
5 16 { 17 b1.setpixel(i, j, Color.Black); //w obrazie 1 i na czarny 18 b1.setpixel(i + 1, j, Color.White); //w obrazie 1 i+1 na biały 19 b2.setpixel(i, j, Color.Black); //w obrazie 2 i na czarny 20 b2.setpixel(i + 1, j, Color.White); //w obrazie 2 i+1 na biały 21 } 22 else 23 { 24 b1.setpixel(i, j, Color.White); //w obrazie 1 i na biały 25 b1.setpixel(i + 1, j, Color.Black); //w obrazie 1 i+1 na czarny 26 b2.setpixel(i, j, Color.White); //w obrazie 2 i na biały 27 b2.setpixel(i + 1, j, Color.Black); //w obrazie 2 i+1 na czarny 28 } 29 } 30 else //jeśli piksel w obrazie zródłowym jest czarny 31 { 32 if (rand == 0) //wylosowana liczba jest 0 33 { 34 b1.setpixel(i, j, Color.Black); //w obrazie 1 i na czarny 35 b1.setpixel(i + 1, j, Color.White); //w obrazie 1 i+1 na biały 36 b2.setpixel(i, j, Color.White); //w obrazie 2 i na biały 37 b2.setpixel(i + 1, j, Color.Black); //w obrazie 2 i+1 na czarny 38 } 39 else 40 { 41 b1.setpixel(i, j, Color.White); //w obrazie 1 i na biały 42 b1.setpixel(i + 1, j, Color.Black); //w obrazie 1 i+1 na czarny 43 b2.setpixel(i, j, Color.Black); //w obrazie 2 i na czarny 44 b2.setpixel(i + 1, j, Color.White); //w obrazie 2 i+1 na biały 45 } 46 } 47 } 48 this.form.invoke(form.prg, new Object[] { ((int)(((double)i / (double)(b1.width - 1)) * 100)) }); 49 } 50 this.form.invoke(this.form.endgeneratebitmap, new Object[] { pb1, b1 }); 51 this.form.invoke(this.form.endgeneratebitmap, new Object[] { pb2, b2 }); 52 this.form.invoke(this.form.endth); 53 } W pierwszej kolejności tworzone są dwie puste bitmapy o wysokości takiej jak wejściowa bitmapa oraz szerokości bitmapy wejściowej która została zaokrąglona do parzystości. Następnie tworzony jest obiekt klasy random który będzie służył do losowania 1 lub 0. Ponieważ aplikacja została napisana jako wielowątkowa w następnym kroku informujemy nasz wątek w którym uruchomiana jest aplikacja o rozpoczęciu procesu tworzenia obrazów. W pętlach przechodzimy pożytych pikselach na szerokość obrazu oraz po każdym pikselu na wysokość bitmapy. Jeśli wybrany piksel z obrazu wejściowego ma kolor biały wtedy sprawdzamy która liczba została wylosowana. Jeśli wylosowana liczba to 0 ustawione są piksele czarny i biały w obu obrazach, w przeciwnym wypadku ustawiane są piksele biały i czarny. Jeśli natomiast wybrany piksel w obrazie źródłowym ma inny kolor(czarny) następuje ustawienie piksele w zależności od wylosowanej liczby czarny biały(obraz pierwszy), biały czarny(obraz drugi) lub jeśli zostaje wylosowana jedynka biały czarny(obraz pierwszy),czarny biały(obraz drugi). W czasie działania pętli przy każdym przejściu pętli szerokości następuje przesłanie stanu do wątku głównego. Po zakończeniu algorytmu przesyłamy do wątku głównego dwie wynikowe bitmapy oraz informacje o zakończeniu algorytmu. 1 public void ovarlayimage() 2 { 3 this.form.invoke(this.form.startth, null); 4 for (int i = 0; i < b.width; i++) 5 {
6 6 for (int j = 0; j < b.height; j++) //dla kaŝdego piksela w obrazie 1 7 { 8 if (b.getpixel(i, j) == Color.FromArgb(255, 255, 255, 255)) //sprawdzamy czy kolor aktualnego piksela jest biały 9 { 10 b.setpixel(i, j, b2.getpixel(i, j)); //jeśli tak w jego miejsce wstawiamy piksel z obrazu drugiego 11 } 12 } 13 this.form.invoke(form.prg, new Object[] { ((int)(((double)i / (double)(b.width - 1)) * 100)) }); 14 } 15 this.form.invoke(this.form.endgeneratebitmap, new Object[] { pb, b }); 16 this.form.invoke(this.form.endth); 17 } Dekodowanie obrazu polega na wstawieniu w miejsca białych pikseli w obrazie pierwszym czarnych obrazów z obrazu drugiego. Jednak w celu przyspieszenia w powyższym algorytmie sprawdzamy jedynie czy wybrany piksel jest biały i jeśli tak jest w jego miejsce wstawiany jest piksel z obrazu drugiego. Kod rozpoczyna się od poinformowania wątku głównego o rozpoczęciu, następnie dla każdego piksela wykonywany jest algorytm. Dla każdego piksela na wysokość zostaje obliczony procent postępu. Po zakończeniu algorytmu wykonywana jest metoda endgeneratebitmap która to wyświetla w odpowiednim PictureBox-ie wynikową bitmapę. 1 public void clear() 2 { 3 this.form.invoke(this.form.startth, null); 4 if (b!= null) 5 { 6 Bitmap bw = new Bitmap(b.Width + (b.width % 2), b.height); //wynikowa bitmapa zaokrąglaona do szerokości parzystaj 7 for (int i = 0; i < b.width; i += 2) //tylko parzyste piksele szerokości 8 { 9 for (int j = 0; j < b.height; j++) //wszystkie piksele wysokości 10 { 11 //jeśli wybrany piksel oraz piksel i+1 są czarne w obrazie wynikowym pozostają one czarne 12 if ((b.getpixel(i, j) == Color.FromArgb(255, 0, 0, 0)) && (b.getpixel(i + 1, j) == Color.FromArgb(255, 0, 0, 0))) 13 { 14 bw.setpixel(i, j, Color.FromArgb(255, 0, 0, 0)); 15 bw.setpixel(i + 1, j, Color.FromArgb(255, 0, 0, 0)); 16 } 17 else 18 { 19 //w przeciwnym wypadku zmieniamy ich kolor na biały 20 bw.setpixel(i, j, Color.FromArgb(255, 255, 255, 255)); 21 bw.setpixel(i + 1, j, Color.FromArgb(255, 255, 255, 255)); 22 } 23 } 24 this.form.invoke(form.prg, new Object[] { (int)(((double)i / (double)(b.width - 1)) * 100) }); 25 } 26 this.form.invoke(this.form.endgeneratebitmap, new Object[] { p, bw }); 27 } 28 this.form.invoke(form.endth, null); 29 } Metoda służy do usunięcia zbędnych czarnych pikseli znajdujących się w bitmapie wynikowej. Jeśli piksel parzysty oraz nieparzysty mają kolor czarny oznacza to że należy pozostawić je czarne, w przeciwnym wypadku w bitmapie wynikowej zmieniamy ich kolor na biały.
7 1 public void makebw() 2 { 3 this.form.invoke(this.form.startth, null); 4 if (b!= null) //sprawdzamy czy mamy jakąs bitmape w b 5 { 6 for (int i = 0; i < b.width; i++) //dla wszystkich pikseli w obrazie 7 { 8 for (int j = 0; j < b.height; j++) 9 { 10 if ((b.getpixel(i, j).r > f) (b.getpixel(i, j).g > f) (b.getpixel(i, j).b > f)) //sprawdzamy czy piksel ma którąkolwiek składową większą od f 11 { 12 b.setpixel(i, j, Color.White); //jeśli tak wynikowy kolor ustawiamy na biały 13 } 14 else 15 { 16 b.setpixel(i, j, Color.Black); //w przeciwnym wypadku ustawiony zostaje na czarny 17 } 18 } 19 this.form.invoke(form.prg, new Object[] { (int)(((double)i / (double)(b.width - 1)) * 100) }); 20 } 21 this.form.invoke(this.form.endgeneratebitmap, new Object[] { p, b }); 22 } 23 this.form.invoke(form.endth, null); 24 } Metoda służy do zamieniania obrazów kolorowych na obrazy monochromatyczne. Algorytm działania polega na sprawdzeniu czy którykolwiek ze składowych jest większy od wybranej przez użytkownika wartości f. Jeśli tak w obrazie wyjściowym ustawiany jest piksel o kolorze białym w przeciwnym wypadku ustawiamy kolor czarny. Następnie po zakończeniu algorytmu wyświetlamy wynikową bitmapę w odpowiednim PictureBox-ie. 5. Testowanie oprogramowania Testowanie programu jest utrudnione, ponieważ algorytm wykorzystuje czynnik losowy, dlatego otrzymywane wyniki nigdy nie są takie same. Testowanie rozpoczynamy od sprawdzenia poprawności przekształcenia obrazu kolorowego na obraz monochromatyczny, w tym celu klikamy na przekształć obraz, a następnie wybieramy klikamy otwórz.
8 Bitmapa wejściowa Bitmapa wyjściowa Powyższy obrazek został poprawnie przekształcony. Następnie sprawdzamy poprawność algorytmu kryptografii wizualnej generującego dwie bitmapy wynikowe. Zostały one przedstawione poniżej. Pierwsza bitmapa wynikowa Druga bitmapa wynikowa Niestety z powyższych obrazów trudno cokolwiek odczytać. Jednak po ich nałożeniu na siebie otrzymujemy następujący obraz:
9 Obraz po nałożeniu Obraz po wyczyszczeniu zbędnych czarnych pikseli 6. Wnioski Algorytm wizualnej kryptografii nie okazał się trudny w implementacji, dlatego postanowiłem nieco rozbudować moją aplikację między innymi o możliwość przekształcania obrazów kolorowych na obrazy monochromatyczne, które są w nim wymagane. Dodatkowo aplikacja została rozwinięta o możliwość czyszczenia bitmap wyjściowych ze zbędnych czarnych pikseli. Z uwagi jednak na fakt, że algorytm bierze pod uwagę jedynie piksele parzyste aby zachować rozmiar obrazu wejściowego z wyjściowym obraz oryginalny różni się od obrazu wyjściowego. Założenie dla którego algorytm został utworzony zostaje zachowane, a mianowicie nie posiadając obu obrazów wynikowych nie powinno dać się odczytać zaszyfrowanej wiadomości, a po ich połączeniu zakodowana informacja powinna być czytelna.
Analiza i Przetwarzanie Obrazów. Szyfrowanie Obrazów. Autor : Mateusz Nawrot
Analiza i Przetwarzanie Obrazów Szyfrowanie Obrazów Autor : Mateusz Nawrot 1. Cel projektu Celem projektu jest zaprezentowanie metod szyfrowania wykorzystujących zmodyfikowane dane obrazów graficznych.
Bardziej szczegółowo// 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
Bardziej szczegółowoGRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej
GRAFIKA RASTROWA WYKŁAD 1 Wprowadzenie do grafiki rastrowej Jacek Wiślicki Katedra Informatyki Stosowanej Grafika rastrowa i wektorowa W grafice dwuwymiarowej wyróżnia się dwa rodzaje obrazów: rastrowe,
Bardziej szczegółowoANALIZA 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.
Bardziej szczegółowoFormaty obrazów rastrowych biblioteki PBM
Formaty obrazów rastrowych biblioteki PBM Reprezentacja obrazu Obrazy pobierane z kamery, bądź dowolnego innego źródła, mogą być składowane na pliku dyskowym w jednym z wielu istniejących formatów zapisu
Bardziej szczegółowoGrafika rastrowa (bitmapa)-
Grafika komputerowa Grafika rastrowa Grafika rastrowa (bitmapa)- sposób zapisu obrazów w postaci prostokątnej tablicy wartości, opisujących kolory poszczególnych punktów obrazu (prostokątów składowych).
Bardziej szczegółowoDetekcja twarzy w obrazie
Detekcja twarzy w obrazie Metoda na kanałach RGB 1. Należy utworzyć nowy obrazek o wymiarach analizowanego obrazka. 2. Dla każdego piksela oryginalnego obrazka pobiera się informację o wartości kanałów
Bardziej szczegółowoImplementacja filtru Canny ego
ANALIZA I PRZETWARZANIE OBRAZÓW Implementacja filtru Canny ego Autor: Katarzyna Piotrowicz Kraków,2015-06-11 Spis treści 1. Wstęp... 1 2. Implementacja... 2 3. Przykłady... 3 Porównanie wykrytych krawędzi
Bardziej szczegółowoMateriały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty).
Pudełkowy komputer Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty). Budowa komputera: każdy uczeń składa proste pudełko metodą orgiami Zobacz:
Bardziej szczegółowoPrzykładowa dostępna aplikacja w Visual Studio - krok po kroku
Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i
Bardziej szczegółowoMaciej Piotr Jankowski
Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji
Bardziej szczegółowoStreszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią.
Temat 2 Kolory jako liczby Kodowanie obrazów Streszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią. Wiek 7 i więcej
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Bardziej szczegółowoAlgorytm. 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
Bardziej szczegółowodr inż. Piotr Odya dr inż. Piotr Suchomski
dr inż. Piotr Odya dr inż. Piotr Suchomski Podział grafiki wektorowa; matematyczny opis rysunku; małe wymagania pamięciowe (i obliczeniowe); rasteryzacja konwersja do postaci rastrowej; rastrowa; tablica
Bardziej szczegółowoStrategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Bardziej szczegółowoZalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc
Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej autor poradnika - KS 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika (lewy dół strony) Zalogowanie
Bardziej szczegółowoPodstawy OpenCL część 2
Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024
Bardziej szczegółowoKlasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Bardziej szczegółowoPython: JPEG. Zadanie. 1. Wczytanie obrazka
Python: JPEG Witajcie! Jest to kolejny z serii tutoriali uczący Pythona, a w przyszłości być może nawet Cythona i Numby Jeśli chcesz nauczyć się nowych, zaawansowanych konstrukcji to spróbuj rozwiązać
Bardziej szczegółowoĆwiczenie 1 Automatyczna animacja ruchu
Automatyczna animacja ruchu Celem ćwiczenia jest poznanie procesu tworzenia automatycznej animacji ruchu, która jest podstawą większości projektów we Flashu. Ze względu na swoją wszechstronność omawiana
Bardziej szczegółowoautor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej
Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej adres naszej strony: www.zs3.wroc.pl logo liceum 1. Aby dodać artykuł należy się zalogować: System pokaże nazwę zalogowanego użytkownika
Bardziej szczegółowoRysowanie 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.
Bardziej szczegółowoLista dwukierunkowa - przykład implementacji destruktorów
Lista dwukierunkowa - przykład implementacji destruktorów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2008 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoPętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Bardziej szczegółowo2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych
2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:
Bardziej szczegółowoProgramowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8
Programowanie w JAVA Lab. 5 - Wątki 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 33 y 3 2 2 x x 3 y 7 x 3 33 7) 2 2 f x, y 1 x 3 1 x 2 1 y 7 x 3 3 33 2 112 y 3 7 x
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowoLaboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Bardziej szczegółowoUkłady VLSI Bramki 1.0
Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie
Bardziej szczegółowoAlgorytmy. 1. Sortowanie 2. Statki i okręty. programowanie cz.7. poniedziałek, 2 marca 2009
Algorytmy. Sortowanie 2. Statki i okręty programowanie cz. ALGORYTMY SORTUJĄCE A. Przez zamianę (bąbelkowe) B. Przez wybieranie Najpopularniejsze metody sortowania C. Przez wstawianie Przez zamianę (sortowanie
Bardziej szczegółowoBudowa 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ółowoAplikacje 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ółowoFormaty plików graficznych - wprowadzenie
Formaty plików graficznych - wprowadzenie Obraz graficzny jest dwuwymiarową tablicą pikseli, zwana czasem rastrem. Kolor piksela może być reprezentowany w następujący sposób: Dla obrazów monochromatycznych
Bardziej szczegółowoPodstawy grafiki komputerowej. Teoria obrazu.
WAŻNE POJĘCIA GRAFIKA KOMPUTEROWA - to dział informatyki zajmujący się wykorzystaniem oprogramowania komputerowego do tworzenia, przekształcania i prezentowania obrazów rzeczywistych i wyimaginowanych.
Bardziej szczegółowoRaport Hurtownie Danych
Raport Hurtownie Danych Algorytm Apriori na indeksie bitmapowym oraz OpenCL Mikołaj Dobski, Mateusz Jarus, Piotr Jessa, Jarosław Szymczak Cel projektu: Implementacja algorytmu Apriori oraz jego optymalizacja.
Bardziej szczegółowoTom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania
Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu
Bardziej szczegółowoAllegro5 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
Bardziej szczegółowoArchitektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1
Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony
Bardziej szczegółowolekcja 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
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Bardziej szczegółowoc) Sprawdź, czy jest włączone narzędzie Image classification. Jeśli nie, to je włącz: Customize Toolbars Image Classification
3. KLASYFIKACJA Proces klasyfikacji obrazów satelitarnych polega na utworzeniu ze zbioru danych wejściowych pojedynczej mapy wynikowej. Dane multispektralne stanowią zbiór map rastrowych z tym samym odniesieniem
Bardziej szczegółowo1. Przypisy, indeks i spisy.
1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy
Bardziej szczegółowoPrzy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:
Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące
Bardziej szczegółowoCzęść XV C++ Ćwiczenie 1
Część XV C++ Instrukcja break przerywa działanie tylko tej pętli, w ciele której została wywołana. Jeśli więc wywołamy break w pętli zagnieżdżonej w innej pętli, zostanie przerwane działanie tylko tej
Bardziej szczegółowoĆwiczenie 12 Różdżka, szybkie zaznaczanie i zakres koloru
Ćwiczenie 12 Różdżka, szybkie zaznaczanie i zakres koloru Różdżka 1. zaznacza wszystkie piksele o podobnym kolorze w zakresie Tolerancji ustalanej na pasku Opcji, 2. ma zastosowanie dla obszarów o dość
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoWaldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 2.3. Model rastrowy Rastrowy model danych wykorzystywany jest dla gromadzenia i przetwarzania danych pochodzących ze skanowania istniejących
Bardziej szczegółowoObsługa modułu. e-deklaracje. w programach WF-FaKir oraz WF-Gang. (opracował Przemysław Gola) 2014.12.19
Obsługa modułu e-deklaracje w programach WF-FaKir oraz WF-Gang (opracował Przemysław Gola) 2014.12.19 Zawartość skryptu: I. Czego potrzebujesz, aby wysyłać deklaracje podatkowe w formie elektronicznej?
Bardziej szczegółowoZadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85
Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych Klasa Średnia 8a 3,54 8b 5,25 8c 4,21 8d 4,85 Do wstawienia wykresu w edytorze tekstu nie potrzebujemy mieć wykonanej tabeli jest ona tylko
Bardziej szczegółowoPrzewodnik po soczewkach
Przewodnik po soczewkach 1. Wchodzimy w program Corel Draw 11 następnie klikamy Plik /Nowy => Nowy Rysunek. Następnie wchodzi w Okno/Okno dokowane /Teczka podręczna/ Przeglądaj/i wybieramy plik w którym
Bardziej szczegółowoAlgorytmy i Struktury Danych. Anna Paszyńska
Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;
Bardziej szczegółowo- 1 Laboratorium fotografii cyfrowej Foto Video Hennig
Foto Video Hennig, ul. Krótka 20,83-110 Tczew tel. 58 531 79 24,, kontakt@foto-hennig.pl Instalacja i użytkowanie programu FotoSender 3.0 Pobieranie i instalacja: 1. Pobieranie i instalacja Fotosendera
Bardziej szczegółowoPodstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji
Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw
Bardziej szczegółowoZadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA
Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972
Bardziej szczegółowoWybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:
Interfejs w MFC 1. Tworzenie nowego projektu Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Następnie wybieramy opcje jak na rysunku: Następnie wybieramy
Bardziej szczegółowoProgram do konwersji obrazu na cig zero-jedynkowy
Łukasz Wany Program do konwersji obrazu na cig zero-jedynkowy Wstp Budujc sie neuronow do kompresji znaków, na samym pocztku zmierzylimy si z problemem przygotowywania danych do nauki sieci. Przyjlimy,
Bardziej szczegółowoUML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Bardziej szczegółowoWykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim
Bardziej szczegółowoRozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych
Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji
Bardziej szczegółowoInstrukcja integratora - obsługa dużych plików w epuap2
Instrukcja integratora - obsługa dużych plików w epuap2 Wersja: 1.1 Strona 1 z 18 Spis treści SPIS TREŚCI... 2 WPROWADZENIE ORAZ INFORMACJE OGÓLNE... 3 1.1 WSTĘP... 3 1.2 WARUNKI KONIECZNE DO SPEŁNIENIA
Bardziej szczegółowoSzablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Bardziej szczegółowo- - Ocena wykonaniu zad3. Brak zad3
Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po
Bardziej szczegółowoTestowanie modeli predykcyjnych
Testowanie modeli predykcyjnych Wstęp Podczas budowy modelu, którego celem jest przewidywanie pewnych wartości na podstawie zbioru danych uczących poważnym problemem jest ocena jakości uczenia i zdolności
Bardziej szczegółowoProgramowanie platform mobilnych PocketPC
Programowanie platform mobilnych PocketPC WSTĘP Celem dwiczenia będzie zademonstrowanie możliwości komputera kieszonkowego komputera PocketPC. PocketPC to określenie przenośnych małych komputerów. Większośd
Bardziej szczegółowoWykorzystanie grafiki wektorowej do tworzenia elementów graficznych stron i prezentacji
Wykorzystanie grafiki wektorowej do tworzenia elementów graficznych stron i prezentacji grafika rastrowa a grafika wektorowa -13- P SiO 2 Grafika rastrowa - obraz zapisany w tej postaci stanowi układ barwnych
Bardziej szczegółowoĆwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
Bardziej szczegółowoTemat: 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ółowoZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie
Bardziej szczegółowoRozpoznawanie obrazu. Teraz opiszemy jak działa robot.
Rozpoznawanie obrazu Implementujesz oprogramowanie do rozpoznawania obrazu dla robota. Za każdym razem, gdy robot robi zdjęcie kamerą, jest ono zapisywane jako czarno-biały obraz w pamięci robota. Każdy
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowoProgramowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty
Bardziej szczegółowoKrzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF
Krzysztof Leszczyński Adam Sosnowski Michał Winiarski Projekt UCYF Temat: Dekodowanie kodów 2D. 1. Opis zagadnienia Kody dwuwymiarowe nazywane często kodami 2D stanowią uporządkowany zbiór jasnych i ciemnych
Bardziej szczegółowo1. Tworzenie nowego projektu.
Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty
Bardziej szczegółowoProgramowanie i struktury danych
Programowanie i struktury danych 1 / 19 Dynamiczne struktury danych Dynamiczną strukturą danych nazywamy taka strukturę danych, której rozmiar, a więc liczba przechowywanych w niej danych, może się dowolnie
Bardziej szczegółowoSite Installer v2.4.xx
Instrukcja programowania Site Installer v2.4.xx Strona 1 z 12 IP v1.00 Spis Treści 1. INSTALACJA... 3 1.1 Usunięcie poprzedniej wersji programu... 3 1.2 Instalowanie oprogramowania... 3 2. UŻYTKOWANIE
Bardziej szczegółowoPolbruk Antara II Polbruk Neo
Instrukcja do programu Kalkulator ogrodzeń 2.0 Polbruk Antara II Polbruk Neo Część I Pobranie programu i instalacja Aplikację Kalkulator ogrodzeń 2.0. Polbruk Antara II, Polbruk Neo można pobrać klikając
Bardziej szczegółowoInstrukcja wstawiania materiałów dydaktycznych do bloku tematycznego scenariusza lekcji z geografii na szkolnej platformie e-learningowej Moodle
Instrukcja wstawiania materiałów dydaktycznych do bloku tematycznego scenariusza lekcji z geografii na szkolnej platformie e-learningowej Moodle Zanim wstawimy prezentację wykonaną w programie PowerPoint
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoListy powiązane zorientowane obiektowo
Listy powiązane zorientowane obiektowo Aby zilustrować potęgę polimorfizmu, przeanalizujmy zorientowaną obiektowo listę powiązaną. Jak zapewne wiesz, lista powiązana jest strukturą danych, zaprojektowaną
Bardziej szczegółowoWykład VII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład VII Kierunek Matematyka - semestr IV Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Steganografia Steganografia - nauka o komunikacji w taki sposób,
Bardziej szczegółowoCalendarGenerator v0.1 - instrukcja obsługi
CalendarGenerator v0.1 - instrukcja obsługi Spis treści: 1. Tworzenie kalendarza na podstawie gotowego stylu. 2. Opis wybranych funkcji wtyczki: a. Okno podglądu. b. Nazwy dni tygodnia i miesięcy. c. Lista
Bardziej szczegółowoLiczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Bardziej szczegółowoSkrócona instrukcja pracy z Generatorem Wniosków
Skrócona instrukcja pracy z Generatorem Wniosków I. OGÓLNA OBSŁUGA GENERATORA WNIOSKÓW Rozpoczynanie pracy z generatorem przez nowych użytkowników Aby skorzystać z Generatora Wniosków należy posiadać konto
Bardziej szczegółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoPodstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007
Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007 opracowanie: mgr Monika Pskit 1. Rozpoczęcie pracy z programem Microsoft PowerPoint 2007. 2. Umieszczanie tekstów i obrazów na slajdach.
Bardziej szczegółowoOBSŁUGA PRACY DYPLOMOWEJ W APD PRZEZ STUDENTA
Akademia im. Jana Długosza w Częstochowie Dział Rozwoju i Obsługi Dydaktyki Zespół Systemów Informatycznych Obsługi Dydaktyki OBSŁUGA PRACY DYPLOMOWEJ W APD PRZEZ STUDENTA Instrukcja przedstawia czynności
Bardziej szczegółowoMatematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne
A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację
Bardziej szczegółowoTom 6 Opis oprogramowania
Część 9 Narzędzie do wyliczania wskaźników statystycznych Diagnostyka Stanu Nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 31 maja 2012 Historia dokumentu Nazwa dokumentu Nazwa
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowoZaawansowane 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ółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoMatematyka podstawowa X. Rachunek prawdopodobieństwa
Matematyka podstawowa X Rachunek prawdopodobieństwa Zadania wprowadzające: 1. Rzucasz trzy razy monetą a) Napisz zbiór wszystkich wyników tego doświadczenia losowego. Ile ich jest? Wyrzuciłeś większą liczbę
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Bardziej szczegółowo