Programowanie strukturalne 17-DPPR-IP0
Tworzenie oprogramowania. Algorytm Procesor, program, język programowania. Alfabet, składnia i semantyka. Język maszynowy oraz języki
wyższego rzędu. Kompilacja, interpretacja i konsolidacja programu. Zmienne, typy, pierwszy program.
Sterowanie przebiegiem programu. Prawda – fałsz – wstępne uwagi o
wyrażeniach logicznych.Instrukcje złożone w instrukcjach sterujących.
Zakresy ważności nazw, czas życia obiektów, przesłanianie nazw.
Instrukcja warunkowa if ... else.Pętle while i for. Przerwa i kontynuacja wykonywania pętli. Instrukcja skoku. Instrukcja wyboru (switch).
Typ danych, typy podstawowe, reprezentacja danych liczbowych i
znakowych. Pojęcie typu. Rola typu w procesie tworzenia programu, stałe i zmienne.Znaczenie typu w procesie kompilacji. Typy całkowite – reprezentacja liczb. Typ znakowy – kodowanie znaków. Typy zmiennoprzecinkowe - reprezentacja. Arytmetyka (całkowita a
zmiennoprzecinkowa).Definiowanie stałych różnych typów. Konwersje typów, rzutowania.
Zmienne i wyrażenia. Operatory. Operatory matematyczne. Operatory relacyjne. Operatory logiczne. Operatory bitowe. Operator przypisania. Operator rzutowania. Priorytety operatorów. Łączność operatorów.
Złożone typy danych. Tablice i tablice wielowymiarowe. Elementy tablic.
Inicjalizacja tablic. Łańcuchy znaków (tablice znakowe). Formatowanie wejścia/wyjścia. Struktury (rekordy).
Procedury i funkcje. Pojęcie funkcji; zwracanie wyniku; wartość void.
Stos. Przekazywanie parametrów. Prototyp funkcji (typ funkcyjny).
Czas życia i zakres ważności nazwy. Zakres lokalny. Zakres pliku. Zmienne statyczne. Zmienne globalne. Ukrywanie informacji. Funkcje biblioteczne.
Przeciążanie operatorów i funkcji. Istota przeciążania. Zagadnienie identyczności typów argumentów. Dopasowanie argumentów do funkcji przeciążonych.
Dynamiczne zarządzanie pamięcią; wskaźniki. Wskaźniki, referencje i dereferencje. Dynamiczna alokacja pamięci, sterta. Operator sizeof().
Wskaźniki w zastosowaniu do tablic. Wskaźniki w zastosowaniu do
przekazywania parametrów. Wskaźniki do struktur. Wskaźniki do funkcji.
Wskaźniki bez typu (untyped pointers). Tablice wskaźników. Sortowanie tablic wskaźników.
Struktury i klasy. Struktura w C++ (składowe). Klasa:- Składowe klasy. - Modyfikatory dostępu.- Kilka słów o dziedziczeniu.
Operacje wejścia/wyjścia. Operacje wejścia/wyjścia w C (biblioteka studio).
Operacje wejścia/wyjścia w C++. Biblioteka iostream; strumień; strumienie predefiniowane. Sterowanie formatem. Operacje wejścia wyjścia na plikach.
Obsługa błędów.
Treści uzupełniające i rozszerzające. Czas zarezerwowany na prezentację
informacji dodatkowych, uzupełnienie treści, które sprawiły trudności audytorium. Zawartość uzależniona od potrzeb i percepcji studentów.
Projekt. Przedstawienie zasad, wymagań i tworzenie projektu indywidualnego
opartego o paradygmat programowania proceduralnego. Projekt wykorzystuje metody dynamicznego zarządzania pamięcią oraz operacje wejścia/wyjścia.
Cele kształcenia
Informacja o tym, gdzie można zapoznać się z materiałami do zajęć
Kierunek studiów
Metody prowadzenia zajęć umożliwiające osiągnięcie założonych EK
Nakład pracy studenta (punkty ECTS)
Poziom przedmiotu
Rok studiów (jeśli obowiązuje)
Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji
Koordynatorzy przedmiotu
W cyklu 2024/SZ: | W cyklu 2018/SZ: | W cyklu 2020/SZ: | W cyklu 2023/SZ: | W cyklu 2021/SZ: | W cyklu 2022/SZ: | W cyklu 2019/SZ: |
Efekty kształcenia
E01-umie wyrazić wybrane algorytmy w postaci sieci działań, potrafi
formułować odpowiednie warunki logiczne i zapisać je za pomocą
wyrażeń i operatorów zgodnie ze składnią języka programowania.
E02-zna podstawowe konstrukcje programistyczne (instrukcje sterujące,
wywoływanie procedur i funkcji oraz różne typy przekazywania
parametrów).
E03-zna podstawowe wbudowane typy danych, a w szczególności różne
sposoby reprezentacji danych liczbowych, zasady arytmetyki,
ograniczenia i błędy zaokrągleń; rozumie problemy związane z
implementacją arytmetyki abstrakcyjnej (matematycznej) w komputerach.
E04-zna zasady tworzenia złożonych typów danych (tablice, struktury,
rekordy/struktury) i potrafi je stosować w algorytmach i programach
opisujących sytuacje praktyczne.
E05-zna zasady dynamicznego zarządzania pamięcią (wskaźniki z typem
i bez typu - w tym wskaźniki do funkcji, przydział i zwalnianie
pamięci) oraz umie implementować podstawowe dynamiczne
struktury danych (kolejka, stos, lista, tablica wskaźników).
E06-potrafi czytać i analizować kod "proceduralny" napisany w języku
C/C++ i rozumie istotę i efekty wykonywanych operacji.
E07-potrafi pisać programy proceduralne w języku C, C++, uruchamiać
je i testować w środowisku Dev-C++ oraz sprawdzarkach
automatycznych; potrafi pisać programy wykonujące operacje na
plikach.
Kryteria oceniania
ocena zadań programistycznych, zadania domowe, zaangażowanie i praca na zajęciach
Literatura
1. N. Wirth, Wprowadzenie do programowania systematycznego. Wydawnictwo Naukowo-Techniczne.
Warszawa 1978.
2. B. Eckel, Thinking in C, Beta 3 . 2006.
3. B. Eckel, Thinking in C++, Wydawnictwo Helion, 2002
4. J. Grębosz, Symfonia C++, Oficyna Kallimach, Kraków 1993.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: