ś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..)
Subskrybuj:
Posty (Atom)