Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Materiały dla klasy III

Tablice

SPIS TREŚCI

Wstęp

Tablica (ang. array) lub wektor (ang. vector) jest złożoną strukturą danych (ang. compound data structure) zbudowaną z ciągu elementów tego samego typu. W pamięci komputera elementy tablicy są ułożone kolejno jeden obok drugiego. Dostęp do elementu odbywa się poprzez numer zwany indeksem. Na podstawie indeksu, rozmiaru elementu oraz adresu początku tablicy komputer oblicza adres elementu i w ten sposób uzyskujemy do niego dostęp.

We współczesnych językach programowania tablice są stosowane powszechnie do przechowywania danych podobnego rodzaju. Przy ich pomocy można zapisywać ciągi liczbowe, wyniki pomiarów różnych wielkości oraz tworzyć złożone bazy danych. Liczba zastosowań tablic jest w zasadzie ograniczona naszą wyobraźnią. Podstawową zaletą tablic jest prostota przetwarzania ich elementów. Dzięki dostępowi poprzez indeksy, elementy tablic daje się łatwo przetwarzać w pętlach iteracyjnych.


do podrozdziału  do strony 

Tablica jako zmienna złożona

Zmienna w języku C++ jest obiektem, który przechowuje informację dla programu. Każdą zmienną przed pierwszym użyciem należy zdefiniować, tzn. określić jej nazwę oraz typ przechowywanej informacji:

typ_danych nazwa_zmiennej;

Poniższy program odczytuje dwie liczby do zmiennych p i n, po czym wylicza wartość pn i wypisuje wynik:

C++
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int n,i;
    double p,w;

    cout << fixed << setprecision(2);
    cout << "Obliczanie p^n" << endl
         << "--------------" << endl << endl;
    cout << "p = "; cin >> p;
    cout << "n = "; cin >> n;

    // Obliczenia

    w = 1;
    for(i = 0; i < n; i++) w = w * p;

    // Wyniki

    cout << endl
         << p << "^" << n << " = "
         << w << endl << endl;

    return 0;
}

Przed pierwszym użyciem każda tablica musi być zadeklarowana tak jak wszystkie zmienne używane w programie – tablica jest zmienną złożoną.

Deklarację tablicy umieszczamy w języku C++ na liście deklaracji zmiennych. Składnia jest następująca:

typ_danych nazwa_tablicy [ liczba_elementów  ];
typ_danych  –  określa rodzaj informacji przechowywanych przez deklarowane zmienne.
nazwa_tablicy  – tworzona jest wg zwykłych reguł tworzenia nazw zmiennych w języku C++.
Liczba_elementów  – określa, ile elementów danego typu przechowuje tablica.

Poniżej podajemy kilka przykładów deklaracji tablic w C++:

...
int    a [ 3 ];  // tablica zawierająca 3 elementy typu int
double x [ 10 ]; // tablica przechowująca 10 liczb typu double
char   c [ 6 ];  // tablica przechowująca 6 wartości znakowych
...

W języku C++ indeksy tablic rozpoczynają się od 0. Ma to sens, ponieważ nazwa tablicy jest traktowana zawsze jak adres początku obszaru pamięci, w którym tablica przechowuje swoje elementy. Naturalne zatem jest, iż pierwszy element leży właśnie pod adresem tablicy. Stąd jego indeks wynosi 0, czyli nic nie musimy dodawać do adresu początku tablicy, aby uzyskać dostęp do jej pierwszego elementu.

W powyższym przykładzie zadeklarowano trzy tablice a, x  oraz c. Posiadają one elementy o następujących indeksach:

Tablica a  : a [ 0 ] a [ 1 ] a [ 2 ] - 3 elementy typu integer
Tablica x  : x [ 0 ] x [ 1 ] x [ 2 ] x [ 3 ] x [ 4 ] x [ 5 ] x [ 6 ] x [ 7 ] x [ 8 ] x [ 9 ] - 10 elementów typu double
Tablica c  : c [ 0 ] c [ 1 ] c [ 2 ] c [ 3 ] c [ 4 ] c [ 5 ] - 6 elementów typu char

