sobota, 15 grudnia 2018

Systemy informatyczne


      System informatyczny to urządzenia i programy komputerowe, które służą do gromadzenia i przetwarzania, a także przechowywania danych.

ETAPY POSTĘPOWANIA PRZY PROJEKCIE SYSTEMU INFORMATYCZNEGO:

0 - prace przedprojektowe; sformułowanie zadań i analiza systemu informatycznego.

I - projekt ogólny; opracowanie systemu informatycznego.

II - przygotowanie projektu technicznego.

III - tworzenie oprogramowania.

IV - testowanie utworzonego oprogramowania; usuwanie ewentualnych błędów.

V - wdrożenie systemu informatycznego.

Do tworzenia systemów informatycznych służą wyspecjalizowane narzędzia, systemy (IDE - zintegrowane) oraz inne. W czasie pracy mogą być nam potrzebne: komputer (z siecią), drukarka, urządzenia do przesyłu danych, wyspecjalizowane terminale.

Dodawanie i usuwanie rekordów



1)    Aby dodać nowe rekordy do tabeli bazy danych dodajemy je przy pomocy "INSERT":

"INSERT INTO Tabela1 (Pole1, Pole2) VALUES ('Wartosc1', 'Wartosc2');

po nazwie tabeli wpisujemy listę pól, umieszczamy słowo kluczowe "VALUES" a w nawiasach okrągłych musimy podać wartość. Naliście tych pól nie musimy wpisywać wszystkich nazw kolumn z tabeli.

2)   Usuwanie rekordów pozwala na usuwanie niepotrzebnych danych z tabeli baz danych. Używamy wtedy polecenia:

"DELETE FROM Tabela1 WHERE Id=1;"

Zastosowanie tej instrukcji jest ograniczone przy więzach integralności. Jeśli dane zapisane są już w innych tabelach, wpierw będziemy musieć je usunąć, a dopiero wtedy możemy użyć powyższej instrukcji. 

wtorek, 11 grudnia 2018

Tworzenie kwerend z wykorzystanie języka SQL



 Czym jest SQL?

SQL (ang. Structured Query Language)
to złożony język, którym umożliwia operacje na bazie danych, pozwala na zapisywanie, zarządzanie, ale również pobieranie informacji. Został opracowany w latach 70. XX wieku przez jedną z najstarszych wytwórni informatycznych na świecie IBM (tutaj więcej)

1) Instrukcja SELECT

Umożliwia pobieranie danych z bazy: "SELECT Pole1, Pole2 FROM Tabela1, Tabela2;"

(select - wybierz, insert - wstaw, update - zaktualizuj)

2) Klauzule instrukcji SELECT

"SELECT DISTINCT Pole1 FROM Tabela1;"

(nie będą zwracane rekordy o tych samych danych. otrzymamy zatem jeden rekord w każdej kombinacji wartości pól wymienionych w klauzuli SELECT)

3) Klauzula ORDER BY

"SELECT * FROM Tabela1 ORDER BY Pole1;"

(pozwala na sortowanie zbioru rekordów, możemy podać listę kolumn, według których ma się odbyć sortowanie oraz dla każdej z nich określić porządek sortowania)

4) Klauzula INNER JOIN

"SELECT * FROM Tabela1 INNER JOIN Tabela2 ON Tabela1,Id=Tabela2.Id;"

(dokonanie wewnętrznego złączenia tabel)

5) Klauzula LEFT JOIN

"SELECT * FROM Tabela1 LEFT JOIN Tabela2 ON Tabela1,Id=Tabela2.Id;"

(lewostronne połączenie tabel)

6) Klauzula GROUP BY

"SELECT Pole1, <funkcja agregująca> FROM Tabela1 GROUP BY Pole1;"

(stosowana w celu zgrupowania rekordów posiadająych identyczne wartości w wymienionych polach)

7) Funkcja COUNT - zwraca liczbę rekordów w każdej grupie

