Lab: 1, 2, W: 1 |
Informacje o przedmiocie. Pierwsze programy w C. Typy, operatory i wyrażenia. Tablice.
- Zagadnienia i materiały
- Podstawowe informacje o przedmiocie(PDF, Markdown)
- Język C - jaki jest i gdzie jest jego miejsce
- Typy zmiennych. Reprezentacja liczb całkowitych i zmiennoprzecinkowych w pamięci. Stałe.
- Operacje binarne (bitowe, en. bitwise operators)
- Pisanie programów w języku C z wykorzystaniem podstawowych elementów składni: instrukcji warunkowych i pętli
- Tworzenie programów z wykorzystaniem tablic jedno- i wielowymiarowych
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wymienić i scharakteryzować podstawowe typy danych dostępne w C.
- Określić sposób działania operatorów bitowych.
- Składnia instrukcji sterujących przebiegiem wykonania programu (instrukcja warunkowa, pętle, instrukcja wyboru switch-case).
- Praca z tablicami jednowymiarowymi.
- Praca z tablicami wielowymiarowymi.
|
Lab: 3, 4, W: 2 |
Funkcje. Wyliczenia, struktury. Wypisywanie i pobieranie danych.
- Zagadnienia i materiały
- Funkcje
- Wyliczenia. Struktury.
- Wypisywanie i pobieranie danych
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Składnia funkcji.
- Posługiwać się typem wyliczeniowym.
- Składnia struktury i jej wykorzystanie.
|
Lab: 5, 6, W: 3 |
Utrwalanie dotychczas zdobytych wiadomości.
- Zagadnienia i materiały
- program01.c – prosty przykład z użyciem struktury
- program02_01.c – tablica struktur i ich inicjalizacja
- program02_02.c – dodanie prostego menu z akcjami na tablicy (wypisanie wszystkich elementów, ustwienie dowolnego elementu)
- program02_03.c – rozbudowa operacji (ustawienie pierwszego wolnego, skasowanie dowolnego, wypisanie statystyki)
- program02_04.c – zefiniowanie akcji w tablicy struktur
- program02_05.c – kompletny program
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wykorzystywać w praktyce m.in. tablice, funkcje, struktury; w szczególności posługiwać się tablicami struktur, przekazywać tablice do funkcji.
|
Lab: 7, 8, W: 4 |
Wskaźniki. Operacje na wskaźnikach. Przekazywanie argumentów do programu za pomocą linii poleceń. Tworzenie programów wykorzystujących wskaźniki. Dynamiczne zarządzanie pamięcią.
- Zagadnienia i materiały
- Wiadomości teoretyczne
- Część praktyczna
- p01.c - zamiana wartości zmiennych (swap)
- p02.c - argumenty przekazywane do programu z linii poleceń
- p03.c - wskaźniki a tablice
- p04.c - przydzielanie i zwalnianie pamięci
- p05.c - połączenie programu p02.c i p04.c
- Test
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Podstawy zarządzania pamięcią.
|
Lab: 9, 10, W: 5 |
Dynamiczne zarządzanie pamięcią. Operacje na plikach.
- Zagadnienia i materiały
- Tablica dynamicznie zwiększająca swój rozmiar w zależności od ilości dodanych do niej danych, v. 1.0.
- Pliki i podstawowe operacje (zapis i odczyt)
- Obsługa plików
- Część praktyczna
- p01.c - różnica pomiędzy plikiem textowym a binarnym.
- p02.c - kopiowanie danych z jednego pliku do drugiego w trybie textowym.
- p03.c - kopiowanie danych z jednego pliku do drugiego w trybie binarnym.
- p04.c - jak p02.c, ale nazwy plików przekazywane z linii poleceń.
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Elementy zarządzania pamięcią.
- Operacje plikowe.
|
Lab: 11, 12, W: 6 |
Generyczność i polimorfizm: wykorzystanie typu void *, unie, wykorzystanie preprocesora (#define). Wskaźniki na funkcje.
- Zagadnienia i materiały
- Omawiamy możliwe rozwiązanie zdania z poprzednich zajęć.
- void *, unie, wykorzystanie preprocesora (#define)
- Wskaźniki na funkcje
- p01.c - przykład 1
- p02_01.c - przykład 2 (wersja podstawowa, bez wskaźników na funkcje)
- p02_02.c - przykład 2 (rozwiązanie z wykorzystaniem wskaźników na funkcje)
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Określić czym różni się struktura od unii i kiedy jażdą z tych konstrukcji można stosować.
- Podać praktyczny przykład wykorzystania typu void *.
- Stosować wskaźniki na funkcje.
|
Lab: 13, 14, W: 7 |
Jednostka kompilacji. Pliki obiektów. Linker. Deklaracja zapowiadająca. Pliki nagłówkowe. Projekty wieloplikowe.
- Zagadnienia i materiały
- Omawiamy możliwe rozwiązanie zdania z poprzednich zajęć.
- Prosty program w kilku plikach źródłowych.
- Iteracja 1: rozdzielamy rozwiązanie zadania z poprzednich zajęć na osobne pliki.
- Iteracja 2: unifikujemy argumenty przekazywane do funkcji.
- Zadania
- Dokończyć iterację 2 dla funkcji inRange.
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wyjaśnić czym są pliki obiektów, co to jest preprocesing, kompilacja i linkowanie. Umieć przeprowadzić każdy z tych procesów.
- Do czego wykorzystujemy deklaracja zapowiadające.
- Czym są pliki nagłówkowe.
- Utworzyć projekt programu zapisanego w wielu plikach.
|
Lab: 15, 16, W: 8 |
Program make. Funkcje konstruujące i niszczące obiekty.
- Zagadnienia i materiały
- Program make
- Informacje na temat make
- Zadania
- W programie z poprzednich zajęć w wersji "iteracja 2" dodać funkcje pozwalające na tworzenie obiektów typu struct argument oraz ich usuwanie. W miarę potrzeb dodać także inne funkcje i dokonać innych niezbędnych modyfikacji w kodzie. (moje rozwiązanie w postaci projektu z określoną strukturą katalogową i plikem makefile)
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Umieć wykorzystać program make w celu automatyzacji zadań.
|