Fragment notatki:
Paradygmaty programowania 1. Atrybuty są opisowymi znacznikami, których można używać do tworzenia uzupełniających informacji na temat typów (klas), elementów i właściwości. Atrybuty używane w środowisku .NET pozwalają określić, jak należy posługiwać się obiektami podczas pracy aplikacji. [Obsolete("Zamiast PodatkiStare() wykorzystaj PodatkiNowe()")] (warning lub drugi argument true-eeror)
[System.Diagnostics.Conditional("DEBUG")] (warunkowy)
[Serializable] [XmlAttribute("Id")] [XmlElement("Tytuł")] (dla serializacji)
[Synchronization] public class MojaKlasa : ContextBoundObject
Aby stworzyć własny atrybut należy: określić zakres wykorzystania atrybutu (adresaty) oraz stworzyć klasę zawierającą implementację zachowania dla utworzonego atrybutu.
Definicja własnego atrybutu: [System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method)]
public class Programista : System.Attribute {...}
Wykorzystanie własnego atrybutu:
[Programista("Jan Kowalski", Wersja = 1.2, Dzial = "IT")]
public class MojaKlasa {...}
2. Mechanizm refleksji to proces, dzięki któremu program komputerowy może być modyfikowany w trakcie działania w sposób zależny od własnego kodu oraz od zachowania w trakcie wykonania. Refleksja pozwala w łatwy sposób zarządzać kodem tak, jakby był danymi. Używa się jej najczęściej do zmieniania standardowego zachowania już zdefiniowanych metod lub funkcji, a także do tworzenia własnych konstrukcji semantycznych modyfikujących język. Kod wykorzystujący refleksję jest mniej czytelny. (using System.Reflection)
3. Czcionka. Rodzina czcionek - znajduje się na szczycie hierarchii i reprezentuje grupę krojów pisma, które charakteryzują się zbliżonym wyglądem. Przykładem rodziny czcionek może być Tahoma. Krój pisma znajduje się poniżej rodziny czcionek w hierarchii i reprezentuje zbiór czcionek należących do tej samej rodziny i stylu, ale różniących się wielkością. Przykładem kroju pisma jest Tahoma pogrubiona. Czcionka definiuje sposób reprezentowania znaków zgodnie z właściwościami danej rodziny czcionek, wybranym stylem oraz rozmiarem. Przykładowo czcionka Tahoma zwykła 10 opisuje członka rodziny czcionek Tahoma zapisanego zwykłym stylem (bez pogrubienia i kursywy) w rozmiarze 10 punktów.
public FontFamily (string nazwa); np. FontFamily f = new FontFamily("Arial");
public FontFamily (GenericFontFamilies rodziny); np. FontFamily f = new FontFamily(GenericFontFamilies.Monospace);
public Font(FontFamily f, Float rozmiar, FontStyle styl, GraphicsUnit jednostka);
public Font(String nazwaRodziny, Float rozmiar, FontStyle styl, GraphicsUnit jednostka);
Rozmiar
(…)
… opcji, położenie ropy naftowej, dostarczanie reklam na stronach www lub odporne na uszkodzenia systemy rozproszone ” „Istnieją dowody, że programowanie funkcyjne oferuje znaczący wzrost wydajności w ważnych obszarach aplikacji, takich jak dostęp do danych, modelowanie finansowe, analiza statystyczna, uczenie maszynowe, weryfikacja oprogramowania i bioinformatyka”.
Paradygmaty jakie wspiera F#
F# wspiera programowanie funkcyjne, w którym istotne jest co program na zrobić, bez ścisłego określenia jak program powinien pracować,
wspierane jest także programowanie obiektowe, dostępne są m.in. klasy abstrakcyjne, a powstałe klasy zgodne są z modelem obiektowym dostępnym w .NET,
wspiera także techniki programowania imperatywnego, co pozwala na łatwą obsługę plików, czy obsługę sieci,
język F…
… się on składa i co można z nim zrobić (jak w programowaniu obiektowym), ale jaki jest. Dodatkowo, dla każdego obiektu definiujemy relacje jakim obiekt ten podlega. Przy pomocy obiektów opisujemy interesujący nas wycinek świata. Działanie programu prologowego przejawia się możliwością stawiania pytań związanych z uprzednio opisanym światem.
Składnia - Program w Prologu składa się z termów. Term to: stała…
…, z której pobrany został podzespół. Możliwe strefy to: MyComputer, lokalny intranet, Internet i inne
RBS
Bezpieczeństwo oparte na uprawnieniach kodu (CAS) umożliwia uzależnienie dozwolonego zestawu operacji od nazwy podzespołu, jego twórcy, oraz miejsca pochodzenia. Nie zapewnia jednak kontroli uprawnień w zależności od tego, jaki użytkownik uruchomił dany podzespół. Zapewnienie tego rodzaju zabezpieczeń należy…
…. Umieszczamy je pomiędzy nawiasami kwadratowymi i rozdzielamy przecinkiem.
Lista jest albo strukturą pustą albo strukturą z dwiema składowymi: głową i ogonem.
Pisz listę pisz([]).
pisz([X|Y]) :- print(X), nl, pisz(Y).
Czy jest listą czy_lista([]).
czy_lista([X|Y]) :- czy_lista(Y). % ?- czy_lista([1,2,3]). Permutacja permutacja([], []).
permutacja(P, [H|L]) :- permutacja(C, L), append(A,B,C), append(A, [H|B…
... zobacz całą notatkę
Komentarze użytkowników (0)