8) SUM(Liczba1) - zwraca sumę wartości w kolumnie Liczba1 w każdej grupie

9) AVG(Liczba2) - zwraca średnią wartość w kolumnie Liczba2 w każdej grupie

10) MAX(Liczba3) - zwraca maksymalną wartość zapisaną w kolumnie Liczba3 w każdej grupie

11) MIN(Liczba4) - zwraca minimalną wartość zapisaną w koumnie Liczba4




Operatory w kryteriach wyszukań


 Stosowane w wyrażeniach programu Access operatory, funkcje i stałe można odszukać w oknie pod nazwą Konstruktor wyrażeń.


  • arytmetyczne (* / + -),
  • porównania (<= =  <> > < <= >= BETWEEN),
  • logiczne (AND OR NOT),
  • LIKE ,
  • LCase (zmiana wielkości liter na małe),
  • UCase (zmiana wielkości liter na duże),
  • Right (zwracanie żądanej liczby liter od prawej strony),
  • Left (zwracanie określonej liczby znaków po lewej stronie),
  • Len (zwrot długości słowa - ile liter).

niedziela, 9 grudnia 2018

Dodatkowe (+) możliwości stosowania kwerend


     Przykłady funkcji operujących na datach i czasie:

         Date() - zwracanie aktualnej daty (np. dziś 06.12.2018; program zwróci datę 06.12.2018 do odpowiedniego pola, w którym zastosowania jest ta funkcja).
     
         Day(data) - zwraca numer dnia miesiąca dla podanej wcześniej daty, np. Day('06-12-2018')
zwraca 11 funkcja przyjmuje wartość równą od 1 do 31.

        Month(data) - zwraca numer miesiąca dla podanej daty, np. Month('06-12-2018') zwraca 10, ponieważ funkcja przyjmuje wartości od 1 do 12.
     
        Year(data) - zwraca rok dla podanej wcześniej daty, np. Year('06-12-2018') zwraca 2018, ponieważ to jest wartość tej funkcji.

        Time() - zwraca aktualną godzinę, np. Time(23.55) to zwraca liczbę w nawiasie.


       

czwartek, 6 grudnia 2018

Przyciski poleceń w Access


    Przyciski poleceń można używać do uruchamiania makr i modułów języka VisualBasic. Przyciski te można umieszczać na formularzach, mogą być one wykorzystane do wykonywanych operacji na rekordach.

Przybornik → Kreator przycisków poleceń → Nawigowanie między rekordami → Znajdź rekord → Szukaj → ..

Wstawianie przycisków ma za zadanie ułatwić i usprawnić nam wyszukanie wybranego klienta.




piątek, 30 listopada 2018

Zaawansowane metody tworzenia formularzy - bieżąca data



  1. Otwieranie formularza zwrotu filmu w Widoku projektu formularza.
  2. Właściwości pola DataZwrotu wybieramy zakładkę Zdarzenia. Ustalamy w jaki sposób ma zostać wywołane zdarzenie - przy kliknięciu.
  3. Wybieranie konstruktora → Konstruktor kodu.
  4. Procedura Visual Basic        Me!DataZwrotu = Date



Private Sub - rozpoczyna definicję procedury
Click() - przy kliknięciu
Me!DataZwrotu - odwołanie do wartości, na którym jest kursor myszy
Date - aktualna data
EndSub - kończy definicję procedury

Zaawansowane metody tworzenia formularzy - formularz zwrotu


 W jednej bazie danych może się znajdować kilka różnych formularzy przygotowanych na podstawie tej samej tabeli (tabel).

  Jeśli podformularz jest łączony z formularzem głównym, to należy upewnić się, że źródła ich rekordów są powiązane relacjami.


