dr inż. Jarosław Forenc

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

Download "dr inż. Jarosław Forenc"

Transkrypt

1 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2012/2013 Wykład nr 1 ( )

2 Rok akademicki 2012/2013, Wykład nr 1 2/73 Dane podstawowe Politechnika Białostocka, Wydział Elektryczny, Katedra Elektrotechniki Teoretycznej i Metrologii ul. Wiejska 45D, Białystok WE j.forenc@pb.edu.pl tel. (0-85) Dydaktyka - slajdy prezentowane na wykładzie Konsultacje: Środa, godz. 17:40-19:10, WE-204 Piątek, godz. 11:30-13:00, WE-204

3 Rok akademicki 2012/2013, Wykład nr 1 3/73 Przedmioty Informatyka 1 i Informatyka 2 Informatyka 1 semestr II wykład: 15 godz. (J. Forenc) pracownia specjalistyczna: 30 godz. (A. Choroszucho, J. Forenc) ECTS: 4 pkt. kod przedmiotu: ES1A Informatyka 2 semestr III wykład: 15 godz. (J. Forenc) pracownia specjalistyczna: 30 godz. (J. Forenc) ECTS: 4 pkt. kod przedmiotu: ES1A

4 Rok akademicki 2012/2013, Wykład nr 1 4/73 Program wykładu (1/2) 1. Wskaźniki, operacje na wskaźnikach, wskaźniki i tablice. Dynamiczny przydział pamięci. Dynamiczne struktury danych: stos, kolejka, lista. Przykłady zastosowań. 2. Programowanie obiektowe w języku C++. Operacje wejścia-wyjścia. Klasy i obiekty. Składniki klasy: dane i funkcje. Prawa dostępu do składników klasy. Definiowanie funkcji składowych klasy. Konstruktory i destruktory. Przeładowanie operatorów. Dziedziczenie. Funkcje wirtualne. 3. Operacje na wektorach i macierzach. Mnożenie macierzy, normy wektorów i macierzy, wyznacznik macierzy.

5 Rok akademicki 2012/2013, Wykład nr 1 5/73 Program wykładu (2/2) 4. Sortowanie. Klasyfikacje algorytmów sortowania. Algorytmy sortowania: przez proste wstawianie, przez proste wybieranie, bąbelkowe, szybkie (Quick-Sort). 5. System operacyjny. Funkcje i zadania systemu operacyjnego. Zarządzanie procesami, pamięcią (stronicowanie, segmentacja, pamięć wirtualna) i dyskami. Struktura i właściwości systemów Windows i Linux. 6. Sieci komputerowe. Technologie, protokoły, urządzenia. Zasada działania sieci Internet. 7. Relacyjne bazy danych. Podstawowe pojęcia, organizacja i zasady wykorzystania.

6 Rok akademicki 2012/2013, Wykład nr 1 6/73 Literatura (1/4) Programowanie w C/C++: 1. B.W. Kernighan, D.M. Ritchie: Język ANSI C. Programowanie. Wydanie II. Helion, Gliwice, J. Grębosz: Symfonia C++ standard: programowanie w języku C++ orientowane obiektowo. Tom 1 i 2. Wydawnictwo Edition 2000, Kraków, B. Stroustrup: Programowanie. Teoria i praktyka z wykorzystaniem C++. Helion, Gliwice, B. Eckel: Thinking in C++. Edycja polska. Helion, Gliwice, S. Prata: Język C++. Szkoła programowania. Wydanie V. Helion, Gliwice, 2006.

7 Rok akademicki 2012/2013, Wykład nr 1 7/73 Literatura (2/4) Metody numeryczne: 1. D. Kincaid, W. Cheney: Analiza numeryczna. WNT, Warszawa, Algorytmy i struktury danych: 1. T.H. Cormen i in.: Wprowadzenie do algorytmów. PWN, Warszawa, P. Wróblewski: Algorytmy, struktury danych i techniki programowania. Wydanie IV. Helion, Gliwice, N. Wirth: Algorytmy + struktury danych = programy. WNT, Warszawa, 2004.

8 Rok akademicki 2012/2013, Wykład nr 1 8/73 Literatura (3/4) Systemy operacyjne: 1. A.S. Tanenbaum: Systemy operacyjne. Wydanie III. Helion, Gliwice, A. Silberschatz i in.: Podstawy systemów operacyjnych. WNT, Warszawa, W. Stallings: Systemy operacyjne. Struktura i zasady budowy. Mikom, Warszawa, Sieci komputerowe: 1. D.E. Comer: Sieci komputerowe i intersieci. Wydanie V. Helion, Gliwice, 2012.

9 Rok akademicki 2012/2013, Wykład nr 1 9/73 Literatura (4/4) Bazy danych: 1. H. Garcia-Molina i in.: Systemy baz danych. Pełny wykład. WNT, Warszawa, M. Whitehorn, B. Marklyn: Relacyjne bazy danych. Helion. Gliwice, 2003.

10 Rok akademicki 2012/2013, Wykład nr 1 10/73 Zaliczenie wykładu Sprawdzian pisemny na koniec semestru 4 pytania, za każde pytanie można otrzymać od 0 do 10 pkt. Suma punktów decyduje o ocenie końcowej: 37 pkt pkt. - ocena: 5 33 pkt pkt. - ocena: 4,5 29 pkt pkt. - ocena: 4 25 pkt pkt. - ocena: 3,5 21 pkt pkt. - ocena: 3 0 pkt pkt. - ocena: 2 Termin zaliczenia: (przedostatni wykład) Zaliczenie poprawkowe: (ostatni wykład) Przykładowe pytania zaliczeniowe - koniec grudnia 2012 roku

11 Rok akademicki 2012/2013, Wykład nr 1 11/73 Terminy zajęć Wykład nr Wykład nr Wykład nr Wykład nr Wykład nr Wykład nr Wykład nr (zaliczenie) Wykład nr (zaliczenie poprawkowe)

12 Rok akademicki 2012/2013, Wykład nr 1 12/73 Plan wykładu nr 1 (Informatyka 1) Algorytmy definicje sposoby opisu paradygmaty tworzenia programów komputerowych rekurencja złożoność obliczeniowa Języki programowania kompilowane i interpretowane języki programowania generacje języków programowania przykłady języków: asembler, Fortran, BASIC, Pascal, Java, C#

13 Rok akademicki 2012/2013, Wykład nr 1 13/73 Algorytm - definicje Definicja 1 Skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania Definicja 2 Metoda rozwiązania zadania Definicja 3 Ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych zwraca żądane dane wyjściowe zwane wynikiem działania algorytmu

14 Rok akademicki 2012/2013, Wykład nr 1 14/73 Sposoby opisu algorytmów 1. Opis słowny algorytmu (w języku naturalnym) 2. Opis w punktach (lista kroków) 3. Opis w postaci schematu blokowego 4. Z zastosowaniem pseudokodu, czyli niezbyt formalnej odmiany języka programowania 5. W wybranym języku programowania

15 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 15/63 Paradygmaty tworzenia programów komputerowych Strategia dziel i zwyciężaj Programowanie dynamiczne Algorytmy zachłanne Programowanie liniowe Algorytmy siłowe (brute force) Algorytmy probabilistyczne

16 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 16/63 Strategia dziel i zwyciężaj Strategia dziel i zwyciężaj (ang. divide and conquer) - bardzo efektywna strategii konstruowania algorytmów komputerowych Rozwiązywany problem dzielony jest na dwa lub więcej mniejszych problemów tego samego typu (lub podobnego) tak długo, aż stanie się on wystarczająco prosty do bezpośredniego rozwiązania Rozwiązania otrzymane dla mniejszych podproblemów są scalane w celu uzyskania rozwiązania całego zadania (jeśli jest to konieczne) Przykłady zastosowań: sortowanie szybkie (quicksort) wyszukiwanie binarne - sprawdzenie czy element znajduje się w uporządkowanej tablicy, jeśli tak, to zwracany jest jego indeks poszukiwanie miejsc zerowych funkcji nieliniowej metodą bisekcji mnożenie macierzy metodą Strassena

17 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 17/63 Programowanie dynamiczne Konstrukcja programu sformułowana jest w trzech etapach: Koncepcja: stworzenie rekurencyjnego modelu rozwiązania problemu (wraz z jednoznacznym określeniem przypadków elementarnych) stworzenie tablicy, zawierającej rozwiązania przypadków elementarnych i obliczonych na ich podstawie podproblemów Inicjacja: wpisanie do tablicy wartości dla przypadków elementarnych Progresja: obliczenie i wpisanie do tablicy rozwiązania problemu wyższego rzędu (na podstawie formuły rekurencyjnej i już wpisanych wartości) postępowanie w ten sam sposób do osiągnięcia pożądanej wartości

18 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 18/63 Programowanie dynamiczne - przykład Koncepcja: (F 10 w ciągu Fibonacciego) model rekurencyjny, przypadki elementarne, tablica z rozwiązaniem F 0 = 0, F1 = 1, Fn = Fn 1 + Fn 2 n F n Inicjacja: wpisanie do tablicy wartości dla przypadków elementarnych Progresja: n F n 0 1 obliczenie rozwiązań problemów wyższego rzędu aż do osiągnięcia pożądanej wartości i wpisanie ich do tablicy n F n

19 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 19/63 Algorytmy zachłanne Algorytm zachłanny (greedy) - w celu rozwiązania pewnego zadania w każdym kroku dokonuje się zachłannego, tj. najlepiej rokującego w danym momencie wyboru rozwiązania częściowego Algorytm podejmuje decyzję lokalnie optymalną, dokonując wyboru wydającego się w danej chwili najlepszym co ma w założeniu prowadzić do znalezienia globalnego optymalnego rozwiązania Stosowane przede wszystkim w optymalizacji

20 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 20/63 Algorytmy siłowe Algorytm siłowy (brute force) - opiera się na sukcesywnym sprawdzaniu wszystkich możliwych kombinacji w poszukiwaniu rozwiązania problemu Zazwyczaj nieoptymalny, ale najprostszy w implementacji W programowaniu termin ten odnosi się do dowolnego algorytmu, który rozwiązuje problem przez weryfikację i ocenę wszystkich wariantów postępowania Atak brute force - w bezpieczeństwie komputerowym jest to próba złamania zabezpieczeń przez sukcesywne sprawdzanie wszystkich możliwości

21 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 21/63 Algorytmy probabilistyczne Algorytmy można podzielić na deterministyczne i probabilistyczne Dane wejściowe Dane wejściowe Algorytm deterministyczny Algorytm probabilistyczny Generator liczb losowych Dane wyjściowe Dane wyjściowe Działanie algorytmu deterministycznego jest całkowicie zależne od warunków początkowych (wejście), tzn. dla takich samych danych wejściowych algorytm zawsze zwraca taki sam wynik Algorytm probabilistyczny albo randomizowany (randomized algorithm) do swojego działania używa losowości (generatora liczb pseudolosowych)

22 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 22/63 Metoda Monte Carlo - obliczanie całki oznaczonej Obliczanie przybliżonej wartości całki oznaczonej metodą Monte Carlo: Dla funkcji f(x), której całkę chcemy obliczyć w przedziale [x p,x k ] wyznaczamy prostokąt obejmujący pole pod wykresem tej funkcji o wysokości h i długości podstawy (x k -x p ) x k I = f ( x) dx x p Losujemy n punktów i zliczamy te punkty n w, które wpadają w pole pod wykresem funkcji Wartość całki obliczana jest na podstawie wzoru przybliżonego: I x k = x p f nw ( x) dx h( xk x p ) n

23 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 23/63 Metoda Monte Carlo - obliczanie liczby π Obliczamy pole koła wpisanego w kwadrat o boku równym 2r, gdzie r - promień koła Pola koła i kwadratu opisują wzory: P koło = π r 2 P kwadrat = 2 2 ( 2 r ) = 4 r Po porównaniu powyższych wzorów otrzymamy: Pkoło 2 Pkwadrat Pkoło r =, r = = π 4 π 2 kwadrat P 4 czyli: π = 4 P P koło kwadrat

24 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 24/63 Metoda Monte Carlo - obliczanie liczby π Wyznaczamy wewnątrz kwadratu bardzo dużo losowych punktów Zliczamy punkty, które wpadają do wnętrza koła Przybliżona wartość liczby π: π P P koło = 4 4 kwadrat n n koło kwadrat gdzie: n koło - liczba punktów w kole n kwadrat - liczba wszystkich punktów Pierwsze zastosowanie: Marquis Pierre-Simon de Laplace (1886)

25 Informatyka 1, studia niestacjonarne I stopnia Rok akademicki 2011/2012, Wykład nr 9 25/63 Metoda Monte Carlo - obliczanie liczby π Średnie wyniki przy powtórzeń losowania: n kwadrat n koło wartość Średnia liczby π Średni błąd bezwzględny Średni błąd względny 10 7,8459 3, , ,2984% ,4887 3, , ,1621% ,388 3, , ,3036% ,08 3, , ,4209% ,6 3, , ,1323% Dokładność wyniku zależy od: liczby sprawdzeń (n kwadrat ) jakości użytego generatora liczb pseudolosowych

26 Rok akademicki 2012/2013, Wykład nr 1 26/73 Rekurencja Rekurencja lub rekursja - jest to odwoływanie się funkcji lub definicji do samej siebie Rozwiązanie danego problemu wyraża się za pomocą rozwiązań tego samego problemu, ale dla danych o mniejszych rozmiarach W matematyce mechanizm rekurencji stosowany jest do definiowania lub opisywania algorytmów Przykład - silnia: 1 n! = n( n 1)! dla dla n = 0 n 1 int silnia(int n) { return n==0? 1 : n*silnia(n-1); }

27 Rok akademicki 2012/2013, Wykład nr 1 27/73 Rekurencja - przykłady Przykład - ciąg Fibonacciego: 0 dla n = 0 F n = 1 dla n = 1 F F dla > n 1 + n 2 n 1 int F(int n) { if (n==0) return 0; else if (n==1) return 1; else return F(n-1) + F(n-2); }

28 Rok akademicki 2012/2013, Wykład nr 1 28/73 Rekurencja - przykłady Przykład - algorytm Euklidesa (największy wspólny dzielnik): NWD( a, b) = a NWD( b, a mod b) dla dla b b = 0 1 int NWD(int a, int b) { if (b==0) return a; else return NWD(b,a % b); }

29 Rok akademicki 2012/2013, Wykład nr 1 29/73 Złożoność obliczeniowa W celu rozwiązania danego problemu obliczeniowego szukamy algorytmu najbardziej efektywnego czyli: najszybszego o możliwie małym zapotrzebowaniu na pamięć Do oceny efektywności programu służy złożoność obliczeniowa (koszt algorytmu) Złożoność obliczeniowa algorytmu: jest ilością zasobów potrzebnych do jego działania (czas, pamięć) jest funkcją rozmiaru danych, na których pracuje algorytm

30 Rok akademicki 2012/2013, Wykład nr 1 30/73 Złożoność obliczeniowa Złożoność czasowa: Jej miarą jest liczba podstawowych operacji (dominujących) Podstawowe operacje - porównanie, podstawienie, operacja arytmetyczna Złożoność pamięciowa: Jest miarą wykorzystania pamięci (liczba komórek pamięci) Złożoność pesymistyczna: Odpowiada danym najbardziej niesprzyjającym dla algorytmu Złożoność średnia: Złożoność uśredniona po wszystkich możliwych zestawach danych, występująca dla typowych danych wejściowych

