Omówienie zadań - LabVIEW Fan Group
Transkrypt
Omówienie zadań - LabVIEW Fan Group
© 2013 LVFG – kopiowanie, rozpowszechnianie i wykorzystywanie wyłącznie za zgodą autora LabVIEW – Liga Zadaniowa TYDZIEŃ 0 – OMOWIEŃIE 1. Ogólne wrażenia Pomysł Pomysł uruchomienia Ligi Zadaniowej narodził się jako refleksja po warsztatach LabVIEW organizowanych na spotkaniach Studenckiego Koła Naukowego „LabVIEW Fan Group”. Zauważyliśmy, że nie wszyscy uczestnicy warsztatów biegle poruszają się w samym LabVIEW, nie wiedzą, na którym panelu wstawia się stałe, a na którym – kontrolki, słowem – widać jasno, iż niezbyt często otwierają środowisko w domu. Żeby zmotywować studentów do systematycznej pracy, pojawił się pomysł organizacji cyklicznego konkursu niezbyt trudnych zadań – w których będziemy starać się nawiązywać do różnych możliwości pakietu LabVIEW. Potem, dość spontanicznie, postanowiliśmy rozszerzyć inicjatywę na chętnych studentów spoza naszego Koła. Wciąż szukamy złotego środka, dlatego formuła zadań może być optymalizowana. Mamy też nadzieję, iż już niedługo będziemy mogli pobudzić Waszą wyobraźnię nagrodami . Statystyka W „rozruchowym” tygodniu Ligi Zadaniowej wzięło udział 21 uczestników1. Uważamy to za spory sukces i bardzo dziękujemy wszystkim, którzy zechcieli poświęcić czas na współpracę z nami. Z tej grupy, czterem osobom udało się zdobyć maksymalną ilość punktów - gratulujemy! Tabela 1. Ostateczne zestawienie wyników tygodnia 0 Rank Osoba Punkty 1 1 1 1 5 5 5 8 8 8 8 8 8 14 14 14 14 14 14 20 21 Patrycja Klimczak (AGH) Mateusz Mikulski (PolŚl) Rafał Pasiut (AGH) Sławomir Polakowski (AGH) Piotr Demski (PolŚl) Mateusz Mąsior (AGH) Jacek Ziora (LVFG) Aleksandra Gładysz (LVFG) Konrad Konopka (AGH) Anna Kozioł (AGH) Filip Radoń (AGH) Adrian Wojak (LVFG) Łukasz Zapotoczny (LVFG) Radosław Malec (LVFG) Ewelina Mleczko (AGH) Mirosław Berg (LVFG) Anna Pawłowska (LVFG) Alicja Wedel (AGH) Monika Zakrzewska (AGH) Adrianna Tuchalska (LVFG) Jakub Barański (LVFG) 5 5 5 5 4 4 4 3 3 3 3 3 3 2 2 2 2 2 2 1 0 1 Rozbieżność wynikała z awarii serwera pocztowego w pewnym okresie odbioru zadań, w imieniu PWR AASOC – przepraszamy! Liga Zadaniowa LVFG tydz. 0 - omówienie 1 © 2013 LVFG – kopiowanie, rozpowszechnianie i wykorzystywanie wyłącznie za zgodą autora Powyższa tabela pozwala wykreślić zależność ilości osób od ilości zdobytych punktów. Zależność ta prezentuje się następująco: Liczba uczestnikóów dla punktacji Liczba osób / zdobyte punkty 7 6 6 6 5 4 3 3 2 2 1 1 0 1 1 0 2 3 4 5 Ilość uzyskanych punktów Najmniej trudności sprawiło Wam zadanie 3 i 4. Najmniej odpowiedzi otrzymaliśmy odnośnie zadania 1, najwięcej proponowanych diagramów odrzuciliśmy w zadaniu nr 5. Ilość osób, która poprawnie rozwiązała poszczególne zadania, przedstawia wykres: Liczba poprawnych odpowiedzi Liczba poprawnie rozwiązanych zadań 17 18 15 16 14 11 12 10 8 6 5 6 4 2 0 1 2 3 4 5 Numer zadania 2. Informacje warte wzmianki Pierwszą osobą, która wysłała zadania, jest Adrian Wojak. Gratulujemy! Specjalną nagrodę za odwagę otrzymuje Jakub Barański. Gratulujemy! Liga Zadaniowa LVFG tydz. 0 - omówienie 2 © 2013 LVFG – kopiowanie, rozpowszechnianie i wykorzystywanie wyłącznie za zgodą autora 3. Omówienie poszczególnych zadań Zadanie 1. Zadanie to jest – jak mawiają Anglosasi – „evergreen’em” na egzaminach typu CLD/CLA. Niemal każdy egzamin praktyczny wymaga przygotowania – takiego czy innego – rodzaju timingu, a ten komponent bardzo dobrze spełnia swoją rolę czasomierza. W tym zadaniu, podstawowe błędy polegały na niezrozumieniu konceptu Functional Global Variable (otrzymywaliśmy rozwiązania stanowiące maszyny stanowe) i problem w przemyśleniu implementacji funkcji „pause” – zwyczajnie, pauza nie zawsze poprawnie działała. Zachęcamy do testowania swojego kodu. W celu przemyślenia działania timera, zachęcamy do zapoznania się z https://decibel.ni.com/content/docs/DOC-1192 . Zadanie 2. Rozwiązanie równania kwadratowego to świetny przykład typowej „komputerówki”2 – licealny poziom matematyczny, za to świetnie sprawdzający umiejętność implementacji takich rozwiązań w LabVIEW. Wartą uwagi sytuacją jest poszukiwanie miejsca zerowego, gdy . Ponieważ to, czy mamy wtedy do czynienia w funkcją kwadratową jest sprawą mocno dyskusyjną, brak obsługi tego rozwiązania nie zaważył na punktacji. Ważną sprawą jednakże była liczba pierwiastków. Jeśli nie dało się jej ustalić na podstawie ilości elementów tablicy (pusta tablica – zero rozwiązań, jeden pierwiastej – jeden element, dwa pierwiastki – dwa elementy), przyznawano zero punktów za zadanie. Na marginesie – proszę, zwróćcie uwagę jak bardzo konieczność sprawdzania „na zewnątrz”, czy oba pierwiastki są jednakowe, obniża poziom użytkowy komponentu w większym kodzie… Publikujemy przykładowe rozwiązanie autorstwa Jacka Ziory: 2 Komputerówka – „kartkówka na komputerze” na KMEiF Liga Zadaniowa LVFG tydz. 0 - omówienie 3 © 2013 LVFG – kopiowanie, rozpowszechnianie i wykorzystywanie wyłącznie za zgodą autora Zadanie 3. Z tym zadaniem wiele osób poradziło sobie dobrze. Sprytni skorzystali z wbudowanych funkcji LabVIEW, odważni po konwersji do U8 z tablicą ASCII w ręku dodawali i odejmowali odpowiednie znaki. Uznawaliśmy rozwiązania nie uwzględniające zmian wielkości polskich liter, gdyż nie było to wyraźnie powiedziane w treści zadnia - odrzucaliśmy jednak konwertery, w których zamieniane zostały inne znaki (na przykład, spacja na znak „%”). Publikujemy przykładowe rozwiązanie autorstwa Mateusza Mikulskiego: Zadanie 4. W tym zadaniu postanowiliśmy sprawdzić, jak radzicie sobie z obsługą struktury typu Event. Ponieważ w treści zadania nie było jasno powiedziane, czy po zablokowaniu zamknięcia panelu frontowego aplikacja ma być wciąż uruchomiona czy nie, premiowaliśmy oba podejścia. To zadanie sprawiło trudności najmniejszej liczbie uczestników. Publikujemy przykładowe rozwiązanie autorstwa Filipa Radonia: Zadanie 5. Zadanie to nas zaskoczyło – jest wierną kopią (podonie jak nr 3) zadania przedstawionego rok temu na Mistrzostwach Polski Programistów LabVIEW. Nad jego treścią dyskutowaliśmy naprawdę długo, by była optymalna. A jednak – nie udało się rozwiać wszystkich wątpliwości. Podjęliśmy decyzję, by nie punktować rozwiązań nie sprawdzających długości znaków w wejściu. O ile dla wejść krótszych niż nr PESEL, typu („0”), można bronić tezy, iż reszta znaków zwyczajnie jest zerami, o tyle pozytywna weryfikacja numerów dłuższych niż 11 znaków stanowczo dyskwalifikuje walidator. Rozumiemy, jeśli nie zgodzicie się z naszą interpetacją – potraktujcie to wtedy tak samo jak błąd sędziego w meczu piłkarskim. W przyszłości będziemy dokładać wszelkich starań by precyzować interpretację – poza tym, proszę korzystać z dobrodziejstw poczty elektronicznej w razie jakichkolwiek niejasności. Liga Zadaniowa LVFG tydz. 0 - omówienie 4 © 2013 LVFG – kopiowanie, rozpowszechnianie i wykorzystywanie wyłącznie za zgodą autora Nietypowe rozwiązanie zademonstrowała Aleksandra Gładysz (użycie formula node): 4. Refleksje końcowe W kolejnych tygodniach będziemy przykładać ogromną wagę do treści zadań – aby była maksymalnie precyzyjna i jednoznaczna. W przeciwieństwie do krótkiego czasu konkursu, tygodniowy charakter zadań Ligi pozwala na rozwianie wątpliwości mailem – do czego gorąco zachęcamy. W celu poprawy jasności zadań i usprawnienia testowania, od następnego tygodnia publikowany będzie jednolity connector pane dla VI, który należy wykorzystywać. Spodziewajcie się dodatkowych elementów umożliwiających weryfikację VI – zestawu danych testowych lub gotowych VI z zaszyfrowanymi diagramami blokowymi. Zachęcamy do rozmawiania – czekamy na sugestie zadań, usprawnienie procesu rozwiązań Wasze refleksje – zachęcamy do korespondencji! Liga Zadaniowa LVFG tydz. 0 - omówienie 5