Tematyka i kryteria ocen z kolokwiów
Transkrypt
Tematyka i kryteria ocen z kolokwiów
Zadanie 1 Napisać implementację funkcji standardowej z pliku nagłówkowego <string.h> lub <ctype.h>, nie posługując się żadnymi funkcjami standardowymi z wyjątkiem malloc(). Ocena: Błędny nagłówek funkcji (np. niewłaściwy typ zwracany) - punktacja za zadanie 0%. Kompletne niezrozumienie działania funkcji (np. alokacja pamięci wewnątrz strcpy lub strcat) - punktacja za zadanie 0%. Rażące błędy wewnątrz funkcji, wskazujące na nieumiejętność posługiwania się wskaźnikami i operatorem wyłuskania - punktacja za zadanie 0%. Brak specyfikatora const w nagłówku funkcji nie obniża punktacji. Pojedynczy błąd w funkcji (np. zwracanie wskaźnika do końca ciągu, brak inkrementacji, jedna inkrementacja za dużo) - obniżenie punktacji o 30% za każdy błąd. Zadanie 2 Napisać deklarację określonego wskaźnika do funkcji, np.: Zadeklarować wskaźnik do funkcji zwracającej wskaźnik do funkcji przyjmującej dwa argumenty typu double i zwracającej wartość typu int i przyjmującej jako argumenty referencje do typu double i wskaźnik do typu int. Ocena: Błąd składniowy, powodujący że deklaracja nie skompiluje się - punktacja za zadanie 0%. Zdefiniowanie czegoś innego niż wskaźnik do funkcji (np. funkcji zamiast wskaźnika poprzez błędne nawiasowanie) - punktacja za zadanie 0%. Pojedynczy błąd (np. zdefiniowanie wskaźnika do stałej zamiast stałego wskaźnika) obniżenie punktacji o 30% za każdy błąd. Zadanie 3 Znaleźć (wyjaśnić i ewentualnie poprawić) błąd w podanym fragmencie programu. Ocena: Odpowiedź poprawna, ale bez uzasadnienia - 50% punktacji. Uzasadnienie kompletnie bezsensowne - 0% punktacji. Zadanie 4 Ocena: Pola klasy - 1 lub 2 punkty za wszystkie łącznie, zależnie od złożoności Funkcja prosta (ciało funkcji mniej niż 4 instrukcje) - 1 punkt Funkcja złożona - 2 punkty. Oceniane tylko funkcje niezbędne w danym przykładzie. Kary za błędy w danej funkcji: Błędny typ wartości zwracanej przez operatory = i op= (void lub class zamiast class&) 0 punktów za funkcję Błędny typ wartości zwracanej przez operator [] (brak referencji) - 0 punktów za funkcję Błędny typ wartości zwracanej przez operator+ i podobne (class& zamiast class) - 0 punktów za funkcję Funkcja wykonująca operacje kompletnie inne niż w przykładzie (np. dodawanie wektorów konkatenuje je zamiast dodawać element po elemencie) - 0 punktów za funkcje. Alokacja niewłaściwej ilości pamięci - odjęcie jednego punktu Użycie operatora delete zamiast delete [] lub free zamiast delete - odjęcie jednego punktu Inne błędy w zarządzaniu pamięcią - odjęcie jednego punktu. Błędy algorytmiczne w funkcji - odjęcie jednego punktu Jeżeli funkcja korzysta z innej w celu wykonania rzeczywistej pracy (np. implementacja operatora + przez operator +=) - sprawdzenie, czy nagłówek funkcji jest właściwy i jeżeli tak, to należy ocenić wywoływaną funkcję