Formularz zwrotu filmu:

  • Powinny być widoczne podstawowe dane klienta oraz informacje o filmach, w związku z tym przygotowujemy formularz z podformularzem. 
  • Użytkownik nie powinien mieć możliwości zmiany danych w tym formularzu, więc taka możliwość musimy zablokować.
  • Aby przyspieszyć  i usprawnić wyszukiwanie danych klienta, umieścimy odpowiedni przycisk polecenia i utworzymy kwerendę, która posortuje informacje o klientach według nazwiska i imienia. 
  • Oddane filmy nie powinny być widoczne na liście filmów wypożyczonych przez danego klienta.




poniedziałek, 26 listopada 2018

Listy seryjne



   W edytorze Microsoft Word można przygotować listy seryjne i etykiety adresowe, pobierając dane, np. z tabel przygotowanych w programie Microsoft Access.






Korespondencja seryjna umożliwia tworzenie wielu dokumentów naraz. Takie dokumenty mają jednakowe ustawienia układu i formatowania oraz tekst i grafikę. Tylko określone sekcje poszczególnych dokumentów są różne. Można je spersonalizować odpowiednio do potrzeb. Korzystając z korespondencji seryjnej, w programie Word można zbiorczo tworzyć etykiety, listy, koperty i wiadomości e-mail. Z przygotowaniem korespondencji seryjnej są związane trzy dokumenty:

1.Dokument główny
2. Źródło danych
3. Scalony dokument

sobota, 17 listopada 2018

Eksport danych z bazy danych do pliku tekstowego i arkusza kalkulacyjnego


    Można eksportować różne obiekty bazy danych, np. tabele, kwerendy, raporty. Dane z tabel bazy danych  możemy eksportować m.in. do plików arkusza kalkulacyjnego, plików tekstowych lub innych baz danych utworzonych w programie Access.
   
  Eksportowanie do pliku tekstowego (notatnik):

 Pilk/Eksportuj → (karta dane zewnętrzne) → (opcja plik tekstowy)
 Pliki tekstowe → (strona kodowania) Windows → OK
 
   Eksportowanie do arkusza kalkulacyjnego (Excel): 

Widok arkusza danych → (zaznaczamy rekordy i kopiujemy) → nowy dokument Excel → Wklej



piątek, 16 listopada 2018

Importowanie danych z arkusza kalkulacyjnego Excel i z dokumentu tekstowego - Word


     Importowanie z arkusza danych, do istniejącej tabeli bazy danych należy rozpocząć od wprowadzenia pól nazw - Nazwisko, Imie, UlicaNr, Miejscowosc itd.

  Importowanie z dokumentu tekstowego jest podobny. Początkowo trzeba wprowadzić nazwy właściwe pól, do których mają zostać przekierowane poniższe dane. Zamieniamy przerwy w postaci ", " pomiędzy informacjami na znak tabulatora "^t".



na zielono: importowanie z Excela
na niebiesko: importowanie z Word

piątek, 9 listopada 2018

Kwerendy i raporty


   kwerendy - 

powinniśmy otrzymać informacje o filmach, które zostały wypożyczone przez konkretnych klientów.



  raporty - 

przez tabele filmy - dla danego tytułu filmu będą wyświetlone: data wypożyczenia, nazwisko i imię klienta, liczba dni wypożyczenia.

przez tabele klienci - dla danego klienta będą wyświetlone: tytuł filmu, data wypożyczenia, liczba dni wypożyczenia.


środa, 7 listopada 2018

Formant - pole kombi


 Pole kombi ma bardzo przydatną własność. Przy wpisywaniu pierwszych liter nazwisk, w polu pojawi się jego pełny zapis. Z taką możliwością spotykamy się często, np. podczas wpisywania adresów stron WWW.



Formant to obiekt umieszczany w formularz lub raporcie, np. pole tekstowe, przycisk polecenia, pole kombi.

niedziela, 28 października 2018

Formularze, maski, kwerendy w Access


   Projektując formularz, należy pamiętać o zachowaniu jego przejrzystości i czytelności. Powinno się zaproponować szybki i sprawny sposób jego obsługi stosując, np. listy wyboru, wprowadzenie wartości domyślnych.

   Maskę wprowadzenia warto stosować dla pól, w których sposób wprowadzenia i wyświetlenia danych powinien być jednakowy (np. kod pocztowy).

   W programie Microsoft Access kwerenda jest przechowywana jako ciąg instrukcji języka SQL. Zestaw wyników jest tworzony dynamicznie.

   Raport, w którym mają być umieszczone dane, np. z trzech tabel, należy opracować na podstawie odpowiednio przygotowanej kwerendy.





piątek, 19 października 2018

Baza danych - system obsługi wypożyczalni filmów


  Przed przystąpieniem do projektowania bazy danych bardzo ważne jest staranne przeanalizowanie wymagań systemu. W prostej bazie danych planujemy zazwyczaj kilka tabel (kartoteki danych podstawowych). W programie Microsoft Access definiuje się klucz podstawowy, który jest kluczem unikalnym. Klucz podstawowy to pole lub złożenie pół, których wartości jednoznacznie identyfikują rekordy. Klucz podstawowy jest zalecany, ale niekonieczny.


W tabelach "filmy" i "klienci" klucz podstawowy został zdefiniowany, natomiast tabela "wypożyczenia" go nie posiada.

        

piątek, 12 października 2018

Baza danych - Access



Baza danych - zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego specjalizowanego do gromadzenia i przetwarzania tych danych.


System zarządzania bazą danych (SZBD, ang. RDBMS)
to oprogramowanie, które umożliwia utworzenie i utrzymywanie relacyjnej bazy danych oraz wykonywanie operacji związanych z przetwarzaniem i udostępnianiem danych.

Przetwarzanie danych (operacje wykonywanie w sposób uporządkowany):
• wprowadzenie
• wyszukiwanie
• sortowanie
• prezentowanie.

Znalezione obrazy dla zapytania access microsoft office transparent

środa, 3 października 2018

Edytor grafiki komputerowej



[InkScape]

W oknie programu możemy wyróżnić następujące elementy:

• poziomy pasek narzędzi ogólnych,
• pionowy pasek narzędzi edycji obrazu,
• paleta kolorów,
• obszar dokumentu, w którym specjalną rolę pełni, tzw. obszar płótna (część dokumentu widoczna, np. na wydrkuach) rysować można również na pozostałym obszarze dokumentu,

• linijki otaczające obszar dokumentu, na których pokazane jest położenie kursora (sam kursor zmienia kształt w zależności od aktualnie używanego narzędzia).


sobota, 22 września 2018

Ink Scape 0.91

 

InkScape - darmowy program do tworzenia grafiki wektorowej, stworzony w ramach projektu GNU. Pozwala na tworzenie przede wszystkim symboli, znaków towarowych i logotypów produktów/firm/stowarzyszeń oraz tworzenie ikon czy postaci komiksowych. Jest odpowiednikiem popularnego, płatnego programu CorelDRAW.



poniedziałek, 11 czerwca 2018

Przykładowe przerobienia zdjęć (przed i po)


Zmiana koloru karoserii przy użyciu odpowiednich narzędzi pędzla.



Zmiana zabarwienia zdjęcia przy użyciu barwa/nasycenie, uzyskanie efektu starego zdjęcia (sepia). 


Użycie narzędzia klonowania do usunięcia znaku nazwy ulicy i turysty.


Użycie odpowiedniego filtru, przekształcenia do pozyskania efektu rysunku ołówkiem.


Użycia narzędzia klonowania do usunięcia liści palmy z twarzy pirata.


Zastosowanie grubego okręgu i półprzezroczystego tła, oraz dodanie napisu.


Wstawienie znaku ostrzegawczego.


sobota, 26 maja 2018

Reprenzentacja dźwięku w komputerze