31 Rok akademicki 2012/2013, Wykład nr 1 31/73 Notacja O ( duże O ) Wyraża złożoność matematyczną algorytmu Po literze O występuje wyrażenie w nawiasach zawierające literę n, która oznacza liczbę elementów, na której działa algorytm Do wyznaczenia złożoności bierze się pod uwagę liczbę wykonywanych w algorytmie podstawowych operacji Przykład: O(n) - złożoność algorytmu jest prostą funkcją liczby elementów (jeśli sortowanie elementów zajmuje 5 s, to sortowanie elementów zajmie 10 s) O(n 2 )- czas konieczny do wykonania algorytmu rośnie wraz z kwadratem liczby elementów (przy podwojeniu liczby elementów ich obsługa będzie trwała cztery razy dłużej)

32 Rok akademicki 2012/2013, Wykład nr 1 32/73 Notacja O ( duże O ) Porównanie najczęściej występujących złożoności: n O(log n) O(n) O(n logn) O(n 2 ) O(2 n ) , , , O(log n) - złożoność logarytmiczna O(n) - złożoność liniowa O(n log n) - złożoność liniowo-logarytmiczna (quasi-liniowa) O(n 2 ) - złożoność kwadratowa O(2 n ) - złożoność wykładnicza

33 Rok akademicki 2012/2013, Wykład nr 1 33/73 Język programowania Język programowania - usystematyzowany sposób przekazywania komputerowi poleceń do wykonania Pozwala na dokładny zapis algorytmów oraz innych zadań jakie komputer ma wykonać Dane + algorytm Symbole Język programowania Słowa kluczowe Składnia Semantyka Program

34 Rok akademicki 2012/2013, Wykład nr 1 34/73 Język programowania Składnia języka określa: sposób opisywania struktur sterujących sposób opisywania struktur danych sposób tworzenia poprawnych symboli do nazywania zmiennych i struktur danych sposób stosowania interpunkcji, tj. znaków typu spacje, średniki, kropki, nawiasy sposób budowy poprawnych wyrażeń Semantyka języka określa znaczenie poprawnych składniowo wyrażeń

35 Rok akademicki 2012/2013, Wykład nr 1 35/73 Język programowania Implementacja języka - konkretna realizacja języka dla maszyn określonego typu Program komputerowy - zbiór (ciąg) instrukcji opisujących zadanie, które ma wykonać komputer Kod źródłowy - postać programu wyrażona w języku programowania Przetwarzanie kodu źródłowego odbywa się na dwa sposoby kompilacja (kompilowane języki programowania) interpretacja (interpretowane języki programowania)

36 Rok akademicki 2012/2013, Wykład nr 1 36/73 Kompilowane języki programowania Kod źródłowy jest tłumaczony do postaci kodu maszynowego (sekwencji operacji gotowych do przetworzenia przez procesor) Kompilacja do kodu maszynowego zapewnia najwyższą wydajność Wygenerowany kod jest ściśle powiązany z platformą sprzętową Przykłady kompilowanych języków programowania: C C++ Pascal Fortran

37 Rok akademicki 2012/2013, Wykład nr 1 37/73 Interpretowane języki programowania Kod źródłowy jest na bieżąco tłumaczony i wykonywany przez dodatkowy program zwany interpreterem Zapewnia większą przenośność programów, które są często niezależne od platformy i systemu operacyjnego Programy w językach interpretowanych są mniej wydajne niż w językach kompilowanych Przykłady interpretowanych języków programowania: Java C# Perl Python Ruby

38 Rok akademicki 2012/2013, Wykład nr 1 38/73 Generacje języków programowania Generacje języków opisują zaawansowanie (rozbudowanie) struktury języka, co jest równocześnie związane z łatwością posługiwania się nimi im mniejsza liczba oznaczająca generację języka tym bardziej jest on zbliżony do sprzętu im większa generacja języka tym jest on bardziej intuicyjny i niezależny od sprzętu

39 Rok akademicki 2012/2013, Wykład nr 1 39/73 Języki programowania Istnieje około 2500 języków programowania (do 2004 roku)

40 Rok akademicki 2012/2013, Wykład nr 1 40/73 Języki programowania (do 2004 roku)

41 Rok akademicki 2012/2013, Wykład nr 1 41/73 TIOBE Programming Community Index (Sep 2012) 2) Position Sep 2012 Position Sep 2011 Programming Language Ratings Sep 2012 Delta Sep C % +1.29% 2 1 Java % -2.49% 3 6 Objective-C 9.770% +3.61% 4 3 C % +0.30% 5 4 C# 6.596% -0.22% 6 5 PHP 5.614% -0.98% 7 7 (Visual) Basic 5.528% +0.96% 8 8 Python 3.861% -0.14% 9 9 Perl 2.267% -0.20% Ruby 1.724% +0.29%