Zwróć uwagę, iż tablica nie posiada elementu o indeksie równym ilości elementów. Zatem jeśli zadeklarujemy np. tablicę:

double Tlk [ 168 ];

to jej ostatnim elementem jest Tlk [ 167 ], a nie Tlk [ 168 ]. Odwołanie się w programie do Tlk [ 168 ] jest błędem, którego kompilator zwykle nie zgłosi, zakładając, iż programista wie co robi. Niestety, język C++ nie był tworzony z myślą o początkujących.


do podrozdziału  do strony 

Inicjalizacja tablic

Zmienną prostą można inicjować w trakcie deklaracji:
C++
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int n = 20;

    while(n > 0) cout << setw(2) << n-- << endl;

    return 0;
}
Składnia inicjalizacji tablicy w języku C++ jest następująca:
typ_elementów nazwa_tablicy[ ]  = { lista_wartości_dla_kolejnych_elementów };

Zwróć uwagę, iż nie musimy podawać liczby elementów w klamerkach przy nazwie. Kompilator utworzy tyle elementów, ile podamy dla nich wartości na liście inicjalizacyjnej.  Poniższy przykład tworzy tablicę 10 liczb całkowitych i wypełnia ją kolejnymi liczbami Fibonacciego.

C++
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int fib [ ] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 };
    int i;

    for(i = 0; i < 10; i++)
        cout << "fib[" << i << "] = "
             << setw(2) << fib[i] << endl;

    return 0;
}

Tablicę możemy również zainicjować danymi wprowadzanymi w oknie konsoli. My wykorzystamy do tego celu notatnik Windows. Dane będą składały się z ciągu liczb. Pierwsza liczba jest liczbą całkowitą, która określi ilość elementów tablicy. Pozostałe liczby są zawartością poszczególnych komórek tablicy. Przekopiuj do notatnika poniższy tekst:

16
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768

Tekst ten definiuje 16 kolejnych potęg liczby 2. Teraz napiszemy prosty program, który wczyta te liczby do tablicy T i wyświetli je w oknie konsoli w kolejności od największej do najmniejszej.

C++
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int n;           // liczba elementów tablicy
    int i;

    cin >> n;        // Odczytujemy liczbę elementów n

    int T[n];        // Tworzymy tablicę z n elementów

    for(i = 0; i < n; i++)
        cin >> T[i]; // odczytujemy dane do tablicy

    cout << endl;

    for(i = n - 1; i >= 0; i--)
        cout << setw(5) << T[i] << endl;

    return 0;
}

Przekopiuj do schowka Windows tekst z notatnika (możesz wprowadzić swoje zmiany przed skopiowaniem). Uruchom program. Kliknij prawym przyciskiem myszki w pasek tytułowy okna konsoli i wybierz opcję EdytujWklej (w Windows 10 możesz używać skrótu Ctrl+V).


do podrozdziału  do strony 

Wyszukiwanie liniowe

Wyszukiwanie liniowe ( ang. linear search ), zwane również sekwencyjnym (ang. sequential search) polega na przeglądaniu kolejnych elementów tablicy Z. Jeśli przeglądany element posiada odpowiednie własności (np. jest liczbą o poszukiwanej wartości ), to zwracamy jego pozycję w tablicy i kończymy. W przeciwnym razie kontynuujemy poszukiwania aż do przejrzenia wszystkich pozostałych elementów tablicy Z.

W przypadku pesymistycznym, gdy poszukiwanego elementu nie ma w tablicy lub też znajduje się on na samym końcu zbioru, algorytm musi wykonać przynajmniej n  obiegów pętli sprawdzającej poszczególne elementy.

Często chcemy znaleźć wszystkie wystąpienia w zbiorze poszukiwanej wartości elementu. W takim przypadku algorytm na wejściu powinien otrzymywać dodatkowo pozycję (indeks) elementu, od którego ma rozpocząć wyszukiwanie. Pozycję tę przy kolejnym przeszukiwaniu podajemy zawsze o 1 większą od ostatnio znalezionej. Dzięki temu nowe poszukiwanie rozpocznie się tuż za poprzednio znalezionym elementem.

Algorytm wyszukiwania liniowego/sekwencyjnego

Wejście:

n  –   liczba elementów w tablicy Z, n N.
Z  – tablica zawierająca elementy do przeszukania. Indeksy elementów rozpoczynają się od 0, a kończą na n - 1.
p  – indeks pierwszego elementu Z, od którego rozpoczniemy poszukiwania. pC.
k  – poszukiwana wartość, czyli tzw. klucz, wg którego wyszukujemy elementy w Z.

Wyjście:

Pozycja elementu tablicy Z  o kluczu k  lub -1 w przypadku nie znalezienia elementu.

Zmienne pomocnicze:

i  –  przebiega przez kolejne indeksy elementów Z. iC.

Lista kroków:

K01: Dla i  = p, p + 1, ..., n - 1:
wykonuj K02
przeglądamy kolejne elementy w tablicy
K02:     Jeśli Z [ i  ] = k,
    to zakończ z wynikiem i
jeśli napotkamy poszukiwany element, zwracamy jego pozycję
K03: Zakończ z wynikiem -1 jeśli elementu nie ma w tablicy, zwracamy -1

Napiszemy teraz program, który wyszuka wśród zbioru liczb określoną wartość. Dane są następujące:

100
782 844 96 757 182 522 610 799 854 9 38 574 475 443 618 590 59 149 254 460 967 252 516 217 865 497 227 185 712 857 236 916 625 178 401 493 400 107 603 882 304 580 835 227 63 721 643 94 373 748 101 705 927 794 156 706 879 717 131 740 78 323 523 763 525 172 912 666 744 153 230 851 721 132 152 927 915 497 105 398 717 267 934 689 513 705 732 821 341 842 721 83 818 463 178 559 875 769 221 390
721
 

Pierwsza liczba n określa ilość liczb do przeszukania. Następnie mamy n liczb, które należy przeszukać. Na końcu podana jest poszukiwana wartość.

Program ma wczytać te liczby z wejścia konsoli znakowej, po czym wyświetlić je kolejno, ujmując znalezione wartości k w klamerki kwadratowe. Na końcu program powinien w czytelny sposób podać ilość znalezionych wartości k.

Program napiszemy na lekcji. Jeśli chcesz mieć w oknie konsoli polskie litery, to umieść na początku programu funkcję: setlocale(LC_ALL,"");


do podrozdziału  do strony 

Systemy liczenia

Wczesne systemy liczbowe

System karbowy

obrazek

Potrzeba liczenia pojawiła się wraz z posiadaniem przedmiotów. Człowiek pierwotny nie odczuwał jej. Jako myśliwy nie mógł posiadać zbyt wiele. Rzeczy należało przenosić, więc jeśli czegoś było za dużo, po prostu pozostawiano to w miejscu obozowania. Duża liczba przedmiotów spowalniała myśliwego. Co za tym idzie, malały jego szanse na zdobycie pożywienia, a mógł również przez to sam stać się ofiarą. Jednak pewien prosty system liczenia pojawił się około 30.000 lat p.n.e. Był to system karbowy (ang. notch system). Polegał na żłobieniu w kościach karbów, których ilość oznaczała określoną liczbę. System ten stosowany jest w ograniczonej formie do dnia dzisiejszego, więc można go nazwać najdłużej używanym wynalazkiem człowieka.

obrazek

Początkowo dla wyrażenia jednostek stosowano pojedyncze kreski. Np. liczbę 18 zapisywano tak:

\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

Jednak zapis ten jest mało czytelny - porównaj go z zapisem np. liczby 17 czy 19. Można się pomylić? Oczywiście. Aby więc zwiększyć czytelność zapisu liczb co piątą kreskę stawiano pod innym katem od pozostałych. Teraz liczbę 18 zapisywano tak:

\ \ \ \/ \ \ \ \/ \ \ \ \/ \ \ \

Ilość kresek (karbów) jest taka sama, ale dzięki zaburzeniom łatwiej jest się zorientować w wartości liczby - są to trzy pełne piątki i trzy jednostki. Człowiek pierwotny, jeśli miał nazwy dla liczb, mógł to przeczytać jako trzy razy po pięć i trzy. Jeśli w liczbie tak zapisanej występowało dużo piątek, to co drugą piątkę zapisywano jeszcze inaczej, mianowicie tak:

\ \ \ \/ \ \ \ X \ \ \ \/ \ \ \

System Rzymski

obrazek

System karbowy wyewoluował w znany nam dzisiaj system rzymski (ang. Roman numeral system). Rzymianie, jako ludzie praktyczni, uprościli zapis karbowy odrzucając niepotrzebne kreski po lewej stronie. W efekcie zapis liczby 18 wyglądał teraz tak:

XVIII

Pięknie - Rzymianie też byli z tego zadowoleni. Idąc za ciosem wymyślili dalsze reguły. Reguły te możemy zapisać następująco:

  1. Liczby zapisujemy jako sumę cyfr o następujących wartościach:
Cyfra wartość
I jeden
V pięć
X dziesięć
L pięćdziesiąt
C sto od łacińskiego "centum"
D pięćset
M tysiąc od łacińskiego "milum"
  1. Cyfry wypisujemy od strony lewej do prawej poczynając od największej.
    Teraz można już zapisywać w zgrabny sposób różne liczby:
12  – XII
29  – XXVIIII
1999  – MDCCCCLXXXXVIIII
  1. Jeśli przed cyfrą starszą stoi cyfra młodsza, to należy ją odjąć od starszej.
    Rzymianom nie podobało się, iż muszą zapisywać liczbę 4 jako IIII, liczbę 9 jako VIIII itd. Wprowadzili więc pozorne uproszczenie systemu, czyli regułę 3. Teraz prościej można przedstawiać powyższe liczby:
4  – IV
9  – IX
1999  – MCMXCIX

O ile przedtem dodawanie można było wykonywać przez wspólne zapisanie cyfr obu dodawanych liczb, a następnie zastąpienie cyfr niższych wyższymi: 

MMCCCXXVI + MDCCXXVII = MMMDCCCCCXXXXVVIII = MMMDDXXXXXIII = MMMMLIII

to po zastosowaniu reguły 3 należało szalenie uważać, aby nie popełnić pomyłki. W rezultacie uproszczenie zapisu spowodowało skomplikowanie rachunków.

  1. Jeśli nad cyfrą umieszczono kreskę, to cyfra ta oznaczała liczbę tysięcy.
    Reguła ta pozwala zapisywać względnie duże liczby bez konieczności pisania wielu cyfr M. Na przykład liczbę 36.984 rzymski rachmistrz zapisywał następująco:

XXXVICMLXXXIV

Zgrabnie, nieprawdaż? Rzymianie byli naprawdę bardzo dumni ze swojego systemu zapisu liczb. Przetrwał on w ograniczonej formie nawet do dzisiaj przy zapisie dat lub numeracji rozdziałów, klas, sal, pięter, godzin itp. Jednak pomimo tych usprawnień system rzymski był ograniczony. Jak bowiem zapisać w tym systemie na przykład taką liczbę:

9426164130947320732385384038740846725325161632379864930747364030384752621 ?

System Babiloński

obrazek

Cywilizacja babilońska rozkwitła w Mezopotamii wypierając wcześniejsze cywilizacje Sumerów i Akadyjczyków. Piętno Babilonu odcisnęło się na wielu cywilizacjach świata starożytnego, a jego echo jest obecne nawet w naszej kulturze. Babilończycy rozwinęli jako pierwsi system pozycyjny o podstawie 60 (do dzisiaj dzielimy godziny na sześćdziesiąt minut, minuty na sześćdziesiąt sekund - czy kiedykolwiek zastanawiałeś się dlaczego?). Cechą systemu pozycyjnego jest ograniczona ilość cyfr. Te same cyfry są używane wielokrotnie w zapisie liczby. Wartość cyfry zależy od jej pozycji - stąd nazwa system pozycyjny.

Z naszego punktu widzenia system babiloński (ang. Babylonian numeral system) na pierwszy rzut oka może wydawać się skomplikowany - konieczność operowania aż 59 cyframi (cyfra zero nie była jeszcze znana ani stosowana). W rzeczywistości Babilończycy potrzebowali tylko dwóch symboli - dla jedności i dla dziesiątek. Ich cyfry były zbudowane właśnie z tych dwóch znaków zapisywanych końcem ostrej trzcinki na tabliczce glinianej, stąd pochodzi charakterystyczny, klinowy kształt pisma:

obrazek

Dlaczego wybrano podstawę 60? Prawdopodobnie zadecydowało to, że liczbę 60 można podzielić przez 2,3,4,5,6,10,12,15,20 i 30. System liczbowy o podstawie 60 nazywamy systemem sześćdziesiątkowym (ang. sexagesimal system).

W systemie babilońskim ostatnia cyfra oznaczała liczbę jednostek od 1 do 59. Gdy Babilończyk chciał zapisać liczbę 65, to używał dwóch cyfr (tak samo jak my przy zapisie liczby 15). Pierwsza cyfra 1 oznaczała jedną sześćdziesiątkę. Druga cyfra 5 oznaczała 5 jednostek:

obrazekobrazek

Babilończycy nie używali cyfry 0. Zamiast niej po prostu zostawiano puste miejsce w zapisie liczby. Odpowiada to interpretacji zera przez ludy starożytne. Po prostu zero nie było traktowane jako liczba, ponieważ liczba określa ilość czegoś, a jeśli czegoś nie ma, to nie można mówić o ilości. Przecież rybak, który nie złowił żadnej ryby, nie przychodził do domu wołając radośnie od progu "mam zero ryb!". Problem z pustym miejscem mógł się pojawiać, gdy w zapisie liczby dwie pozycje obok siebie były niezajęte. W późniejszym okresie Babilończycy wprowadzili w tym celu znak wypełniający, jednakże nie traktowali go nigdy jako cyfry.

Jeśli cyfr było więcej, to posiadały one wagi, które są kolejnymi potęgami liczby 60 – podstawy tego systemu:

numer pozycji 3 2 1 0
waga pozycji 603 = 216000 602 = 3600 601 = 60 600 = 1
cyfra obrazek obrazek obrazek obrazek
wartość cyfry 6 25 9 56

Wartość liczby uzyskamy mnożąc wagi pozycji przez wartości cyfr, które na tych pozycjach występują, a następnie sumując te iloczyny. Zwróć uwagę, że waga pozycji jest zawsze równa podstawie systemu podniesionej do potęgi równej numerowi pozycji.

6 x 603 + 25 x 602 + 9 x 601 + 56 x 600 = 6 x 216000 + 25 x 3600 + 9 x 60 + 56 x 1 = 1296000 + 90000 + 540 + 56 = 1.386.596

Zauważ, że system babiloński pozwala bez problemu zapisywać dowolnie duże liczby (jakie wagi miałaby pozycje o numerach 4, 5, 6?). Jest zatem lepszy od systemu rzymskiego.

System Arabski

obrazek

System zapisu liczb, którym posługujemy się dzisiaj, nosi nazwę systemu dziesiętnego (ang. decimal numeral system) lub systemu arabskiego (ang. Arabic numeral system). Nazwa sugeruje, iż został on wynaleziony przez Arabów. Tymczasem prawda jest inna. Arabowie przejęli go od Hindusów i rozpowszechnili w Europie. To uczonym bramińskim przysługuje palma pierwszeństwa w opracowaniu zapisu pozycyjnego. Pierre-Simon Laplace (1749-1827), wielki matematyk francuski, napisał kiedyś następujące słowa:

Genialna metoda wyrażania każdej możliwej liczby przy użyciu zbioru dziesięciu symboli (z których każdy posiada wagę pozycji oraz wartość bezwzględną) powstała w Indiach. Dzisiaj pomysł ten wydaje się tak prostym, iż jego znaczenie i istota nie są już doceniane. Prostota tego pomysłu leży w sposobie, w jaki ułatwia on wykonywanie obliczeń, co umieściło arytmetykę na czele użytecznych wynalazków, a znaczenie tego wynalazku może być bardziej docenione, gdy zdamy sobie sprawę, iż dokonał on się poza dwoma największymi umysłami starożytności, Archimedesem i Apoloniuszem.

Ciekawostką jest to, iż system dziesiętny został powszechnie przyjęty dopiero po ponad 200 latach od pojawienia się w Europie. Wcześniej korzystano z systemu rzymskiego. Wykonywanie rachunków w systemie rzymskim było bardzo skomplikowane i wymagało studiów matematycznych. Matematycy, uważając się za elitę, nie chcieli utracić swojej uprzywilejowanej pozycji na rzecz nowego systemu, w którym rachunki mogły wykonywać nawet dzieci. Ludzie nie zawsze przyjmują z entuzjazmem to, co jest lepsze.

Podstawę systemu dziesiętnego (ang. decimal system base) tworzy liczba 10. Jest to specjalna wartość charakteryzująca system pozycyjny, od której bierze on swoją nazwę: podstawa 10 - system dziesiętny.

Zapis liczby tworzymy za pomocą cyfr, czyli umownych znaków o przypisanych wartościach od 0 do 9. Ilość cyfr jest zawsze równa podstawie systemu, czyli w systemie dziesiętnym będzie ich dziesięć. Największa cyfra jest o 1 mniejsza od podstawy (9 = 10 - 1).

Cyfry umieszczamy na kolejnych pozycjach. Każda pozycja posiada swoją wartość, którą nazywamy wagą pozycji. Wagi pozycji są kolejnymi potęgami podstawy systemu, czyli w systemie dziesiętnym są to kolejne potęgi liczby 10:

wagi 1000
103
100
102
10
101
1
100
cyfry 7 5 8 2
pozycje 3 2 1 0

Cyfra na danej pozycji określa ile razy należy wziąć wagę tej pozycji przy wyznaczaniu wartości całej liczby. Zatem w naszym przykładzie waga 1000 występuje 7 razy, waga 100 - 5 razy, waga 10 - 8 razy i waga 1 - 2 razy. Wartość liczby otrzymujemy sumując iloczyny cyfr przez wagi pozycji, na których cyfry te występują (czyli ilości tych wag):

7 × 1000 + 5 × 100 + 8 × 10 + 2 × 1

Jeśli pozycje ponumerujemy kolejno od 0 poczynając od prawej strony zapisu liczby, to waga pozycji i-tej będzie i-tą potęgą podstawy systemu. Np. pozycja nr 3 ma wagę 103, czyli 1000, a pozycja nr 2 ma wagę 102, czyli 100.

Naturalny system dwójkowy (ang. NBS - Natural Binary System) jest najprostszym systemem pozycyjnym, w którym podstawa p = 2. System posiada dwie cyfry 0 i 1, zatem można je kodować bezpośrednio jednym bitem informacji. Wartość liczby obliczamy zgodnie ze wzorem podanym w rozdziale o systemach pozycyjnych.

Zapamiętaj:

Wartość dziesiętna liczby zapisanej w naturalnym kodzie binarnym

 

bn-1bn-2...b2b1b0 = bn-12n-1 + bn-22n-2 + ... + b222 + b121 + b020

gdzie

b - bit, cyfra dwójkowa 0 lub 1
n - liczba bitów w zapisie liczby

Przykład:

Obliczyć wartość liczby dwójkowej 11100101(2).

11100101(2) = 1 × 27 + 1 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 1 × 20
11100101(2) = 1 × 128 + 1 × 64 + 1 × 32 + 0 × 16 + 0 × 8 + 1 × 4 + 0 × 2 + 1 × 1
11100101(2) = 128 + 64 + 32 + 4 + 1
11100101(2) = 229(10)

Jeśli dokładnie przyjrzysz się powyższym obliczeniom, to na pewno zauważysz, iż w systemie binarnym w celu obliczenia wartości liczby wystarczy po prostu zsumować wagi pozycji, na których cyfry przyjmują wartość 1.

Przykład:

101011(2) = 25 + 23 + 21 + 20 = 32 + 8 + 2 + 1 = 43(10)

Jest to znaczne uproszczenie w stosunku do innych systemów, gdzie musimy wykonywać mnożenia cyfr przez wagi pozycji. Tutaj albo dana waga występuje w wartości liczby (cyfra 1), albo nie występuje (cyfra 0). Nie na darmo system binarny jest najprostszym systemem pozycyjnym.

Bardzo ważne dla informatyka i programisty jest nauczenie się na pamięć pierwszych szesnastu liczb binarnych:

dziesiętnie 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
dwójkowo 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.