Format "Wave" - format plików dźwiękowych stworzony przez Microsoft oraz IBM. WAVE bazuje na formacie RIFF, poszerzając go o informacje o strumieniu audio, takie jak użyty kodek, częstotliwość próbkowania czy liczba kanałów. WAV podobnie jak RIFF został przewidziany dla komputerów IBM PC, toteż wszystkie zmienne zapisywane są w formacie little endian. Odpowiednikiem WAV dla komputerów Macintosh jest AIFF.


Format MP3 - algorytm kompresji stratnej dźwięku, przetworzonego uprzednio na sygnał cyfrowy. Popularnie zwany formatem MP3 lub standardem MP3. Jest zdefiniowany przez IETF w dokumencie RFC 5219 ↓. Ochrona patentowa MP3 we wspólnocie wygasła w 2012, w kwietniu 2017 wygasł ostatni patent chroniący MP3 w Stanach Zjednoczonych. Częściową ochronę zapewniały dwa patenty, które wygasły w 2017. W związku z tym zakończono wydawanie licencji.


Format MIDI - system, (interfejs, oprogramowanie i zestaw komend) służący do przekazywania informacji pomiędzy elektronicznymi instrumentami muzycznymi. MIDI Umożliwia komputerom, syntezatorom, keyboardom, kartom dźwiękowym i podobnym urządzeniom kontrolować się nawzajem oraz wymieniać informacje między sobą. Pozwoliło także na tworzenie łatwych w obsłudze i programowaniu sekwencerów i syntezatorów perkusyjnych.


Obrazy ruchome


Wprowadzenie do multimediów



Klasyfikacja urządzeń multimedialnych:

*prezentacja i przetwarzanie dźwięku,
*prenezetacja i przetwarzanie obrazu,
*przechowywanie informacji.

Komputer jako centrum multimedialne.

Modele barw:

RGB (Red, Green, Blue)
CMYK (Cyan, Magneta, Yellow, blacK)

Głębokość barw (nasycenie)



Prezentacja zależności funkcyjnych w arkuszu kalkulacyjnym



  Wykres funkcji liniowej:

 https://www.youtube.com/watch?v=UpKMAYJa_vg


 Wykres funkcji kwadratowe (wielomianu):

https://www.youtube.com/watch?v=gDvsTFmr2KY&t=35s


Wykres funkcji trygonometrycznej:

https://www.youtube.com/watch?v=98qJADRbe6w


Wykres funkcji logarytmicznej:

https://www.youtube.com/watch?v=3_0mb1wnffg


Iteracja - fraktale, śnieżynka Kocha, dywan i trójkąt Sierpińskiego, paprotka Barnsleya



Iteracja - kopiowanie formuł.

Fraktal - figura geometryczna mająca cechę samopodobnieństwa, tzn. taką której dowolny fragment po powiększeniu jest taki sam jak całość figury.

   
Znalezione obrazy dla zapytania fraktal transparent

Śnieżynka Kocha - powstaje ona w ten sposób, że do boków trójkąta równobocznego "dokleja się" trzy trójkąty pomniejszone, np w skali 1:3..

Znalezione obrazy dla zapytania śnieżynka kocha transparent
Dywan i trójkąt Sierpińskiego - powstaje w nieskończonym procesie kolejnych podziałów kwadratu na dziewięć kwadratów przystających, z których usuwamy środkowy/połączenie środków boków trójkąta.

Znalezione obrazy dla zapytania dywan sierpinskiego transparent


Znalezione obrazy dla zapytania trójkat sierpinskiego transparent

Paprotka Barnsleya - przypomina kształt liścia paproci, zapisany za pomocą przekształceń afinicznych.

Znalezione obrazy dla zapytania paprotka barnsleya transparent

Algorytmy i zależności funkcyjne w arkuszu kalkulacyjnym



  Powyższe zagadnienie rozwinięte jest w prezentacji, omówione są tam m.in:
* zapisywanie algorytmu liniowego w arkuszu kalkuacyjnym
* zapisywanie warunków zagnieżdżonych w arkuszu kalkuacyjnym


