Posty

Wyświetlanie postów z luty, 2015

[java] Enum

Obraz
Zastosowanie klasy Enum na przykładzie poruszającego się samochodu Interfejs: public interface CarInterface { /** * Auto jedzie szybciej. */ public void faster(); /** * Auto jedzie wolniej lub zatrzymuje sie. */ public void slower(); /** * Auto zmienia kierunek ruchu */ public void oppositeDirection(); /** * Auto sie natychmiast zatrzymuje. */ public void stop(); /** * Podaje aktualna predkosc auta * @return - predkosc auta w MPH */     public int getVelocity();          /**      * Prezentuje na ekranie predkosc auta (wystarczy liczba),       * ale tylko wtedy, gdy       * jej wartosc jest inna niz w chwili ostatniej prezentacji.      * Czyli, jesli wyswietlona zostala predkosc 10, to 10 nie moze      * pojawic sie ponownie. Metoda ma eliminowac prezentacje tych samych      * wartosci predkosci, nawet jesli stan auta ulegal zmianie.      */     public void showVelocity(); }

[java] Map/HashMap

Przykład zastosowania interfejsu Map do niby-zabawy z gotowaniem klik:

[java] Trochę sortowania, generyków oraz enum!

Tak więc zadanie polegało na zaimplementowaniu poniższego interfejsu: import java.util.List; public interface BinInterface { /** * Umieszcza odpad w smietniku.  * @param sth - referencja do obiektu-smiecia.s */ public <T extends Garbage> void toBin( T sth ); /**  * Zwraca posortowana malejaco liste odpadkow zadanego rodzaju. * Lista jest posortowana wg. charakterystycznej dla danego * rodzaju smieci wlasnosci - np. w przypadku smieci szklanych * to objetosc. * @param wt - typ odpadow, ktore maja zostac posortowane i  * zwrocone jako wynik pracy metody. * @return Posortowana malejaco lista odpadkow zadanego rodzaju. */ public List<Garbage> getSorted( WasteType wt ); } klik:

[c++] słowniki - haszowanie - haszowanie otwarte

http://pl.wikipedia.org/wiki/Tablica_mieszaj%C4%85ca albo szybki wstęp: Słowniki: Podstawowe operacje: Member(x,A) - ma jako argumenty słownik A oraz obiekt x. Zwraca wartość true, gdy obiekt należy do słownika i false w przeciwnym wypadku. Insert(x,A) – Czyni x elementem A. Jeśli x już jest w A, to Insert nic nie zmienia.  Delete(x,A) – Usuwa x z A.  MAKENULL(x,A) – Czyni A słownikiem pustym. Jak można zaimplementować słowniki?  • Jako listy posortowane • Jako listy nieposortowane • Jako wektory bitowe (przy założeniu, że elementy są z przedziału (1,..,n) HASZOWANIE • Ważną implementacją słowników jest haszowanie. • Haszowanie daje średnio stały czas dostępu do elementu słownika  • W najgorszym przypadku daje czas proporcjonalny do rozmiaru zbioru  • T ablica mieszająca (tablica haszująca) to struktura danych służąca do przechowywania informacji, w taki sposób, aby możliwy był do nich szybki dostęp . • Odwołania do przechowywanych obiektów dokonywane są na pods

[c++] kolejka cykliczna

czyli innymi słowy jest to tablicowa reprezentacja kolejki. Tablicę traktujemy jako koło, w którym pierwszy element tablicy jest następnym po ostatnim. Operacje: 1. MAKENULL(Q) – czyni kolejkę pustą 2. FRONT(Q) – zwraca pierwszy element kolejki 3. ENQUEUE(x,Q) – wstaw x do kolejki 4. DEQUEUE(Q) – usuwa pierwszy element z kolejki 5. EMPTY(Q) – zwraca true gdy kolejka jest pusta, w przeciwnym wypadku zwraca false klik:

[c++] Kolejka wskaźnikowa

