Politechnika Wrocławska, Wydział Elektroniki, Kierunek: Informatyka, Semestr letni 2003/2004
Termin kolokwium ustalono na czwartek 3 czerwca, w
sali 205 C-1 :
-
pierwsza tura - godz. 7.20-8.05
- druga
tura - godz. 8.15-9.00
Podział na tury w/g alfabetycznej listy podanej na stronie WWW dziekanatu
Elektroniki.
1 tura - pierwsze 126 osób z listy, o nazwiskach rozpoczynających się od
liter
A-N
2 tura - pozostałe 126 osób o nazwiskach
O-Ż
Napisz szablon-wzorzec (ang. template)
dla funkcji wyznaczającej pozycję elementu o maksymalnej wartości
w tablicy zawierającej elementy dowolnego typu (zadawanego jako parametr
szablonu)
dla których istnieje operator porównania <= (mniejsze lub równe)
Zaproponuj reprezentację danych (napisz
definicje wykorzystywanych typów, prototypy funkcji
realizujących podstawowe operacje, oraz implementację funkcji "usuwającej"
wybraną element) dla:
a) uporządkowanej listy danych personalnych studentów
b) kolejki priorytetowej "zadań do wykonania"
c) listy cyklicznej zawierającej parametry okien wyświetlanych
na ekranie
Napisz funkcję tworzącą dynamiczną tablicę
liczb double
o zmiennej ilości wierszy (zadawanej jako parametr tej funkcji)
i o stałej ilości kolumn (równej 10).
Napisz funkcję usuwającą przedostatni element w liście jednokierunkowej.
Napisz funkcję wyświetlającą całą zawartość listy cyklicznej.
Wyjaśnij na czym polega ADT. Zastosuj tę
technikę do zaprojektowania interfejsu
i oprogramowania pojęcia "zbioru elementów"
Napisz plik nagłówkowy "modul.h" dla
modułu "modul.cpp"
udostępniającego innym fragmentom programu:
- stałą N o wartości równej 10
- stałą Wersja o wartości "2.1"
- zmienną globalną licznik typu unsigned long
- zmienną funkcja zawierającą wskaźnik funkcji takiego
samego typu jak int getch(void)
- funkcję WyswietlKomunikat, której parametrem wejściowym
jest adres łańcucha
zawierającego tekst wyświetlanego komunikatu, i która
zwraca kod naciśniętego klawisza,
- szablon funkcji maksimum zwracającą większy z dwu parametrów
Wyjaśnij pojęcia "rachunek zdań" i "tautologia". Podaj po dwa przykłady.
Napisz program sprawdzający metodą
zero-jedynkową, czy wyrażenie:
p ^ (q v s) ® q ^ ( p v
s)
jest prawem logicznym
Udowodnij, prawdziwość (lub nieprawdziwość)
w/w prawa
metodą dedukcji naturalnej
Przeprowadź test statyczny sprawdzający czy
zamieszczony poniżej fragment kodu
zakończy swoje działanie z dodatnią zawartością zmiennej x
int x, y=2, i;
for( i=0; i<10; i++)
{
x = y;
y = -y;
i--;
}
Wymień znane ci metryki pomiaru strukturalnej złożoności
programu.
Podaj dokładniejszy opis i przykłady 3 wybranych metryk złożoności wewnątrz-modułowej.