wtorek, 7 października 2014

Magiczne Bloczki

Magiczne Bloczki - to program przeznaczony do projektowania (rysowania) schematów blokowych opisujących pewien algorytm. Opcja przeprowadzania symulacji działania algorytmu daje użytkownikowi możliwość sprawdzenia jego poprawności.
 
Konstruowanie schematu odbywa się poprzez wstawianie bloków (Start, Warunek, itp.) na planszę i przypisanie im odpowiednich połączeń. Wbudowany prosty język programowania umożliwia łatwy sposób zarządzania danymi (zmiennymi).

Program oferuję także wydruk oraz eksport grafiki(schematów blokowych) do znanych formatów graficznych. 
 
 
 
Zalety: Łatwa obsługa (edycja wizualna - przeciągnij i upuść)
Prosty język
Możliwość symulacji w różnych trybach(krok po kroku, itp.)
Eksport oraz wydruk dokumentu

 

czwartek, 4 września 2014

Algorytmy

1. Definicja algorytmu

  • Algorytm to jednoznaczny przepis obliczenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych.
Zazwyczaj przy analizowaniu bądź projektowaniu algorytmu zakłada się, że dostarczane dane wejściowe są poprawne, czasem istotną częścią algorytmu jest nie tylko przetworzenie, ale i weryfikacja danych.
Zgodnie z założeniem o jednoznaczności dla identycznego zestawu danych początkowych, algorytm zdefiniowany klasycznie zawsze zwróci identyczny wynik.

 2. Rodzaje algorytmów

- algorytm liniowy

Algorytm liniowy to taki, w którym nie określono żadnych warunków. Jest też nazywany sekwencyjnym, gdyż każdy z kroków w tym algorytmie następuje sekwencyjnie, czyli wykonanie jednej sekwencji powoduje przejście bezpośrednio do następnej.





- algorytm warunkowy

Algorytm warunkowy to taki, w którym wykonanie instrukcji uzależnione jest od spełnienia lub niespełnienia warunku.



- algorytm iteracyjny

Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.






- algorytm rekurencyjny

 Algorytm rekurencyjny, algorytm, który wywołuje sam siebie do rozwiązania tego samego problemu.



3. Sposoby reprezentowania algorytmu


- lista kroków

Przykład:

Algorytm warunkowy w postaci listy kroków – obliczanie obwodu prostokąta

Dane: bok a i b
Lista kroków:
1. Początek algorytmu
2. Podaj bok a
3. Podaj bok b
4. Czy bok a>0?
   
jeśli tak idź do kroku 5,
    jeśli nie podaj komunikat wyjściowy: "nie można obliczyć obwodu" i zakończ algorytm.
5. Czy bok b>0?
    jeśli tak idź do kroku 6
    jeśli nie podaj komunikat wyjściowy: "nie można obliczyć obwodu" i zakończ algorytm.
6. Oblicz obwód Ob:=2*a+2*b
7. Wyprowadź wartość Ob
6. Koniec algorytmu


- schemat blokowy


Przykład:

Algorytm liniowy w postaci schematu blokowego – obliczanie obwodu prostokąta





- drzewa


 - pseudokod

Pseudokodem nazywany jest taki sposób zapisu algorytmu, który, zachowując strukturę charakterystyczną dla kodu zapisanego w języku programowania, rezygnuje ze ścisłych reguł składniowych na rzecz prostoty i czytelności. Pseudokod nie zawiera szczegółów implementacyjnych (jak np. inicjalizacja zmiennych, alokacja pamięci), często też opuszcza się w nim opis działania podprocedur (jeśli powinien być on oczywisty dla czytelnika), zaś nietrywialne kroki algorytmu opisywane są z pomocą formuł matematycznych lub zdań w języku naturalnym.


Przykład pseudokodu algorytmu Euklidesa:

NWD(liczba całkowita a, liczba całkowita b)
        dopóki b != 0
                c := reszta z dzielenia a przez b
                a := b
                b := c
        zwróć
 
 
  

 - kod właściwy

 Przykład kodu właściwego algorytmu Floyda-Warshalla:


this.path = path;
next = new int[len, len];
for (int i = 0; i < len; i++)
    for (int j = 0; j < len; j++)
        if (path[i, j] == INF)
            next[i, j] = INF;
        else
            next[i, j] = i;
for (int k = 0; k < len; k++)
    for (int i = 0; i < len; i++)
        for (int j = 0; j < len; j++)
            if (path[i, k] != INF && path[k, j] != INF &&
                path[i, k] + path[k, j] < path[i, j])
            {
                path[i, j] = path[i, k] + path[k, j];
                next[i, j] = k;
            }
for (int i = 0; i < len; i++)
    if (path[i, i] < 0)
        throw new ArgumentException("Negative cycles");


wtorek, 11 marca 2014

Konfiguracja komputera do pracy w sieci

  Konfiguracja komputera do pracy w sieci

