środa, 27 marca 2019

Reprezentacja danych numerycznych i algorytmy numeryczne


Liczby całkowite zapisuje się w postaci binarnej, używając kodu uzupełnionego do dwóch.

Liczbę rzeczywistą można zapisać w systemie pozycyjnym o dowolnej podstawie wykorzystując reprezentacje stałopozycyjną lub reprezentacyjną zmiennopozycyjną. Ponieważ niektóre liczby wymagają dużej ilości bitów do zapisuj stałopozycyjnego, większość komputerów wykorzystuje zmiennoprzecinkowe.


Wybrane algorytmy


Wieża Hanoi:



Przy tworzeniu algorytmów często korzystamy z zasady "dziel i zwyciężaj". Zasada ta została zastosowana miedzy innymi w algorytmach sortowania przez scalenie, szybkiego sortowania i wyszukiwania binarnego.

Sito Eratostenesa:


Algorytm sita Eratostenesa polega na usuwaniu z zadanego przedział wszystkich liczb złożonych, czyli eliminowaniu z niego liczb będących wielokrotnościami kolejnych liczb pierwszych - inaczej szukanie liczb pierwszych.

Tworzenie własnych modułów


W PASCAL:

Interfejs - opisuje stałe, zmienne, typy danych, procedury i funkcje. Jest ona publiczna.

interface { część modułu określająca interfejs }

implementacja - opisuje działanie procedur i funkcji. Są one prywatne dla modułu.

implementation { część implementacyjna modułu }

W C++:

plik nagłówkowy - odpowiednik interfejsu, zawiera deklaracje (h)

plik zawierający właściwy kod - odpowiedniki implementacji. (.cpp)


sobota, 23 marca 2019

Programowanie modularne i obiektowe



Moduł to zbiór stałych, zmiennych, typów danych, procedur i funkcji, który oznaczony jest unikatową nazwą.

W języku C++ dyrektywa preprocesora #include określa, jakie pliki nagłówkowe mają zostać dołączone do kodu programu.

#include <iostream>    - standar. biblioteka C++
#include <stdio.h>       - standar. biblioteka C

<cmath> - funkcje matematyczne
<cstdio> - operacje wejścia/wyjścia
<cstdlib> - funkcje narzędziowe
<ctstring> - opreacje na łańcuchach znakowych
<ctime> - funkcja czasu/daty

wtorek, 19 marca 2019

Dynamiczne struktury danych



Zmienna, która nie przechowuje wartości, tylko adres, pod którym znajduje się inna zmienna, nazywana jest zmienna wskaźnikową.

Zmienne dynamiczne to zmienne , dla których pamięć jest przydzielana i zwalnia w trakcie trwania programu.



Drzewo binarne jest nieliniową strukturą danych, która składa się z wyróżnionego wierzchołka, zwanego korzeniem i dwóch poddrzew binarnych.
Wyróżnia się lewego i prawego syna wierzchołka.


czwartek, 14 marca 2019

Przetwarzanie danych typu struktualnego



Aby w programach można było przetwarzać dane różnego rodzaju, w języki C++ wprowadzono typ strukturalny.

Do tworzeniach takich struktur służy: struct. 

Aby odwołać się do pojedynczego pola, podajemy nazwę zmiennej typu rekordowego i nazwę pola rekordu, oddzielone od siebie kropką.

sobota, 9 marca 2019

Losowanie danych i sprawdzanie ich poprawności



 (szyfrowanie, gry komputerowe, rzuty sześcienną kostką, grafika komputerowa) - przypadkowość


Symulacja rzutów sześcienną kostką do gry

#include <iostream>
#include <cstdlib>
using namepsace std;
int i;
int main ()
{
   for(i=0; i<10; i++)
        cout << "Wypadło: " << rand()%6+1 << endl;
   return 0;
}

Pisząc programy, należy zapewnić sprawdzenie poprawności wprowadzanych funkcji rand() i srand() - C++ - umożliwia to losowanie danych liczbowych przez komputer.
Dobry program powinien być odporny na błędy użytkownika. W momencie wprowadzenia przez niego bezsensownych danych, działanie programu nie powinno zostać w żaden sposób przerwane.


środa, 6 marca 2019

Operacje na stosie



stack - ang. stos

Potrzebny do wywoływania procedur i funkcji aktualnie wywoływanej instrukcji, kładziony na wierzch stosu. Zakończenie procedury lub funkcji ze stosu powoduje zdjęcie adresu i procesora wykonującego skok pod ten adres.


#include
using namespace std;
int Stack[100];
int SP;
void Init()
{
    SP=-1;
}
void Push(int x)
{
    Stack[++SP]=x;
}
int Pop()
{
     return Stack[SP--];
}

Odwrotna notacja polska - nie potrzebuje ona nawiasów, stosuje się argumenty i symbole operacji.

2 + 3         ->     2 3 +
4 * (2 + 3) ->    4 2 3 + *

wtorek, 5 marca 2019

Własne typy danych i stałe



  W języku C++ do deklaracji własnych typów danych służy słowo kluczowe typedef, po którym podajemy definicję typu, a następnie jego własną nazwę.

typedef char *TSlowo;
typedef TSlowo *TTablicaSlow;
typedef int TCalkowity;
TTablicaSlow Tab1, Tab2, Tab3;
TCalkowity N;

Korzystanie z własnych typów jest niekiedy wręcz wymagane!

Określenie z góry wszystkich typów danych wykorzystywanych w programie to element dobrego stylu programowania.

Typ okrojony  -  korzystamy wtedy, gdy z góry wiemy, że pewna dana w naszym programie powinna przyjmować wartości z określonego zakresu.

Typ wliczeniowy - korzystamy wtedy, gdy chcemy używać wartości mających znaczenie wyłącznie symboliczne.

Stałe:

w języku C++ kluczowe słowo to: const służy do deklarowania zmiennych, których wartość nie ulega zmianie. Wartości porządkowe można przypisać zmiennym w momencie ich deklarowania.

piątek, 1 marca 2019

Wprowadzanie danych i wyprowadzenie wyników


Zmienne typu:

a) float a;                        rzeczywiste 
b) int x[50];                    całkowite
c) char c[21];                  znakowe
d) chard d;                      znakowe
e) unsigned short k;        całkowite

Typ danych  określa zbiór wartości, które mogą przyjmować zmienna, wyrażenia lub stała, a format danych określa sposób prezentacji danych określonego typu na urządzeniach wejścia/wyjścia.

Formatowanie danych:

setprecision(dokładność)
setiosflags(atrybut)
setw(szerokość)
setfill(znak-wypełnienia)
printf(format, dana1, dana2..)


sobota, 19 stycznia 2019

Projekt grupowy - Hurtownia Kosmetyczna


     1. Zadania i analiza systemu informatycznego.
     2. Opracowanie założeń systemu informatycznego.
     3. Przygotowanie projektu technicznego:

Tabele: Firmy, Dostawcy, Kosmetyki, Zlecenia
Formularze: - | | -

     4. Tworzenie oprogramowania: (relacje między tabelami)


     5. Testowanie systemu informatycznego: (wprowadzanie danych)


     6. Wdrożenie systemu informatycznego.



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.