- Poprawa oceny z zajęć lab.: 20 lutego (wtorek) w godz. 16:45-20:00, sala 119 w bud. 21. Osoby zainteresowane proszę o przyjście na egzamin ZTP i udział w egzaminie. Jeżeli poprawa da pozytywny wynik, praca egzaminacyjna zostanie sprawdzona. Proszę też o mail z potwierdzeniem chęci udziału. Wystarczy krótki tekst w rodzaju „Zgłaszam swój udział w poprawie ZTP lab.” i podpis. Zgłoszenia są potrzebne, abym wiedział ile przygotować zadań. Zgłoszenia można nadsyłać do niedzieli (18.02) wieczorem.
- Egzamin z ZTP, drugi termin: 20 lutego (wtorek) w godz. 11:30-13:30, aula Schumana. Formuła egzaminu taka sama jak w pierwszym terminie:
- Egzamin jest pisemny. Proszę zabrać ze sobą kartki papieru i długopisy oraz legitymacje studenckie. Proszę być punktualnie. Prace osób spóźnionych mogą nie podlegać ocenie.
- Szczegółowe zasady udziału są opisane na stronie www: Zasady zaliczenia wykładu, ale nie ma części praktycznej, to znaczy, nie będzie kartki z kodem programu, dla którego należy podać komunikaty wypisywane w oknie konsoli.
- Zwracam uwagę na zasadę: Na egzaminie nie wolno sięgać do telefonów komórkowych. Telefony w czasie egzaminu muszą być wyciszone i schowane np. w torbie czy plecaku. Niestosowanie się do tej zasady skutkuje natychmiastowym zakończeniem egzaminu przez studenta i opuszczeniem sali.
ZI2024: zmiana terminu zajęć
Uwaga: pierwsze zajęcia konwersatorium „Zastosowania informatyki” odbędą się 4 marca (poniedziałek), o godz. 9:45 11:30 w sali 316, b.21. Zajęcia zaplanowane na 19 lutego nie odbędą się w tym terminie. Zostają przełożone, a nowy termin będzie ogłoszony później.
ZTP2023: Wyniki z egzaminu w terminie pierwszym
Lista ocen osób, które uczestniczyły w egzaminie w pierwszym terminie. Wiersze zawierają: trzy ostatnie cyfry nr indeksu, liczbę zdobytych punktów i proponowaną ocenę.
- ***235 9.5 2
- ***274 8 2
- ***466 11 2
- ***468 15 3.5
- ***475 2 2
- ***478 8 2
- ***482 6 2
- ***511 18 4
- ***512 12 + ε 3
- ***526 6.5 2
- ***531 8 2
- ***536 8 2
- ***553 16 3.5
- ***587 7.5 2
- ***595 10 2
- ***639 16 3.5
- ***658 18 4
- ***659 14 3
- ***807 5 2
- ***810 22.5 5
- ***867 2 2
- ***986 9 2
W razie niejasności, proszę o kontakt mailowy.
Prace będą do wglądu we czwartek (8 lutego), w godz. 12:00-12:30 (lub do ostatniej zainteresowanej osoby) w pok. 1247, bud. 12.
ZTP2023: Wyniki z egzaminu zerowego
Lista osób, które otrzymały ocenę pozytywną z zajęć lab. ale nie zostały zwolnione z egzaminu za bardzo dobre wyniki i osiągnęły co najmniej 50% pkt. na egzaminie zerowym. Wiersze zawierają: trzy ostatnie cyfry nr indeksu, liczbę zdobytych punktów i proponowaną ocenę.
- ***238 17.5 4
- ***272 19 4
- ***172 23 5
- ***479 20.5 4.5
- ***533 22.5 5
- ***543 13.5 3
- ***548 14.5 3.5
- ***560 19.5 4.5
- ***561 13 3
- ***563 18.5 4
- ***578 14.5 3.5
- ***579 14 3
- ***585 12 + ε 3
- ***594 13 3
- ***627 19.5 4.5
- ***637 20.5 4.5
- ***677 15 3.5
- ***729 15 3.5
Lista osób, które otrzymały ocenę pozytywną z zajęć lab., nie zostały zwolnione z egzaminu za bardzo dobre wyniki i uczestniczyły w egzaminie zerowym, ale liczba zdobytych na egzaminie punktów nie przekroczyła progowej wartości 50% możliwych do zdobycia. Wiersze zawierają trzy ostatnie cyfry nr indeksu.
- ***235
- ***466
- ***468
- ***475
- ***478
- ***482
- ***511
- ***512
- ***526
- ***531
- ***536
- ***553
- ***595
- ***658
- ***867
W razie niejasności, proszę o kontakt mailowy.
ZTP2023: Lista osób zwolnionych z egzaminu
Lista zawiera trzy ostatnie cyfry numeru indeksu osób zwolnionych z egzaminu za bardzo dobre wyniki na zajęciach lab.
- ***065
- ***245
- ***378
- ***467
- ***487
- ***497
- ***501
- ***534
- ***545
- ***614
Osoby te z egzaminu z wykładu otrzymują ocenę taką, jaką otrzymały z zajęć lab. tj. 5 (bardzo dobry), która zostanie wpisana do protokołu USOS jako ocena zdobyta w pierwszym terminie.
W razie niejasności proszę o kontakt mailowy.
ZTP2023: Informacje organizacyjne na koniec semestru
Poprawa jednej oceny z zajęć lab.
- Dn. 17 stycznia (środa) w pracowni komputerowej 119, bud. 21, w godz. 11:30 – 14:45 odbędą się zajęcia lab., na których będzie można uzyskać ocenę, która zastąpi jedną z ocen uzyskanych na zajęciach lab. w semestrze.
- Zajęcia lab. w dn. 17 stycznia nie są obowiązkowe. Są to zajęcia tylko dla osób, które chcą skasować jedną ze swoich ocen i zastąpić ja nową oceną zdobytą na tych zajęciach. Np. jeżeli ktoś ma trzy zera z zajęć, co oznacza, że otrzyma ocenę negatywną z lab., może przyjść, aby zdobyć lepszą ocenę, która zastąpi jedno z tych zer.
- Przed rozpoczęciem zajęć wszystkim uczestnikom kasowana jest jedna, wskazana przez nich ocena z zajęć lab. w semestrze. Jeżeli jest to ocena inna niż zero punktów, wskazane punkty są tracone bezpowrotnie.
- Na zajęciach będzie do zrobienia jedno zadanie, za które można zdobyć do 10 pkt. Zadanie obejmuje materiał całego semestru. Warunki realizacji są takie same jak na zajęciach w semestrze, tj. praca samodzielna bez korzystania z zasobów internetu (za wyjątkiem strony https://cplusplus.com/ oraz platformy learningowej UKSW).
- Zajęcia w tej sali są wspólne dla zainteresowanych z wszystkich trzech grup.
W razie niejasności proszę o pytania mailem.Warunki zwolnienia z egzaminu za bardzo dobre wyniki z lab. zostaną ustalone dopiero po zakończeniu semestru, kiedy będą znane wszystkie wyniki z lab.
Egzamin zerowy
- Dn. 25 stycznia (czwartek) w sali wykładowej 205, bud. 21, w godz. 16:45 – 18:15 planowany jest egzamin zerowy z ZTP.
- Egzamin jest pisemny. Proszę zabrać ze sobą kartki papieru i długopisy oraz legitymacje studenckie. Proszę być na miejscu kilka minut wcześniej, ponieważ sala zostanie otwarta już w trakcie przerwy, tak aby punktualnie o godz. 16:45 można było rozpocząć egzamin.
- Szczegółowe zasady udziału są opisane na stronie www: Zasady zaliczenia wykładu, ale uwaga: (1) egzamin nie ma części praktycznej, to znaczy, nie będzie kartki z kodem programu, dla którego należy podać komunikaty wypisywane w oknie konsoli, (2) wszystkie osoby, które mają szansę na ocenę pozytywną z lab. na koniec semestru są oczekiwane na egzaminie.
- Ocenie podlegają prace egzaminacyjne tylko tych osób, które na koniec semestru, tj. 26 stycznia (piątek) będą miały z zajęć lab. dostateczną liczbę punktów oraz spełnią warunki gwarantujące ocenę pozytywną.
- Oceny pozytywne uzyskane z tego egzaminu są wpisywane do protokołu jako zdobyte w pierwszym terminie.
- Oceny negatywne nie są nigdzie wpisywane i są zapominane.
- Jeżeli będą takie osoby, które zostaną zwolnione z egzaminu za bardzo dobre wyniki lab., to proponowana im ocena zastąpi ocenę z egzaminu zerowego. Jednak decyzja o zastosowaniu w tym roku zwolnień z egzaminu za bardzo dobre wyniki jeszcze nie została podjęta.
- Brak zainteresowania (niedostateczna liczba studentów na sali) spowoduje odwołanie egzaminu zerowego.
Zwracam uwagę na zasadę: Na egzaminie nie wolno sięgać do telefonów komórkowych. Telefony w czasie egzaminu muszą być wyciszone i schowane np. w torbie czy plecaku. Niestosowanie się do tej zasady skutkuje natychmiastowym zakończeniem egzaminu przez studenta i opuszczeniem sali.
ZTP2023: Zadania przed lab.7
Założenia
Przyjmijmy, że mamy zbiór punktów w przestrzeni n-wymiarowej, przy czym współrzędne pojedynczego punktu są reprezentowane w postaci wektora liczb rzeczywistych o długości n. Mówimy, że punkt A dominuje nad punktem B, jeżeli dla każdej współrzędnej A(i) odpowiadająca jej współrzędna B(i) jest mniejsza lub równa, oraz istnieje co najmniej jedna taka współrzędna j dla której A(j)>B(j). Można też wtedy powiedzieć, że B jest zdominowane przez A. Jeżeli natomiast dla pary punktów taki warunek nie jest spełniony, tj. ani A nie dominuje nad B, ani B nad A, wtedy uważamy punkty A i B za nieporównywalne względem siebie.
W zbiorze punktów punkt niezdominowany to taki, który może tylko dominować lub być nieporównywalnym z wszystkimi pozostałymi punktami.


Zadanie #1
Wygeneruj zbiór 100 losowych punktów w przestrzeni n-wymiarowej, po czym znajdź w nim zbiór punktów niezdominowanych. Algorytm znajdowania punktów niezdominowanych polega na porównaniu każdego punktu ze wszystkimi pozostałymi (nie dokonujemy porównania punktu z samym sobą). Jeżeli dla aktualnie sprawdzanego punktu z żadnego porównania nie wyniknie, że jest zdominowany, to znaczy, że jest niezdominowany. Kopię znalezionego punktu niezdominowanego należy zapisać w kontenerze pomocniczym. Na koniec sprawdzania kontener pomocniczy zawiera wyłącznie punkty niezdominowane.
Algorytm można zrealizować z pomocą dwóch kontenerów zawierających zestawy tych samych 100 punktów oraz kontenera pomocniczego, który początkowo jest pusty. Punkty z pierwszego kontenera są punktami sprawdzanymi, a punkty z drugiego – punktami z którymi dokonywane jest sprawdzenie. Do kontenera pomocniczego trafiają kopie tych punktów z kontenera pierwszego, które okazały się niezdominowane. Realizacja czynności odbywa się za pomocą dwóch pętli for
– zewnętrznej (punkty z pierwszego kontenera) i wewnętrznej (punkty z drugiego kontenera).
Po zaimplementowaniu algorytmu spróbuj zaimplementować go ponownie, ale tym razem bez używania pętli for, while, repeat
, natomiast stosując algorytmy STL oraz własne lub biblioteczne obiekty funkcyjne. Sprawdź, czy uzyskałeś ten sam wynik.
Zadanie #2
Wygeneruj zbiór 100 punktów losowo rozłożonych na okręgu (w przestrzeni 2-wymiarowej) o promieniu 1 (zobacz Zadania przed lab. 6: zadanie #2), po czym znajdź w nim zbiór punktów niezdominowanych. W kontenerze uporządkuj rosnąco niezdominowane punkty pod względem ich pierwszej współrzędnej. Wykorzystując algorytm adjacent_difference
(slajdy 121 i 122, wykład 9) policz odległości euklidesowe miedzy sąsiednimi punktami (tj. między punktami 1 i 2, 2 i 3, 3 i 4, itd.). Uwaga: w obiekcie funkcyjnym służącym do obliczenia odległości euklidesowej miedzy dwoma punktami skorzystaj z algorytmu inner_product
, tak jak to jest pokazane na slajdzie 121 wykładu 9. Policzone odległości zapisz do pomocniczego kontenera, a na koniec policz średnią odległość między punktami oraz wariancję tej odległości.
Przy pisaniu kodu programu unikaj pętli for, while, repeat
, a zamiast nich stosuj algorytmy STL oraz własne lub biblioteczne obiekty funkcyjne.
Wskazówka: kod zawierający przykładowy fragment rozwiązania zadania 2 – wykorzystanie algorytmu inner_product
do policzenia odległości euklidesowych miedzy sąsiednimi punktami: ZTP_Zad2przedLab7.cpp
Hint:
Zadanie dotyczące znajdowania zbioru punktów niezdominowanych może pojawić się na lab.7. Na zajęciach można będzie wykorzystać fragmenty własnego kodu opracowanego w domu.
ZTP2023: Wykład 14 grudnia 2023
Za zgodą Dziekana WMP.SNŚ w najbliższy czwartek, 14 grudnia, wykład ZTP od godz. 16:45 do 18:15 odbędzie się w trybie zdalnym na platformie MS Teams. Aby uczestniczyć w wykładzie należy dołączyć do zespołu WM-I-S1-E3-ZTP_2023/24_Z_WYK_GR1 korzystając z kodu: yv04q5s
ZTP2023: Zadania przed lab.6
Zadania, które dotyczą zakresu materiału, jaki będzie poruszany na lab. 6. Rozwiązanie nie jest wymagane. Zadania stanowią wyłącznie pomoc w przygotowaniu się do zajęć.
Zadanie #1:
Przyjmij, że A, B, C i D reprezentują punkty w przestrzeni n-wymiarowej. Punkty te są reprezentowane w programie przez wektory współrzędnych. Wektor A zawiera dla każdej współrzędnej uzyskaną niezależnie wartość losową z generatora liczb o rozkładzie jednostajnym z przedziału [-10,10]. Wektor B zawiera wartości stałe [1,..,1].
Pobierz od użytkownika liczbę wymiarów przestrzeni n, utwórz odpowiednich rozmiarów wektory, przy czym zainicjuj też odpowiednio A i B, a następnie napisz kod wykonujący kolejno następujące obliczenia:
- D = A*B
- C = 3*B + D
- D = 3*(A+C)-(A*B)
gdzie operator '*’ oznacza mnożenie, przy czym kiedy argumentami są skalar i wektor, następuje przemnożenie wszystkich współrzędnych wektora przez skalar, natomiast w przypadku, kiedy argumentami są dwa wektory, jest to iloczyn Hadamarda (zobacz: https://pl.wikipedia.org/wiki/Mnożenie_macierzy). Sprawdź na danych testowych, czy obliczenia wykonują się poprawnie.
Uwaga – ograniczenie: do zaimplementowania w/w operacji nie wykorzystuj żadnych pętli (for, while, repeat
), a wyłącznie algorytmy STL i obiekty funkcyjne (własne lub biblioteczne). Jeżeli to potrzebne, rozłóż operacje na pojedyncze kroki, których wynik zapamiętuj w wektorach pomocniczych.
Zadanie #2:
W celu wygenerowania punktu na powierzchni hipersfery (zobacz: https://pl.wikipedia.org/wiki/Hipersfera) z centrum w środku układu współrzędnych należy wykonać następujące kroki:
- wygenerować wektor Z, którego każda współrzędna jest uzyskaną niezależnie wartością losową z generatora liczb o rozkładzie normalnym. Liczba współrzędnych wektora odpowiada liczbie wymiarów przestrzeni, w której definiowana jest hipersfera,
- policzyć ||Z||, tj. długość wektora Z, a następnie podzielić każdą ze współrzędnych wektora Z przez tę długość.
Nowy wektor Z reprezentuje punkt na powierzchni hipersfery o promieniu 1 z centrum w środku układu współrzędnych.
Wygeneruj wiele takich punktów dla przestrzeni 2-wymiarowej i przedstaw je w postaci graficznej. Sprawdź, czy układają się w kształt okręgu.
Uwaga – ograniczenie: do zaimplementowania w/w operacji nie wykorzystuj żadnych pętli (for, while, repeat
), a wyłącznie algorytmy STL i obiekty funkcyjne (własne lub biblioteczne). Jeżeli to potrzebne, rozłóż operacje na pojedyncze kroki, których wynik zapamiętuj w wektorach pomocniczych.
ZTP2023: Zadania przed lab.5
Zadania, które dotyczą zakresu materiału, jaki będzie poruszany na lab. 5. Rozwiązanie tych zadań nie jest wymagane. Stanowią wyłącznie pomoc w przygotowaniu się do zajęć.
Zadanie 1:
Napisz funkcję, która wczytuje macierz z pliku tekstowego zapisaną tak, że w kolejnych wierszach pliku są wartości komórek kolejnych wierszy macierzy rozdzielone spacjami, a następnie dokonuje jej transpozycji. Przyjmij, że wymiary wczytywanej macierzy są nieznane, ale że dane w pliku są na pewno poprawne (tj. wiersze przechowują tylko liczby, liczby liczb w wierszach są takie same, itp.). Do wczytania macierzy użyj kontenera typu <deque<deque<double>>
. Funkcja zwraca transponowaną macierz w postaci wskaźnika do dynamicznie alokowanego kontenera typu vector<vector<double>>
. Wypisz w oknie konsoli zawartość wynikowego kontenera i sprawdź, czy transpozycja została przeprowadzona poprawnie.
Zadanie 2:
Wczytaj słowa z kolejnych wierszy z pliku tekstowego do listy list, tj. kontenera typu list<list<string>>
, tak aby kontener zawierał listę wierszy, gdzie każdy wiersz jest reprezentowany przez listę słów z tego wiersza. Posortuj rosnąco słowa z każdego wiersza wg zasady sortowania takiej jak w słowniku języka polskiego, a następnie scal posortowane listy słów do jednej listy wynikowej reprezentowanej przez inny kontener typu list<string>
. Wypisz w oknie konsoli zawartość wynikowego kontenera w postaci kolumny i upewnij się, że sortowanie i scalanie się powiodło. Testy przeprowadź na pliku mistrz.txt