Laboratorium do przedmiotu



Pobieranie 97,33 Kb.
Data05.05.2018
Rozmiar97,33 Kb.

Laboratorium do przedmiotu

Języki i metody programowania C2


Lp

Laboratorium

1

Wprowadzenie do programowania, struktura programu w języku C++. Programowanie algorytmów sekwencyjnych. Typy, operatory i wyrażenia, operacje wejścia i wyjścia
Przykładowe programy:


  1. Napisz program wyświetlający na ekranie dane osobowe w kolejnych wierszach:

Nazwisko: Kowalski

Imię: Adam

Miasto: Legnica

Ulica: Piastowska 25/4

Należy użyć funkcję printf


  1. Napisz program, który pobiera z klawiatury dane osobowe takie, jak w programie 1 i wyświetla je na ekranie w dowolny sposób (np. wyrównane do prawej strony)

Należy użyć funkcje printf i scanf


  1. Napisz program, który pobiera z klawiatury dane towaru: nazwę, cenę netto i podatek w procentach i wyświetla na ekranie następujące dane:

Nazwa towaru:

Cena netto:

Podatek:

Cena brutto:

Należy użyć funkcje printf i scanf




2

Instrukcje if, if-else, switch, operacje wejścia i wyjścia. Algorytmy wykorzystujące warunki
Przykładowe programy:
1. Wykonaj program, który oblicza pierwiastki równania kwadratowego

dla a <>0 i wyrażenia b*b-4*a*c>0 lub b*b-4*a*c=0.

Należy wykryć w programie te przypadki.

Zastosować instrukcje if else


2. Napisz program, który pobiera z klawiatury 3 liczby rzeczywiste i wyświetla na ekranie największą z nich i najmniejszą.
3. Wykonaj program, który podaje wynik rozwiązania równania liniowego

ax + by = c dla następujących przypadków:

a=0, b=0, c=0

a=0, b=0, c<>0

a=0, b<>0, c=0

a=0, b<>0, c<>0

a<>0, b=0, c=0

a<>0, b=0, c<>0

a<>0, b<>0, c=0

a<>0, b<>0, c<>0

Zastosować instrukcje if else.

Uwaga: Zabezpieczyć funkcje scanf w przypadku braku prawidłowej

konwersji ze znakowej na binarną
4. Laboratorium 3: wyrażenia arytmetyczne i relacyjne,

instrukcje if, if else, switch, for, while, do while


5. Zapoznać się ze środowiskiem BorlandC/C++:

- FILE (New, Open, Save, Save as, Change dir)

- Edit (Cut, Copy, Paste, Clear itd.)

- Run (Ctrl+F9, F4, F7, F8)

- Compile(Alt+F9, F9, Build all)

- Window (Ctrl+F5, Alt+F3, F5, Alt+F5, itd.)







3

Instrukcje iteracyjne: for, while, do-while. Pętle zagnieżdżone. Algorytmy wykorzystujące pętle.
Przykładowe programy:
1. Napisz program wyświetlający na ekranie za pomocą funkcji printf

kody ASCCI podobnie jak program lab3_1.exe. Zastosuj pętle for

oraz funkcje printf().
2. .Napisz program wyświetlający tabliczkę mnożenia dla liczb

całkowitych od 1 do 10, podobnie jak program lab3_2.exe. Zastosuj

funkcje printf() oraz pętle while

3. Napisz program, wykonujący dowolne proste operacje matematyczne

(np. arytmetyczne, rachunek relacyjny, rachunek zdań) podobnie jak

program lab3_3.exe. Zastosuj:

3.1 funkcje scanf() do wprowadzania argumentów oraz operatorów

3.2 funkcje printf() do wyświetlania na ekranie menu oraz wyników

działań.

3.3. pętle do while do powtarzania działań



    1. instrukcje if else do wyboru działania

4. Wykonaj program z p. 4, jednak do wyboru działań zastosuj instrukcję



switch
5. Oblicz sumę szeregu typu Pi: 1-1/3+1/5-1/7...




4

Tablice – deklaracja, definicja, inicjowanie, definicja elementu tablicy,

