Podobne dokumenty

Komputerowe wspomaganie eksperymentu 5

PRZYRZĄDY WIRTUALNE. Część 6 Macierze, klastry, wzory. Prof. Krzysztof Jemielniak

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

Zarządzanie sieciami telekomunikacyjnymi

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Procesowa specyfikacja systemów IT

Gimnazjum w Zespole Szkół im. Hipolity i Kazimierza Gnoioskich w Siennicy

Podstawy programowania skrót z wykładów:

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Visual C# dla zupełnie początkujących / Tony Gaddis. Wydanie IV. Gliwice, copyright Spis treści. Wstęp 11. Uwaga, czytelnicy 19

Sterowniki Programowalne (SP)

Język C++ wykład VIII

Laboratorium 1. Wprowadzenie do środowiska GnuRadio. I. Wprowadzenie

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Programowanie obiektowe

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

1. Prawie wszystko jest obiektem (poza nullem i 'undefined'). 3. Dostęp do metod uzyskuje się analogicznie do właściwości:

Struktura i działanie jednostki centralnej

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

OpenPoland.net API Documentation

Politechnika Wrocławska, Katedra Inżynierii Biomedycznej Systemy Pomiarowo-Diagnostyczne, laboratorium

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Numeryczna algebra liniowa

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Języki programowania imperatywnego

Rozpoznawanie twarzy metodą PCA Michał Bereta 1. Testowanie statystycznej istotności różnic między jakością klasyfikatorów

Wyjątki (exceptions)

Język C++ Różnice między C a C++

Pliki wykład 2. Dorota Pylak

Laboratorium - Obserwacja procesu tłumaczenia nazw DNS

TwinCAT 3 konfiguracja i uruchomienie programu w języku ST lokalnie

Laboratorium 10: Maszyna stanów

Typy, klasy typów, składnie w funkcji

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

1. Wprowadzenie do języka PHP

Aplikacje w środowisku VBA. Visual Basic for Aplications

DOKUMENTACJA TECHNICZNA KurJerzyAPI wersja 1.0

Programowanie Komputerów

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

WYMAGANIA EDUKACYJNE

Ćwiczenie 12. Metody eksploracji danych

Programowanie obiektowe

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI 2016 ROK

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Definicje. Algorytm to:

Języki skryptowe w programie Plans

Kompletna dokumentacja kontenera C++ vector w -

Wykład z Technologii Informacyjnych. Piotr Mika

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Technologie i usługi internetowe cz. 2

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Pomorski Czarodziej 2016 Zadania. Kategoria C

1. CZYM JEST SERIALIZACJA

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

EGZAMIN MATURALNY Z JĘZYKA ANGIELSKIEGO

Generatory. Michał R. Przybyłek

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Wstęp do Programowania potok funkcyjny

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wstęp do programowania. Różne różności

System plików. Warstwowy model systemu plików

archivist: Managing Data Analysis Results

plansoft.org Zmiany w Plansoft.org Panel wyszukiwania PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

Integracja systemu RACS 4 z generatorem obrazu CCTV

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

SAS Access to Hadoop, SAS Data Loader for Hadoop Integracja środowisk SAS i Hadoop. Piotr Borowik

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Programowanie w języku C++ Grażyna Koba

Programowanie Obiektowe GUI

Języki i techniki programowania Ćwiczenia 2

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Rozwiązywanie problemów z Javą

Algorytmy sortujące i wyszukujące

TYLKO DO UŻYTKU WŁASNEGO! PERSONAL USE ONLY!

dr inż. Tomasz Krzeszowski

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

WYMAGANIA EDUKACYJNE JĘZYK ANGIELSKI, KLASA 4. Ocena celująca (6): Ocena bardzo dobra (5): Otrzymuje uczeń, który:

Podstawy programowania. Podstawy C# Tablice

Programowanie komputerów

Ubrania linii Set składa się z pościeli i suszarki z funkcją wiatrowej.

Transkrypt:

www.mistrzostwa-labview.pl Organizator: www.lvfg.pwr.wroc.pl Partnerzy:

Zadanie nr 1. Odwracanie wyrazów Tokenizowanie tekstów to często spotykane zadanie przed jakim stają programiści przy rozwiązywaniu problemów praktycznych (parsing poleceo SCPI). Typowe rozwiązanie tego zadania polegało na zastosowaniu węzła Scan String For Tokens, którego domyślne separatory międzywyrazowe odpowiadały wymaganiom specyfikacji zadania. Zdarzało się jednak zapominanie o inicjalizacji rejestru przesuwnego: Uczestnicy stosowali alternatywnie węzęł Match Pattern z odpowiednio zredagowanym wejściem regular expression (*\s]+). Tutaj z kolei większośd uczestników nie zwróciła uwagi na możliwośd pojawienia się białego znaku na początku tekstu wejściowego, w rezultacie w tablicy wyjściowej otrzymywali dodatkowy element! Dodatkowe wymaganie dotyczące odwracania dłuższych wyrazów realizowano z reguły za pomocą wbudowanego węzła Reverse String, ale zdarzało się, że uczestnicy realizowali to na piechotę co oczywiście niepotrzebnie zabierało tak cenny czas. Niektórzy stosowali zamiennie Rotate String, co było niezgodne z wymaganiami zadania. Oryginalne rozwiązanie zaprezentował jeden z uczestników etapu on-line wykorzystując węzeł Scan From String ze specyfikatorem %s 2

Byli też uczestnicy, którzy preferowali pozytywistyczną prace od podstaw (analiza tekstu znak po znaku): 3

Zadanie nr 2. Szereg harmoniczny To przykład zadania na zastosowanie konstrukcji zdarzeniowej lub prostej odmiany maszyny stanowej. Zdecydowana większośd uczestników poradziła sobie z zasadniczymi wymaganiami (uzyskiwała zarówno oszacowanie liczby Eulera jak i poprawny wykres). Osoby stosujące maszynę stanową zapominały czasami o umieszczeniu zalecanego obiektu Wait ograniczającego obciążenie procesora. Ze spełnieniem wymagania przygotowania aplikacji do wykonywania w środowisku Run Time System zapewne łatwiej poradziły sobie osoby pracujące przy realizacji tego typu zadao. Poniżej diagram jednego z uczestników jakiego oczekiwaliśmy. Zadanie nr 3. MPPLV Banner Sama konwersja parametrów wejściowych na wyjściowe nie była dla uczestników zadaniem szczególnie wymagającym. Podstawowa trudnośd polegała w tym zadaniu na spełnieniu wymagania, aby vi realizował konwersję dla parametrów różnych typów. Tak jak oczekiwaliśmy, realizujący poprawnie to zadanie budowali zwykle polimorficzny vi. Zastanawialiśmy się również jak potraktowad rozwiązania z wejściem typu Variant, które także otrzymaliśmy (chod nieliczne) i postanowiliśmy je uznawad. Poniżej jedno z podejśd do problemu z wykorzystaniem typu Variant: 4

Zadanie nr 4. Catch me To program sprawdzający jak uczestnicy opanowali umiejętnośd posługiwania się konstrukcją zdarzeniową. Jako obiekt łapany stosowane były różne elementy (Button, Color Box, 2D Picture). Maszyna stanowa plus losowe generowanie nowego położenia dawały w rezultacie test zręcznościowy. Zakładaliśmy, że test można powtarzad wielokrotnie (przez ponowne naciśnięcie przycisku Start) i zdecydowana większośd tak interpretowała wymagania do programu. Zdarzały się jednak osoby, których rozwiązanie pozwalało tylko na przeprowadzenie jednego testu. W myśl powiedzonka (nie pamiętam autora): Są rozwiązania bardzo dobre i... znacznie lepsze do gustu przypadły nam te rozwiązania, które przy losowaniu nowego położenia uwzględniały rozmiar kontenera na tle którego obiekt się przemieszczał. Zadanie nr 5. Magazyn Części elektronicznych Globalna zmienna funkcjonalna (Functional Global Variable) to znana i często stosowana konstrukcja (standardowy element modelowych rozwiązao zadao w ramach certyfikatów CLD) wykorzystująca niezainicjalizowany rejestr przesuwny jednokrotnie wykonywanej pętli do przechowywania danych. Wyliczeniowy parametr wejściowy określa operację wykonywaną na danych. Ustawienie trybu not reentrant zapewnia wykonywanie operacji w strefie krytycznej. Duża grupa uczestników wykazała, że mechanizm działania i sposób wykorzystania functional globala jest im dobrze znany. 5

Implementacja poszczególnych operacji wymagała umiejętności związanych z odczytem i zapisem danych w pliku tekstowym oraz podstawowych umiejętności operowania na klastrach. Stan magazynu przechowywany był jako tablica klastrów, a wyszukiwanie odpowiedniego elementu w tablicy przez przeszukiwanie liniowe (fragment diagramu jednego z uczestników poniżej). Pod rozwagę polecam cytat: Many applications require that large datasets be stored such that individual elements can quickly be retrieved using a unique identifier this is commonly known as a lookup table, hash table, or map. A simple array is often used for this purpose, but retrieving a value can be an inefficient process, as it requires a linear search through the array. In LabVIEW, the variants use a highly optimized lookup table under the hood for specifying and retrieving attributes, making it an ideal tool for implementing a lookup table. Simply use the Get Variant Attribute and the Set Variant Attribute to store and retrieve paired values. z dokumentu Tips and Tricks to Increase LabVIEW Performance firmy NI, gdyż nikt z uczestników nie podążył tym tropem. 6

Formułując wymagania dotyczące zwracanych przez poszczególne operację danych celowo zaproponowaliśmy trzy różne typy (klaster, Int32, DBL), gdyż chcieliśmy się zorientowad czy pojawi się propozycja zastosowania wyjścia typu Variant. Tak. Pojawiły się! Uwagi ogólne: Na etapie próbnym formułowaliśmy wymaganie (zadanie Licznik cyfr): Opracuj diagram vi. W etapie on-line użyliśmy (świadomie) sformułowania Opracuj vi, który.... Dlatego solidaryzujemy się ze wszystkimi, którzy zadawali sobie trud zbudowania panelu przyłączeniowego, gdyż uważali, że jest to integralny element projektu vi, zwłaszcza tam gdzie kontekst wskazywał że mamy do czynienia z subvi. Przy ocenie zadao zasadniczą wagę przykładaliśmy jednak do diagramu. Zadania chod może niezbyt trudne były jednak dośd czasochłonne, stąd uczestnikom, którzy uporali się ze wszystkimi zadaniami należą się szczególne wyrazy uznania. Wszystkim uczestnikom bardzo gorąco dziękujemy za udział w tym etapie imprezy. Mamy nadzieję, że nie uznają oni tych dwóch godzin za czas stracony. Wszystkich zachęcamy do przesyłania na adres organizatorów wszelkich uwag i sugestii dotyczących zaproponowanych zadao i sposobów specyfikacji ich wymagao. Za wszelkie uwagi będziemy bardzo wdzięczni gdyż mogą one okazad się pomocne przy przygotowywaniu zadao w przyszłości. Janusz Pękala 7