Kolejki są listami, których elementy można wstawiać z jednego końca (rear-tył) a usuwać z drugiego (front - przód).  Enqueue(x) – wstawia element x na koniec kolejki Operacja Enqueue polega na: - stworzeniu nowej komórki: - wstawieniu komórki na koniec kolejki - uaktualnieniu wartości zmiennej rear tak, aby wskazywała na nowo utworzoną komórkę   Dequeue -  usuwa element z początku kolejki.  polega na: - sprawdzeniu, czy kolejka nie jest pusta - jeżeli nie jest pusta, to:     • zapamiętujemy dotychczasową głowę w zmiennej pomocniczej p     • aktualizujemy pole front tak, aby wskazywało na dotychczasowy pierwszy element, który od tej               pory będzie głową     • usuwamy z pamięci (zwalniamy pamięć) element wskazywany przez p (wcześniej będący głową) Destruktor : -zwalnia pamięć przydzieloną na elementy kolejki Empty: -zwraca prawdę, gdy kolejka jest pusta, fałsz wpp. FrontElem : -sprawdza, czy kolejka nie jest pusta -jeśli nie jest pusta zwraca pierwszy element k

[c++] Lista wskaznikowa

A tutaj dla odmiany dwa w jednym: lista wskaźnikowa oraz stos z użyciem operacji na liście wskaźnikowej: Operacje na liście:  • INSERT(x,p,L) – wstaw x na pozycję p na liście L   • LOCATE(x,L) zwraca pozycję pierwszego wystąpienia elementu x w liście L. • RETRIEVE(p,L) – zwraca element występujący w L na pozycji p.  • DELETE(p,L) – usuwa element na pozycji p z listy. • NEXT(p,L) – zwraca pozycję następną w stosunku do p w L.   • PREVIOUS(p,L) - zwraca pozycję następną w stosunku do p w L • MAKENULL(L) .Czyni listę pustą i zwraca pozycję END(L).  • FIRST(L) – zwraca pozycję pierwszego elementu w L. • PRINT_LIST(L) – wypisuje elementy w kolejności występowania Operacje na stosie: • MAKENULL(S) – uczyń stos pustym.   • TOP(S) – zwróć element znajdujący się na wierzchołku stosu.  • POP(S) – Usuń element znajdujący się na wierzchołku stosu. • PUSH(x,S) – umieść element x na wierzchołku stosu S. Element, który znajdował się poprzednio na wierzchołku stosu staje się w

[C++] Lista tablicowa

Nie rozwodząc  się nad tym czym jest lista, bo to każdy powinien wiedzieć, przejdźmy do opisu funkcji: First() - zwraca pozycję elementu pierwszego -(indeks 0) END() - zwraca pozycję za ostatnim elementem (czyli last+1) Next(p) -zwraca indeks następnego elementu po p (czyli p+1): -jeśli istnieje element następny, to zwróć jego indeks -jeśli nie istnieje element następny, to zwróć -1  Previous(p) - zwraca indeks poprzedniego elementu w stosunku do p (czyli p-1) -jeśli istnieje element poprzedni, to zwróć jego indeks -jeśli nie istnieje element poprzedni, to zwróć -1 Insert(x,p) - wstawia x do komórki o numerze p ( o ile się da): -sprawdź, czy jest miejsce w tablicy -sprawdź, czy pozycja p jest poprawna -przesuń elementy w tablicy, aby komórka p była pusta -wstaw x do komórki p -zwiększ last -zwróć true gdy operacja wstawiania się powiedzie, false wpp  Delete(p) - usuwa element z komórki o numerze p: -sprawdź, czy pozycja p jest poprawna -przesuń elementy w "górę"

Windows 10 Technical Preview for Phones!

http://blogs.windows.com/bloggingwindows/2015/02/12/announcing-the-first-build-of-windows-10-technical-preview-for-phones-2/ Komentarz? WRESZCIE! <24%>