operator indeksowania. Algorytmy wykorzystujące pętle i tablice


Przykładowe programy:
1. Napisz program, który w opcjach wykonuje następujące czynności

na tablicy zdefiniowanej jako int tab[N]:

1.1. wstawia elementy typu int do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

1.2. wyznacza wartość maksymalna i wyświetla ja oraz indeks

jej elementu, jesli tablica zawiera dane

1.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.


Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.


2. Napisz program, który w opcjach wykonuje następujące czynności

na tablicy zdefiniowanej jako int tab[N]:

2.1. wstawia elementy typu int do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

2.2. wyznacza wartość minimalną i wyświetla ja oraz indeks jej

elementu, jeśli tablica zawiera dane

2.3. wyświetla zawartość tablicy, jeśli zawiera dane


Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N – ile = N oznacza, ze tablica jest pełna.


3. Napisz program, który w opcjach wykonuje następujące czynności

na tablicy zdefiniowanej jako int tab[N]:

3.1. po każdym wywołaniu tej opcji wstawia po jednym elemencie typu

int do tablicy, zawsze za ostatnio wstawionym elementem. Należy

zawsze sprawdzić przed wprowadzeniem, czy liczba elementów ile

jest mniejsza od wartości N. Po każdym wprowadzeniu danej

należy zwiększyć liczbę elementów o 1

3.2. wyznacza wartość minimalna i wyświetla ja oraz indeks jej

elementu, jeśli tablica zawiera dane

3.3. wyznacza wartość średnią elementów i wyświetla ją, jeśli

tablica zawiera dane

3.4. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.




5

Wskaźniki, adresy pamięci, arytmetyka wskaźników. Tablica jako wskaźnik do swojego pierwszego elementu. Inny zapis algorytmów wykorzystujących pętle i tablice. Zastosować w programach wskaźnikowe odwołanie do tablicy

Przykładowe programy:
1. Napisz program, który w opcjach wykonuje następujące czynności

na tablicy zdefiniowanej jako int tab[N]:

1.1. wstawia elementy typu int do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

1.2. wyszukuje element o zadanej wartości z klawiatury

1.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.
Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.


2. Napisz program, który w opcjach wykonuje następujące czynności

na tablicy zdefiniowanej jako int tab[N]:

2.1. wstawia elementy typu int do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

2.2. zmienia wartość wyszukanego elementu na podstawie danych podanych z klawiatury (pierwszy do wyszukania i drugi do zmiany)

2.3. wyświetla zawartość tablicy, jeśli zawiera dane
Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N – ile = N oznacza, ze tablica jest pełna.


3. Napisz program, który w opcjach wykonuje następujące czynności

na tablicy zdefiniowanej jako int tab[N]:

3.1. po każdym wywołaniu tej opcji wstawia po jednym elemencie typu

int do tablicy, zawsze za ostatnio wstawionym elementem. Należy

zawsze sprawdzić przed wprowadzeniem, czy liczba elementów ile

jest mniejsza od wartości N. Po każdym wprowadzeniu danej

należy zwiększyć liczbę elementów o 1

3.2. usuwa element wybrany element przez wstawienie na jego miejsce elementu ostatniego – należy wtedy zmniejszyć liczbę elementów

3.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.






6

Funkcje jako podstawa programowania strukturalnego– deklaracja, definicja, parametry. Rola funkcji w upraszczaniu struktury programu – eliminacja powtórzeń kodu.

Przykładowe programy:
1. Napisz program, który w opcjach wywołuje funkcje, które wykonują następujące czynności na tablicy zdefiniowanej jako int tab[N]:

1.1. wstawia elementy typu int do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

1.2. wyszukuje element o zadanej wartości z klawiatury

1.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.


Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.


2. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na tablicy zdefiniowanej jako int tab[N]:

2.1. wstawia elementy typu int do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

2.2. zmienia wartość wyszukanego elementu na podstawie danych podanych z klawiatury (pierwszy do wyszukania i drugi do zmiany)

2.3. wyświetla zawartość tablicy, jeśli zawiera dane


Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N – ile = N oznacza, ze tablica jest pełna.


3. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na tablicy zdefiniowanej jako int tab[N]:

3.1. po każdym wywołaniu tej opcji wstawia po jednym elemencie typu



int do tablicy, zawsze za ostatnio wstawionym elementem. Należy

zawsze sprawdzić przed wprowadzeniem, czy liczba elementów ile

jest mniejsza od wartości N. Po każdym wprowadzeniu danej

należy zwiększyć liczbę elementów o 1

3.2. usuwa element wybrany element przez wstawienie na jego miejsce elementu ostatniego – należy wtedy zmniejszyć liczbę elementów

3.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.






7/8

Łańcuchy czyli tablice znaków. Funkcje łańcuchowe

1. Napisz program, który przetwarza tablice znaków, czyli łańcuchy.

Do wprowadzania łańcuchów należy stosować funkcje cgets(). Bufor funkcji cgets powinien stanowić osobna zmienna, lokalna w tych funkcjach, w których wystąpi wprowadzanie - stad wprowadzony do niej łańcuch należy bezpiecznie skopiować do głównej tablicy znaków, przekazywanej do każdej z funkcji przetwarzającej łańcuchy wg 1.1-1.5.

Program powinien umożliwiać wybór następujących czynności:

1.1. wprowadzanie z klawiatury łańcucha za pomocą cgets

1.2. zliczyć wybrany znak w łańcuchu - zliczany znak podać

z klawiatury - zastosować strchr

1.3. dodać dwa łańcuchy- jeden wprowadzony z klawiatury (pomocniczy), drugi jako główny łańcuch programu - zastosowań strcat (sprawdzić za pomocą funkcji strlen, czy jest miejsce w pierwszej tablicy na dodanie drugiego łańcucha)

1.4. podać wynik porównania dwóch łańcuchów: jeden jako główny łańcuch programu, drugi jako zainicjowana tablica (bez podania rozmiaru)-zastosować strcmp

1.5. wyświetlić łańcuch np. zastosować cprintf lub cputs


lub

2. Napisz program, który przetwarza tablice znaków, czyli łańcuchy.

Do wprowadzania łańcuchów należy stosować funkcje cgets().

Bufor funkcji cgets powinien stanowić osobna zmienna, lokalna

w tych funkcjach, w których wystąpi wprowadzanie - stad wprowadzony

do niej łańcuch należy bezpiecznie skopiować do głównej tablicy znaków,

przekazywanej do każdej z funkcji przetwarzającej łańcuchy wg 2.1-2.5.

Program powinien umożliwiać wybór następujących czynności:

2.1. wprowadzanie z klawiatury łańcucha za pomocą cgets

2.2. usuwanie z łańcucha wszystkich wystąpień znaku wybranego przez użytkownika (znak do usuwania podać z klawiatury)- zastosować strchr oraz strcpy

2.3. dodać dwa łańcuchy- jeden wprowadzony z klawiatury (pomocniczy), drugi jako główny łańcuch programu - zastosować strcat (sprawdzić za pomocą funkcji strlen, czy jest miejsce w pierwszej tablicy na dodanie drugiego łańcucha)

2.4. podać wynik porównania dwóch łańcuchów jeden jako główny łańcuch programu, drugi jako zainicjowana tablica (bez podania rozmiaru)-zastosować strcmp

2.5. wyświetlić łańcuch np. zastosować cputs lub cprintf

Uwagi:


1. Przykładem wykonania programu jest przykład 1 z wykładu 8

1. Główna tablica znaków przekazywana do funkcji powinna być zainicjowana jako łańcuch pusty

2. Zapoznać się z funkcjami z pliku string.h

(np strchr, strcpy, strcmp, strlen, strcat) oraz cgets (program cgets1.cpp).

Wszystkie operacje powinny być wykonane za pomocą funkcji z tego modułu.

3. Zabezpieczyć operacje na łańcuchach przed przekroczeniem rozmiaru

pamięci!!





9

Przydział pamięci i zmienne dynamiczne

Wykonaj program z wykorzystaniem dynamicznego przydziału pamięci wg przykładu 2 z wykładu 8.




  1. Dokonaj analizy programu lan1.cpp