1. DHCP

 DHCP (ang. Dynamic Host Configuration Protocol – protokół dynamicznego konfigurowania węzłów) – protokół komunikacyjny umożliwiający komputerom uzyskanie od serwera danych konfiguracyjnych, np. adresu IP hosta, adresu IP bramy sieciowej, adresu serwera DNS, maski podsieci.

  

2. Adres IP

  Adres IP (ang. IP address) – w protokole IP liczba nadawana interfejsowi sieciowemu, grupie interfejsów (broadcast, multicast), bądź całej sieci komputerowej, służąca identyfikacji elementów sieci w warstwie trzeciej modelu OSI – w obrębie sieci lokalnej oraz poza nią (tzw. adres publiczny).

 

3. Maska podsieci

Maska podsieci, maska adresu (ang. subnetwork mask, address mask) – liczba służąca do wyodrębnienia w adresie IP części sieciowej od części hosta.
Pola adresu, dla których w masce znajduje się bit 1, należą do adresu sieci, a pozostałe do adresu komputera. Po wykonaniu iloczynu bitowego maski i adresu IP komputera otrzymujemy adres IP całej sieci, do której należy ten komputer.

4. Brama domyślna

W sieci TCP/IP domyślna brama (sieciowa) (ang. default gateway) oznacza router, do którego komputery sieci lokalnej mają wysyłać pakiety o ile nie powinny być one kierowane w sieć lokalną lub do innych, znanych im routerów. W typowej konfiguracji sieci lokalnej TCP/IP wszystkie komputery korzystają z jednej domyślnej bramy, która zapewnia im łączność z innymi podsieciami lub z Internetem.

5. DNS

Domain Name System (DNS, pol. „system nazw domenowych”) – system serwerów, protokół komunikacyjny oraz usługa obsługująca rozproszoną bazę danych adresów sieciowych. Pozwala na zamianę adresów znanych użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową. Dzięki DNS nazwa mnemoniczna, np. pl.wikipedia.org jest tłumaczona na odpowiadający jej adres IP, czyli 91.198.174.232

 

Urządzenia peryferyjne

Urządzenia peryferyjne.

1. Czym są urządzenia peryferyjne?

Urządzenie peryferyjne (ang. peripheral device) - dowolna część komputera inna niż procesor (CPU) i pamięć operacyjna.

2. Przykłady urządzeń peryferyjnych.
  1. Klawiatura
  2. Monitor 
  3. Mysz
  4. Drukarka
  5. Skaner
  6. Napęd taśmowy
  7. Mikrofon
  8. Głośnik
  9. Aparat fotograficzny
  10. Joystick
  11. Kamera internetowa
  12. Ploter

poniedziałek, 3 marca 2014

Sieć komputerowa

1. Czym jest sieć komputerowa?

 Grupa kilku komputerów, połączonych ze sobą za pomocą dowolnego medium transmisyjnego w celu wymiany danych i współdzielenia zasobów sieciowych.

 2. Główne zalety sieci komputerowych

  • możliwość komunikacji z innymi osobami (np. poprzez wiadomości email);

  •  możliwość korzystania z wspólnych zasobów sieciowych (sprzętu, oprogramowania), dzięki czemu nie ma potrzeby kupowania wielu urządzeń i programów osobno dla każdego komputera;

  •  szybkość, oszczędność czasu i bezproblemowość w przenoszeniu danych, plików i programów z jednego komputera na inny (nawet znajdujący się w drugim końcu świata)

  • ; oszczędność w zakupie oprogramowania (pewne programy np. firewall wystarczy zainstalować na jednym komputerze);

  •  bezkonfliktowość, prostota i wygoda podczas dostępu do wspólnych bazy danych z różnych komputerów (nawet jak znajdują się one w innych częściach świata);

      

    3. Główne wady sieci komputerowych

    • wysokie ceny urządzeń sieciowych i medium transmisyjnych; zagrożenia związane z działaniem „sieciowych włamywaczy”, hakerów (np. usunięcie danych, uszkodzenie systemu)

    • ; problemy związane z tworzeniem i zarządzaniem sieci (np. zakłócenia, awarie, podłączanie wszystkich urządzeń i zasobów sieciowych kablami);

    •  zagrożenia bezpieczeństwa i stabilności działania wszystkich systemów w wyniku zainfekowania jednego komputera;

    •  awaria jednego urządzenia lub medium transmisyjnego może spowodować uszkodzenie całej sieci komputerowej; 


      4. Urządzenia sieciowe

      • Karta sieciowa
      •  Koncentrator (Hub)
      •  Przełącznik (Switch)
      •  Router
      •  Access Point
      •  Wtórnik (Repeater)
      •  Bridge

       5. Podział sieci komputerowych ze względu na zasięg działania:

      •  LAN (Local Area Network) – lokalna sieć komputerowa, obejmująca zazwyczaj tylko jeden budynek;
      •  MAN (Metropolitan Area Network) – sieć obejmująca aglomerację lub miasto;
      •  WAN (Wide Area Network) – obejmuje zasięgiem duży obszar (państwo, kontynent);
      •  Internet – ogólnoświatowa sieć komputerowa;