https://docs.google.com/presentation/d/1ldq6v4diRDg-irFE6MjVOdoJWggi94TJPJYmYtPQDa4/edit?usp=sharing

Projekt szansy i rozwoju e-usług


Zapraszam do zapoznania się z tematem "Szans i zagrożeń związanych z rozwojem informatyki i technologii informacyjno-komunikacyjnych" na przykładzie e-zakupów:

https://docs.google.com/presentation/d/1KqsjovjJSVvvu9g_RxZKzoj473Lkw9FugywUL6jST2s/edit?usp=sharing

Sieci komputerowe


  Zapraszam do zapoznania się z tematem sieci komputerowych w poniższej prezentacji:

https://docs.google.com/presentation/d/1HGCnUiy9rdoCdkhAcv7DUkF3zqa8cnL4kAsygAOGJX4/edit?usp=sharing

Systemy operacyjne


  System operacyjny to zbiór programów kontrolujących pracę komputera oraz zainstalowanych w nim programów.

  Działanie systemu operacyjnego opiera się na:
* pośrednictwie pomiędzy użytkownikiem i komputerem oraz programami użytkowania,
* zarządza pamięcią operacyjną i zasobami komputera,
* nadzoruje wymianę danych pomiędzy jednostką centralną i urządzeniami zewnętrznymi,
* organizuje zapis danych,
* sygnalizuje błędy w działaniu komputera i aplikacji,
* nadzoruje uruchomienie i wykonywanie programów.

B - bajt
b - bit
1 bajt = 8 bitów
1 Kb = 1024 b
1 Mb = 1024 Kb
...
1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB

   Systemy operacyjne:
* Microsoft Windows (95/97/XP/98/2000/Vista/Windows 7/Windows 8/Windows 10)
* MS DOS
* Unix
* Linux
* Mac OS
* Ubuntu


wtorek, 23 stycznia 2018

Algorytm kompresji bezstratnej


     Kompresja bezstratna (ang. lossless compression) – ogólna nazwa metod kompresji informacji do postaci zawierającej zmniejszoną liczbę bitów, pod warunkiem, że metoda ta gwarantuje możliwość odtworzenia informacji z postaci skompresowanej do identycznej postaci pierwotnej.

Najważniejszym twierdzeniem o kompresji bezstratnej jest twierdzenie o zliczaniu.


Popularne metody

  • kodowanie Shannona, Shannona-Fano, Huffmana, arytmetyczne
  • LZ77, LZ78 i pochodne (LZSS, LZP, LZW, LZMW, LZAP)
  • RLE
  • PPM
  • transformata Burrowsa-Wheelera, Move To Front

Algorytm kompresji stratnej


     Kompresja stratna – metoda zmniejszania liczby bitów potrzebnych do wyrażenia danej informacji, które nie dają gwarancji, że odtworzona informacja będzie identyczna z oryginałem. Dla niektórych danych algorytm kompresji stratnej może odtworzyć informację w sposób identyczny.

Najpopularniejsze algorytmy kompresji
Obraz
  • JPEG, podstawa algorytmu MPEG, oparty na DCT i dający relatywnie słabe rezultaty.
  • JPEG2000, oparty na falkach, dający znacznie lepsze wyniki
Wideo
  • DivX/XviD, przy odpowiednich warunkach może skompresować zawartość płyty DVD na zwykłą CD, bez widocznych różnic.
  • MPEG, jedną z jego odmian stosuje się przy filmach na DVD, bardzo wysoka jakość, połączona z większymi objętościowo plikami (100 MB DivX = ok. 350 MB MPEG).
  • Real Video, niską jakość obrazu rekompensuje mała objętość dzięki czemu wykorzystywany jest przy transmisjach na żywo.
