Podstawy programowania

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy programowania"

Transkrypt

1 Podstawy programowania Pojęcia bazowe 1. Programowanie Pod terminem "programowanie" będziemy rozumieć napisanie tekstu programu w specjalnym języku, tzw. języku programowania. Piszemy tekst programu w języku programowania w tym celu, żeby specjalny program-kompilator mógł przeczytać tekst i przekształcić go do postaci kodu komputerowego, który już może być wykonany przez system operacyjny komputera. Napisanie kodu bezpośrednio w kodzie komputerowym jest pracą żmudną i czasochłonną. 2. Algorytm Algorytmem nazywamy ciąg czynności do rozwiązywania określonego zadania. Czynności muszą być wykonywane kolejno; nie rozpoczynamy nowej czynności dopóty, dopóki nie jest zakończona poprzednia. Czynności algorytmu nazywamy operacjami. Złożoność każdej operacji nie ma znaczenia, ale w momencie wykonywania algorytmu każda z operacji powinna mieć jasną treść. Operacja może być algorytmem. Operacje algorytmu rozpoczynamy wykonywać na danych wejściowych, w końcu działania algorytmu otrzymujemy dane wyjściowe, każda operacja algorytmu może produkować dane pośrednie. W przypadku wielokrotnego korzystania z algorytmu dla różnych danych wejściowych i wielokrotnego produkowania odpowiednich danych wyjściowych mówimy o wejściowym i wyjściowym strumieniach danych. Opis algorytmu musi zawierać opis klasy (typu) danych wejściowych i wyjściowych. Każdy algorytm można przystosowywać tylko do swojej klasy danych. Możliwie jest stosowanie jako operacji tego samego algorytmu, do którego należy operacja. W takim przypadku mówimy o algorytmie rekurencyjnym. 3. Formy zapisu algorytmu Na zapisywanie algorytmu istnieje wiele sposobów, do których należą formy tekstowe w języku zwyczajnym lub specjalnym, formy graficzne, wyrażenia matematyczne. Dla przykładu opiszemy w formie tekstowej algorytm obliczenia największego wspólnego podzielnika (NWP) dwóch liczb całkowitych. Szkolny algorytm obliczenia największego wspólnego podzielnika (NWP) dwóch liczb całkowitych polega na rozkładaniu liczb na czynniki pierwsze. Następnie wybieramy czynniki wspólne i mnożymy je 1. Ten algorytm nigdy nie był realizowany w komputerze, ponieważ wymaga dużo więcej czasu niż inne algorytmy do obliczenia NWP. Do obliczenia największego wspólnego podzielnika (NWP) dwóch liczb całkowitych, dwóch wielomianów, jak też wspólnej miary dwóch odcinków, w komputerach stosuje się algorytm Euklidesa. 1 Leitner R., Żakowski W., 1967: Matematyka. Kurs przygotowawczy na wyższe uczelnie techniczne. Warszawa: WNT

2 Algorytm Euklidesa 2 dla liczb orzeka następująco: Krok 1. Weź liczby A i B, oznacz przez M większą, a przez N mniejszą z nich. Krok 2. Oblicz resztę R z dzielenia M na N. Krok 3. Gdy reszta R jest zerem, wówczas N jest szukanym największym wspólnym podzielnikiem i zakończ algorytm. Krok 4. Jeżeli reszta R nie jest równa zeru, wówczas w miejsce M weź N, w miejsce N weź R, po czym kontynuuj obliczanie reszty od kroku 2, tj. z dzielenia nowych wartości M i N, aż któraś z kolei reszta R będzie równa zeru. Należy przyznać, że najlepszą formą zapisu algorytmu jest forma graficzna. Diagramy czynności graficzno-tekstowego języka UML (Unified Modeling Language) w porównaniu ze schematami blokowymi (czynnościowymi) zajmują mniej miejsca. Reguły rysowania diagramów czynności ilustruje rys. 2, gdzie jest pokazany diagram czynności algorytmu Euklidesa do obliczenia największego wspólnego podzielnika dwóch liczb całkowitych. Na diagramie czynności rys. 2 kółko czarne jest początkiem algorytmu, kółko czarne w kółku - końcem algorytmu. Operacje algorytmu są wpisane wewnątrz tzw. stanów akcji. Stan akcji jest narysowany w formie podłużnej tabletki, w której krawędzie dolna i górna są równoległe, a boczne są półkolami. Rys. 2. Diagram czynności algorytmu Euklidesa Rozgałęzienie zaznacza się małym pustym rombem. Warunki rozgałęzienia zapisuje się w nawiasach kwadratowych na liniach przejść rozpoczynających się od rombu. Przykładem zapisu algorytmu w postaci formuły może służyć algorytm obliczenia funkcji wykładniczej n! na bazie wzorca: n! = n ( n 1)! dla n > 1 dla n = 0 lub 1 1, 2 Encyklopedia Powszechna PWN