42 Rok akademicki 2012/2013, Wykład nr 1 42/73 TIOBE Programming Community Index (Sep 2012) 2) Position Sep 2012 Position Sep 2011 Programming Language Ratings Sep 2012 Delta Sep Java Script 1.328% -0.14% Delphi/Object Pascal 0.993% -0.32% Lisp 0.969% -0.07% Transcat-SQL 0.875% +0.02% Visual Basic.NET 0.840% +0.53% Pascal 0.830% -0.02% Lua 0.723% -0.43% Ada 0.700% +0.02% PL/SQL 0.604% -0.12% MATLAB 0.563% +0.02%

43 Rok akademicki 2012/2013, Wykład nr 1 43/73 TIOBE Programming Community Index (Sep 2012) 2)

44 Rok akademicki 2012/2013, Wykład nr 1 44/73 Asembler (assembly language) Język programowania niskiego poziomu Powstał na bazie języka maszynowego danego procesora poprzez zastąpienie kodów liczbowych instrukcji kodu maszynowego ich mnemonikami Program w asemblerze jest tłumaczony na kod maszynowy Zazwyczaj jedna instrukcja w asemblerze odpowiada jednemu rozkazowi procesora Składnia języka asemblera zależy od architektury procesora oraz używanego asemblera Tworzenie programu jest dość trudne, ale umożliwia programiście pełną kontrolę nad procesorem Programy napisane w asemblerze są bardzo wydajne

45 Rok akademicki 2012/2013, Wykład nr 1 45/73 Asembler - przykład programu.model SMALL.286.stack 100h.code start: jmp begin handler: pusha push ds pop ds popa iret begin: mov ax,0000h mov ds,ax mov di,0070h lea ax,handler cli mov [di],ax mov [di+2],cs sti mov ax,3100h mov dx,(offset begin - offset handler) inc dx int 21h end start

46 Rok akademicki 2012/2013, Wykład nr 1 46/73 Fortran (FORmula TRANslator) Stworzony w latach 50-tych, ale nadal stosowany Pierwszy kompilator Fortranu był jednocześnie pierwszym w historii kompilatorem języka wysokiego poziomu Standardy języka: Fortran IV (1960), Fortran 66, Fortran 77, Fortran 90, Fortran 95, Fortran 2003, Fortran 2008 Głównym zastosowaniem języka Fortran są obliczenia naukowoinżynierskie (w szczególności obliczenia numeryczne) Dysponuje ogromną liczbę bibliotek, które pozwalają rozwiązać praktycznie każde zadanie numeryczne

47 Rok akademicki 2012/2013, Wykład nr 1 47/73 Fortran - przykład programu program oblicz_srednia parameter (MaxX=1000) dimension x(maxx) character*80 plik_danych write (*,'(a,$)') "Podaj nazwe pliku danych... " 10 read (*,'(a)') plik_danych open (1,file=plik_danych,status="old",err=20) goto write (*,*) & "Blad - ten plik nie istnieje. Podaj nazwe jeszcze raz." goto continue read (1,*) N do i=1,n read (1,*) x(i) enddo suma = 0.0 do i=1,n suma = suma+x(i) enddo srednia = suma/n write (*,*) "Srednia wynosi",srednia stop end

48 Rok akademicki 2012/2013, Wykład nr 1 48/73 BASIC (Beginner All-purpose Symbolic Instruction Code) Opracowany w 1964 roku przez J.G. Kemeny ego i T.E. Kurtza w Darthmouth Collage w oparciu o języki Fortran i Algol-60 Popularny w komputerach 8-bitowych (Atari, ZX Spectrum, Amstrad, Commodore) i kalkulatorach programowanych Występował w wielu wersjach dla różnych komputerów - dla IBM PC jako: GW BASIC, QB, QuickBasic, Visual Basic Brak typów, w pierwszych wersjach numerowanie instrukcji Przykładowe instrukcje: skoku bezwarunkowego: GOTO wywołania podprogramu: GOSUB RETURN warunkowa: IF THEN (ELSE) iteracyjna: FOR NEXT

49 Rok akademicki 2012/2013, Wykład nr 1 49/73 BASIC - przykłady programów 10 INPUT "What is your name: ", U$ 20 PRINT "Hello "; U$ 30 INPUT "How many stars: ", N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT More stars? ", A$ 100 IF LEN(A$) = 0 THEN A$ = LEFT$(A$, 1) 120 IF A$ = "Y" OR A$ = "y" THEN PRINT "Goodbye ";U$ 140 END INPUT "What is your name: ", UserName$ PRINT "Hello "; UserName$ DO INPUT "How many stars: ", NumStars Stars$ = STRING$(NumStars, "*") PRINT Stars$ DO INPUT More stars? ", Answer$ LOOP UNTIL Answer$ <> "" Answer$ = LEFT$(Answer$, 1) LOOP WHILE UCASE$(Answer$) = "Y" PRINT "Goodbye "; UserName$ QuickBasic

50 Rok akademicki 2012/2013, Wykład nr 1 50/73 Pascal Język wysokiego poziomu, ogólnego zastosowania, oparty na Algolu, opracowany w 1970 r. przez Niklausa Wirtha Szczyt popularności przypadał na lata 80-te i początek lat 90-tych Pierwotnie służył celom edukacyjnym do nauki programowania strukturalnego - z tego powodu jest jednym z najszerzej znanych i popularnych języków, zwłaszcza wśród początkujących programistów Zastosowanie w praktyce jest obecnie ograniczone Zalety: czytelność, zwięzłość kodu, rygorystyczna kontrola typów Jedną z popularniejszych implementacji kompilatorów tego języka był Turbo Pascal firmy Borland International

