Napisz program szyfrujący tekst wprowadzany przez użytkownika. W tym celu przygotuj tablicę dwuwymiarową A o wymiarze 5 na 5 przechowującą wartości typu char, oraz tablicę jednowymiarową B, przechowującą wskaźniki do zmiennych typu char. Czytaj dalej
PO2026: Zasady uczestnictwa oraz regulaminy zajęć laboratoryjnych
Zasady obowiązujące na zajęciach:
Każdy uczestnik zajęć lab. wykonuje na komputerze w pracowni dwa zadania: podstawowe (pierwszego poziomu) za 6 pkt. i dodatkowe (drugiego poziomu) za 4 pkt. Zadań nie wolno realizować na własnym laptopie. Dopiero kiedy prowadzący odbierze i pozytywnie oceni zadanie podstawowe, można zacząć rozwiązywać zadanie dodatkowe (dodatkowe bywa łatwiejsze). Studenci mogą realizować swoje zadania tylko na zajęciach – nie ma możliwości kończenia programu w domu i przesyłania go do oceny w godzinach wieczornych czy następnego dnia. Studenci obowiązkowo uploadują do moodle rozwiązane zadania I i II poziomu w trakcie zajęć (moodle stanowi archiwum prac studentów). Po uploadowaniu koniecznie należy kliknąć „oddaj do oceny”.
W trakcie zajęć lab. obowiązuje całkowity zakaz korzystania z zasobów internetu. Używanie komunikatorów, korzystanie z wyszukiwarki sieciowej, sprawdzanie informacji na forach społecznościowych lub innych stronach poświęconych programowaniu w c/c++ skutkuje natychmiastowym opuszczeniem pracowni i oceną 0 pkt za realizowane zadanie.
Wyjątki:
http://www.cplusplus.com/
materiały z wykładu dostępne na platformie e-learningowej Moodle UKSW: https://e.uksw.edu.pl
Student może za to korzystać swobodnie z papierowych książek i notatek oraz wydruków. Jeżeli ktoś ma tablet z książkami w pdf’ie to ma obowiązek pokazać prowadzącemu, że na czas zajęć ma w nim wyłączony kontakt ze światem (WiFi).
Na zajęciach lab. prowadzący nie prezentuje żadnego mini-wykładu, a jedynie rozdaje i objaśnia zadania oraz odpowiada na konkretne pytania poszczególnych studentów dotyczące tworzonego kodu programu. Po wykonaniu zadania należy natychmiast zasygnalizować to prowadzącemu, który podejdzie i oceni wykonany program. Oceniony program należy uploadować do moodle. Osoby, które rozliczą pozytywnie obydwa zadania wcześniej, nie czekają w pracowni do zakończenia zajęć, ale opuszczają ją niezwłocznie po otrzymaniu oceny i wysłaniu programu do moodle. Zgłoszenie rozwiązania gotowego do oceny przez wiele osób na kilka minut przed końcem zajęć może skutkować brakiem możliwości oceny tych osób, które zgłosiły to najpóźniej, a w rezultacie – końcowym wynikiem 0 pkt dla tych osób.
W okolicach 4. zajęć w semestrze rozdawane są studentom zadania semestralne. Nie ma jednak podziału zaliczenia semestru na dwie oceny – z zajęć lab. i z zadania semestralnego. W ostatnim dniu semestru wystawiana jest jedna łączna ocena. Strategie postępowania w rodzaju „w semestrze zaliczę laboratoria a przez wakacje zrobię zadanie semestralne” są nieakceptowane. Student musi wykonać zadanie semestralne w semestrze i albo zaliczy wszystko przed rozpoczęciem sesji letniej, albo otrzymuje ocenę negatywną z zajęć lab.
Ważne: odnośniki do stron www z pełnymi zasadami zaliczenia zajęć lab. oraz z regulaminami są poniżej. Należy koniecznie zapoznać się z tymi informacjami przed rozpoczęciem pierwszych zajęć.
- Zasady zaliczenia lab.: https://ktrojanowski.blog.uksw.edu.pl/programowanie-obiektowe/zasady-zaliczenia-lab/
- Regulamin dla zajęć lab.: https://ktrojanowski.blog.uksw.edu.pl/programowanie-obiektowe/zasady-zaliczenia-lab/zasady-dla-zadan-lab/
- Regulamin dla zadania sem.: https://ktrojanowski.blog.uksw.edu.pl/programowanie-obiektowe/zasady-zaliczenia-lab/zasady-dla-zadania-sem/
Ostatnia deska ratunku dla tych, którzy nie zaliczyli zajęć lab. w semestrze:
https://ktrojanowski.blog.uksw.edu.pl/programowanie-obiektowe/zasady-zaliczenia-lab/wyjatek/
ZTP2025: Wyniki egzaminu – termin pierwszy
Wiersze zawierają: trzy ostatnie cyfry nr indeksu, liczbę zdobytych punktów i proponowaną ocenę.
- ***132 15.5 3.5
- ***137 1 2
- ***255 16 3.5
- ***259 18 4
- ***290 21 4.5
- ***305 16 3.5
- ***308 13.5 3
- ***322 23 5
- ***473 5.5 2
- ***481 17.5 4
- ***671 1 2
- ***674 8.5 2
W razie niejasności, proszę o kontakt mailowy.
ALIN2025: Zmiana godziny egzaminu AIN, termin I
Informuję o zmianie godziny I terminu egzaminu ALIN. Dla osób, które mają ocenę pozytywną z zajęć lab., a nie uzyskały oceny pozytywnej na egzaminie zerowym, egzamin odbędzie się 6 lutego, w piątek, o godz. 11:00 w sali 114, bud. 21 (w jednej auli razem z egzaminem „Zaawansowane techniki programowania”).
ALIN2025: Wyniki z egzaminu zerowego
Lista osób, które otrzymały ocenę pozytywną z zajęć lab. i ocenę pozytywną na egzaminie zerowym. Wiersze zawierają: trzy ostatnie cyfry nr indeksu, liczbę zdobytych punktów i ocenę z egzaminu zerowego.
- ***003 16 5
- ***172 16 5
- ***225 16 5
- ***238 12 4
- ***378 12 4
- ***467 10 3.5
- ***475 14 4.5
- ***487 16 5
- ***497 16 5
- ***511 16 5
- ***534 15 5
- ***543 12 4
- ***549 16 4
- ***560 15 5
- ***579 12.5 4
- ***594 12 4
- ***627 13 4.5
- ***637 14 4.5
- ***639 14 4.5
- ***658 11 3.5
W razie niejasności, proszę o kontakt mailowy.
ZTP2025: 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ę.
- ***130 12 + ε 3
- ***151 12 + ε 3
- ***170 15 3.5
- ***198 15.5 3.5
- ***204 15 3.5
- ***213 21.5 4.5
- ***271 17 4
- ***279 12 3
- ***280 14.5 3.5
- ***284 15 3.5
- ***286 22 5
- ***406 21 4.5
- ***507 17.5 4
- ***977 12 + ε 3
Lista osób, które uczestniczyły w egzaminie zerowym, ale liczba zdobytych na egzaminie punktów nie przekroczyła progowej wartości 50% możliwych do zdobycia.
- ***132
- ***255
- ***259
- ***290
- ***305
- ***308
- ***364
- ***671
- ***674
W razie niejasności, proszę o kontakt mailowy.
Osoby z pozytywną oceną z lab., które nie uzyskały oceny pozytywnej na „zerówce”, zapraszam w najbliższy piątek, 6.02, godz. 11:00, na pierwszy termin egzaminu i zachęcam do wcześniejszego zapoznania się z Regulaminem uczestnictwa w egzaminach (jest to regulamin dla Programowania Obiektowego, ale regulamin dla ZTP jest identyczny. Jedyna różnica to brak części praktycznej na egzaminie ZTP).
ZTP2025: Lista osób zwolnionych z egzaminu
Lista zawiera cztery ostatnie cyfry numeru indeksu osób zwolnionych z egzaminu za bardzo dobre wyniki na zajęciach lab. oraz proponowaną ocenę.
- ***145 5
- ***195 5
- ***266 5
- ***268 5
- ***282 5
- ***285 5
- ***288 5
- ***289 5
- ***293 5
- ***306 5
- ***319 5
Ocena zostanie wpisana do protokołu USOS jako ocena zdobyta w pierwszym terminie.
Prośba do studentów
Szanowni Państwo,
od środy 21 stycznia do wtorku 3 lutego (tylko dwa tygodnie!) będzie otwarta możliwość oceniania zajęć, w których uczestniczyliście. Od lat odbywa się to za pomocą ankiet. Ankiety mają istotne znaczenie dla oceny nauczycieli akademickich oraz kierunków studiów. Naprawdę.
Niestety, również od lat borykamy się z tym samym problemem. Ankiety wypełniają najczęściej osoby mające skrajne opinie: negatywne lub pozytywne. Do tej pory takich osób nie było wiele, więc też statystyczna waga tych głosów nie była wielka i nie sposób z tego dobrze wnioskować.
Dlatego zwracam się do was z prośbą: jeżeli będziecie mieli chwilę wolnego czasu, wypełnijcie ankiety. Nawet jeżeli jesteście przeciwnikami ankiet albo odnosicie się do niektórych zajęć bez emocji i trudno wam coś powiedzieć. Wtedy wypełnijcie tylko te odpowiedzi, gdzie trzeba podać liczbę (np. od 0 do 5). A w komentarzach nie piszcie nic, jeżeli nic wam nie przychodzi do głowy. Im więcej głosów, tym bardziej wiarygodna ocena. My, nauczyciele akademiccy to zawsze doceniamy i jesteśmy autentycznie wdzięczni również wtedy, kiedy oceny są niskie.
Głosowanie jest w pełni anonimowe i odbywa się na platformie USOSweb. Od 21 stycznia ankiety będą dostępne (po zalogowaniu do USOSweb) pod adresem: https://usosweb.uksw.edu.pl/kontroler.php?_action=dla_stud/studia/ankiety/index
Zapraszam wszystkich,
Krzysztof Trojanowski
ZTP2025: Zadania przed lab. 7
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: 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: 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.
ZTP2025: Zadania przed lab. 6
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