3 4. Rodzaje algorytmów Algorytmy można klasyfikować według struktury. Mówimy o algorytmach liniowych, z rozgałęzieniami, z powtórzeniami, rekurencyjnych, współbieżnych. Algorytm liniowy jest prostym ciągiem operacji. W algorytmie z rozgałęzieniem jest zawsze operacja sprawdzania warunku. W algorytmie z powtórzeniem poza operacją sprawdzania warunku ma miejsce przejście na powtórzenie już wykonanej części algorytmu. Przykładem algorytmu z powtórzeniem jest algorytm pokazany na rys. 2.. Jeżeli operacją algorytmu jest ten sam algorytm, to mówimy o algorytmie rekurencyjnym. Realizacja algorytmu rekurencyjnego jest możliwa, ponieważ w przypadku algorytmu rekurencyjnego w pamięci komputera rozmieszczane są kopie kodu komputerowego odpowiadającego algorytmowi. Liczba kopii równa się głębokości rekurencji i może być bardzo duża, ale ograniczona. Jeżeli chcemy opisać ciąg współbieżnych czynności, to mówimy o specjalnym rodzaju algorytmów - algorytmach współbieżnych. Algorytm współbieżny zawiera wykonywane jednocześnie (współbieżnie) algorytmy, które od czasu do czasu współdziałają przez wspólne dane. 5. Operacje algorytmu i operacje komputerowe Algorytm realizowany w komputerze jest ciągiem operacji z zestawu operacji procesora i innych bloków komputera. W procesie przygotowywania algorytmu do realizacji w komputerze pierwotne operacje algorytmu są zamieniane na operacje z zestawu operacji komputera. Algorytm z operacjami komputera, który (algorytm) jest otrzymany w wyniku przekształcenia pierwotnego algorytmu, nazywamy interpretacją algorytmu w komputerze. Program jest interpretacją komputerową algorytmu. Oprócz przekształcenia operacji potrzebna jest interpretacja danych pierwotnych danymi komputerowymi, tj. danymi zachowywanymi w uporządkowanych obszarach pamięci komputera. Algorytm z operacjami procesora jest kodem komputerowym. Zapisywanie algorytmu bezpośrednio w kodzie komputerowym jest pracochłonne i lepiej korzystać z pewnego systemu programowania, który pomaga wyprodukować kod komputerowy. 6. Dane Daną nazywamy istotę, która zachowuje informację. Dane wprowadzane do komputera mogą być liczbami, znakami, wyrazami, rysunkami lub mieć inne postacie. Informacją jest coś, co daje możliwość zmniejszenia nieokreśloności pewnej wielkości losowej. Jednostką informacji jest bit. Jeden bit jako jednostka informacji zmniejsza do zera nieokreśloność dwójkowej wielkości losowej. Innymi słowami jeden bit informacji wystarczy do wyboru między dwoma równego prawdopodobieństwa wartościami wielkości losowej. Konkretna wartość 1 lub 0 jednej dwójkowej cyfry w dwójkowej postaci liczby jest wykazem niewidocznej jednostki informacji (bitu). Z powodu tego dwójkowa cyfra często jest nazywana bitem, co formalnie nie jest poprawne. Bajtem nazywamy 8 cyfr dwójkowych. Jasne, że bajt przechowuje 8 bitów informacji.