51 Rok akademicki 2012/2013, Wykład nr 1 51/73 Turbo Pascal Version Borland Inter. Inc. (1992)

52 Rok akademicki 2012/2013, Wykład nr 1 52/73 Pascal program funkcja; var delta, x1, x2 : real; var a, b, c : real; begin writeln ('Podaj wspolczynniki a, b, c trojmianu kwadratowego: '); readln (a, b, c); delta := (b * b) - (4 * a * c); writeln ('Delta = ', delta); if delta < 0 then writeln('brak MIEJSC ZEROWYCH FUNKCJI!') else if delta > 0 then begin x1 := ((- b) - sqrt(delta)) / (2 * a); x2 := ((- b) + sqrt(delta)) / (2 * a); writeln('x1 = ', x1); writeln('x2 = ', x2); end else begin x1 := (- b) / (2 * a); writeln('x1 = ', x1); end; end.

53 Rok akademicki 2012/2013, Wykład nr 1 53/73 C++ Obiektowy język programowania zaprojektowany w 1979 roku przez Bjarne a Stroustrupa jako rozszerzenie języka C Nazwa C++ została zaproponowana w 1983 r., wcześniej używano nazwy C z klasami - ++ pochodzi od nazwy operatora inkrementacji C++ zachowuje pełną zgodność z C na poziomie kodu źródłowego Standard ISO/IEC 14882:2011 ( Standard for the C++ Programming Language (C++11) Od początku występowała i wciąż występuje niekompatybilność kompilatorów języka C++ w zakresie obsługiwanej składni C++ nie zmusza programistów do wyboru określonego stylu programowania - w jednym programie można stosować paradygmaty programowania proceduralnego i obiektowego

54 Rok akademicki 2012/2013, Wykład nr 1 54/73 C++ - nowe elementy względem języka C Programowanie obiektowe: mechanizmy enkapsulacji (funkcje składowe, sekcje prywatne, chronione i publiczne, funkcje zaprzyjaźnione), klasy, obiekty dziedziczenie metody wirtualne (polimorfizm) konstruktory i destruktory operatory new i delete metody i pola statyczne Udogodnienia związane z programowaniem generycznym: szablony (wzorce) klas i funkcji włączenie do biblioteki standardowej generycznej biblioteki STL

55 Rok akademicki 2012/2013, Wykład nr 1 55/73 C++ - nowe elementy względem języka C Obsługa wyjątków: Inne: przechwytywanie wyjątków: try catch wywoływanie wyjątków: throw przeciążanie funkcji i operatorów funkcje inline przestrzenie nazw i operator zasięgu - ::

56 Rok akademicki 2012/2013, Wykład nr 1 56/73 C++ - przykład programu cpl.h #include <iostream.h> class Complex { double Re,Im; public: Complex(double,double ); Complex (void); friend istream & operator >> (istream &, Complex &); friend ostream & operator << (ostream &, Complex &); Complex & operator = (Complex &); friend Complex operator + (Complex &,Complex &); };

57 Rok akademicki 2012/2013, Wykład nr 1 57/73 C++ - przykład programu cpl.cpp #include "cpl.h" Complex::Complex(void) { Re=0; Im=0; } Complex::Complex(double a,double b) { Re=a; Im=b; } Complex operator + (Complex &c,complex &d) { Complex e; e.re=c.re+d.re; e.im=c.im+d.im; return e; } Complex & Complex::operator = (Complex &f) { Re=f.Re; Im=f.Im; return *this; } istream & operator >> (istream &s,complex &g) { s >> g.re; s >> g.im; return s; } ostream & operator << (ostream &s,complex &g) { s << g.re; s << g.im; return s; }

58 Rok akademicki 2012/2013, Wykład nr 1 58/73 C++ - przykład programu main.cpp #include <iostream.h> #include "cpl.h" void main(void) { Complex a1,a2,a3(3,4); } cout << a3; cin >> a1; cin >> a2; a3 = a1 + a2; cout << a3;

59 Rok akademicki 2012/2013, Wykład nr 1 59/73 Java Obiektowy język programowania stworzony przez grupę roboczą pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems Programy źródłowe kompilowane są do kodu bajtowego, czyli do postaci wykonywanej przez maszynę wirtualną Podstawowe koncepcje przejęte zostały z języka Smalltalk i C++ Java składa się z szeregu klas definiujących obiekty różnego typu; klasy te pogrupowane są w hierarchicznie ułożone pakiety Podstawowy zestaw klas rozprowadzany jako Java występuje w dwóch wersjach - JRE i JDK: JRE (Java Runtime Environment) - udostępnia bytecode wszystkich klas standardowych i wirtualną maszynę do ich uruchamiania JDK (Java Development Kit) - dodatkowo udostępnia źródła klas oraz dodatkowe narzędzia jak kompilator, paker czy debuger

60 Rok akademicki 2012/2013, Wykład nr 1 60/73 Java - przykład programu class Person { public String firstname, lastname; public int year; public String PESEL; } public class Proba { public static void main(string[] args) { Person p, q, r; p = new Person(); q = new Person(); r = new Person(); p.firstname = "Jan"; p.lastname = "Kowalski"; p.year = 1981; p.pesel = " "; } } System.out.println( p.firstname + " " + p.lastname + ", " + p.year + ", PESEL: " + p.pesel );

61 Rok akademicki 2012/2013, Wykład nr 1 61/73 C# Obiektowy język programowania zaprojektowany pod kierunkiem A. Hejlsberga dla firmy Microsoft w 2001 roku Program napisany w C# kompilowany jest do języka CIL (Common Intermediate Language), specjalnego kodu pośredniego wykonywanego w środowisku uruchomieniowym takim jak.net C# ma wiele cech wspólnych z językami C++ i Java Kolejne wersje: C# 2.0 (2005) C# 3.0 (2007) C# 4.0 (2010) C# 5.0 (2012)

62 Rok akademicki 2012/2013, Wykład nr 1 62/73 C# - przykład programu using System; public class PrzykladowaKlasa { public static void Main() { string imie; Console.WriteLine("Podaj swoje imie:"); imie=console.readline(); Console.WriteLine("Twoje imie to: " + imie); } } Console.ReadKey();

63 Rok akademicki 2012/2013, Wykład nr 1 63/73 Borland C (1992) źródło: forum.codenet.ru/q67485

64 Rok akademicki 2012/2013, Wykład nr 1 64/73 Borland C (1992) źródło: jp.progit.pl/

65 Rok akademicki 2012/2013, Wykład nr 1 65/73 Delphi 1 (1995) źródło: delphi.wikia.com/wiki/delphi_images_(versions)

66 Rok akademicki 2012/2013, Wykład nr 1 66/73 Borland C++ Builder 1 (1997) źródło:

67 Rok akademicki 2012/2013, Wykład nr 1 67/73 Microsoft Visual C (1998)

68 Rok akademicki 2012/2013, Wykład nr 1 68/73 Borland C++ Builder 6 (2002)

69 Rok akademicki 2012/2013, Wykład nr 1 69/73 Borland Turbo C Explorer (2006)

70 Rok akademicki 2012/2013, Wykład nr 1 70/73 Microsoft Visual C

71 Rok akademicki 2012/2013, Wykład nr 1 71/73 Dev-C

72 Rok akademicki 2012/2013, Wykład nr 1 72/73 Code::Blocks 10.05

73 Rok akademicki 2012/2013, Wykład nr 1 73/73 Koniec wykładu nr 1 Dziękuję za uwagę!

Informatyka 1. Wykład nr 8 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 8 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2007/2008 Wykład nr 8 (16.06.2008) Rok akademicki 2007/2008, Wykład

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 9 (01.06.2012) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Informatyka 1. Wykład nr 8 (16.06.2008) Plan wykładu nr 8. Politechnika Białostocka. - Wydział Elektryczny. Asembler - przykład programu.

Informatyka 1. Wykład nr 8 (16.06.2008) Plan wykładu nr 8. Politechnika Białostocka. - Wydział Elektryczny. Asembler - przykład programu. Rok akademicki 2007/2008, Wykład nr 8 2/32 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2007/2008

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 1 (05.10.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Konsultacje: dr inż. Jarosław Forenc

Konsultacje: dr inż. Jarosław Forenc Rok akademicki 2011/2012, Wykład nr 1 2/60 Dane podstawowe Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2011/2012

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Rok akademicki 2011/2012, Wykład nr 1 2/55 Dane podstawowe Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2011/2012

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Pracownia nr 1 (14.10.2011) Rok akademicki 2011/2012,

Bardziej szczegółowo

Informatyka 1. Wykład nr 8 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 8 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2008/2009 Wykład nr 8 (31.05.2009) Rok akademicki 2008/2009, Wykład

Bardziej szczegółowo

Informatyka 1. Wykład nr 8 (31.05.2009) Plan wykładu nr 8. Politechnika Białostocka. - Wydział Elektryczny. language) Asembler - przykład programu

Informatyka 1. Wykład nr 8 (31.05.2009) Plan wykładu nr 8. Politechnika Białostocka. - Wydział Elektryczny. language) Asembler - przykład programu Rok akademicki 2008/2009, Wykład nr 8 2/49 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2008/2009

