Paradygmaty programowania
|
|
- Urszula Karpińska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Paradygmaty programowania Typy, typy abstrakcyjne Cezary Bolek Katedra Informatyki UŁ Czym jest typ? Typ to pewien ustalony zbiór wartości (w domyśle: które mogą być przyjmowane przez zmienne) W praktyce z kaŝdym typem związany jest zbiór operacji, które moŝna wykonywać na wartościach z tego typu Dozwolone operacje to wszystkie operatory (w szerokim rozumieniu, czyli równieŝ podprogramy, podstawienia itp.), których dziedziną jest ów typ lub typ z nim zgodny (tu zgodność moŝna rozumieć jako zawieranie). Przykładowo, niemal w kaŝdym języku występuje podstawowy typ całkowity (int, integer). Jest to skończony podzbiór zbioru liczb całkowitych, na ogół odpowiadający zakresowi liczb, jakie moŝna przechowywać w jednym słowie danego komputera. Dozwolone operacje to np. dodawanie, odejmowanie, mnoŝenie, dzielenie. Paradygmaty programowania Cezary Bolek 2 Tworzenie nowych typów Typ pierwotny to taki, którego w danym języku nie da się zdefiniować za pomocą innych typów. Większość języków posiada pewien zestaw typów pierwotnych, np. char, int, float. Z typów pierwotnych moŝna tworzyć typy złoŝone, np. rekordy, tablice. MoŜna tworzyć typy wyliczeniowe, czyli listy stałych. Ich waŝną cechą jest to, Ŝe definiując typ jednocześnie określamy liniowy porządek na nim. Jest wreszcie mechanizm tworzenia podtypów i typów pochodnych. PowyŜsze mechanizmy to klasyka języków imperatywnych zapoczątkowana przez Algol. Paradygmaty programowania Cezary Bolek 3 1
2 Po co są typy? Na poziomie maszynowym wszelkie dane zapisane są jako układy bitów, niezaleŝnie od tego, co reprezentują. Typy są sposobem na nadanie znaczenia tym anonimowym układom bitów. Dzięki temu zyskuje się moŝliwość wykrywania wielu powszechnych błędów (przez sprawdzanie zgodności typów). Dodatkową korzyścią moŝe być optymalizacja kodu przez kompilator, który np. zna zakresy liczb i moŝe wybrać bardziej efektywną reprezentację. Typy abstrakcyjne są sposobem na modularyzację programów. Paradygmaty programowania Cezary Bolek 4 Abstrakcyjne typy danych Typ abstrakcyjny to konstrukcja języka programowania, w której definiuje się typ oraz operacje na nim w taki sposób, Ŝe inne byty w programie nie mogą manipulować danymi inaczej niŝ za pomocą zdefiniowanych operacji. Istotą rzeczy jest tu oddzielenie części prywatnej typu (czyli szczegółów reprezentacji danych i implementacji poszczególnych operacji) od części publicznej (tego, co moŝna wykorzystywać w innych miejscach programu). Ta koncepcja stała się podstawą rozwoju programowania obiektowego: instancje abstrakcyjnych typów danych (czyli konkretne wartości z typów, zwane obiektami) moŝna postrzegać jako samodzielne byty, które współdziałają poprzez wykonywanie udostępnianych sobie operacji. Paradygmaty programowania Cezary Bolek 5 Typy abstrakcyjne - przykłady Wbudowane w języki programowania typy pierwotne moŝna uznać za abstrakcyjne: nie ma dostępu do reprezentacji wewnętrznej, więc moŝna posługiwać się jedynie tym, co dostarcza język. Zdefiniowany przez programistę w Pascalu typ rekordowy i kilka procedur na nim działających nie stanowi abstrakcyjnego typu danych. Zadeklarowanie rekordu tego typu, pozwala działać bezpośrednio na tym rekordzie z pominięciem oficjalnych procedur. Sztandarowy przykład to klasa np. z Javy lub C++. Dane schowane w części prywatnej klasy nie są dostępne na zewnątrz, stąd nie da się wykonywać Ŝadnych operacji bezpośrednio. Paradygmaty programowania Cezary Bolek 6 2
3 Pierwotne typy danych Są to na ogół typy odzwierciedlające cechy sprzętu. Podstawowy pierwotny typ całkowity (int, integer) odpowiada zazwyczaj takiemu zakresowi liczb, jaki mieści się w jednym słowie maszyny. Podstawowy typ całkowity miewa warianty róŝniące się rozmiarem (byte, short, long) i dopuszczaniem znaku, tzn. liczb ujemnych (signed/unsigned). Pierwotne typy zmiennopozycyjne (float, double) to obecnie prawie zawsze typy obsługiwane sprzętowo, zgodne ze standardem IEEE 754. Pierwotne typy znakowe (char, character) przez długie lata wykorzystywały kodowanie ASCII; obecnie coraz częściej uŝywany jest Unicode. Paradygmaty programowania Cezary Bolek 7 Pierwotne typy danych Pierwotny typ logiczny (boolean) moŝe być kodowany za pomocą pojedynczych bitów (co jest oszczędne pamięciowo, ale wolniejsze w dostępie) lub całych bajtów. Występują równieŝ pierwotne typy stałopozycyjne (zwykle zwane decimal), czyli liczby z ustaloną w deklaracji liczbą cyfr i liczbą miejsc po przecinku. Typy takie dobrze nadają się do obliczeń finansowych, pozwalając uniknąć niektórych problemów z zaokrągleniami charakterystycznych dla typów zmiennopozycyjnych. Inne zastosowanie to obliczenia na urządzeniach pozbawionych sprzętowej obsługi liczb zmiennopozycyjnych, np. przenośne urządzenia do gier. Paradygmaty programowania Cezary Bolek 8 Aspekty implementacyjne dla róŝnych typów Paradygmaty programowania Cezary Bolek 9 3
4 Typy napisowe Typ napisowy moŝe być typem pierwotnym np. w Javie (klasa String) W wielu językach, np. w C, napisy są szczególnym rodzajem tablic (a więc nie są typem pierwotnym). Są róŝne moŝliwości obsługi napisów o zmiennej długości Napisy statyczne, czyli po zadeklarowaniu nie moŝna zmienić długości napisu, np. obiekty z klasy String w Javie. Napisy dynamiczne o długości ograniczonej statycznie. Deklarujemy napis z górnym ograniczeniem na długość, np. tablica znakowa w C. Napisy w pełni dynamiczne, czyli długość moŝe zmieniać się bez ograniczeń, np. w Perlu. Ada pozwala stosować wszystkie trzy rodzaje napisów. Paradygmaty programowania Cezary Bolek 10 Typy napisowe Sposób implementacji napisów dynamicznych istotnie wpływa na ich zachowanie Reprezentacja taka jak w języku C (kolejne znaki zapisane w tablicy, ze znakiem o kodzie zero na końcu) jest prosta, ale ma powaŝne wady: Ŝeby poznać długość napisu, trzeba przejrzeć go od początku do końca. Inny typowy sposób to pamiętanie osobno bieŝącej długości napisu. Napisy w pełni dynamiczne wymagają alokowania pamięci w miarę potrzeb, co jest kosztowne. Paradygmaty programowania Cezary Bolek 11 Tablice zwykłe Tablica to zestaw elementów takiego samego typu, gdzie dostęp do poszczególnych elementów jest poprzez indeksowanie. Wymaga to dynamicznego wyliczania adresu elementu (chyba Ŝe indeks jest stałą znaną w czasie kompilacji). Paradygmaty programowania Cezary Bolek 12 4
5 Tablice - problemy implementacyjne Kiedy i skąd alokowana jest pamięć dla tablicy? Generalnie tak jak dla zwykłych zmiennych, choć języki obiektowe skłaniają się do alokowania tablic dynamicznie, ze sterty (np. Java). Jakiego typu mogą być indeksy? W najpowszechniejszym przypadku są to podtypy typu (zakresu) całkowitego, ale niektóre języki dopuszczają wszelkie typy porządkowe, czyli dające się odwzorować na zakres liczb całkowitych: typ znakowy, typ logiczny, typy wyliczeniowe. Czy indeksy są sprawdzane w czasie wykonania programu? Ada sprawdza indeksy bardzo pieczołowicie, C wogóle Paradygmaty programowania Cezary Bolek 13 Tablice - problemy implementacyjne Kiedy wiązany jest zakres (typ) indeksów? Jeśli tablica alokowana jest statycznie, to zakres indeksów oczywiście musi teŝ być znany statycznie, np. globalna tablica w C. Zakres indeksów moŝe być wiązany statycznie, mimo Ŝe sama tablica jest alokowana dynamicznie, np. w Pascalu. I zakres, i pamięć mogą być wiązane dynamicznie, czyli wymiar tablicy moŝe być zadany za pomocą wyraŝenia wyliczanego dopiero w chwili alokacji tablicy. PowyŜsze podejścia traktują o tablicach, których rozmiar jest ustalony w chwili alokacji. Istnieją takŝe tablice w pełni dynamiczne, które mogą rosnąć i kurczyć się w okresie swojego Ŝycia - np. w Perlu. Paradygmaty programowania Cezary Bolek 14 Tablice - problemy implementacyjne Czy i jak moŝna inicjować tablice? Czy dopuszczamy tablice wielowymiarowe? Czy dopuszczalne jest operowanie na wycinkach tablic? Wycinek oznacza tu spójny fragment o rozmiarze mniejszym niŝ rozmiar pierwotnej tablicy. Szczególnie interesujące są wycinki tablic wielowymiarowych; moŝna wtedy wycinać np. dwuwymiarowy fragment tablicy trójwymiarowej. Czy dopuszczalne są operacje indukowane z operacji na elementach? W pewnych sytuacjach takie operacje byłyby naturalne, np. dodawanie macierzy. Tego typu operacje oferuje Fortran. Paradygmaty programowania Cezary Bolek 15 5
6 Dostęp do elementów tablicy Tłumacząc instrukcje zawierające odwołania do elementów tablicy, kompilator generuje kod wyliczający adres elementów. Dla tablic jednowymiarowych adres elementu T[i]: (adres pierwszego elementu) + (i indeks pierwszego elementu)*(rozmiar elementu) Tablice wielowymiarowe przechowywane są tak, jakby to były tablice tablic jednowymiarowych, w dwóch moŝliwych wariantach: wierszami lub kolumnami. Przy ułoŝeniu tablicy dwuwymiarowej wierszami daje to adres elementu T[i, j] równy: (adres elementu T[0, 0]) + (i*n + j)*(rozmiar elementu) gdzie n jest liczbą elementów w wierszu. Paradygmaty programowania Cezary Bolek 16 Tablice asocjacyjne Tablica asocjacyjna to nieuporządkowany zestaw elementów identyfikowanych za pomocą kluczy. Istotą rzeczy jest to, Ŝe klucze mogą pochodzić z obszernego zbioru moŝliwych wartości. Nie ma zatem prostego odwzorowania kluczy na adresy elementów tablicy. Tablice asocjacyjne są uŝyteczne tam, gdzie potrzebny jest swobodny (nieuporządkowany) dostęp do elementów. Typowy przykład tablic asocjacyjnych pojawia się w Perlu, np. %wzrost = ( Jacek => 177, Joanna => 166, Jerzy => 199); $wzrost{ Józefina } = 188; delete $wzrost{ Jerzy }; if (exists $wzrost{ Joanna })... Paradygmaty programowania Cezary Bolek 17 Rekordy Rekord to zestaw elementów dowolnych typów. Elementy rekordu zwane są polami. Większość języków stosuje zapis z kropką na oznaczenie dostępu do pól rekordu. Rekordy przechowywane są w pamięci w kolejnych komórkach, choć architektura sprzętu moŝe narzucać wymóg umieszczania niektórych pól pod adresami będącymi wielokrotnością np. czterech. MoŜe to powodować luki pomiędzy polami. Paradygmaty programowania Cezary Bolek 18 6
7 Unie Unia to zestaw elementów dowolnych typów, z których w dowolnym momencie przechowywany jest tylko jeden. Cel - oszczędne wykorzystanie pamięci w sytuacji, gdy elementy nigdy nie są potrzebne jednocześnie. W niektórych językach unie są deklarowane jako fragment rekordu (rekord z wariantami). Podstawowe pytanie implementacyjne to czy chcemy mieć dynamiczne sprawdzanie typu. Jeśli nie, to odpowiedzialność za uŝycie niewłaściwej wartości z unii spada na programistę (C, C++)/ Jeśli typ ma być sprawdzany, to unia musi dodatkowo zawierać znacznik przechowujący informację o typie przechowywanej w danej chwili wartości (Ada i Pascal). Paradygmaty programowania Cezary Bolek 19 Typy wskaźnikowe Typ wskaźnikowy obejmuje wartości, które mogą wskazywać inne wartości w pamięci, oraz dodatkową wartość pustą, która jest inna niŝ jakikolwiek prawdziwy wskaźnik. Wartość pusta bywa oznaczana jako null lub nil. Z technicznego punktu widzenia wskaźniki są po prostu adresami komórek pamięci. RóŜnica między wskaźnikiem a adresem to dodatkowa informacja o typie wskazywanych obiektów, którą posiada kompilator (i wykorzystuje do sprawdzania zgodności typu). Motywacją do uŝywania wskaźników jest moŝliwość dynamicznego zarządzania pamięcią oraz elastyczność, jaką daje adresowanie pośrednie. Paradygmaty programowania Cezary Bolek 20 Operacje na wskaźnikach Potrzebne jest przypisanie i dereferencja wskaźnika, czyli dostęp do elementu wskazywanego przez wskaźnik. Niektóre języki mają niejawną dereferencję, np. Ada czyni tak w oczywistych przypadkach (odwołania postaci p.x). Do zarządzania pamięcią potrzebny jest mechanizm alokacji, np. new, malloc. Adresowanie pośrednie wymaga posiadania operatora pobrania adresu (wskazania) zmiennej (operator & w języku C). Arytmetyka na wskaźnikach, czyli moŝliwość swobodnego przesuwania wskaźnika, daje programiście duŝe moŝliwości, ale jest niebezpieczna: łatwo sięgnąć do nieswojej pamięci (np. w C i C++). Bez moŝliwości przesuwania wskaźnika mechanizm staje się bezpieczniejszy (Java). Paradygmaty programowania Cezary Bolek 21 7
8 Wskaźniki Problemy Wiszący wskaźnik to wskaźnik odnoszący się do zmiennej, która została juŝ zdealokowana. Ten problem znika, gdy w języku nie ma jawnej dealokacji (np. Java). Zgubiona zmienna to zmienna na stercie, do której nie mamy Ŝadnego wskaźnika. Typy referencyjne Pod tym pojęciem kryją się typy wskaźnikowe o ograniczonych moŝliwościach. W C++ typ referencyjny obejmuje stałe wskaźniki z niejawną dereferencją, na których nie są dozwolone operacje arytmetyczne. W Javie referencje odnoszą się do obiektów. MoŜna je kopiować przez przypisanie; arytmetyka nie jest dozwolona. Paradygmaty programowania Cezary Bolek 22 Implementacja niejawnej dealokacji Pierwsza metoda - liczniki odwołań. Dla kaŝdego przydzielonego bloku pamięci utrzymujemy licznik odwołań do tego bloku. Licznik aktualizujemy przy kopiowaniu wskaźników, wyjściu wskaźnika poza zakres widoczności itp. Blok, do którego nie ma odwołań, jest dealokowany. Druga metoda - zbieranie śmieci. Gdy brakuje miejsca na stercie, rozpoczyna się zbieranie śmieci. Przeglądamy stertę i wszystkie wskaźniki, zaznaczając te bloki, do których nie ma odwołań. Bloki te są następnie dealokowane. Dopuszczenie arytmetyki wskaźnikowej uniemoŝliwia stosowanie powyŝszych metod, gdyŝ nie da się wówczas stwierdzić, do których bloków są odwołania Paradygmaty programowania Cezary Bolek 23 Abstrakcyjne typy danych Abstrakcja to reprezentacja pewnego bytu, w której pominięto nieistotne w danym kontekście szczegóły. Pozwala to grupować byty według ich wspólnych cech i - zaleŝnie od potrzeby - albo zajmować się całymi grupami (czyli owymi wspólnymi cechami), albo bytami wewnątrz grupy (czyli szczegółami róŝniącymi byty w grupie). Chodzi oczywiście o to, by poradzić sobie ze złoŝonością problemów. Dwie podstawowe abstrakcje w językach programowania to: Abstrakcja procesu: Abstrakcjami procesów są podprogramy. Pozwalają wskazać (przez ich wywołanie), Ŝe pewna czynność ma być wykonana, bez wskazywania jak ma być wykonana. Szczegóły znajdują się w treści podprogramu, której wywołujący nie musi znać. Abstrakcja danych: Zamknięta całość obejmująca reprezentację pewnego typu danych wraz z podprogramami, umoŝliwiającymi działanie na tych danych. Paradygmaty programowania Cezary Bolek 24 8
9 Abstrakcyjny typ danych Jest to konstrukcja języka programowania, w której definiowany jest typ oraz operacje na nim w taki sposób, Ŝe inne byty w programie nie mogą manipulować danymi inaczej niŝ za pomocą zdefiniowanych przez nas operacji. Istotą rzeczy jest tu oddzielenie części prywatnej typu (czyli szczegółów reprezentacji danych i implementacji poszczególnych operacji) od części publicznej (tego, co moŝna wykorzystywać w innych miejscach programu). Rozdzielenie składników abstrakcyjnego typu danych na część prywatną i publiczną jest moŝliwe za pomocą zawartych w języku programowania mechanizmów sterowania dostępem. Dane w typie abstrakcyjnym zwane są właściwościami lub danymi składowymi; uŝywa się teŝ określeń pole lub po prostu zmienna Operacje zwane są metodami lub funkcjami składowymi. Paradygmaty programowania Cezary Bolek 25 Abstrakcyjny typ danych Obiekt to instancja abstrakcyjnego typu danych, czyli pojedynczy egzemplarz tego typu zaalokowany na stercie (najczęściej), na stosie lub statycznie (najrzadziej). Sam abstrakcyjny typ danych w większości języków zwany jest klasą. Paradygmaty programowania Cezary Bolek 26 Implementacja abstrakcyjnych typów danych Co powinno być w języku? Jednostka syntaktyczna mieszcząca definicję typu Sposób wyszczególnienia danych i podprogramów publicznych. Kilka podstawowych, wbudowanych operacji na obiektach z typu, np. podstawienie, sprawdzenie równości. Pewne operacje są potrzebne niemal w kaŝdym typie, są jednak zaleŝne od szczegółów tego typu. Muszą zatem być implementowane przez programistę. Są to np. konstruktory, destruktory, iteratory. Język moŝe oferować abstrakcyjne typy danych wprost (C++, C#, Java) lub moŝe mieć bardziej ogólne konstrukcje (np. Ada). Paradygmaty programowania Cezary Bolek 27 9
10 Język Ada Ada zawiera konstrukcje enkapsulacyjne (czyli konstrukcje wiąŝące mniejsze jednostki w zamkniętą całość) zwane pakietami. Pakiet składa się z dwóch części: specyfikacji i ciała. Programista moŝe udostępnić element pakietu w całości lub tylko w postaci interfejsu (czyli specyfikacji, jak uŝyć danego elementu). W pierwszym przypadku, element staje się bezpośrednio dostępny za pomocą nazwy. Nie jest wówczas typem abstrakcyjnym. W drugim przypadku, skrócona deklaracja pojawia się w publicznej części specyfikacji, a reprezentacja - części prywatnej. Paradygmaty programowania Cezary Bolek 28 Język Ada - przykład Przykład specyfikacji pakietu do obsługi stosu: package Stos is type typ_stosowy is limited private; maks_rozmiar: constant := 1000; function pusty(st: in typ_stosowy) return Boolean; procedure połóŝ(st: in out typ_stosowy; elem: in Integer); procedure zdejmij(st: in out typ_stosowy); function szczyt(st: in typ_stosowy) return Integer; private type typ_listowy is array (1..maks_rozmiar) of Integer; type typ_stosowy is record list: typ_listowy; wsk_stosu: Integer range 0..maks_rozmiar := 0; end record; end Stos; Paradygmaty programowania Cezary Bolek 29 Język C++ Język oferuje dwie konstrukcje: class i struct, róŝniące się domyślnymi regułami dostępu. Klasy języka C++ są typami. Jednostka programu, która zadeklarowała instancję klasy (obiekt), ma dostęp do publicznych bytów tej klasy, ale tylko poprzez tę instancję. KaŜda instancja klasy ma własny zestaw danych, natomiast funkcje (metody) nie są powielane lecz przechowywane wspólnie dla całej klasy. Obiekty mogą być statyczne oraz dynamiczne, alokowane na stosie (dostęp przez zwykłe zmienne) lub na stercie (dostęp przez wskaźniki). Alokacja i dealokacja na stercie są jawne; słuŝą do tego operacje new i delete. Definicja klasy moŝe zawierać konstruktor, który będzie niejawnie wywoływany przy tworzeniu obiektu z klasy. Definicja klasy moŝe teŝ zawierać destruktor, wołany przy dealokacji obiektu Paradygmaty programowania Cezary Bolek 30 10
11 Język C++ przykład Przykład klasy do obsługi stosu liczb całkowitych: class stos { private: int *baza, maks_rozmiar, wsk_stosu; public: stos() { baza = new int [1000]; maks_rozmiar = 999; wsk_stosu = -1; }; ~stos() {delete []baza;}; void poloz(int elem) {...}; void zdejmij() {...}; int szczyt() {...}; int pusty() {...}; } Paradygmaty programowania Cezary Bolek 31 Język Java W Javie wszystkie typy zdefiniowane przez uŝytkownika są klasami. Wszystkie obiekty są alokowane na stercie. Podprogramy (metody) mogą być definiowane tylko w klasach. Klasy są deklarowane i definiowana w jednej jednostce syntaktycznej. Do sterowania dostępem stosuje się oznaczenia public, private i protected przy poszczególnych definicjach. Pakiety pozwalają na modularyzację programów. W obrębie pakietu elementy klasy bez oznaczenia dostępu są widoczne dla innych klas. Nie ma destruktorów, gdyŝ Java wykonuje niejawne zbieranie śmieci. Paradygmaty programowania Cezary Bolek 32 Język Java - przykład Przykład klasy do obsługi stosu liczb całkowitych: class Stos { private int baza[]; private int maks_rozmiar, wsk_stosu; public Stos() { baza = new int[1000]; maks_rozmiar = 999; wsk_stosu = -1; }; public void poloz(int elem) {...}; public void zdejmij() {...}; public int szczyt() {...}; public boolean pusty() {...}; } Paradygmaty programowania Cezary Bolek 33 11
12 Język C# Wszystkie obiekty typów zdefiniowanych za pomocą class są alokowane na stercie; na stosie są alokowane obiekty typów zdefiniowanych za pomocą struct. C# wykonuje zbieranie śmieci, więc destruktory nie są konieczne. Mogą być jednak definiowane, jeśli programiście zaleŝy na wykonaniu jakichś czynności przed dealokacją obiektu. W C# istnieje pojęcie akcesorów ( pobieraczy i ustawiaczy ) pozwalających na ograniczony dostęp do danych prywatnych. Jest to bezpieczniejsze niŝ dostęp bezpośredni. Pobieracz to funkcja, która jest wykonywana przy odczytywaniu prywatnej zmiennej obiektu, którą programista postanowił udostępnić w taki sposób. Podobnie ustawiacz jest wywoływany przy próbie podstawienia pod zmienną. Paradygmaty programowania Cezary Bolek 34 12
zmienne stanowią abstrakcję komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np.
ZMIENNE 39 zmienne stanowią abstrakcję komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np. przydział pamięci). 40 Nazewnictwo zmiennych Dozwolone
Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Definiowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Ada-95. Dariusz Wawrzyniak
Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Typy danych, zmienne i tablice. Tomasz Borzyszkowski
Typy danych, zmienne i tablice Tomasz Borzyszkowski Silne typy Javy Java jest językiem wyposażonym w silny system typów. Wywodzi się stąd siła i bezpieczeństwo tego języka. Co to znaczy silny system typów?
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Technologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Java Podstawy. Michał Bereta
Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne
Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Wstęp do programowania obiektowego. Wykład 2
Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Java Język programowania
Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja
Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY
Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu
Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.
Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna
Algorytmy i struktury danych. wykład 1
Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
MATERIAŁY DO ZAJĘĆ II
MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych
Wstęp do programowania 2
Wstęp do programowania 2 wykład 6 typy dostępu c.d Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Przykład wykorzystania typów dostępu zob. pakiet rodzajowy listapak
Algorytmy i struktury danych
Algorytmy i struktury danych Zmienne Proste typy danych Strukturalne typy danych Witold Marańda maranda@dmcs.p.lodz.pl 1 Zmienne Liczby (i struktury danych) występują w algorytmach i programach komputerowych
DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0
Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje
Programowanie w języku C++ Podstawowe paradygmaty programowania
Programowanie w języku C++ Podstawowe paradygmaty programowania Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra
Podstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
Wskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Podstawowe części projektu w Javie
Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Technologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Wykład 1: Wskaźniki i zmienne dynamiczne
Programowanie obiektowe Wykład 1: Wskaźniki i zmienne dynamiczne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Podstawy programowania w C++ Wskaźniki 2 dr Artur Bartoszewski - Programowanie
Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:
Laboratorium nr 9 Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium: wskaźniki referencje zastosowanie wskaźników wobec tablic dynamiczny przydział pamięci,
Wykład 9: Polimorfizm i klasy wirtualne
Programowanie obiektowe Wykład 9: i klasy wirtualne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Programowanie obiektowe i metody wirtualne 2 W programowaniu obiektowym polimorfizm
Platformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Materiały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Podstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Dziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Deklaracja struktury w C++
Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski
Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:
Wskaźniki nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja
Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.
Zadanie 1. Utworzyć klasę reprezentującą liczby wymierne. Obiekty klasy powinny przechowywać licznik i mianownik rozłożone na czynniki pierwsze. Klasa powinna mieć zdefiniowane operatory czterech podstawowych
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i
Programowanie obiektowe
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
ZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE
WSKAŹNIKI KLASOWE Wskaźniki klasowe Każdy obiekt zajmuje fragment pamięci i wszystkie obiekty tego samego typu zajmują fragmenty pamięci tej samej długości początek miejsca w pamięci zajmowanego przez
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer