ś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.