Bardziej szczegółowo

Algorytmy komputerowe. dr inż. Jarosław Forenc

Algorytmy komputerowe. dr inż. Jarosław Forenc Rok akademicki 2010/2011, Wykład nr 9/10 2/38 Plan wykładu nr 9/10 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki

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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny semestr III, studia stacjonarne I stopnia Rok akademicki 2015/2016 Pracownia nr 1 (21/23.09.2015) Rok akademicki 2015/2016, Pracownia nr 1 2/22

Bardziej szczegółowo

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

Bardziej szczegółowo

Informatyka 2. Informatyka 2. Wykład nr 1 (04.10.2008) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

Informatyka 2. Informatyka 2. Wykład nr 1 (04.10.2008) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2) Rok akademicki 2008/2009, Wykład nr 1 2/25 Dane podstawowe Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia (zaoczne) Rok akademicki

Bardziej szczegółowo

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy komputerowe. dr inŝ. Jarosław Forenc Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce

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

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

Rok akademicki: 2012/2013 Kod: EAR-1-206-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Informatyka 1 Rok akademicki: 2012/2013 Kod: EAR-1-206-s Punkty ECTS: 3 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Automatyka i Robotyka Specjalność:

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

Języki i paradygmaty programowania

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

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis MATERIAŁY DO ZAJĘĆ I Podstawowe pojęcia Spis treści I. Algorytm II. Schemat blokowy III. Struktury danych IV. Program komputerowy V. Opis środowiska programistycznego VI. Obsługa wejścia wyjścia VII. Przykład

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Algorytmy i programowanie Algorithms and Programming Kierunek: Zarządzanie i Inżynieria Produkcji Rodzaj przedmiotu: kierunkowy Poziom studiów: studia I stopnia forma studiów: studia