http://sprocket.ict.pwr.wroc.pl/~zkruczkiewicz/wyklady/jezykc/lab8_3.cpp


  1. Dodaj nową opcję zmniejszająca pamięć przeznaczoną na łąńcuch lan. W opcji tej należy wywołać funkcję, która zmniejsza łańcuch przydzielając mu pamięć, potrzebną do przechowania całego łańcucha. Ta potrzeba zmniejszenia pamięci może wystąpić po wywołaniu funkcji usuwającej znaki delete2. Aby prawidłowo przydzielić pamięć należy:

    1. Obliczyć liczbę znaków łańcucha wskazywanego przez wskaźnik lan za pomocą funkcji strlen

    2. Przydzielić nową pamięć na łańcuch, której rozmiar wynosi strlen(lan)+1. Adres nowej pamięci jest przechowany we wskaźniku lan1.

    3. Skopiować łańcuch do nowej pamięci strcpy(lan1, lan);

    4. Usunąć pamięć przeznaczoną na łańcuch wskazywany przez wskaźnik lan

    5. Do wskaźnika lan skopiować łańcuch adres łańcucha lan1

Uwaga: Funkcja przez parametry otrzymuje: łańcuch lan , a przez return zwraca adres lan1, który należy przypisać do wskaźnika lan.




10

Łączenie danych niejednorodnych - typ strukturalny, definicja typu. Zmienne typu strukturalnego czyli struktury - definicja i inicjowanie struktur. Zagnieżdżanie struktur. Algorytmy operujące na danych niejednorodnych

Funkcje jako podstawa programowania strukturalnego– deklaracja, definicja, parametry. Rola funkcji w upraszczaniu struktury programu – eliminacja powtórzeń kodu



Przykładowe programy:
1. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na tablicy zdefiniowanej jako OSOBA tab[N]:

1.1. wstawia elementy typu OSOBA do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

1.2. wyszukuje element o zadanej wartości z klawiatury

1.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.


2. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na tablicy zdefiniowanej jako OSOBA tab[N]:

2.1. wstawia elementy typu OSOBA do tablicy, wypełniając całą

tablicę. Po wykonaniu tej opcji liczba elementów powinna

być równa N.

2.2. zmienia wartość wyszukanego elementu na podstawie danych podanych z klawiatury (pierwszy do wyszukania i drugi do zmiany)

2.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N – ile = N oznacza, ze tablica jest pełna.


3. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na tablicy zdefiniowanej jako OSOBA tab[N]:

3.1. po każdym wywołaniu tej opcji wstawia po jednym elemencie typu



OSOBA do tablicy, zawsze za ostatnio wstawionym elementem. Należy zawsze sprawdzić przed wprowadzeniem, czy liczba elementów ile

jest mniejsza od wartości N. Po każdym wprowadzeniu danej

należy zwiększyć liczbę elementów o 1

3.2. usuwa wybrany element przez wstawienie na jego miejsce elementu ostatniego – należy wtedy zmniejszyć liczbę elementów

3.3. wyświetla zawartość tablicy, jeśli zawiera dane

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów

tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta.

Wartość różna od zera oznacza, że w tablicy są dane. Nie może ona

przekroczyć wartości N - ile=N oznacza, ze tablica jest pełna.





11

Obsługa plików dyskowych. Pliki z danymi o formacie binarnym i tekstowym. Biblioteka

  1. Uzupełnić program z lab.9 o dwie opcje, w których wywołuje się zdefiniowane w programie funkcje

    1. zapisujące do pliku za pomocą fwrite zawartość tablicy struktur

    2. odczytujące zawartość pliku za pomocą fread do tablicy struktur




  1. Uzupełnić program z lab.9 o dwie opcje, w których wywołuje się zdefiniowane w programie funkcje

    1. zapisujące w pętli do pliku za pomocą fwrite zawartość struktury wprowadzanej bezpośrednio z klawiatury

    2. odczytujące w pętli zawartość pliku za pomocą fread do struktury i wyświetlające na ekranie zawartość tej struktury.






