Programowanie. Technologie Informacyjne

Podobne dokumenty
Programowanie. Technologie Informacyjne

Krótka historia języków programowania

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

Programowanie I. Wprowadzenie. Proces programowania

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

Język ludzki kod maszynowy

Języki i paradygmaty programowania. I. Wprowadzenie

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

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

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

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Podstawy Programowania. Języki programowania

Podstawy programowania w języku C

Podstawy Programowania Obiektowego

Technologie cyfrowe semestr letni 2018/2019

Podstawy programowania wykład

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

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

1 Podstawy c++ w pigułce.

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

Technologie informacyjne - wykład 12 -

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Języki i paradygmaty programowania

Programowanie obiektowe

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

Język programowania PASCAL

Programowanie w języku C++ Podstawowe paradygmaty programowania

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

1 Podstawy c++ w pigułce.

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

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

Języki i metodyka programowania

Języki programowania - podstawy

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Mechanizm dziedziczenia

Podstawy Programowania Podstawowa składnia języka C++

Część 4 życie programu

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Podstawy Informatyki Języki programowania

Podstawy Programowania. Wykład 1

Algorytmy od problemu do wyniku

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

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

Paradygmaty programowania

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Wstęp do informatyki Paradygmaty programowania

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

Paradygmaty Programowania dr inŝ. Cezary Bolek

Języki skryptowe w programie Plans

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do programowania. Wykład 1

Programowanie w języku Python. Grażyna Koba

Szablony funkcji i szablony klas

Podstawy programowania. Wprowadzenie

Języki programowania

Technologie cyfrowe semestr letni 2018/2019

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

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Wykład 4: Klasy i Metody

( wykł. dr Marek Piasecki )

TEMAT : KLASY DZIEDZICZENIE

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie obiektowe - 1.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 2

Algorytmy, reprezentacja algorytmów.

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 3

Programowanie obiektowe

Podstawy informatyki (3)

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

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

Wstęp do programowania

Szablony funkcji i klas (templates)

Proste algorytmy w języku C

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Podstawy Programowania

Programowanie Obiektowe i C++ Marcin Benke

I - Microsoft Visual Studio C++

Podstawy Programowania Algorytmy i programowanie

Paradygmaty programowania

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Programowanie, algorytmy i struktury danych

Programowanie Obiektowe i C++

Wprowadzenie do języka Java

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Transkrypt:

Technologie Informacyjne

Proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych Kod źródłowy jest napisany w języku programowania wymaga dużej wiedzy i doświadczenia w wielu różnych dziedzinach 2

3

Język programowania Zbiór zasad składni, instrukcji, dzięki którym powstaje kod źródłowy programu Procesor wykonuje program w kodzie maszynowym Programista używa języka zrozumiałego dla człowieka, który następnie jest kompilowany bądź interpretowany do postaci maszynowej 4

Wybór języka programowania Wybór języka programowania najbardziej dostosowanego do rozwiązywanego zadania i ewentualnej istniejącej infrastruktury paradygmat i rodzaj języka przenośność i wydajność kompilatorów dojrzałość oraz dostępność narzędzi i dokumentacji 5

History of Programming Languages 6

Języki programowania 1945 1952 Plankalkü l Asembler y 1957 Fortran 1960 LISP Pierwszy język programowania przedstawiony przez Konrada Zuse Do 1959 roku ok. 200 języków programowania! John Backus, IBM, Fortran II, Fortran IV (1966), Fortran 77 (1977), Fortran 90 (1991) J. McCarthy, MIT, InterLisp, MacLisp, PSL, Common LISP (1984), Scheme (dialekt LISPu) 1960 Algol Algol 60, Algol 68 1960 COBOL główne zmiany 1968 i 1974, ostatnia COBOL 85 1962 APL Ken Iverson (Harvard) APL/PC, APL*PLUS 1962 SIMULA Kristen Nygaard & Ole-Johan Dahl, pierwsza implementacja 1964, SIMULA 67, Simulink (Matlab) 1964 BASIC John G. Kemeny & Thomas E. Kurtz, Dartmouth College, wiele dialektów 1964 PL/I George Radin, dialekty: EPL, PL/S, XPL etc 7

Języki programowania 1971 Prolog 1972 C Alain Colmerauer and Phillipe Roussel, Univ. Aix-Marseille, Prolog-2, Prolog++, Prolog-D-Linda Dennis Ritchie, Bell Labs, C* do programów współbieżnych, dialekty: Visual C 1975 Pascal N. Wirth, ETH, dialekty: Pascal Plus, TurboPascal, Pascal/R, wiele innych 1979 Modula-2 N. Wirth, ETH, wersja I z 1977 roku, dialekty: Modula-2+, Modula-3, Modula- P, Modula/R 1980 dbase II wersje późniejsze: dbase III, III+, IV, V 1983 1983 Ada Smalltalk- 80 Xerox PARC, pod kierownictwem Alana Kay'a, rozwój od 1970 roku, Smalltalk/V na PC. Jean Ichbiah, CII Honeywell, standard Ada 83, rozszerzenia Ada++, Ada 9X nowy standard 1986 C++ Bjarne Stroustrup, AT&T, liczne implementacje 1988 Mathemati ca 1995 Java SunSoft Steven Wolfram, oparta na języku SMP, ver. 2 8

Najpopularniejsze Języki Programowania Ratings Nov 2009 2,92% 2,40% 3,49% 4,67% 18,37% 5,35% 8,17% 17,32% 10,00% 10,18% TIOBE Programming Community Index for November 2009 Java C PHP C++ (Visual) Basic C# Python Perl JavaScript Ruby 9

Najpopularniejsze Języki Programowania Ratings Nov 2010 3,19% 2,47% 1,91% 5,47% 18,51% 5,68% 5,71% 16,72% 7,81% 9,50% TIOBE Programming Community Index for November 2010 Java C C++ PHP C# Python (Visual) Basic Objective-C Perl Ruby 10

Najpopularniejsze Języki Programowania Ratings Jan 2013 4,17% 2,26% 1,98% 4,75% 5,55% 6,20% 9,14% 10,28% 17,86% 17,42% TIOBE Programming Community Index for November 2010 C Java Objective-C C++ C# PHP (Visual) Basic Python Perl JavaScript 11

Najpopularniejsze Języki Programowania 12

Najpopularniejsze Języki Programowania Programming Language of the Year Year Winner 2012 Objective-C 2011 Objective-C 2010 Python 2009 Go 2008 C 2007 Python 2006 Ruby 2005 Java 2004 PHP 2003 C++ Category Ratings Jan 2013 Delta Jan 2012 Object-Oriented Languages 58.9% +1.8% Procedural Languages 36.3% -0.6% Functional Languages 3.4% -0.8% Logical Languages 1.4% -0.4% 13

Języki programowania Języki niskiego i wysokiego poziomu Języki kompilowane, interpretowane, kompilowanointerpretowany Języki pierwszej, drugiej, trzeciej, czwartej generacji 14

Języki pierwszej generacji Języki maszynowe, czyli języki procesorów Instrukcje są w nich zapisywane w postaci liczb binarnych 11101010000000000000111111111111111110001001110110 0000000010100000001 15

Języki drugiej generacji Języki symboliczne, asemblery. języki niskiego poziomu, pod względem składni tożsame z językiem maszynowym zamiast liczb używa się łatwiejszych do zapamiętania mnemoników (jmp, mov) jmp ffff:0 mov ax, bx add ax, 1 16

Języki trzeciej generacji Języki wysokiego poziomu Jedna instrukcja programu jest tłumaczona na kilka instrukcji procesora (5-10) Pierwszym językiem tego typu był ALGOL języki nie: FORTH, BASIC języki : Pascal, C, FORTRAN języki zorientowane obiektowo: C++, Java if(!x) printf("nie wolno dzielić przez zero\n"); return 1; 17

Języki czwartej generacji 4GL Języki bardzo wysokiego poziomu Języki zapytań do baz danych SQL Generatory raportów / stron Mathematica Przetwarzanie danych, analiza i raportowanie Tworzenie GUI Języki zorientowane problemowo, ang. task oriented languages Syntaktyka wielu języków czwartej generacji przypomina składnię języka naturalnego SELECT Nazwa FROM "Faktura.db" WHERE Cena > 1000 18

Języki piątej generacji Języki sztucznej inteligencji Języki systemów ekspertowych Języki najbardziej zbliżone do języka naturalnego Przykładem języka piątej generacji jest PROLOG?- polaczenie(sf, ny, Odlot, Przylot), Odlot > 900. Odlot = 930, Przylot = 2200? ; no 19

Paradygmat programowania proceduralne funkcyjne imperatywne uogólnione zdarzeniowe logiczne (np. Prolog) aspektowe (np. AspectJ) deklaratywne 20

Paradygmat programowania Category Ratings Nov 2009 Delta Nov 2008 Object-Oriented Languages 54.4% -3.2% Procedural Languages 41.6% +2.8% Functional Languages 2.8% +0.2% Logical Languages 1.3% +0.1% Category Ratings Nov 2010 Delta Nov 2009 Object-Oriented Languages 56.7% +2.4% Procedural Languages 38.0% -3.5% Functional Languages 3.6% +0.7% Logical Languages 1.7% +0.4% 21

programowanie imperatywne najbardziej pierwotny sposób programowania, program postrzegany jest jako ciąg poleceń dla komputera Fortran, Algol, Pascal, Ada, C instrukcje podstawienia działają na danych pobranych z pamięci, wynik również umieszczają w pamięci, abstrakcją komórek pamięci są zmienne 22

programowanie zbiór porozumiewających się ze sobą obiektów, czyli jednostek zawierających pewne dane i umiejących wykonywać na nich pewne operacje powiązanie danych (czyli stanu) z operacjami na nich (czyli poleceniami) w całość, stanowiącą odrębną jednostkę obiekt 23

programowanie funkcyjne program to po prostu złożona funkcja (w sensie matematycznym), która otrzymawszy dane wejściowe wylicza pewien wynik brak stanu maszyny, nie ma zmiennych 24

Języki programowania Wieloparadygmatowe Ada C++ Common Lisp D Fortran Icon JavaScript Nemerle Perl Python Ruby PHP Snobol Proceduralne i AWK C COBOL Forth Modula-2 Oberon Pascal PL/SQL REXX Lib Sh Obiektowe C# Eiffel Java Object Pascal Objective-C Smalltalk VB.NET Funkcyjne Erlang F# Haskell Lisp ML Ocaml Scheme Logiczne Prolog 25

Podstawy programowania 26

Zmienne Zmienne stanowią abstrakcję komórek pamięci Nazwa dozwolone znaki, liczba znaków Adres Wartość zawartość komórki pamięci związanej z daną zmienną Typ zbiór dopuszczalnych wartości, precyzja 27

Zmienne typy skalarne Deklaracja Nazwa zmiennej Wartość początkowa typ identyfikator = inicjalizator; Definicja char x = A ; // typ char 1 bajt, // kod ASCII lub liczba całkowita int y = 5; // typ int 4 bajty // liczba całkowita 28

Zmienne typy tablicowe char wydzial[8] = WEiA,PG ; //tablica znakowa 8 elementów typu char //zdefiniowano 7 znaków i kod zakończenia ciągu \0 Adres w pamięci wydzial[0] W E i A, P G \0 0 1 2 3 4 5 6 7 Kod zakończenia int dane[4] = 32, 47, 25, 58; //definicja tablicy liczbowej 4 elementów typu int 29

Instrukcja przypisania 30

Instrukcja warunkowa 31

Instrukcja warunkowa Instrukcja grupująca Czy warunek jest spełniony? Tak Nie //sekwencja na Tak //sekwencja na Nie 32

Instrukcja warunkowa #include <iostream.h> int main (void) double x = 0; cout << ocena = ; cin >> x; if (x >= 3.0) cout << zaliczenie << endl; else cout << poprawka << endl; return 0; Instrukcja cout wyprowadza na monitor komunikat ocena=. Instrukcja cin pozwala wprowadzić dane z klawiatury pod zmienną x. Jeśli x>=3 to instrukcja cout wyprowadzi na monitor (konsolę) komunikat o zaliczeniu. Jeśli x<3 to instrukcja cout wyprowadzi na monitor (konsolę) komunikat o poprawce. Do wyprowadzania informacji tekstowej na monitor stosuje się operator <<. Do wprowadzania informacji z klawiatury stosuje się operator >>. 33

case param = wartosc param=c1? Nie false Tak true //gałąź pierwsza c1 Inicjalizacja parametru break Instrukcja przerwania nakazuje zakończenie instrukcji decyzyjnej. case param=c2? Tak true //gałąź druga c2 break Nie false case param=c3? Tak true //gałąź trzecia c3 break Nie false default //instrukcja domyslna 34

param = wartosc Inicjalizacja parametru case param=c1? Nie false case param=c2? Tak true Tak true //gałąź pierwsza c1 //gałąź druga c2 break break Gałąź pierwsza realizowana, gdy warunek porównania jest na true. Przy braku instrukcji przerwania badany jest warunek w gałęzi 2. Nie false case param=c3? Tak true //gałąź trzecia c3 break Nie false default //instrukcja domyslna 35

param = wartosc Inicjalizacja parametru case param=c1? Nie false Tak true //gałąź pierwsza c1 break case param=c2? Nie false case param=c3? Tak true Tak true //gałąź druga c2 //gałąź trzecia c3 break break Warunek true w gałęzi drugiej powoduje jej realizację. Gdy jest instrukcja przerwania, to następuje zakończenie. Jeśli nie, to badany jest warunek w gałęzi trzeciej. Nie false default //instrukcja domyslna 36

param = wartosc Inicjalizacja parametru case param=c1? Nie false Tak true //gałąź pierwsza c1 break case param=c2? Tak true //gałąź druga c2 break Nie false case param=c3? Nie default false Tak true //gałąź trzecia c3 break Jeśli warunek w gałęzi trzeciej jest na true, to jest ona realizowana. Podobny scenariusz dotyczy następnych gałęzi jeśli występują. //instrukcja domyslna 37

param = wartosc Inicjalizacja parametru case param=c1? Nie false Tak true //gałąź pierwsza c1 break case param=c2? Tak true //gałąź druga c2 break Nie false case param=c3? Nie default false Tak true //instrukcja domyslna //gałąź trzecia c3 break Gdy żaden warunek nie jest spełniony, to realizowana jest sekwencja instrukcji w sekcji default. 38

Instrukcja warunkowa #include <iostream.h> int main() char symbol = 'N'; cout << "Wybierz element <R,L,C>: "; cin >> symbol; switch (symbol) case 'R':cout Wyprowadzenie << "Rezystor" komunikatu << endl; na break; monitor i case 'L':cout oczekiwanie << "Cewka" na << wprowadzenie endl; break; danej z klawiatury case 'C':cout << "Kondensator" << endl; break; default:cout << "Inny element" << endl; return 0; 39

Instrukcja warunkowa Instrukcja switch zawiera 4 gałęzie. Trzy w sekcji case i jedną w sekcji default. Gałęzie w sekcji case zawierają instrukcje przerwania break, co oznacza, że #include <iostream.h> przyporządkowanie symbolu do nazwy elementu jest int main() jednoznaczne. char symbol = 'N'; cout << "Wybierz element <R,L,C>: "; cin >> symbol; switch (symbol) case 'R':cout << "Rezystor" << endl; break; case 'L':cout << "Cewka" << endl; break; case 'C':cout << "Kondensator" << endl; break; default:cout << "Inny element" << endl; return 0; 40

Instrukcja pętli 41

Instrukcja pętli #include <iostream.h> int main() double oceny[5] = 3,4,5,2,3.5; double suma = 0; for(int i=0; i<5; i++) suma = suma + oceny[i]; double srednia = suma/5; cout << "srednia = " << srednia << endl; return 0; Definicja tablicy oceny typu double o rozmiarze 5. Definicja zmiennej suma o wartości 0. 42

Instrukcja pętli #include <iostream.h> int main() double oceny[5] = 3,4,5,2,3.5; double suma = 0; for(int i=0; i<5; i++) suma = suma + oceny[i]; double srednia = suma/5; cout << "srednia = " << srednia << endl; return 0; Instrukcja for wykonuje 5 cykli. Zmienna sterująca i rozpoczyna proces od wartości 0 i pod koniec cyklu jest zwiększana o 1 (i++). W każdej iteracji kolejny element tablicy jest dodawany do zmiennej suma. 43

Instrukcja pętli #include <iostream.h> int main() double oceny[5] = 3,4,5,2,3.5; double suma = 0; for(int i=0; i<5; i++) suma = suma + oceny[i]; double srednia = suma/5; cout << "srednia = " << srednia << endl; return 0; Definicja zmiennej srednia inicjowanej do wartości średniej z sumy ocen. Wyprowadzenie informacji o średniej na monitor 44

Podstawy Programowania 45

Języki programowania go Simula 67 Smalltalku 80 C++ Java 46

Podejście int main() //kod funkcji glownej //wymiary 1 wieloscianu double a1 = 1; double b1 = 2; double c1 = 3; //... //wymiary 2 wieloscianu double a2 = 4; double b2 = 5; double c2 = 6; //... return 0; Program wykonuje obliczenia na wielobokach o wymiarach: szerokość a, długość b, wysokość c Niewygodny i nieczytelny kod programu, w którym zmienne są deklarowane dla n wieloboków 47

Podejście cd. //struktura o nazwie Box struct Box double a; double b; double c; int main() //definicja zmiennej box1 Box box1 = 1,2,3; //definicja zmiennej box2 Box box2 = 4,5,6; //... return 0; Uporządkowanie kody wykorzystując strukturę o nazwie Box Możliwość prostego tworzenia n wieloboków wykorzystując tablice zmiennych strukturowych Box 48

Podejście cd. Następnym zadaniem programistycznym jest obliczenie objętości każdego zdefiniowanego prostopadłościanu. Należy stworzyć metodę (funkcję) wykonującą ten proces 49

struct Box double a; double b; double c; //struktura o nazwie Box //definicja funkcji Volume double Volume (double u, double v, double w) return u*v*w; int main() 50 //funkcja glowna main //definicja zmiennej box1 Box box1 = 1,2,3; double V1 = Volume(box1.a, box1.b, box1.c); //definicja zmiennej box2 Box box2 = 4,5,6; double V2 = Volume(box2.a, box2.b, box2.c); //... return 0; Dodanie funkcji Volume liczącej objętość figury

class CBox //klasa o nazwie Cbox public: double m_a; double m_b; double m_c; int main() //funkcja glowna main //definicja obiektu box1 CBox box1; box1.m_a = 1; //inicjalizacja pola m_a box1.m_b = 2; //inicjalizacja pola m_b box1.m_c = 3; //inicjalizacja pola m_c //definicja obiektu box2 CBox box2; //... return 0; Zamiast struktury Box wprowadzono klasę CBox 51

class CBox //klasa o nazwie Cbox public: double m_a; double m_b; double m_c; int main() //funkcja glowna main //definicja obiektu box1 CBox box1; box1.m_a = 1; //inicjalizacja pola m_a box1.m_b = 2; //inicjalizacja pola m_b box1.m_c = 3; //inicjalizacja pola m_c //definicja obiektu box2 CBox box2; //... return 0; Zmienna typu klasy nazywa się obiektem 52

class CBox //klasa o nazwie Cbox public: double m_a; double m_b; double m_c; int main() //funkcja glowna main //definicja obiektu box1 CBox box1; box1.m_a = 1; //inicjalizacja pola m_a box1.m_b = 2; //inicjalizacja pola m_b box1.m_c = 3; //inicjalizacja pola m_c //definicja obiektu box2 CBox box2; //... return 0; W tym przykładzie wymagany jest operator bezpośredniego dostępu do własności: nazwa_obiektu.własność_obiektu operator bezpośredniego dostępu - kropka 53

class Cbox //klasa o nazwie Cbox public: double m_a; double m_b; double m_c; CBox(double a, double b, double c) m_a=a; m_b=b; m_c=c; int main() //definicja obiektu box1 CBox box1 = CBox(1,2,3); //definicja obiektu box2 CBox box2 = CBox(4,5,6); return 0; //funkcja glowna main Definicja konstruktora klasy Definicja obiektu klasy z inicjacją zmiennych obiektu wykorzystując konstruktor 54

class CBox //klasa o nazwie CBox public: double m_a; double m_b; double m_c; CBox(double a, double b, double c) m_a=a; m_b=b; m_c=c; double Volume() return m_a*m_b*m_c; int main() //funkcja glowna main //definicja obiektu box1 CBox box1 = CBox(1,2,3); //operacja obliczenia objetosci i przypisania do V1 double V1 = box1.volume(); //... return 0; 55 Dodanie funkcji liczącej objętość do sekcji publicznej klasy CBox Wywołanie przez obiekt box1 swojej metody Volume() i przypisanie wartości zwróconej przez tę metodę zmiennej V1

class CBox public: Języki programowania //klasa o nazwie Cbox //sekcja publiczna CBox(double a, double b, double c) m_a=a; m_b=b; m_c=c; double Volume() return m_a*m_b*m_c; protected: //sekcja chroniona private: //sekcja prywatna Zasoby sekcji prywatnej nie mogą być double m_a; double m_b; dziedziczone, sekcji chronionej tak double m_c; //... box1.m_a; //bledna operacja zasob prywatny //... 56

struct Języki programowania Box class CBox public: double a; CBox(double a, double b, double c) double b; double c; m_a=a; m_b=b; m_c=c; double Volume (double u, double v, double w) double Volume() return m_a*m_b*m_c; return u*v*w; protected: int main() private: double m_a; double m_b; Box box1 = 1,2,3; double m_c; Box box2 = 4,5,6; double int main() V1 = Volume(box1.a, box1.b, box1.c); CBox box1 = CBox(1,2,3); double CBox box2 = CBox(3,4,5); V2 = Volume(box2.a, box2.b, box2.c); double V1 = box1.volume(); double V2 = box2.volume(); return 0; return 0; 57 dr inż. Michał Michna

Dziedziczenie chronione class Klasa_B : protected Klasa_A Klasa A Public Protected Private Klasa B Public Protected Private 58

Dziedziczenie prywatne class Klasa_B : private Klasa_A Klasa A Public Protected Private Klasa B Public Protected Private 59

Obiektowy PHP class nazwaklasy var $zmienna1; function construct($param) echo Konstruktor wywołany z parametrem $param <br /> ; public $zmienna2 protected function operacja1() echo Wykonano opracje1 60

61

Proces programowania Sformułowanie problemu (specyfikacja) Analiza problemu i znalezienie metody jego rozwiązania (opracowanie algorytmu) Zakodowanie algorytmu (napisanie programu) Uruchomienie i przetestowanie programu Konserwacja oprogramowania 62

CASE, UML Upper-CASE wspomaganie fazy określania wymagań i analizy (modelowania), nie wspomagając procesu implementacji nie są związane z żadnym środowiskiem programistycznym Lower-CASE stosowane do etapów projektowania i implementacji, w związku z czym na ogół są jednoznacznie związane z środowiskiem lub językiem programowania 63

CASE, UML 64

CASE, UML 65

CASE, UML 66

Edytory Debugery Kompilatory Generatory dokumentacji IDE RAD (Rapid Application Development) 67

68

69

70

71

Elektrotechnika 72

Procesory sygnałowe (DSP) Assembler C 73

Sterowniki programowalne (PLC) lista instrukcji (IL), język strukturalny (ST) Schemat drabinkowy (LD) Schemat blokowy (FBD) Graf sekwencji (SFC) 74

Programy CAD AutoCAD VisualLISP ObjectARX Visual Basic for Application 75

zastosowania Układy pomiarowe i akwizycji danych LabView 76

Modelowanie matematyczne MATLAB/Simulink 77

Modelowanie matematyczne Wolfram/Mathematica 78

Modelowanie matematyczne Wolfram/Mathematica 79

zastosowania Obwody elektryczne SPICE, MAST Urządzenia elektryczne VHDL 80

Literatura http://wazniak.mimuw.edu.pl/index.php?title=paradygmaty_programo wania http://poradnik.2lo.elblag.pl/800/jezyki_programowaniams/index.html http://alternatives.rzero.com/lang.html 82