Programowanie w środowiskach zintegrowanych wykład 1 PSZ Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane.

Slides:



Advertisements
Podobne prezentacje
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Advertisements

Introduction to SystemC
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Analiza wywołania i przebiegu przerwań w systemie Linux

Java Server Faces Tomasz Nowak.
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
ALLEGRO PIERWSZA GRA: WYŚCIG
Programowanie w środowisku sieciowym
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Wybrane elementy C#, BCL
Copyright for librarians - a presentation of new education offer for librarians Agenda: The idea of the project Course content How to use an e-learning.
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Java vs C# Michał Prządka Tomasz Nowak
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Mirosław Ochodek Sponsorzy: JFace Jak jeszcze szybciej tworzyć interfejsy? ECESIS Eclipse Community Education Project An.
Dzielenie relacyjne / Relational Division
1 Przestrzenie nazw. 2 Globalna przestrzeń nazw jest jedna W programach pisanych przez wiele osób, lub korzystających z bibliotek napisanych przez innych,
Spójność i replikacja Wykład 7.
Testowanie oprogramowania metodą badania pokrycia kodu
Łukasz Monkiewicz.
Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
„Tworzenie aplikacji sieciowych w języku Java”
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Objects classes,
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Java – overview.
MS SQL SERVER udział w rynku. Source: Gartner Dataquest (May 2006) Company Market Share (%) Market Share (%) Growth (%) Oracle6, ,
DIRECT &INDIRECT QUESTIONS
Język C# Copyright, 2004 © Adam Czajka.
MS ASP.NET 2005/2006
Przestrzeń System podstawowe klasy i klasy bazowe.
Tadeusz Janasiewicz IT Group, Tadeusz Janasiewicz, WSUS, IT Group, r.
Podstawy C# Grupa .NET PO.
Najpopularniejsze aplikacje ASP.NET i PHP.
REKURENCJA.
Krzysztof Manuszewski
Theory of Computer Science - Basic information
Asynchroniczność w Windows 8 Jakub Binkowski. O mnie Jakub Binkowski Lead.NET Developer.
BLOOD DONATION.
db4o Kacper Skory Marcin Talarek
Czyli jak zrobić prezentację komputerową?
Analiza matematyczna III. Funkcje Funkcje II – własności podstawowe
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
Tablice.
Podstawy programowania
TYPY STRUKTURALNE Tablice Tablicą nazywamy złożoną strukturę danych, która zawiera zbiór elementów tego samego typu.
Automatyczne wyznaczanie złożoności obliczeniowej algorytmów
Wykonała Sylwia Kozber
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
KINECT – czyli z czym to się je?. Damian Zawada
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Turbo Pascal umożliwia wykorzystanie w programach zbiorów teoriomnogościowych, których elementy muszą należeć do pewnego określonego typu. Typ zbiorowy.
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcje sterujące: W instrukcjach sterujących podejmowane są decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane są w zależności.
Rozdział 3: Bezpieczeństwo w sieci opartej na systemie Windows 2000.
Introduction to Numerical Analysis
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
1.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Zapis prezentacji:

Programowanie w środowiskach zintegrowanych wykład 1 PSZ Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane Visual Studio.NET

Programowanie w środowiskach zintegrowanych w wykładzie wykorzystano dostępne publicznie materiały firmy Microsoft, pochodzące z prezentacji.NET Framework & C#

Programowanie w środowiskach zintegrowanych Konspekt bieżącego wykładu Część administracyjna Podział typów Biblioteka system Biblioteka forms

Programowanie w środowiskach zintegrowanych Organizacja egzaminu / zaliczenia Strona Sekcja

Programowanie w środowiskach zintegrowanych Visual Studio.NET Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Internet Toolkit WindowsForms Common Language Specification VBC++C#JScriptJ# Visual Studio.NET

Programowanie w środowiskach zintegrowanych Typy w.NET Podział typów –Typy bezpośrednie (value type) są pochodnymi klasy System.ValueType. Zmienne tego typu przekazywane są przez wartość, podobnie jak typy proste w językach programowania. Wartości bezpośrednie zwykle przechowywane są na stosie. Dla zmiennych typów bezpośrednich istotna jest de facto wyłącznie wartość (obiekty wartościowe wg. CLR). Reprezentacja jest zwykle bardzo prosta. –Typy referencyjne – klasy, do których dostęp zawsze odbywa się przez wskaźnik. Złożona aktywność, struktura i reprezentacja (obiekty usługowe i rzeczywiste wg. CLR). Do wykonywania operacji potrzebne są raczej wyrafinowane metody niż proste operacje. Jedynym miejscem do przechowywania danych o obiektach typów referencyjnych jest pamięć. –Zauważmy, że typy bezpośrednie posiadają wsparcie sprzętowe. Procesor posiada rejestry stało i zmiennopozycyjne, i zdolny jest do wykonywania pewnego zestawu operacji na wartościach w nich przechowywanych. W przypadku typów referencyjnych sprzętowego wsparcie brak. Możemy jednak wykorzystać wbudowane w procesor mechanizmy adresacji pamięci (wskaźniki)

Programowanie w środowiskach zintegrowanych Typy w.NET źródło: Microsoft ®

Programowanie w środowiskach zintegrowanych Przestrzeń nazw System Zawiera podstawowe –klasy –klasy bazowe –interfejsy –struktury –delegacje –typy wyliczeniowe często używane lub wspólne dla całej platformy.NET

Programowanie w środowiskach zintegrowanych CategoryClass name DescriptionVisual Basic data type C# data typeManaged Extensions for C++ data type JScript data type IntegerByteAn 8-bit unsigned integer.BytebytecharByte SByteAn 8-bit signed integer. Not CLS-compliant. SByte No built-in type. sbytesigned charSByte Int16A 16-bit signed integer.Shortshort Int32A 32-bit signed integer.Integerintint -or- Longint Int64A 64-bit signed integer.Longlong__int64long UInt16A 16-bit unsigned integer. Not CLS-compliant. UInt16 No built-in type. ushortunsigned shortUInt16 UInt32A 32-bit unsigned integer. Not CLS-compliant. UInt32 No built-in type. uintunsigned int -or- unsigned long UInt32 UInt64A 64-bit unsigned integer. Not CLS-compliant. UInt64 No built-in type. ulongunsigned __int64 UInt64 Floating point SingleA single-precision (32-bit) floating-point number. Singlefloat DoubleA double-precision (64-bit) floating-point number. Doubledouble LogicalBooleanA Boolean value (true or false).Booleanbool OtherCharA Unicode (16-bit) character.Charcharwchar_tchar DecimalA 96-bit decimal value.DecimaldecimalDecimal IntPtrA signed integer whose size depends on the underlying platform (a 32-bit value on a 32- bit platform and a 64-bit value on a 64-bit platform). IntPtr No built-in type. IntPtr No built-in type. IntPtr No built-in type. IntPtr UIntPtrAn unsigned integer whose size depends on the underlying platform (a 32- bit value on a 32-bit platform and a 64-bit value on a 64- bit platform). Not CLS-compliant. UIntPtr No built-in type. UIntPtr No built-in type. UIntPtr No built-in type. UIntPtr Class objectsObjectThe root of the object hierarchy.ObjectobjectObject*Object StringAn immutable, fixed-length string of Unicode characters. StringstringString*String Typy podstawowe źródło: Microsoft ®

Programowanie w środowiskach zintegrowanych Klasa object Public Constructors –Object Initializes a new instance of the Object class.Object Public Methods –Equals Overloaded. Determines whether two Object instances are equal.Equals –GetHashCode Serves as a hash function for a particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table.GetHashCode –GetType Gets the Type of the current instance.GetTypeType –ReferenceEquals Determines whether the specified Object instances are the same instance.ReferenceEquals –ToString Returns a String that represents the current Object.ToStringString Protected Methods –Finalize Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.Finalize –MemberwiseClone Creates a shallow copy of the current Object.MemberwiseClone źródło: Microsoft ®