4 7. Typy danych Poprawne i szybkie programowanie nie jest możliwe bez dobrej znajomości programowych typów danych wybranego języka programowania. Programowym typem danych nazywamy fragment tekstu programu, informujący kompilator o właściwościach obiektu programowego. Wyznaczając w programie typ danych pewnego obiektu informujemy kompilator o rozmiarze miejsca wymaganego do umieszczenia obiektu w pamięci oraz o ograniczeniach w operacjach z nim. Nazwa typu danych ma postać słowa kluczowego lub złożonej konstrukcji syntaktycznej języka programowania. Typy danych można podzielić na dwie grupy: - typy podstawowe (inne nazwy: typy standardowe, typy proste, typy zwykłe), - typy pochodne (inne nazwy: typy niestandardowe, typy strukturalne). Typem pochodnym nazywamy typ, który jest złożeniem innych typów. Liczba typów danych w jednym programie jest nieograniczona i nie tylko dla typów pochodnych, lecz również dla typów podstawowych, dlatego że prawie każdy język programowania daje możliwość definiowania przez programistę własnych typów danych. W językach C++, C# (czytaj C szarp lub Cis ) poprzez funkcję sizeof(), a w języku Object Pascal poprzez funkcję SizeOf(), można uzyskać informację o rozmiarze pamięci (liczbę bajtów) przydzielaną przez kompilator do rozmieszczenia danych. Do typów podstawowych zaliczamy typ liczbowy, znakowy, logiczny, okrojony. Za pomocą typów podstawowych można deklarować zmienne, stałe i tablice. W przypadku deklaracji stałych kompilator może sam wybierać odpowiedni typ danych. Do deklarowania typów pochodnych w językach programowania wykorzystuje się specjalne konstrukcje syntaktyczne, z których najważniejszymi są tablice, w tym tablice dynamiczne, oraz struktury, unie, klasy, interfejsy. Projektowanie programów 1. Wytwarzanie programu Aby stworzyć program w języku typu kompilacyjnego należy: 1) napisać tekst w języku programowania według ścisłych reguł, 2) wykonać kompilację tekstu do postaci pliku obiektowego za pomocą programu - kompilatora, 3) konsolidować plik obiektowy lub grupę plików obiektowych do postaci pliku wykonywalnego za pomocą programu - konsolidatora. W graficznych środowiskach Borland C++ Builder, Delphi 3 oraz Microsoft Visual Studio program - kompilator i program - konsolidator mogą być połączone wewnątrz systemu programowania. System programowania może od razu produkować plik wykonywalny z rozszerzeniem exe. Oprócz pliku wykonywalnego system programowania może produkować dodatkowe pliki: plik biblioteki importu z funkcjami programu (plik z rozszerzeniem lib ), plik dla wykrywacza usterek (ang. debugger) z informacją o nazwach i typach zmiennych i funkcji (plik z rozszerzeniem tds ). 3 Obecnie środowiska RAD C++Builder oraz Delphi przejęła firma Embarcadero Technologies