12

Tablice statyczne i dynamiczne – struktur i wskaźników na struktury.

Zastosowanie dynamicznego przydziału pamięci do zadań z lab.9 (i 10)



Przykładowe programy:

1. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na dynamicznej tablicy, które adres jest przechowany we wskaźniku OSOBA* tab:

1.1. wstawia elementy typu OSOBA do tablicy po jednym elemencie za ostatnio wstawionym elementem- jeśli liczba elementów ile jest równa ile=N, należy tablicę powiększyć za pomocą funkcji z p. 1.4

1.2. wyświetla zawartość tablicy, jeśli zawiera dane

1.3. usuwa wybrany element z pamięci i na jego miejsce wstawia element ostatni (jeśli usuwany element nie jest ostatnim elementem) – należy wtedy zmniejszyć liczbę elementów. Tablicę należy zmniejszyć za pomocą funkcji z 1.4, gdy N-ile=5

1.4. zwiększa tablicę w celu wstawienia danych

1.5. zmniejsza tablice, jeśli 5 elementów jest niewykorzystanych (N-ile=5)

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów tablicy oraz zmienną N zawierającą rozmiar tablicy dynamicznej. Wartość ile równa zero świadczy o tym, ze tablica jest pusta. Wartość ile różna od zera oznacza, że w tablicy są dane. Wartość ile=N oznacza, że tablica jest pełna.



lub

2. Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na tablicy zdefiniowanej jako OSOBA* tab[N]:

2.1. po każdym wywołaniu tej opcji wstawia po jednym elemencie typu OSOBA, wstawiając jego wskaźnik do tablicy, zawsze za ostatnio wstawionym elementem. Należy zawsze sprawdzić przed wprowadzeniem, czy liczba elementów ile jest mniejsza od wartości N. Po każdym wprowadzeniu danej należy zwiększyć liczbę elementów o 1

2.2. wyświetla dane za pomocą wskaźników umieszczonych w tablicy

2.3. usuwa wybrany element z pamięci, na jego miejsce wstawia wskaźnik ostatniego elementu (jeśli usuwany element nie jest wskazywany za pomocą ostatniego wskaźnika w tablicy) i zmniejsza liczbę wskaźników elementów.

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów tablicy oraz zmienną N zawierającą rozmiar tablicy statycznej. Wartość ile równa zero świadczy o tym, ze tablica jest pusta. Wartość ile różna od zera oznacza, że w tablicy są dane. Wartość ile=N oznacza, że tablica jest pełna.



lub

3.Napisz program, który w opcjach wywołuje funkcje z parametrami, które wykonują następujące czynności na dynamicznej tablicy, które adres jest przechowany we wskaźniku OSOBA** tab:

3.1. przydziela pamięć na element typu OSOBA i wstawia jego wskaźnik do tablicy po jednym elemencie za ostatnio wstawionym elementem - jeśli liczba elementów ile = N, należy ją powiększyć za pomocą funkcji z p. 3.4

3.2. usuwa wybrany element z pamięci i na miejsce jego wskaźnika wstawia wskaźnik elementu ostatniego (jeśli nie usuwa się elementu wskazywanego przez ostatni wskaźnik) – należy wtedy zmniejszyć liczbę elementów. Jeżeli w tablicy jest N-ile=5 wolnych wskaźników, należy tablicę zmniejszyć za pomocą funkcji z p.3.4

3.3. wyświetla dane za pomocą wskaźników umieszczonych w tablicy

3.4. zwiększa tablicę w celu wstawienia wskaźników na nowe dane

3.5. zmniejsza tablice, jeśli 5 wskaźników jest niewykorzystanych (N-ile=5)

Należy wprowadzić zmienną ile, która przechowuje liczbę elementów tablicy. Wartość ile równa zero świadczy o tym, ze tablica jest pusta. Wartość różna od zera oznacza, że w tablicy są dane. Wartość ile=N oznacza, ze tablica jest pełna.






13

Kolokwium

14

Rekurencyjne struktury danych – stos, kolejka, listy




©operacji.org 2017
wyślij wiadomość

    Strona główna