Bardziej szczegółowo

KARTA KURSU. Wstęp do programowania

KARTA KURSU. Wstęp do programowania KARTA KURSU Nazwa Nazwa w j. ang. Wstęp do programowania Introduction to Programming Kod Punktacja ECTS* 6 Koordynator dr inż. Magdalena Andrzejewska Zespół dydaktyczny: dr inż. Magdalena Andrzejewska

Bardziej szczegółowo

E-1EZ1-03-s2. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

E-1EZ1-03-s2. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu E-1EZ1-03-s2 Nazwa modułu Informatyka 2 Nazwa modułu w języku angielskim Computer science 2 Obowiązuje od roku akademickiego 2012/2013 (aktualizacja 2017/2018)

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

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

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

Zaliczenie przedmiotu:

Zaliczenie przedmiotu: INFORMATYKA 2 - Wykład 15h Kod przedmiotu: ES1C300 016, ECTS: 3 pkt. Kierunek: Elektrotechnika, studia stacjonarne I stopnia Semestr: III, rok akademicki: 2016/2017 Zaliczenie przedmiotu: Ogólne warunki

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

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

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów

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

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

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO Wstęp do programowania obiektowego Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO 1 Cele przedmiotu Zapoznanie z podstawowymi pojęciami oraz technikami programowania obiektowego na przykładzie

Bardziej szczegółowo

Języki programowania II - opis przedmiotu

Języki programowania II - opis przedmiotu Języki programowania II - opis przedmiotu Informacje ogólne Nazwa przedmiotu Języki programowania II Kod przedmiotu 06.9-WM-IB-P-33_15gen Wydział Kierunek Wydział Mechaniczny Inżynieria biomedyczna Profil

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

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

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

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES) 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 Programowanie komputerów 2 Nazwa modułu w języku angielskim Computer programming

Bardziej szczegółowo

Opisy efektów kształcenia dla modułu

Opisy efektów kształcenia dla modułu Karta modułu - Metodyki i techniki programowania 1 / 5 Nazwa modułu: Metodyki i techniki programowania Rocznik: 2012/2013 Kod: RIA-1-103-s Punkty ECTS: 7 Wydział: Inżynierii Mechanicznej i Robotyki Poziom

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Inżynieria Biomedyczna Rodzaj przedmiotu: obowiązkowy moduł kierunkowy ogólny Rodzaj zajęć: wykład, laboratorium JĘZYKI PROGRAMOWANIA Programming Languages Forma studiów: studia

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

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2007/2008 Wykład nr 7 (09.06.2008) Rok akademicki 2007/2008, Wykład

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

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

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

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

Opis efektów kształcenia dla modułu zajęć

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Formalne podstawy informatyki Rok akademicki: 2013/2014 Kod: EIB-1-220-s Punkty ECTS: 2 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Inżynieria Biomedyczna

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

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

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1 Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa

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

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

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro

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

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro

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

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.: Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,

Bardziej szczegółowo

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201

Bardziej szczegółowo

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.: Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie

Bardziej szczegółowo

Język programowania C C Programming Language. ogólnoakademicki

Język programowania C C Programming Language. ogólnoakademicki 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 Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014

Bardziej szczegółowo

Technologie informacyjne Wykład VII-IX

Technologie informacyjne Wykład VII-IX Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż

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

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

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

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

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

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

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2008/2009 Wykład nr 7 (24.05.2009) Rok akademicki 2008/2009, Wykład

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wykład Ćwiczenia Laboratorium Projekt Seminarium WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):

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

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Wstęp Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. I Jesień 2011 1 / 26 Plan wykładu 1 Wstęp komputery, algorytmy i programy 2 Podstawowe

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 języka Java. przygotował: pawel@kasprowski.pl

Podstawy języka Java. przygotował: pawel@kasprowski.pl Podstawy języka Java przygotował: pawel@kasprowski.pl Początki: PDA Star7 (*7) PDA do obsługi urządzeń domowych. (1992) (język OAK) Autorzy Javy Green Team Ojciec Javy: James Gosling Poszukiwanie zastosowania

Bardziej szczegółowo

Szablony funkcji i klas (templates)

Szablony funkcji i klas (templates) Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp

Bardziej szczegółowo