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

Podstawy programowania w języku C

Podstawy Programowania Obiektowego

Technologie cyfrowe semestr letni 2018/2019

Podstawy Programowania. Języki programowania

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

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

1 Podstawy c++ w pigułce.

Podstawy programowania wykład

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

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

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

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

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

Programowanie obiektowe

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.

Języki i paradygmaty programowania

Technologie informacyjne - wykład 12 -

1 Podstawy c++ w pigułce.

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

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

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

Języki programowania - podstawy

Mechanizm dziedziczenia

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

Języki i metodyka programowania

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

Algorytmy od problemu do wyniku

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

Podstawy Informatyki Języki programowania

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

Paradygmaty programowania

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

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

Podstawy Programowania. Wykład 1

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

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

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

Wstęp do informatyki Paradygmaty programowania

Paradygmaty Programowania dr inŝ. Cezary Bolek

Języki skryptowe w programie Plans

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do programowania. Wykład 1

Szablony funkcji i szablony klas

Programowanie w języku Python. Grażyna Koba

Podstawy programowania. Wprowadzenie

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

Technologie cyfrowe semestr letni 2018/2019

Wykład 4: Klasy i Metody

( wykł. dr Marek Piasecki )

Języki programowania

TEMAT : KLASY DZIEDZICZENIE

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

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

Programowanie obiektowe - 1.

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

Algorytmy, reprezentacja algorytmów.

Programowanie obiektowe

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

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

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

Programowanie komputerowe. Zajęcia 1

Podstawy informatyki (3)

Wstęp do programowania

Programowanie komputerowe. Zajęcia 3

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

Programowanie, algorytmy i struktury danych

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

Paradygmaty programowania

Programowanie Obiektowe i C++ Marcin Benke

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

I - Microsoft Visual Studio C++

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

Podstawy Programowania Algorytmy i programowanie

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

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

Programowanie Obiektowe i C++

Programowanie strukturalne i obiektowe

Wprowadzenie do języka Java

Transkrypt:

Programowanie Technologie Informacyjne

Programowanie 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 Programowanie wymaga dużej wiedzy i doświadczenia w wielu różnych dziedzinach 2

Języki programowania 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 Plankalkül Pierwszy język programowania przedstawiony przez Konrada Zuse 1952 Asemblery Do 1959 roku ok. 200 języków programowania! 1957 Fortran John Backus, IBM, Fortran II, Fortran IV (1966), Fortran 77 (1977), Fortran 90 (1991) 1960 LISP 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 Alain Colmerauer and Phillipe Roussel, Univ. Aix-Marseille, Prolog-2, Prolog++, Prolog-D-Linda 1972 C 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 Smalltalk-80 1983 Ada 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 Mathematica Steven Wolfram, oparta na języku SMP, ver. 2 1995 Java SunSoft 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 11

Najpopularniejsze Języki Programowania Position Programming Language Nov 2010 Nov 2005 Nov 1995 Nov 1985 Java 1 1- - C 2 2 1 1 C++ 3 3 2 8 PHP 4 4- - C# 5 7- - Python 6 8 10- (Visual) Basic 7 5 3 4 Objective-C 8 42- - Perl 9 6 5- Ruby 10 24- - Lisp 13 14 12 2 Ada 16 17 6 3 12

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

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

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 15

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 niestrukturalne: FORTH, BASIC języki strukturalne: Pascal, C, FORTRAN języki zorientowane obiektowo: C++, Java if(!x) printf("nie wolno dzielić przez zero\n"); return 1; 16

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 17

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 18

Paradygmat programowania Programowanie proceduralne Programowanie strukturalne Programowanie funkcyjne Programowanie imperatywne Programowanie obiektowe Programowanie uogólnione Programowanie zdarzeniowe Programowanie logiczne (np. Prolog) Programowanie aspektowe (np. AspectJ) Programowanie deklaratywne 19

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

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 21