5 Żeby stworzyć i wywołać program w języku typu interpretacyjnego należy: 1) napisać tekst w języku programowania według ścisłych reguł, 2) wykonać kompilację tekstu za pomocą programu - kompilatora do postaci pliku interpretacyjnego ("pliku klasowego" w języku Java), 3) interpretować plik interpretacyjny razem z plikami bibliotecznymi za pomocą programu - interpretatora. W pierwszych językach interpretacyjnych (np. w pierwszych BASIC'ach) tekst programu był interpretowany "od razu" linia po linii bez etapu kompilacji (etapu 2). 2. Metody programowania Przy napisaniu programu można korzystać z jednej z trzech metod: metody uściśleń (zstępującej) nazywaną też metodą od ogółu do szczegółu, według której najpierw rozpatrujemy algorytm jako ciąg wielkich operacji do rozwiązywania zagadnienia i piszemy program jako ciąg wywołań podprogramów, a późnej piszemy podprogramy odpowiadające każdej z operacji algorytmu, metody wstępującej (rozszerzającej) nazywanej też metodą od szczegółu do ogółu, według której najpierw programujemy niewielkie operacje opisujące małe grupy czynności do rozwiązywania zagadnienia, a późnej dodajemy łączące fragmenty, metody mieszanej (metody kolejnych ulepszeń), według której programujemy na zmianę tak wielkie, jak i niewielkie operacje. Trudno powiedzieć, jaka metoda jest lepsza. 3. Programowanie zorientowane obiektowo W ostatnich latach aktywnie rozwijało się tzw. programowanie zorientowane obiektowo. Programowanie zorientowane obiektowo to napisanie programu z taką strukturą, w której zmienne i funkcje należące do jednego obiektu, koncentrują się w jednym miejscu programu w postaci językowych konstrukcji, zwanych zwykłe klasami. Skoncentrowanie zmiennych i funkcji daje możliwość programiście budować obiekty programowe jako odpowiedniki obiektów z przestrzeni przedmiotowej, a to pozwala na lepsze rozumienie współdziałania obiektów programu. Klasy programu opisują strukturę i zachowanie obiektów programu. Obiekt programu jest interpretowany jako egzemplarz klasy. Obiekt, o którym często się mówi w programowaniu zorientowanym obiektowo, jest czymś, co ma określone granice, stan charakteryzujący jego jednoznaczne i widoczne własne zachowanie w formie pewnego ciągu stanów. Programowanie zorientowane obiektowo wywarło wielki wpływ na metodologie procesu projektowania. Pojawiło się projektowanie zorientowane obiektowo jako projektowanie, w którego trakcie jest budowana obiektowa dekompozycja przestrzeni przedmiotowej, a stworzona struktura nie zmienia się w procesie projektowania. Przez projektowanie pewnego systemu technicznego będziemy rozumieć przekształcenie pierwotnego opisu systemu w zadaniu technicznym na jego opis końcowy w postaci dokumentacji technicznej (tj. dokumentacji, na której podstawie można stworzyć system) poprzez opisy pośrednie, wśród których może się znajdować projekt wstępny, projekt szkicowy, projekt techniczny itp. Pośród języków zorientowanych obiektowo najlepsze możliwości opracowania szybkich i złożonych aplikacji ma język C++.

6 Źródłem zalet programowania zorientowanego obiektowo jest zwiększenie strukturalności programu. Korzystanie z klas oraz nierzadko z hierarchii klas, nieuchronnie doprowadzi do zaistnienia w programie strukturalnych komponentów (modułów itp.). Zwiększenie strukturalności pomaga programiście lepiej rozumieć swój program, a to zmniejsza liczbę błędów i skraca czas projektowania. Ważną zaletą programowania zorientowanego obiektowo jest to, że klasy można wykorzystać ponownie w innych projektach, co też wpływa pozytywne na czas projektowania. Autonomiczność klasy doprowadzi do tego, że w przypadku modernizacji programu, aby na przykład zwiększyć szybkość działania, nierzadko można ograniczać się do miejscowej korekty kluczowych metod (podprogramów) klasy i uniknąć ogólnych zmian niebezpiecznych dla projektu. W literaturze o programowaniu zorientowanym obiektowo rzadko pisze się o jego wadach. Programowanie zorientowane obiektowo ma jednak wady i w niektórych przypadkach mogą one wykluczyć zastosowanie programowania zorientowanego obiektowo. Główną wadą programowania zorientowanego obiektowo jest zmniejszenie szybkości programu. Szybkość zmniejsza się z powodu trzech przyczyn: w programie zorientowanym obiektowo występuje więcej wywołań podprogramów niż w równoważnym mu programie bez klas ; w przypadku dziedziczenia klas adres podprogramu może zależeć lokalnie od nazwy klasy. Adres podprogramu znany jest wówczas tylko przy wywołaniu programu, a to pociąga dodatkowe nakłady czasu dla formowania adresu podprogramu; przy programowaniu zorientowanym obiektowo każda klasa zapisuje się z reguły w odrębnym pliku, a typowy konsolidator umieszcza kod odpowiadający każdemu plikowi w odrębnym segmencie pamięci. Wobec czego w przypadku zwykłego stronicowania pamięci komputera przy między klasowych wywołaniach podprogramów potrzebne są dodatkowe nakłady czasu do przełączenia w procesorze rejestru segmentów. Należy zaznaczyć, że języki zorientowane obiektowo mają konstrukcje składniowe zezwalające programować nieobiektowo tj. bez klas. Języki programowania 1. Elementy języka programowania Język programowania jest opisywany dwoma gramatykami: leksykalną (ang. lexical grammar) i syntaktyczną (ang. syntactic grammar). Gramatyka leksykalna (ang. lexical grammar) opisuje jak znaki języka są łączone w elementy leksykalne - leksemy (ang. form tokens). Leksemami są słowa kluczowe, symbole operatorów, separatory, identyfikatory itd. Gramatyka syntaktyczna (ang. syntactic grammar) opisuje jak leksemy (ang. form tokens) mogą być łączone w programach. Leksemy są połączone w kategorie składniowe. Opis języka zawiera nie tylko listy standardowych kategorii składniowych, ale i reguły tworzenia kategorii składniowych, które definiuje programista. Zdania języka programowania zbudowane są z leksem i kategorii składniowych połączonych według reguł języka. Słowa kluczowe (symboli terminalne) są zawsze wypisane w opisie języka. Przykłady słów kluczowych: for, define, begin, end. Symbole operatorów w

7 większości są pobrane z matematyki, na przykład +, -, *. Separatory służą do rozdzielenia kategorii składniowych. Do separatorów należą: odstęp (spacja), przecinek, średnik itd. 2. Meta - język Do opisania każdego języka jest potrzebny meta - język. Meta - język jest nad językiem, ponieważ zasadniczo jest niemożliwe opisać kategorie języka korzystając tylko z samego języka. Często język programowania jest opisywany w języku naturalnym. W standardach z opisem języka programowania na początku standardu definiuje się meta - język. Jako meta - język standardu często wykorzystywana jest zmodyfikowana notacja Backusa - Naura (MBNF) oraz diagramy syntaktyczne Zmodyfikowana notacja Backusa - Naura Zmodyfikowana notacja Backusa - Naura jest zestawem reguł językowych w postaci: Nazwa_definiowanej_kategorii_składniowej = Meta-wyrażenie W niezmodyfikowanej notacji Backusa - Naura zamiast znaku "=" jest wykorzystana konstrukcja "::=". Obydwa warianty znaków należy czytać jako "to jest". W prawej części reguły w meta-wyrażeniu są wykorzystywane słowa kluczowe, wcześniej zdefiniowane kategorie składniowe i następujące operatory: konkatenacja, alternatywa, powtórzenie, opcja. Operatorowi konkatenacji nie odpowiada specjalny symbol. Konkatenacja jest realizowana za pomocą bezpośredniego zapisu znak za znakiem. Przykład definicji kategorii Ułamek_dziesiętny za pomocą operatora konkatenacji: Ułamek_dziesiętny =.Liczba_dziesiętna_całkowita_bez_znaku W przykładzie w meta-wyrażeniu widzimy znak." (kropka) i kategorię składniową Liczba_dziesiętna_całkowita_bez_znaku. W celu rozdzielenia kategorii składniowych meta-wyrażenie może zawierać nieznaczące spacji. W niezmodyfikowanej notacji Backusa - Naura kategorii składniowe są stosowane nawiasy ze znaków "<" i ">", na przykład: <Ułamek_dziesiętny> ::=.<Liczba_dziesiętna_całkowita_bez_znaku> Operator alternatywy jest zaznaczany symbolem i ma znaczenie lub wariant zapisany za symbolem. Przykład definicji kategorii Cyfra_dziesiętna za pomocą symbolu alternatywy i słów kluczowych 0, 1,..., 9 : Cyfra_dziesiętna =

8 Operator powtórzenia jest zaznaczany nawiasami klamrowymi. Zawartość nawiasów może występować w kategorii dowolną ilość razy, w tym zero razy, tj. w ogóle nie wystąpić. Przykład definicji kategorii Liczba_dziesiętna_całkowita_bez_znaku za pomocą operatora powtórzenia i kategorii Cyfra_dziesiętna : Liczba_dziesiętna_całkowita_bez_znaku = Cyfra_dziesiętna{Cyfra_dziesiętna} Operator opcji jest zaznaczany nawiasami kwadratowymi. Zawartość nawiasów może nie występować w kategorii. Przykład definicji kategorii Liczba_dziesiętna_całkowita za pomocą operatora opcji i kategorii Liczba_dziesiętna_calkowita_bez_znaku : Liczba_dziesiętna_całkowita = [+ -] Liczba_dziesiętna_calkowita_bez_znaku Definicja kategorii może być rekurencyjną. Przykład: Nazwa = Litera Nazwa Litera Nazwa Liczba Przedstawiona rekurencyjna definicja kategorii Nazwa wymusza, że nazwa może rozpoczynać się tylko od litery Diagramy syntaktyczne Diagramy syntaktyczne są graficzną formą dokładnego opisu języka programowania. Na diagramach syntaktycznych lepiej widać powtórzenia kategorii lub warianty budowanych kategorii. Każdy diagram ma nazwę definiowanej kategorii składniowej. Żeby przeczytać diagram syntaktyczny trzeba przechodzić w wyobraźni wzdłuż linii strumieniowych z lewej strony diagramu na prawu stronę. Trzeba wybierać wszystkie z możliwych wariantów przechodzenia. Leksemy (symbole terminalne) zapisują się w kółkach, a wcześniej zdefiniowane kategorie składniowe - w prostokątach. Na przykład definicja kategorii Cyfra_dziesiętna przez diagram syntaktyczny wygląda następująco: Przykład definicji kategorii Liczba_dziesiętna_całkowita_bez_znaku : Przykład definicji kategorii Liczba_dziesiętna_całkowita :

9 Przykład definicji kategorii Ułamek_dziesiętny : Przykład definicji kategorii Nazwa Należy zwrócić uwagę, że tym razem definicja kategorii Nazwa jest definicją bez rekurencji (bez jawnej rekurencji). 3. Przegląd języków programowania zorientowanego obiektowo 3.1. Język C++ Język C++ 4 stworzony przez Bjarna Stroustrupa jest często nazywany C z klasami, ponieważ w warstwie proceduralnej był osadzony w notacji języka C, którego zaproponowali Brian Kernigan i Denis M. Ritchie. Autor języka C++ Bjarn Stroustrup zapożyczył z języka Simula 67 koncepcję klasy. Analiza języka C++ ujawnia również wpływ na ten język języka Algol 68. Istnieją liczne kompilatory języka C++ znanych firm Borland, Microsoft, Watcom. Rozszerzone wersje języka C++ są włączone w szeroko znane systemy oprogramowania (środowiska) Borland C++ Builder oraz Visual C++ (część Visual Studio firmy Microsoft). Język C++ jest standaryzowany od 1994 komisją ISO/ANSI, standard z ostateczną korektą - standard ANSI roku. Język C++ jest najszerzej używanym językiem. Język C++ wywarł wielki wpływ na inne języki Język Java Język Java 5 jest językiem niezależnym od platformy i przystosowanym do zdalnego sterowania w Internecie. Kompilator języka Java produkuje tak zwany plik klasowy (ang. class file). Plik klasowy zawiera kod bajtowy Javy (ang. byte code) - instrukcje tak zwanej wirtualnej maszyny Javy (Java Virtual Machine). Wirtualna maszyna Javy jest aplikacją do implementacji na danym komputerze wyprodukowanego przez kompilator pliku klasowego i dołączonych bibliotek. Wirtualna maszyna i kompilator tworzą interpretator języka Java. Za pomocą języka Javy można stworzyć aplikację autonomiczną lub tzw. aplet (ang. applet). Samodzielne programy w języku Java są nazywane aplikacjami, a programy, które są wykonywane przeglądarkami internetowymi - apletami. Aplet jest pobierany na żądanie, podobnie jak bitmapa, plik dźwiękowy, itp. Istniejące przeglądar- 4 Stroustrup B.,1994: The Design and Evolution of C++. Addision Wesley. Kisilewicz J., 2002: Język C++: programowanie obiektowe. Wrocław: Oficyna Wydawnicza Politechniki Wrocławskiej. 5 Morgan M., 1999: Poznaj język JAVA 1.2. Warszawa: Wydawnictwo MIKOM

10 ki internetowe mają wbudowane interpretatory apletów języka Java i mogą wykonywać aplety Javy. Język Java pochodzi od języka C++. Język Java ma w porównaniu z C++ dużo mniejsze możliwości. W języku Java nie ma jawnych wskaźników, tylko referencje (odwołania). Brak jawnych wskaźników wyklucza możliwość programowego czyszczenia sterty pamięci z niepotrzebnych obiektów dynamicznych. Dla rozwiązania problemu z czyszczeniem wirtualna maszyna Javy ma moduł śmieciarza, który od czasu do czasu czyści pamięć Język Object Pascal Popularny język programowania Pascal powstał w 1971 roku. Autor języka Niklaus Wirth szeroko znany ze swoich publikacji zorientował Pascal na strukturalne programowanie metodą z góry na dół. Język Pascal zmieniał się wiele razy. W końcu lat siedemdziesiątych firma Apple zbudowała język Object Pascal, w którym zjawiły się pierwsze konstrukcje obiektowe. Firma Borland twórczo przerobiła język Object Pascal i w 1983 roku zbudowała system programowania (środowisko) Turbo Pascal, który zawiera oprócz kompilatora redaktor tekstu i narzędzie wykrywania usterek (debugowania). W 1989 roku pojawiła się wersja Turbo Pascal 5.5, w której język Object Pascal zawiera konstrukcje składniowe potrzebne do programowania zorientowanego obiektowo. Znacznym krokiem w rozwoju programowania stało się ukazanie środowiska programowego Delphi 6 w języku Object Pascal z rozwiniętą biblioteką klas graficznych obiektów Język Visual Basic Język Visual Basic 7 powstał w firmie Microsoft w 1991 roku. Słowo Basic w nazwie języka przypomina o języku Basic (Beginners All - Purpose Symbolic Instruction Code), który ma zbiór słów kluczowych jasnych dla szerokiego grona osób. Firma Microsoft prawie, co rok wypuszczała na rynek następne środowiska Visual Basic z nową wersją języka. Od pierwszej wersji samo środowisko Visual Basic było oprogramowane obiektowo, ale programista mógł tylko brać obiekty z wbudowanej biblioteki graficznych obiektów lub podłączać obiekty ActiveX. Dla zbudowania obiektów według technologii ActiveX trzeba było kupić dodatkowy program. Od wersji 5.0 Visual Basic można uważać za język zorientowany obiektowo. Uwieńczeniem rozwoju języka Visual Basic stało się najnowsze środowisko Visual Basic.NET, w którym język jest gęsto przeplatany z biblioteką klas i elementami środowiska. Program w języku Visual Basic.NET można wywołać tylko za pomocą platformy.net Framework firmy Microsoft. 6 Kwasowiec W., 2002: Wprowadzenie do Object Pascal i Delphi. Warszawa: Wydawnictwo MIKOM 7 Halvorson M. Microsoft Visual Basic Professional 6.0 krok po kroku. Wydawnictwo RM Sp. z o.o., Warszawa 1998

Podstawy programowania

Podstawy programowania Podstawy programowania Pojęcia bazowe 1. Programowanie Pod terminem "programowanie" będziemy rozumieć napisanie tekstu programu w specjalnym języku, tzw. języku programowania. Piszemy tekst programu w

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Pojęcia bazowe 1. Programowanie Pod terminem "programowanie" będziemy rozumieć napisanie tekstu programu w specjalnym języku, tzw. języku programowania. Piszemy tekst programu w

Bardziej szczegółowo

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Prorektor ds. dydaktyki i wychowania S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko wykładowcy: dr hab.,

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

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

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

Algorytmika i pseudoprogramowanie

Algorytmika i pseudoprogramowanie Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

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

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Prorektor ds. dydaktyki i wychowania S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko wykładowcy: dr hab.,

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

Bardziej szczegółowo

Wykład 9: Polimorfizm i klasy wirtualne

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

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Algorytmy od problemu do wyniku

Algorytmy od problemu do wyniku Algorytmy Etapy tworzenia programu: 1) Sformułowanie zadania analiza problemu. 2) Opracowanie algorytmu sposób rozwiązania. 3) Zapisanie algorytmu w języku programowania kodowanie programu. 4) Kompilowanie