Programowanie w środowiskach zintegrowanych Różnica pomiędzy operatorem == i Equals public class Sample { void Method() { Object Obj1 = new Object(); Object Obj2 = new Object(); Console.WriteLine(Obj1.Equals(Obj2)); //===> false Obj2 = Obj1; Console.WriteLine(Obj1.Equals(Obj2)); //===> true } źródło: Microsoft ®

Programowanie w środowiskach zintegrowanych Przykład using System; class Point: Object { protected int x, y; public Point() { this.x = 0; this.y = 0; } public Point(int X, int Y) { this.x = X; this.y = Y; } public override bool Equals(Object obj) { //Check for null and compare run-time types. if (obj == null || GetType() != obj.GetType()) return false; Point p = (Point)obj; return (x == p.x) && (y == p.y); } public override int GetHashCode() { return x ^ y; } class Point3D: Point { int z; public Point3D(int X, int Y, int Z) { this.x = X; this.y = Y; this.z = Z; } public override bool Equals(Object obj) { return base.Equals(obj) && z == ((Point3D)obj).z; } public override int GetHashCode() { return base.GetHashCode() ^ z; } źródło: Microsoft ®

Programowanie w środowiskach zintegrowanych Przykład using System; class Rectangle { Point a, b; public Rectangle(int upLeftX, int upLeftY, int downRightX, int downRightY) { this.a = new Point(upLeftX, upLeftY); this.b = new Point(downRightX, downRightY); } public override bool Equals(Object obj) { // Performs an equality check on two rectangles (Point object pairs). if (obj == null || GetType() != obj.GetType()) return false; Rectangle r = (Rectangle)obj; //Uses Equals to compare variables. return a.Equals(r.a) && b.Equals(r.b); } public override int GetHashCode() { return a.GetHashCode() ^ b.GetHashCode(); }

Programowanie w środowiskach zintegrowanych funkcja GetHashCode Funkcja mieszająca (haszująca) zwracająca kod, potrzebny przy implementacji szybkiego dostępu. Założenia –jeśli dwa obiekty reprezentują tę samą wartość, wartośc funkcji haszująca powinna dla obu zwrócić tę sama wartość –aby osiągnać najlepszą wydajność przy wyszukiwaniu obiektów, wartości zwracane przez funkcję powinny być dystrubowany równomiernie w całej dziedzinie int –funkcja powinna być łatwa do obliczenia Uwagi: –dobrze skonstruowana funkcja mieszajaca umożliwi odnajdywanie obiektów w tablicy w czasie O(1); funkcja niechlujna może spowodować wiele kolizji, a to będzie oznaczać, że przeszukiwanie będzie przebiegać w czasie O(n), gdzie n jest liczbą elementów w tablicy haszującej.

Programowanie w środowiskach zintegrowanych Typy strukturalne Rekody (struktury) – podobnie jak w c++ Unie – bez szczególnego wspracia Pliki – bez szczególnego wsparcia Tablice – zupełnie nowe podejście

Programowanie w środowiskach zintegrowanych Klasa System.Array Tablica jest obiektem klasy System.Array, obiekty tablicowe są referencjami; obiekty są zawsze przechowywane na stercie nagłówek: –public abstract class Array : ICloneable, IList, ICollection, IEnumerableICloneableIListICollectionIEnumerable Rodzaje tablic: –jednowymiarowe (singledimensional) –wielowymiarowe (multidimensional) –zagnieżdzone (tablice, tablic) (jagged arrays) Deklaracja tablicy –przechowującej obiekty wartościowe: Int32[] myIntegers; // Declares a reference to an array myIntegers = new Int32[100]; // Create array of 100 Int32s –przechowującej obiekty rzeczywiste: Control[] myControls; // Declares a reference to an array myControls=new Control[49]; // Create array of 49 Control references

Programowanie w środowiskach zintegrowanych Klasa System.Array myControls[1] = new Button(); myControls[2] = new TextBox(); myControls[3] = myControls[2]; // 2 elements refer to the same object myControls[46] = new DataGrid(); myControls[47] = new ComboBox(); myControls[48] = new Button();

Programowanie w środowiskach zintegrowanych Klasa System.Array Tablice wielowymiarowe // Create a 2-dimensional array of Doubles Double[,] myDoubles = new Double[10, 20]; // Create a 3-dimensional array of Strings String[,,] myStrings = new String[5, 3, 10]; Tablice zagnieżdżone // Create a 1-dimensional array of Point-arrays Point[][] myPolygons = new Point[3][]; // myPolygons[0] refers to an array of 10 Point instances myPolygons[0] = new Point[10]; // myPolygons[1] refers to an array of 20 Point instances myPolygons[1] = new Point[20]; // myPolygons[2] refers to an array of 30 Point instances myPolygons[2] = new Point[30]; // Display the Points in the second polygon for (Int32 x = 0, l = myPolygons[1].Length; x < l; x++) Console.WriteLine(yPolygons[1][x]);

Programowanie w środowiskach zintegrowanych A co dają interfejsy A co dają interfejsy: –ICloneable - daje możliwość klonowania obiektówICloneable –IList – daje możliwość dostępu przez indeksIList –ICollection – daje możliwość traktowania tablicy jak kolekcjiICollection –IEnumerable – daje np. możliwość iterowania się przez for eachIEnumerable

Programowanie w środowiskach zintegrowanych Klasa System.Array przykład 9 / 01

Programowanie w środowiskach zintegrowanych Kolekcje Kolekcje zgromadzone są w dwóch przestrzeniach nazw –System.Collections ArrayList - tablica o nieokreślonym rozmiarze przechowująca obiekty BitArray – tablica do przechowywania wartości bitowych (boolean) HashTable – tablica par klucz/wartość (key/value) zorganizowana wartości funkcji haszująceh. Queue - kolejka o organizacji first-in, first-out SortedList – lista par klucz / wartość posortowana wg. kluczy. Stack – stos o organizacji first-in, last-out. –System.Collections.Specialized HybridDictionary – struktura hybrydowa używająca ListDictionary, jeśli lista jest mała, i HashTable jeśli lista urośnie. ListDictionary – klasyczna lista,dobra do przechowywania niewielkich kolekcji (zwykle poniżej 10 elementów). NameValueCollection – kolekcja par typu klucz / wartość (oba stringi). StringCollection – kolekcja łańcuchów (stringów). StringDictionary – kolekcja łańcuchów, zbudowana z użyciem funkcji haszującej

Programowanie w środowiskach zintegrowanych Przykład użycia using System.Collections;... ArrayList ar = new ArrayList(); ar.Add("a"); ar.Add("b"); ar.Add("c"); foreach(String s in ar) { Console.WriteLine(s); } Uwaga: kolekcje nie mogą być modyfikowane w czasie działania pętli foreach; w przeciwnym wypadku wystąpi wyjątek; dotyczy to także dostępu z wnętrzna innych wątków (brak synchronizacji)

Programowanie w środowiskach zintegrowanych Przykład przykład 9 / 02

Programowanie w środowiskach zintegrowanych Dostęp do plików Dostęp w postaci natychmiastowej zgrupowany jest w przestrzeni nazw System.IO przykład 9/03