programowanie obiektowe 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 22

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 23

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

Podstawy Programowania Programowanie strukturalne 25

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 26

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 27

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 28

Instrukcja przypisania 29

Instrukcja warunkowa 30

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

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

param = wartosc case Tak param=c1? true Nie false Inicjalizacja parametru //gałąź pierwsza c1 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 33

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 34

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

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

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

Instrukcja pętli 40

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. 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; 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. 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; Definicja zmiennej srednia inicjowanej do wartości średniej z sumy ocen. Wyprowadzenie informacji o średniej na monitor 43

Podstawy Programowania Programowanie obiektowe 44

Programowanie obiektowe Języki programowania obiektowego Simula 67 Smalltalku 80 C++ Java 45

Podejście strukturalne 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 46

Podejście strukturalne 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 47

Podejście strukturalne 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 48

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() 49 //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

Programowanie obiektowe class CBox //klasa o nazwie Cbox public: Zamiast struktury Box double m_a; double m_b; wprowadzono klasę CBox 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; 50

Programowanie obiektowe class CBox //klasa o nazwie Cbox public: double m_a; double m_b; double m_c; int main() //funkcja glowna main Zmienna typu klasy //definicja obiektu box1 CBox box1; nazywa się obiektem 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; 51

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

class Cbox //klasa o nazwie Cbox public: double m_a; Definicja konstruktora klasy double m_b; double m_c; CBox(double a, double b, double c) m_a=a; m_b=b; m_c=c; int main() //funkcja glowna main //definicja obiektu box1 CBox box1 = CBox(1,2,3); Definicja obiektu klasy z //definicja obiektu box2 CBox box2 = CBox(4,5,6); inicjacją zmiennych obiektu return 0; wykorzystując konstruktor 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; Dodanie funkcji liczącej objętość m_b=b; m_c=c; do sekcji publicznej klasy CBox 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; 54 Wywołanie przez obiekt box1 swojej metody Volume() i przypisanie wartości zwróconej dr inż. Michał przez Michnatę metodę zmiennej V1

class CBox //klasa o nazwie Cbox public: //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 //... 55

struct Box double a; double b; double c; double Volume (double u, double v, double w) return u*v*w; int main() Box box1 = 1,2,3; Box box2 = 4,5,6; double V1 = Volume(box1.a, box1.b, box1.c); double V2 = Volume(box2.a, box2.b, box2.c); return 0; 56 class CBox public: 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: private: double m_a; double m_b; double m_c; int main() CBox box1 = CBox(1,2,3); CBox box2 = CBox(3,4,5); double V1 = box1.volume(); double V2 = box2.volume(); return 0;

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

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

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 59

Narzędzia programistyczne 60

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 61

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 62

CASE, UML 63

CASE, UML 64

CASE, UML 65

Narzędzia programistyczne Edytory Debugery Kompilatory Generatory dokumentacji IDE RAD (Rapid Application Development) 66

Narzędzia programistyczne 67

Narzędzia programistyczne 68

Narzędzia programistyczne 69

Narzędzia programistyczne 70

Zastosowania praktyczne Elektrotechnika 71

Procesory sygnałowe (DSP) Assembler C 72

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

Programy CAD AutoCAD VisualLISP ObjectARX Visual Basic for Application 74

Programowanie zastosowania Układy pomiarowe i akwizycji danych LabView 75

Modelowanie matematyczne MATLAB/Simulink 76

Modelowanie matematyczne Wolfram/Mathematica 77

Modelowanie matematyczne Wolfram/Mathematica 78

Programowanie zastosowania Obwody elektryczne SPICE, MAST Urządzenia elektryczne VHDL 79

Literatura http://wazniak.mimuw.edu.pl/index.php?title=paradygmaty_programowania http://poradnik.2lo.elblag.pl/800/jezyki_programowania-ms/index.html http://alternatives.rzero.com/lang.html 81