Dźwięk
  • MP3, najpopularniejsze kodowanie stratne audio, oparte na MDCT, stosuje model psychoakustyczny Instytutu Fraunhoffera i firmy Thomson.
  • Ogg Vorbis, oparte na MDCT
  • Real Audio, rekompensuje straty jakości małą objętością, jest stosowany głównie do transmisji na żywo.



piątek, 5 stycznia 2018

Tablice C++

TABLICA jest złożoną strukturą danych, składająca się z określonej liczby elementów tego samego typu.

Aby utworzyć zmienne indeksowane(aby zapamiętać dane, nadajemy im różne dane,stosujemy wówczas zmienne indeksowane np, a1 , a2.... )w różnych językach programowania , stosuje się tablice.


wtorek, 2 stycznia 2018

Efektywność algorytmów


Złożoność obliczeniowa algorytmu jest pojęciem teoretycznym.W praktyce bardziej interesuje nas efektywność algorytmu, która bierze pod uwagę praktyczne zastosowanie algorytmu w programie.





Złożoność algorytmów



Jest to jeden z najważniejszych parametrów charakteryzujących algorytm. Decyduje on o efektywności całego programu.Podstawowymi zasobami systemowymi uwzględnianymi w analizie algorytmów są czas działania oraz obszar zajmowanej pamięci.

Przez czasową złożoność obliczeniową rozumiemy ilość czasu niezbędnego do rozwiązania problemu w zależności od liczby danych wejściowych.Złożoność czasową wyrażamy albo w jednostkach czasu, albo w liczbie operacji dominujących, które należy wykonać dla n danych, aby otrzymać rozwiązanie problemu. Operacja dominująca jest operacją, której wykonanie bezpośrednio wpływa na czas wykonania całego algorytmu. Podawanie złożoności czasowej w jednostkach czasu jest niewygodne, ponieważ wynik zależy od szybkości komputera, na którym dokonano pomiarów - trudno takie wyniki odnieść do innych komputerów, szczególnie wyposażonych w inne procesory, gdzie czas wykonania podobnych operacji może znacznie się różnić. Dlatego częściej złożoność czasową wyrażamy w liczbie operacji dominujących, gdyż każdy komputer, bez względu na swoje własności, operacje te musi wykonać. Dzięki temu wynik uniezależniamy od faktycznej szybkości komputerów.
Złożoność pamięciowa określa z kolei liczbę komórek pamięci, która będzie zajęta przez dane i wyniki pośrednie tworzone w trakcie pracy algorytmu.








Złożoność czasowa - zależność pomiędzy liczbą operacji elementarnych wykonywanych w trakcie przebiegu algorytmu a rozmiarem danych wejściowych (podawana jako funkcja rozmiaru tych danych) 

np.
❘ sortowanie bąbelkowe: F( N) = ?, gdzie N jest długością listy
❘ algorytm rozwiązywania problemu wież Hanoi: F( N) = ?, gdzie N jest liczbą krążków 
❘ wyznaczanie minimalnego drzewa rozpinającego: F( N,M) = ?, gdzie N jest liczbą wierzchołków a M - liczbą krawędzi w grafie (sieci połączeń )


Złożoność pamięciowa - to wielkość pamięci niezbędnej do wykonania algorytmu.

Skończoność algorytmów



   Algorytm jest skończony, jeżeli gwarantuje wyznaczenie wyniku w skończonej liczbie kroków.


Zapis w języku C++

#include <iostream>
#include <cmath>
using namespace std;
float st, rad;
int main ()
     st=0.0;
     do
     {
          rad=st*M_PI/180;
          cout << "cos(" <, st << ") = "  << cos(rad)  << endl;
          st+=10.0
     }
     while (cos(rad)!=0.0);
     return 0;
}


Poprawność algorytmów



     Algorytm jest poprawny, jeżeli rozwiązuje problem zgodnie ze specyfikacją problemu (zadania).


Całkowicie poprawny - dla wszystkich danych wejściowych spełniających warunki początkowe wyprowadzi wyniki spełniające warunki końcowe i obliczenia zostaną zakończone. 

