LabVIEW Liga Zadaniowa TYDZIEŃ 3 OMÓWIENIE 1. Ogólne wrażenia Statystyka Niestety tylko 17 osób bawi się z nami dalej. Kończą się ferie, mam nadzieję że wraz z nimi wróci systematyczna praca. W tym tygodniu niewielkie zamieszanie w czołówce. Tabela 1. Ostateczne zestawienie wyników Rank Osoba Punkty 1 Mateusz Mikulski (PolŚl) 19 1 Patrycja Klimczak (AGH) 19 1 Piotr Demski (PolŚl) 19 4 Sławomir Polakowski (AGH) 18 4 Konrad Konopka (AGH) 18 6 Ewelina Mleczko (AGH) 17 7 Rafał Pasiut (AGH) 16 7 Mateusz Mąsior (AGH) 16 7 Anna Kozioł (AGH) 16 1 Adrian Cyga (PWr) 15 1 Filip Radoń (AGH) 15 1 Zuzanna Derda (AGH) 15 13 Adam Bąkowski (LVFG) 14 14 Aleksandra Gładysz (LVFG) 12 14 Anna Gacek (AGH) 12 16 Jacek Ziora (LVFG) 11 17 Michał Bieńkowski (LVFG) 1 18 Anna Pawłowska (LVFG) 8 19 Mirosław Berg (LVFG) 7 19 Monika Zakrzewska (AGH) 7 21 Adrian Wojak (LVFG) 5 21 Alicja Wedel (AGH) 5 23 Paulina Polańska (LVFG) 4 24 Łukasz Zapotoczny (LVFG) 3 24 Radosław Malec (LVFG) 3 24 Adrianna Tuchalska (LVFG) 3 27 Wojciech Glapiak (PWr) 2 Liga Zadaniowa LVFG tydz. 3 - omówienie 1
Ilość uczestników Ilość uczestników 213 LVFG kopiowanie, rozpowszechnianie i wykorzystywanie wyłącznie za zgodą autora Zgodnie z naszymi oczekiwaniami, najmniej osób rozwiązało zadanie nr 5 chociaż i tak jest to wielokrotnie większa liczba osób, niż się spodziewaliśmy. Pozostałe zadania nie sprawiły wielkich problemów w 1 i 4 po jednym uczestniku straciło punkt, zadania interfejsowe 2 i 3 w większości były zrealizowane, punkty jednak tracone były na drobiazgach, na przykład niezamierzonym zamrażaniu panelu frontowego w pewnej kombinacji aktywności użytkownika. Liczba poprawnie rozwiązanych zadań 2 15 1 16 12 14 16 1 5 1 2 3 4 5 Numer zadania Wyniki można interpretować dwojako albo ciężka praca popłaca, albo też zostają z nami sami najlepsi, miło pracować dla tak czcigodnego grona Liczba osób / zdobyte punkty 8 7 6 5 4 3 2 1 7 6 2 1 1 1 2 3 4 5 Ilość punktów Liga Zadaniowa LVFG tydz. 3 - omówienie 2
2. Omówienie poszczególnych zadań Zadanie 1. Zadanie miało za zadanie sprawdzić, jak radzicie sobie z interpretacją i implementacją kodu w języku C. Co ciekawe, twórcy LabVIEW przyjęli inną interpretację epsilonu maszynowego. Zadanie niemal wszyscy rozwiązali poprawnie, warto zwrócić uwagę na jedną kwestię, która przewija się już kilkakrotnie. Oto przykładowe rozwiązanie Zuzanny Derdy: Otóż, taki fragment kodu:, z powodzeniem może zostać zastąpiony przez taki fragment kodu:. Konstrukcja ta często przewija się w Waszych rozwiązaniach i myślę że jest to coś o czym warto wspomnieć. Może się okazać, iż kompilator optymalizuje taki kod, ale nie mamy na gwarancji, szczególnie np. przy generacji kodu FPGA. Warto pamiętać o zasadzie KISS Liga Zadaniowa LVFG tydz. 3 - omówienie 3
Zadanie 2. Ta niewielka gierka sprawiła uczestnikom w tym tygodniu nieco problemów. Nie wszyscy podążali ściśle ze specyfikacją, przez co nie mogliśmy uznać części rozwiązań jeśli zachowanie danego programu jest ściśle zdefiniowane w dokumentacji, programista nie może pozwalać sobie na dowolność w interpretacji. Bardzo elegancko do rozwiązania zadania podszedł Filip Radoń, implementując całą maszynę stanową: Zadanie 3. W większości poradziliście sobie z tym zadaniem przy pomocy zdarzenia Menu Selection (User) w strukturze zdarzeń, zdarzało się wykorzystanie struktury case i VI-a Menu Selection. Na przykładzie Anny Pawłowskiej, warto wspomnieć iż nie ma potrzeby wstawiania opóźnień to pętli sterowanych strukturami zdarzeniowymi. Liga Zadaniowa LVFG tydz. 3 - omówienie 4
Zadanie 4. Nauczeni doświadczeniami poprzedniego finału Mistrzostw Polski Programistów LabVIEW, spodziewaliśmy się płaczu, skarg i zgrzytania zębów mile byliśmy zaskoczeni, że arkana matematyki nie stanowią problemów dla uczestników Ligi. Publikujemy przykładowe rozwiązanie autorstwa Moniki Zakrzewskiej: Zadanie 5. To zadanie jest trudne i nietypowe, dlatego doceniając wysiłek osób które postanowiły podjąć się rozwiązania, nie będziemy wtajemniczać wszystkich w kod, który należało napisać Liga Zadaniowa LVFG tydz. 3 - omówienie 5