Programowanie. Wykład 1 - paradygmaty programowania. Janusz Szwabiński. Plan wykładu:

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

Download "Programowanie. Wykład 1 - paradygmaty programowania. Janusz Szwabiński. Plan wykładu:"

Transkrypt

1 Programowanie Wykład 1 - paradygmaty programowania Janusz Szwabiński Plan wykładu: 1. Sprawy administracyjne 2. Paradygmaty programowania 3. Paradygmaty programowania w Pythonie file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 1/15

2 Sprawy administracyjne Kontakt konsultacje (C-11, pokój 5.16): poniedziałek, czwartek, ( Plan kursu 1. Paradygmaty programowania 2. Podstawowe konstrukcje i typy zmiennych w Pythonie 3. Moduły i biblioteki (w tym do obliczeń naukowych) 4. Programowanie obiektowe 5. Graficzne interfejsy użytkownika 6. Zintegrowane środowiska programistyczne 7. Zasady dokumentowania kodu Literatura 1. Dokumentacja Pythona: ( 2. M. Pilgrim, "Dive into Python", ( 3. M. Summerfield, "Rapid GUI programming with Python and Qt" 4. D. Beazley and B. K. Jones, "Python Cookbook" Zaliczenie ocena = lab + wyk 2 Średnia X < X < X < X < X < X < 100 Ocena file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 2/15

3 Paradygmaty programowania Wzorzec programowania komputerów przedkładany w danym okresie rozwoju informatyki ponad inne lub ceniony w pewnych okolicznościach lub zastosowaniach. file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 3/15

4 Programowanie imperatywne proces wykonywania programu opisany jest jako sekwencja instrukcji zmieniających stan programu podobnie jak tryb rozkazujący w lingwistyce wyraża żądania jakichś czynności do wykonania programy imperatywne składają się z ciągu komend do wykonania przez komputer rozszerzeniem (w sensie wbudowanych funkcji) i rodzajem (w sensie paradygmatu) programowania imperatywnego jest programowanie proceduralne prawie każdy sprzęt komputerowy pracuje w sposób imperatywny kod maszynowy pisany jest w stylu imperatywnym ponieważ podstawowe założenia programowania imperatywnego są bardzo podobne lub bezpośrednio odwzorowane w sprzęcie komputerowym, większość dostępnych języków programowania jest imperatywna wspólne elementy języków imperatywnych instrukcje przypisania - wykonują pewne zadanie na zlokalizowanych w pamięci danych i odkładają tam wynik działania na potrzeby późniejszych operacji języki wysokopoziomowe umożliwiają dodatkowo wykonywanie bardziej złożonych wyrażeń składających się z operacji arytmetycznych oraz całych funkcji instrukcje pętli - umożliwiają wielokrotne wykonanie tego samego kodu "wielokrotność" może oznaczać pewną określoną z góry liczbę powtórzeń wykonywanie do czasu spełnienia pewnych warunków instrukcje warunkowe wykonują pewien blok kodu tylko wtedy, kiedy spełniony jest określony warunek języki imperatywne zezwalają na przekazanie sterowania do zupełnie innej części programu bezwarunkowy skok (goto) wywołanie podprogramu (procedury) Historia kody maszynowe pierwszych komputerów proste (prymitywne) zestawy komend łatwe w implementacji po stronie sprzętowej pisanie przy ich pomocy złożonych programów trudne FORTRAN zaprojektowany przez Johna Backusa z IBM w latach 50 poprzedniego stulecia pierwotnie przeznaczony do zapisu programów obliczeniowych usuwał niedogodności płynące z pisania bezpośrednio w kodzie maszynowym język kompilowany umożliwiający stosowanie nazywanych zmiennych, złożonych wyrażeń, procedur i wielu innych struktur typowych dla współczesnego imperatywnego języka programowania file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 4/15

5 C AREA OF A TRIANGLE - HERON'S FORMULA C INPUT - CARD READER UNIT 5, INTEGER INPUT C OUTPUT - C INTEGER VARIABLES START WITH I,J,K,L,M OR N READ(5,501) IA,IB,IC 501 FORMAT(3I5) IF(IA.EQ.0.OR. IB.EQ.0.OR. IC.EQ.0) STOP 1 S = (IA + IB + IC) / 2.0 AREA = SQRT( S * (S - IA) * (S - IB) * (S - IC) ) WRITE(6,601) IA,IB,IC,AREA 601 FORMAT(4H A=,I5,5H B=,I5,5H C=,I5,8H AREA=,F10.2, $13H SQUARE UNITS) STOP END ALGOL przełom lat 50 i 60 powstał we współpracy międzynarodowej jeszcze łatwiejsze programowanie algorytmów matematycznych de facto standard opisu algorytmów w publikacjach naukowych i podręcznikach instrukcje blokowe przekazywanie parametrów do procedur przez wartość i przez nazwę rekurencja wywoływanie procedur przez siebie tablice dynamiczne ich rozmiar mógł być ustalany w trakcie działania programu. słowa kluczowe symbole użyte jako słowa kluczowe nie mogą być użyte jako identyfikatory w programie typy danych definiowane przez użytkownika użytkownik mógł zdefiniować abstrakcyjne typy danych najlepiej pasujące do konkretnego problemu proc abs max = ([,]real a, ref real y, ref int i, k)real: comment The absolute greatest element of the matrix a, of si ze a by 2 a is transferred to y, and the subscripts of this element to i and k; comment begin real y := 0; i := a; k := 2 a; for p from a to a do for q from 2 a to 2 a do if abs a[p, q] > y then y := abs a[p, q]; i := p; k := q fi od od; y end # abs max # COBOL pierwsza wersja w 1960 język programowania stworzony i używany do tworzenia aplikacji biznesowych powstał jako rozwiązanie tymczasowe, Departament Obrony USA zmusił producentów komputerów do jego stosowania - rozpowszechniony na szeroką skalę file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 5/15

6 w ostatnich latach obserwuje się spadek znaczenia COBOLa w tworzeniu nowych aplikacji ustandaryzowany w 1968 roku od tego czasu ulepszany cztery razy (rozszerzenia dotyczyły wsparcia programowania obiektowego oraz strukturalnego) Basic Beginner's All-purpose Symbolic Instruction Code opracowany w 1964 przez Johna George'a Kemeny'ego i Thomasa E. Kurtza zainspirowany Fortranem i Algolem język programowania wysokiego poziomu założenia projektantów: łatwość użytkowania wszechstronność zastosowań interaktywność dobra komunikacja z użytkownikiem poprzez jasne komunikaty błędów istnieje ponad 200 różnych dialektów składnia zbliżona do języka naturalnego 10 PRINT "Witaj" 20 INPUT "Liczba gwiazdek do wyświetlenia: "; ile 30 PRINT "*" 40 LET ile = ile IF ile > 0 THEN GOTO 30 Pascal język opracowany przez Niklausa Wirtha w 1970 roku szczyt popularności tego języka przypadł na lata 80. i początek 90 XX wieku inspirowany językiem Algol język do tworzenia strukturalnych aplikacji program fibonacci; var i, liczba: word; a, b, c: longint; begin writeln('podaj którą liczbę z ciągu Fibonacciego chcesz zoba czyć: '); readln(liczba); a := 1; b := 1; if liczba <= 2 then writeln('wynik: ', a) else begin for i := 3 to liczba do begin c := a+b; a := b; b := c; end; writeln('wynik: ', c); end; end. file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 6/15

7 C stworzony na początku lat siedemdziesiątych XX w. przez Dennisa Ritchiego do programowania systemów operacyjnych i innych zadań niskiego poziomu w 1973 r w języku C udało się zaimplementować jądro systemu operacyjnego Unix ostatnia norma została opublikowana w 2011 #include <stdio.h> int main() { int i, n, t1 = 0, t2 = 1, nextterm; printf("enter the number of terms: "); scanf("%d", &n); printf("fibonacci Series: "); for (i = 1; i <= n; ++i) { printf("%d, ", t1); nextterm = t1 + t2; t1 = t2; t2 = nextterm; } return 0; } gwałtowny wzrost zainteresowania językami zorientowanymi obiektowo od lat 80 XX w Smalltalk-80 (1980) file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 7/15

8 Programowanie proceduralne rozszerzenie (w sensie wbudowanych funkcji) i rodzaj (w sensie paradygmatu) programowania imperatywnego paradygmat programowania zalecający dzielenie kodu na procedury, czyli fragmenty wykonujące ściśle określone operacje procedury nie powinny korzystać ze zmiennych globalnych (w miarę możliwości) procedury powinny pobierać i przekazywać wszystkie dane (czy też wskaźniki do nich) jako parametry wywołania Programowanie strukturalne podział kodu źródłowego programu na procedury i hierarchicznie ułożone bloki wykorzystywanie struktur kontrolnych w postaci instrukcji wyboru i pętli paradygmat rozwijał się w w opozycji do programowania wykorzystującego proste instrukcje warunkowe i skoki zwiększa czytelność i ułatwia analizę programów początki przypadają na lata 60. XX wieku list Edsgera Dijkstry "Goto Statement considered harmful" struktury kontrolne sekwencja wykonanie ciągu kolejnych instrukcji wybór w zależności od wartości predykatu wykonywana jest odpowiednia instrukcja (if..then..else) iteracja wykonywanie instrukcji do momentu, aż jakiś warunek przestaje być spełniony (while, repeat, for lub do..until) podprogramy pozwalają na wydzielenie pewnej grupy instrukcji i traktowania ich jako pojedynczej operacji mechanizm abstrakcji bloki sekwencje instrukcji - blok traktowany jest jak pojedyncza instrukcja przy budowie programu wyróżniane na różne sposoby, np. if...fi (Algol) lub BEGIN...END (Pascal), wcięcia (Python), nawiasy (C/C++) file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 8/15

9 Programowanie obiektowe programy definiuje się za pomocą obiektów obiekty łączą stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody) obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów komunikujących się pomiędzy sobą w celu wykonywania zadań ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów największy atut - zgodność takiego podejścia z rzeczywistością (mózg ludzki jest w naturalny sposób najlepiej przystosowany do takiego podejścia przy przetwarzaniu informacji) Podstawowe założenia abstrakcja każdy obiekt w systemie służy jako model abstrakcyjnego wykonawcy, który może wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie bez ujawniania, w jaki sposób zaimplementowano dane cechy hermetyzacja ukrywanie implementacji, enkapsulacja obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób tylko własne metody obiektu są uprawnione do zmiany jego stanu każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy pewne języki osłabiają to założenie, dopuszczając pewien poziom bezpośredniego (kontrolowanego) dostępu do wnętrzności obiektu (np. Python) polimorfizm referencje i kolekcje obiektów mogą dotyczyć obiektów różnego typu wywołanie metody dla referencji spowoduje zachowanie odpowiednie dla pełnego typu obiektu wywoływanego jeśli dzieje się to w czasie działania programu, to nazywa się to późnym wiązaniem lub wiązaniem dynamicznym dziedziczenie porządkuje i wspomaga polimorfizm i enkapsulację umożliwienia definiowanie i tworzenie specjalizowanych obiektów na podstawie bardziej ogólnych dla obiektów specjalizowanych nie trzeba redefiniować całej funkcjonalności, lecz tylko tę, której nie ma obiekt ogólniejszy Historia Simula 67 język do do zastosowań symulacyjnych stworzony przez Ole-Johana Dahla i Kristena Nygaarda z Norsk Regnesentral w Oslo Smalltalk rozwinięty w latach 70. i 80. w laboratoriach firmy Xerox (Xerox Palo Alto Research Center) zaprojektowany tak, aby połączyć dużą czytelność kodu z wszechstronną funkcjonalnością i elastycznością lata 80 XX w języki, które rozszerzono o wsparcie dla OOP C C++ Ada file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 9/15

10 Basic Lisp Pascal dodanie obiektowości do języków, które pierwotnie nie były do niej przystosowane, zrodziło szereg problemów z kompatybilnością i konserwacją kodu czysto obiektowym językom brakowało cech, z których programiści przyzwyczajeni byli korzystać podejmowano liczne próby stworzenia języków obiektowych dostarczających jednocześnie bezpiecznych elementów proceduralności: Eiffel Bertranda Meyera Java obiektowość rozprzestrzeniła się dość znacznie, jednak zwykle w systemach hybrydowych, w połączeniu z programowaniem niskopoziomowym (asembler), funkcyjnym (OCaml, niektóre dialekty Lispu), sieciowym (Java), skryptowym (Perl, Python, Ruby) systemy czysto obiektowe, jak Smalltalk, nie znalazły zbyt szerokiego zastosowania Programowanie deklaratywne rodzina paradygmatów programowania, które nie są z natury imperatywne programista opisuje warunki, jakie musi spełniać końcowe rozwiązanie (co chcemy osiągnąć) nie opisuje szczegółowej sekwencji kroków, które prowadzą do rozwiązania (jak to zrobić) programy traktowane są często jako pewne hipotezy wyrażone w logice formalnej, a wykonywanie obliczeń jako ich dowodzenie przedmiot zainteresowania naukowców, gdyż dzięki minimalizacji lub eliminacji skutków ubocznych może znacząco uprościć tworzenie programów współbieżnych warunki, jakie musi spełniać program, aby był uznany za deklaratywny (Peter Van Roy oraz Serif Haridi) niezależny wynik końcowy nie zależy od żadnego zewnętrznego stanu bezstanowy nie posiada stanu wewnętrznego, który jest zachowywany między wywołaniami deterministyczny dla takich samych argumentów wejściowych zawsze daje ten sam wynik dwa rodzaje języków deklaratywnych: opisowe opisuje wyłącznie struktury danych i spodziewany rezultat: taki język najczęściej nie jest zupełny w sensie Turinga lub osiąga zupełność w inny sposób deklaratywność służy do zwiększenia czytelności lub łatwiejszego opisu pewnych zjawisk przykłady: HTML (opis wyglądu strony internetowej), SQL (opis komunikacji z bazą danych) programowalne język, którego deklaratywny model obliczeń jest zupełny w sensie Turinga przykłady: Ocaml, XSLT, Prolog Kompletność Turinga cecha maszyny lub języka programowania, polegająca na tym, że można za jego pomocą rozwiązać identyczną klasę problemów obliczeniowych, jak na uproszczonym modelu programowalnego komputera zwanego maszyną Turinga. W praktyce oznacza to, że jeśli dany język lub maszyna potrafi wykonać lub wyrazić każdy algorytm, określany jest mianem zupełnego, przy czym nie jest wymagane, by algorytm ten realizowany był prosto, wydajnie bądź efektywnie. file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 10/15

11 Programowanie funkcyjne odmiana programowania deklaratywnego funkcje należą do wartości podstawowych nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń w czystym programowaniu funkcyjnym, raz zdefiniowana funkcja zwraca zawsze tę samą wartość dla danych wartości argumentów (jak funkcje matematyczne) Historia podstawa teoretyczna - rachunek lambda (Alonzo Church, lata 30 XX w.) Information Processing Language (IPL) pierwszy język funkcyjny opracowany przez Allena Newella, Cliffa Shawa i Herberta Simona w połowie lat 50. XX wieku dla maszyny JOHNNIAC LISP przełom dla programowania funkcyjnego opracowany przez Johna McCarthy'ego pod koniec lat pięćdziesiątych stworzony dla maszyn IBM 700/7000 wprowadził wiele cech spotykanych we współczesnych językach programowania Scheme lata 70 XX w. uproszczenie i poprawienie języka LISP ML lata 70 XX w. opracowany przez Robina Milnera na Uniwersytecie w Edynburgu dał początek kilku dialektom, w tym Objective Caml oraz Standard ML Miranda lata 70 XX w. opracowany przez Davida Turnera na Uniwersytecie w Kent dał początek językowi Haskell F# rozwijany przez firmę Microsoft przeniesienie języka Objective Caml na platformę.net Podział języków funkcyjnych języki czysto funkcyjne języki, w których nie występują zmienne ani efekty uboczne, a wartościowanie jest leniwe wejście/wyjście w takich językach musi się odbywać jakimś alternatywnym mechanizmem, np. za pomocą monad przykłady: Haskell oraz Clean języki mieszane popularniejsze niż języki czysto funkcyjne umożliwiają stosowanie zmiennych pozwalają na efekty uboczne tradycyjne wejście/wyjście mieszanie stylu funkcyjnego z imperatywnym bądź obiektowym wartościowanie przeważnie zachłanne file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 11/15

12 przykłady: Lisp z wszystkimi pochodnymi (np. Clojure, Scheme) Erlang Scala języki grupy ML (Standard ML, OCaml, F#) Nemerle (projekt polskich studentów) elementy programowania funkcyjnego: Java, Python, Ruby, Perl, JavaScript, D Wartościowanie leniwe strategia wyznaczania wartości argumentów funkcji tylko wtedy, kiedy są potrzebne (na żądanie). Wartościowanie zachłanne strategia wyznaczania wartości argumentów funkcji przed jej wywołaniem. Efekty uboczne - w programowaniu dowolny efekt wyrażenia, lub wywołania funkcji, który wykracza poza zwrócenie wartości, np. interakcja z systemem operacyjnym, lub zmiana wartości zmiennej globalnej. Pomimo nazwy wiele funkcji jest wywoływanych właśnie dla uzyskania skutku ubocznego. Monada - rodzaj konstruktora abstrakcyjnego typu danych, używanego do wyrażania zmieniających się stanów obliczeń (operacji) zamiast znanych z modelu dziedzinowego zmieniających się stanów danych. (define hello-world (lambda () (display "Hello, World!") (newline) (hello-world))) (hello-world) file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 12/15

13 Programowanie logiczne odmiana programowania deklaratywnego program podawany jest jako pewien zestaw zależności obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności umożliwia łatwy zapis wielu algorytmów programy logiczne łatwo jest wykonywać równolegle Prolog stworzony w 1971 roku przez Alaina Colmeraurera i Phillipe'a Roussela (Programmation en Logique) jeden z najpopularniejszych języków programowania logicznego powstał jako język do automatycznej analizy języków naturalnych język ogólnego zastosowania szczególnie dobrze sprawdza się w programach związanych ze sztuczną inteligencją program w Prologu składa się z faktów oraz reguł wnioskowania aby go uruchomić, należy wprowadzić odpowiednie zapytanie opiera się o rachunek predykatowy pierwszego rzędu, jednak ogranicza się tylko do klauzul Horna istnieją jednak wbudowane predykaty wyższego rzędu cat(tom) :- true.?- cat(tom). Yes?- cat(x). X = tom Paradygmaty w Pythonie imperatywny strukturalny/proceduralny funkcjonalny obiektowy Zadanie Chcemy zsumować listę liczb MyList = [1,2,3,4,5] Programowanie funkcyjne file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 13/15

14 In [2]: import functools MyList = [1,2,3,4,5] def AddIt(X,Y): return X+Y Sum = functools.reduce(addit,mylist) print(sum) 15 To samo z wykorzystaniem funkcji lambda: In [3]: import functools MyList = [1,2,3,4,5] Sum = functools.reduce(lambda x,y: x+y, MyList) print(sum) 15 Programowanie imperatywne In [4]: MyList = [1,2,3,4,5] Sum = 0 for x in MyList: Sum += x print(sum) 15 Programowanie obiektowe file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 14/15

15 In [5]: class ChangeList: def init (self,mylist): if type(mylist) is list: self.mylist = MyList else: self.mylist = [] def DoAdd(self): self.sum = sum(self.mylist) CreateSum = ChangeList([1,2,3,4,5]) CreateSum.DoAdd() print(createsum.sum) 15 Programowanie strukturalne In [6]: def DoAdd(MyList): Sum = 0 if type(mylist) is list: for x in MyList: Sum += x return Sum MyList = [1,2,3,4,5] print(doadd(mylist)) 15 In [ ]: file:///home/szwabin/dropbox/zajecia/programowanie/lectures/1.html 15/15

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

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

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

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 i paradygmaty programowania. I. Wprowadzenie

Języki i paradygmaty programowania. I. Wprowadzenie Języki i paradygmaty programowania I. Wprowadzenie O źródłach wykład został przygotowany w ogromnej części w oparciu o serwis http://wazniak.mimuw.edu.pl/ (zgodnie z licencją serwisu) inne źródła: Wikipedia:

Bardziej szczegółowo

Wykład 1 Informacje Podstawowe

Wykład 1 Informacje Podstawowe Paradygmaty i języki programowania Wykład 1 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół

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

Paradygmaty i języki programowania. Wprowadzenie. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ 1

Paradygmaty i języki programowania. Wprowadzenie. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ 1 Paradygmaty i języki programowania Wprowadzenie Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych

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

Wykład 1 Informacje Podstawowe

Wykład 1 Informacje Podstawowe Paradygmaty i języki programowania Wykład 1 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół

Bardziej szczegółowo

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Paweł Świątek Agenda 1. Sprawy organizacyjne 2. Zasady zaliczenia 3. Cele kursu 4.

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Wg. J. Bylina, B. Bylina Przegląd języków i paradygmatów programowania, UMCS, Lublin 2011 Paradygmaty programowania Paradygmat (gr. Paradeigma) - wzorzec lub przykład Def. słownikowa: przyjęty sposób widzenia

Bardziej szczegółowo

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie. Wykład 4 Algorytmy + struktury danych = programy Niklaus Wirth Algorytm = logika + sterowanie Robert Kowalski J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 80 / 277 algorytm program język

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

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne

Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty

Bardziej szczegółowo

Programowanie w języku C++ Podstawowe paradygmaty programowania

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

Bardziej szczegółowo

Języki programowania deklaratywnego

Języki programowania deklaratywnego Katedra Inżynierii Wiedzy laborki 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Języki deklaratywne - laborki Wprowadzenie

Bardziej szczegółowo

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++ Programowanie obiektowo zorientowane Mirosław Głowacki Wykład w języku C++ Literatura B. Meyer, Programowanie zorientowane obiektowo, Helion Gliwice, 2005 J. Grębosz, Symfonia C++ Standard, Oficyna Kallimach,

Bardziej szczegółowo

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003

Bardziej szczegółowo

Wykład 0 Informacje Podstawowe

Wykład 0 Informacje Podstawowe Paradygmaty Programowania Wykład 0 Informacje Podstawowe Nieliniowej, WMiI UŁ 1 Informacje Ogólne (22 luty 2013) Wykłady: piątek, 10.00-12.00, D103 Wykłady: 1 wprowadzający +10 wykładów głównych Zaliczenie

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 1: Wprowadzenie do programowania obiektowego Dr hab. inż. Stanisław Deniziak, prof.pk, p.101, 410 sdeniziak@pk.edu.pl Informacje organizacyjne Wykład 30h Zaliczenie: egzamin

Bardziej szczegółowo

Paradygmaty i języki programowania. Wprowadzenie. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ 1

Paradygmaty i języki programowania. Wprowadzenie. dr Robert Kowalczyk, Katedra Analizy Nieliniowej, WMiI UŁ 1 Paradygmaty i języki programowania Wprowadzenie Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych

Bardziej szczegółowo

Języki programowania imperatywnego

Języki programowania imperatywnego Katedra Inżynierii Wiedzy laborki 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Języki imperatywne Wykład - 15 godzin;

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

Języki programowania deklaratywnego

Języki programowania deklaratywnego Katedra Inżynierii Wiedzy laborki 14 Języki deklaratywne Główne różnice między paradygmatem deklaratywnym a imperatywnym Omów główne cechy paradygmatu programowania w logice na przykładzie Prologa Główne

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

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,

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

Programowanie obiektowe

Programowanie obiektowe Wykład 1 21 lutego 2019 Plan wykładu 1 Opis wykładu Zaliczenie i egzamin Literatura 2 3 Modelowanie obiektowe Abstrakcja Hermetyzacja Dziedziczenie Polimorfizm 4 Opis wykładu Zaliczenie i egzamin Literatura

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

Programowanie Obiektowe i C++

Programowanie Obiektowe i C++ Programowanie Obiektowe i C++ Marcin Benke 2.10.2006 Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem

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

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Programowanie Obiektowe i C++ Marcin Benke

Programowanie Obiektowe i C++ Marcin Benke Programowanie Obiektowe i C++ Marcin Benke Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem w języku

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program

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

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 1. Wstęp do Wstępu Bartek Wilczyński bartek@mimuw.edu.pl Po pierwsze - Formalności 2 kolokwia (po 15 pkt) początek XI i koniec XII Dwa programy zaliczeniowe:

Bardziej szczegółowo

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 O mnie prowadzący wykład: Dariusz Wardowski pokój: A334 dyżur: środa, godz. 10.00 12.00 e-mail: wardd@math.uni.lodz.pl

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

Programowanie I. Wprowadzenie. Proces programowania

Programowanie I. Wprowadzenie. Proces programowania I. Wprowadzenie. Proces Aleksander Denisiuk Uniwersytet Warmińsko-Mazurski Olsztyn, ul. Słoneczna 54 denisjuk@matman.uwm.edu.pl 6 lutego 2018 1 / 25 Wprowadzenie. Proces Najnowsza wersja tego dokumentu

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów

Bardziej szczegółowo

Historia modeli programowania

Historia modeli programowania Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

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

Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES) KARTA MODUŁU / KARTA PRZEDMIOTU Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Kod modułu Nazwa modułu Programowanie imperatywne, obiektowe i deklaratywne Nazwa modułu w języku

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

Wykład 1 Wiadomości wstępne

Wykład 1 Wiadomości wstępne Paradygmaty Programowania Wykład 1 Wiadomości wstępne Nieliniowej, WMiI UŁ 1 Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych

Bardziej szczegółowo

Przyszłość programowania Języki funkcyjne na przykładzie Clojure

Przyszłość programowania Języki funkcyjne na przykładzie Clojure Wstęp Przyszłość programowania Języki funkcyjne na przykładzie Clojure inż. Daniel Harbuz 23 maja 2012 Przyszłość programowaniajęzyki funkcyjne na przykładzie Clojure 23 maja 2012 1 / 31 Wstęp Ageda Agenda

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia

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

hierarchie klas i wielodziedziczenie

hierarchie klas i wielodziedziczenie Programowanie Obiektowe (język C++) Wykład 15. hierarchie klas i wielodziedziczenie Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Hierarchie klas Dziedziczenie wprowadza relację

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

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++ Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Język programowania C++ Charakter przedmiotu: podstawowy, obowiązkowy Typ studiów: inŝynierskie

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

Style programowania - krótki przeglad

Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

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

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały

Bardziej szczegółowo

Wstęp do informatyki Paradygmaty programowania

Wstęp do informatyki Paradygmaty programowania Czym jest paradygmat Wstęp do informatyki Paradygmaty programowania Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Paradygmat to przyjęty sposób widzenia

Bardziej szczegółowo

Paradygmaty Programowania dr inŝ. Cezary Bolek

Paradygmaty Programowania dr inŝ. Cezary Bolek Kontakt Paradygmaty Programowania dr inŝ. Cezary Bolek email: cbolek@ki.uni.lodz.pl Katedra Informatyki Wydział Zarządzania Uniwersytet Łódzki Cezary Bolek Katedra Informatyki UŁ konsultacje (p.142): wtorek:

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

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Literatura David Harel. Rzecz o istocie informatyki. Algorytmika. Wydawnictwa Naukowo-Techniczne. Wydanie trzecie. Seria: Klasyka informatyki. Warszawa 2000. Niklaus Wirth. Algorytmy

Bardziej szczegółowo

Wykład 1 Informacje Podstawowe

Wykład 1 Informacje Podstawowe Paradygmaty i języki programowania Wykład 1 Informacje Podstawowe Czym jest paradygmat? Paradygmat to przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp. Zespół form fleksyjnych

Bardziej szczegółowo

Wstęp do Informatyki i Programowania

Wstęp do Informatyki i Programowania Wstęp do Informatyki i Programowania Jacek Cichoń Przemysław Kobylański Katedra Informatyki W11/K2 Politechnika Wrocławska J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 1 / 356 Plan wykładu

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. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie

Bardziej szczegółowo

Style programowania - krótki przeglad

Style programowania - krótki przeglad Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

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

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

dr inż. Paweł Myszkowski Wykład nr 5 (16.03.2016)

dr inż. Paweł Myszkowski Wykład nr 5 (16.03.2016) dr inż. Paweł Myszkowski Politechnika Białostocka Wydział Elektryczny Elektronika i Telekomunikacja, semestr II, studia stacjonarne I stopnia Rok akademicki 2015/2016 Wykład nr 5 (16.03.2016) Plan prezentacji:

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

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

GUI - projektowanie interfejsów cz. II

GUI - projektowanie interfejsów cz. II Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2 Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing. Metodyka (paradygmat) programowania

Bardziej szczegółowo

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka. Wstęp do Programowania Obiektowego Wykład 13 Paradygmaty. Składnia i semantyka. 1 PRZEGLĄD PODSTAWOWYCH PARADYGMATÓW 2 Cztery podstawowe paradygmaty 1. Programowanie imperatywne. 2. Programowanie funkcyjne.

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

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

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Programowanie imperatywne 1 Programowanie imperatywne Intuicje Programowanie imperatywne Paradygmat programowania imperatywnego: program

Bardziej szczegółowo

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 15: Klasyczne techniki

Bardziej szczegółowo

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego: Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów

Bardziej szczegółowo

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania Informatyczna Wieża Babel, czyli o różnych językach programowania Informatyczna Wieża Babel, czyli o różnych językach programowania Wstęp Aplikacje i programy, jakich dziś używamy, ukryte dla nas pod postacią

Bardziej szczegółowo

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania Wstęp do Informatyki Program, proces tworzenia programu Środowisko programistyczne Języki programowania Program - definicje Program jest przekładem problemu użytkownika na język maszyny Niklaus Wirth:

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Przegląd języka Python. Łukasz Anwajler

Przegląd języka Python. Łukasz Anwajler Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć

Bardziej szczegółowo

Języki programowania wprowadzenie

Języki programowania wprowadzenie Języki programowania wprowadzenie Prof. dr hab. inż. Mariusz J. Giergiel KRiDM AGH dr hab. inż.. Mariusz Giergiel, prof. n. AGH Pok. 412, VIp, D-1 konsultacje czwartek 10:00 11:00 giergiel@agh.edu.pl Telefon

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

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

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

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego obiektowo) historia języka Delphi i ogólna charakterystyka

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

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie. TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE 1. Po uruchomieni programu Greenfoot początkowa scena ma następujące składniki: a. obiekty scenerii i jeden obiekt ruchomy, b. obraz tła, jeden lub więcej

Bardziej szczegółowo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1 Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym

Bardziej szczegółowo