Częściowo poprawny - dla obliczeń, które się skończą wyniki są poprawne względem warunków początkowych i końcowych.


Algorytm powinien być dobrze określony i uniwersalny!



poniedziałek, 1 stycznia 2018

Sortowanie w języku C++ (pozycyjne)


Sortowanie to porządkowanie informacji według określonego kryterium.







1. SORTOWANIE POZYCYJNE.

W algorytmie sortowania słów według porządku alfabetycznego metodą pozycyjną porównywane
są litery umieszczone na tych samych pozycjach, 
począwszy od ostatniej litery w najdłuższym słowie 
(słowach).




2. PRZYKŁAD SORTOWANIA POZYCYJNEGO.

Posortować algorytmem sortowania pozycyjnego zbiór liczb:
{ 547 398 247 153 121 792 421 }

Liczby posortujemy wg kolejnych od końca cyfr:


start??x?x?x??koniec
547
398
247
153
121
792
421 121
421
792
153
547
247
398 121
421
547
247
153
792
398 121
153
247
398
421
547
792 121
153
247
398
421
547
792


Po posortowaniu ostatniej cyfry liczby tworzą ciąg posortowany.

Sortowanie w języku C++ (bąbelkowe)


Sortowanie to porządkowanie informacji według określonego kryterium.



1. SORTOWANIE BĄBELKOWE.

Polega na porównywaniu parami kolejnych liczb i przestawianiu ich jeśli występują w niewłaściwej kolejności.Sortowanie bąbelkowe jest bardzo 
łatwe - sprawdzamy czy następny element tablicy jest większy od aktualnego, jeżeli tak, to zamieniamy te elementy miejscami. Aby skrócić czas wykonywania całego algorytmu kosztem dłuższego czasu przejścia przez jedną pętlę, można utworzyć flagę przechowującą zmiany. Flaga jest zerowana na wejściu w pętli, w przpadku zmiany jest ona podnoszona. Po wykonaniu pętli sprawdzamy czy zaszła zmiana, jeżeli nie to kończymy sortowanie. 


2. PROGRAM REALIZUJĄCY ALGORYTM SORTOWANIA
BĄBELKOWGO.

#include<iostream>

using namespace std;

int main()
{
cout << "*****Bubble sort*****" << endl;
int a[50],n,i,j,temp;
cout<<"Wpisz ilosc liczb ";
cin>>n;
cout<<"Wypisz elementy: " << endl;
for(i=0;i<n;++i)
cin>>a[i];

for(i=1;i<n;++i)
{
for(j=0;j<(n-i);++j)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

cout<<"Posortowane liczby:";
for(i=0;i<n;++i)
cout<<" "<<a[i];

return 0;

}

Sortowanie w języku C++ (przez wybór)



Sortowanie to porządkowanie informacji według określonego kryterium.



1. SORTOWANIE PRZEZ WYBÓR.




Polega na wyszukaniu w ciągu liczby największej (lub najmniejszej- w zależności od przyjętego porządku), ustawieniu jej na początku ciągu, a następnie powtarzaniu tych czynności z pominięciem już uporządkowanych elementów.


2. PROGRAM REALIZUJĄCY ALGORYTM SORTOWANIA PRZEZ WYBÓR:

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
cout << "*****Select sort*****\n" ;
int array[100], n, c, d, position, swap;

printf("Wpisz liczbe elementow\n");
scanf("%d", &n);

printf("Wypisz te elementy\n", n);

for ( c = 0 ; c < n ; c++ )
scanf("%d", &array[c]);

for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
position = c;

for ( d = c + 1 ; d < n ; d++ )
{
if ( array[position] > array[d] )
position = d;
}
if ( position != c )
{
swap = array[c];
array[c] = array[position];
array[position] = swap;
}
}

printf("Posegregowane liczby:\n");

for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);

return 0;

}