Bardziej szczegółowo

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób

Bardziej szczegółowo

Wykład 8: klasy cz. 4

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

Bardziej szczegółowo

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

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

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

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

Bardziej szczegółowo

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)

Bardziej szczegółowo

Programowanie obiektowe - 1.

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

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

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

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych

Bardziej szczegółowo

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

KONSTRUKCJA KOMPILATORÓW

KONSTRUKCJA KOMPILATORÓW KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Metodyki i techniki programowania

Metodyki i techniki programowania Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy

Bardziej szczegółowo

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Metodyki i techniki programowania

Metodyki i techniki programowania Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy

Bardziej szczegółowo

Algorytmy i schematy blokowe

Algorytmy i schematy blokowe Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,

Bardziej szczegółowo

Metody Kompilacji Wykład 1 Wstęp

Metody Kompilacji Wykład 1 Wstęp Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,

Bardziej szczegółowo

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017 Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

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

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Techniki multimedialne

Techniki multimedialne Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako

Bardziej szczegółowo

Podstawy Programowania Obiektowego

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

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

Wstęp do informatyki- wykład 1

Wstęp do informatyki- wykład 1 MATEMATYKA 1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Bardziej szczegółowo

2.8. Algorytmy, schematy, programy

2.8. Algorytmy, schematy, programy https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Zadanie analizy leksykalnej

Zadanie analizy leksykalnej Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

ForPascal Interpreter języka Pascal

ForPascal Interpreter języka Pascal Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 2

Algorytmy i struktury danych. wykład 2 Plan wykładu: Pojęcie algorytmu. Projektowanie wstępujące i zstępujące. Rekurencja. Pojęcie algorytmu Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy

Bardziej szczegółowo

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Informatyka 2 Nazwa modułu w języku angielskim Computer science 2 Obowiązuje

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Programowanie obiektowe W1 Wprowadzenie Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Ogólna charakterystyka języka C++ C++ jest obiektowym językiem programowania,

Bardziej szczegółowo

Autor: dr inż. Katarzyna Rudnik

Autor: dr inż. Katarzyna Rudnik Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe

Bardziej szczegółowo

Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy.

Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy. Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy. Niniejsza publikacja, ani żadna jej część, nie może być kopiowana, ani

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo