PO 2019: Wejściówka na Lab.3

Zadeklaruj strukturalny typ danych, który będzie zawierał dwa pola: napis oraz liczba całkowita. W funkcji main zadeklaruj lokalną tablicę o niewielkiej długości (np. 5), zawierającą elementy typu takiego, jak zdefiniowana wcześniej struktura.

Następnie napisz funkcję, która jako argument wywołania przyjmuje tę tablicę. Kod funkcji sprawdza, czy w każdej z komórek tablicy pole liczbowe nie zawiera wartości mniejszej (ale dodatniej) od długości napisu przechowywanego w drugim polu. Jeżeli tak, skraca napis do długości takiej, jak wartość w polu liczbowym. W przeciwnym przypadku pozostawia napis niezmieniony. Takie sprawdzenie i skracanie wykonuje się dla wszystkich komórek tablicy. Po przejrzeniu całej tablicy funkcja zwraca liczbę skróceń, jakie rzeczywiście zostały wykonane.

Napisz w funkcji main kod, który pozwala użytkownikowi wprowadzić wartości do obydwu pól w każdej z komórek tej tablicy. W main, poniżej kodu wprowadzającego dane umieść wywołanie funkcji skracającej napisy w tablicy, przy czym argumentem wywołania jest tablica, do której dane zostały właśnie przez użytkownika wprowadzone. Na koniec dopisz kod wyświetlający nową zawartość tablicy (w kolejnych wierszach pary: liczba i napis) oraz zwróconą przez funkcję liczbę faktycznie wykonanych skróceń.

Przetestowany, działający program załaduj do systemu moodle jako rozwiązanie zadania „wejściówka” lab. nr 3 (wyłącznie plik cpp z kodem źródłowym, nic więcej).

PO 2019: Wejściówka na Lab.2

Napisz program szyfrujący tekst wprowadzany przez użytkownika. W tym celu przygotuj tablicę kwadratową A o wymiarze 5 na 5 przechowującą wartości typu char, oraz tablicę jednowymiarową B, przechowującą wskaźniki do zmiennych typu char. Do tablicy B wpisz wartości NULL, a do tablicy kwadratowej A wpisz litery alfabetu (z pominięciem liter zawierających znaki diakrytyczne: ą, ć, ę, ł, ń, ó, ś, ź, ż), np. tak:

a f k p v
b g l r w
c h m s x
d i n t y
e j o u z

Następnie wczytaj od użytkownika ciąg znaków bez spacji, reprezentujący dowolny napis składający się tylko ze znaków z tablicy A, którego długość nie jest większa niż długość tablicy jednowymiarowej B. Zakładamy przy tym, że dane wprowadzane przez użytkownika są zawsze poprawne co do ich wartości i rozmiaru. Napis wczytaj poleceniem scanf do pomocniczej tablicy. Po wczytaniu dla każdej kolejnej litery napisu znajdź w tablicy A komórkę, przechowującą tę literę, po czym adres znalezionej komórki w A zapisz w kolejnej komórce tablicy B. Po zakończeniu tablica B powinna zawierać wskaźniki do odpowiednich komórek tablicy A z kolejnymi literami wprowadzonego napisu. Jeżeli długość tablicy B jest większa niż długość wczytanego słowa, pozostałe komórki tablicy B przechowują wartość NULL.

Wypisz w oknie konsoli napis podany przez użytkownika korzystając tylko z tablicy B, tj. za pomocą wskaźników z B sięgaj do odpowiednich komórek w A i wypisz ich zawartość kolejno na ekranie.

Następnie zaszyfruj napis poprzez przestawienie wartości w wierszach tablicy A. Przykładowe przestawienie to przesunięcia wartości: z wiersza 1 do 2, z 2 do 3, z 3 do 4, z 4 do 5, a z 5 do 1, np. tak:

e j o u z
a f k p v
b g l r w
c h m s x
d i n t y

Po przestawieniu wierszy ponownie wypisz w oknie konsoli napis korzystając ze wskaźników z tabeli B.

Na koniec przywróć w tablicy właściwy porządek wierszy i jeszcze raz korzystając z tablicy B wypisz napis, tym razem w postaci odszyfrowanej.

Przetestowany, działający program (tylko plik z kodem źródłowym) uploaduj do https://e.uksw.edu.pl jako rozwiązanie zadania „Wejściówka” Lab. nr 2, tak aby na początku zajęć można go było szybko pobrać, skompilować i zademonstrować działanie.

PO2019: ogłoszenia na początek semestru

Wejściówka na pierwszych zajęciach

Wejściówki nie ma na pierwszych zajęciach z PO.

Komputerowe stanowiska pracy i czas pracy

Ocenie podlegają wyłącznie rozwiązania wykonane na stanowisku komputerowym w pracowni, natomiast nie podlegają ocenie zadania wykonane na własnym laptopie. Ponadto, ocenie podlegają wyłącznie rozwiązania wykonane w czasie zajęć i odebrane przez prowadzącego w czasie zajęć. Jeżeli kilka osób na raz zgłosi prowadzącemu gotowość oceny swojego zadania w ostatnich minutach zajęć, może on nie zdążyć ocenić wszystkich. Osobom, których nie zdąży ocenić, zostanie wpisana ocena zero. Dlatego należy zgłaszać rozwiązanie zadania prowadzącemu jak najszybciej, tj. jak tylko będzie gotowe, nie czekając aż zajęcia dobiegną końca.

Platforma https://e.uksw.edu.pl/

Przed zajęciami student powinien upewnić się, że może zalogować się do moodle i ma tam dostęp do swojej grupy. Jeżeli nie, należy to jak najszybciej wyjaśnić w Dziekanacie (prowadzący zajęcia laboratoryjne nie ma odpowiednich uprawnień i w tym zakresie nie udzieli pomocy).

Przeniesienia do innej grupy

Ogólna zasada jest taka, że skład grup zajęciowych określa usos i nie ma możliwości przechodzenia do innej grupy. Ponieważ pewna liczba studentów po pierwszym semestrze rezygnuje, może się zdarzyć, że niektóre grupy mogą jednak faktycznie okazać się mniej liczne niż inne. W takim przypadku przejście do innej grupy – za zgodą prowadzącego i Dziekanatu – jest możliwe pod warunkiem, że nie powoduje pogłębienia tych różnic, ale ich wygładzenie. Dużo więc będzie zależało od frekwencji na pierwszych zajęciach. Kto nie przyjdzie na pierwsze zajęcia swojej grupy, ten zwalnia miejsce, nie mając gwarancji, że znajdzie je w innej.

Zasady zaliczenia laboratoriów

Zasady są dostępne w zakładce:
Programowanie Obiektowe|Zasady zaliczenia lab.|Zasady dla zadań lab.