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

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

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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

Konsultacje: dr inż. Jarosław Forenc

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

Podstawy programowania wykład

Podstawy programowania. Wprowadzenie

Język programowania PASCAL

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

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

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

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Java jako język programowania

C# /.NET. Copyright by 3bird Projects 2018,

Język C++ wykład VIII

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

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

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

Języki programowania Język programowania Język maszynowy Kod maszynowy

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

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

Podstawy języka Java. przygotował:

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Geneza powstania języka C++

Programowanie obiektowe

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

Spis treści. 1 Java T M

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

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

Technologie cyfrowe semestr letni 2018/2019

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Techniki Programowania

Java EE produkcja oprogramowania

Tworzenie aplikacji w języku Java

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

Środowiska i platformy programistyczne

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Multimedia JAVA. Historia

Geneza powstania języka C++

Praktyka Programowania

Programowanie obiektowe zastosowanie języka Java SE

Języki i paradygmaty programowania

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

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

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

Języki i paradygmaty programowania - 1

Podstawy Informatyki Języki programowania

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

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

Programowanie obiektowe

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Technologie cyfrowe semestr letni 2018/2019

Historia i podstawowe koncepcje. Tomasz Borzyszkowski

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

Podstawy programowania w języku C

Wykład 1

Microsoft IT Academy kurs programowania

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

Programowanie obiektowe. Wprowadzenie

Język ludzki kod maszynowy

Algorytmy od problemu do wyniku

WPROWADZENIE DO JĘZYKA JAVA

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Programowanie i projektowanie obiektowe

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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Programowanie 2. Język C++. Wykład 3.

Wstęp do Informatyki i Programowania

Wprowadzenie do języka Java

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Podstawy programowania

Języki i paradygmaty programowania

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

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

Języki i paradygmaty programowania. I. Wprowadzenie

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

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

Szablony funkcji i szablony klas

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Programowanie obiektowe - 1.

WPROWADZENIE DO JĘZYKA JAVA

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

1 Atrybuty i metody klasowe

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

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

Jerzy Nawrocki, Wprowadzenie do informatyki

Historia modeli programowania

Transkrypt:

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 nr 8 2/32 Plan wykładu nr 8 Przykłady języków programowania: Assembler BASIC C C++ C# Fortran Pascal Java InŜynieria oprogramowania

Rok akademicki 2007/2008, Wykład nr 8 3/32 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 (skrótowy zapis czynności i argumentów w postaci czytelnej dla człowieka) Program napisany 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

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

Rok akademicki 2007/2008, Wykład nr 8 5/32 BASIC (Beginner( All-purpose Symbolic Instruction Code) Prosty, interpretowany język programowania wysokiego poziomu 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

Rok akademicki 2007/2008, Wykład nr 8 6/32 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 90 110 A$ = LEFT$(A$, 1) 120 IF A$ = "Y" OR A$ = "y" THEN 30 130 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

Rok akademicki 2007/2008, Wykład nr 8 7/32 C Proceduralny język programowania wysokiego poziomu Został zdefiniowany w 1972 r. przez Dennisa Ritchiego z Bell Laboratories jako język dla systemu Unix działającego na komputerze DEC PDP-11 W C zostało napisane ok. 90% kodu tego systemu i większość programów działających pod jego kontrolą W 1978 roku został opisany w ksiąŝce B.W. Kernighan, D.M. Ritchie: The C Programming Language Po 1980 r. C zyskał popularność jako uniwersalny język programowania W 1988 roku został ogłoszony standard języka C zwany ANSI C Charakterystyczne cechy: zwięzły i elastyczny, ale wymagający duŝej odpowiedzialności od programisty (np. brak wbudowanej kontroli indeksowania tablic)

Rok akademicki 2007/2008, Wykład nr 8 8/32 C++ Obiektowy język programowania zaprojektowany w 1979 roku przez Bjarne a Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów 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 Od 1998 r. obowiązuje standard ISO/IEC 14882:1998 ( Standard for the C++ Programming Language z drobnymi poprawkami z 2003 roku) 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, obiektowego i generycznego (uogólnionego)

Rok akademicki 2007/2008, Wykład nr 8 9/32 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 Obsługa wyjątków: przechwytywanie wyjątków: try catch, wywoływanie wyjątków: throw Inne: przeciąŝanie funkcji i operatorów, funkcje inline, przestrzenie nazw i operator zasięgu - ::

Rok akademicki 2007/2008, Wykład nr 8 10/32 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 &); };

Rok akademicki 2007/2008, Wykład nr 8 11/32 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; }

Rok akademicki 2007/2008, Wykład nr 8 12/32 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;

Rok akademicki 2007/2008, Wykład nr 8 13/32 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, Mono lub DotGNU C# ma wiele cech wspólnych z językami C++ i Java: obiektowość z hierarchią o jednym elemencie nadrzędnym: kod programu jest zbiorem klas hierarchia dziedziczenia opiera się na istnieniu jednej klasy object (System.object), która stanowi element nadrzędny tej hierarchii odśmiecanie pamięci - zarządzaniem pamięcią zajmuje się środowisko uruchomieniowe typy ogólne: mechanizm podobny do szablonów w C++ Kolejne wersje: C# 2.0 (2005), C# 3.0 (2007)

Rok akademicki 2007/2008, Wykład nr 8 14/32 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();

Rok akademicki 2007/2008, Wykład nr 8 15/32 Fortran (FORmula( TRANslator) Język programowania 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 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 O obecnym zastosowaniu Fortranu decydują: szybkość obliczeń oraz wysoka wydajność kodu generowanego przez kompilatory Inne cechy: znakomita skalowalność, przenośność oprogramowania, dostępność bibliotek do programowanie wieloprocesorowego i równoległego (MPI, PVM)

Rok akademicki 2007/2008, Wykład nr 8 16/32 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 30 20 write (*,*) & "Blad - ten plik nie istnieje. Podaj nazwe jeszcze raz." goto 10 30 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

Rok akademicki 2007/2008, Wykład nr 8 17/32 Pascal 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 Jego zastosowanie w praktyce jest obecnie bardzo ograniczone Język wysokiego poziomu, ogólnego zastosowania, oparty na Algolu Zalety: czytelność, zwięzłość kodu, rygorystyczna kontrola typów danych Jedną z popularniejszych implementacji kompilatorów tego języka był Turbo Pascal firmy Borland International Obecnie w środowiskach Delphi i Kyliks stosowany jest Object Pascal

Rok akademicki 2007/2008, Wykład nr 8 18/32 Turbo Pascal Version 7.0 - Borland International Inc.. (1992)

Rok akademicki 2007/2008, Wykład nr 8 19/32 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.

Rok akademicki 2007/2008, Wykład nr 8 20/32 Java Obiektowy język programowania stworzony przez grupę roboczą pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems Język tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli do postaci wykonywanej przez maszynę wirtualną Podstawowe koncepcje przejęte zostały z języka Smalltalk i C++: obiektowość, niezaleŝność od architektury, sieciowość i obsługa programowania rozproszonego, niezawodność i bezpieczeństwo 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

Rok akademicki 2007/2008, Wykład nr 8 21/32 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 = "81111224350"; } } System.out.println( p.firstname + " " + p.lastname + ", " + p.year + ", PESEL: " + p.pesel );

Rok akademicki 2007/2008, Wykład nr 8 22/32 Środowiska programistyczne - Borland C++ Builder 6

Rok akademicki 2007/2008, Wykład nr 8 23/32 Środowiska programistyczne - Microsoft Visual C++ 6.0

Rok akademicki 2007/2008, Wykład nr 8 24/32 InŜynieria oprogramowania InŜynieria oprogramowania - zajmuje się określaniem i wprowadzaniem do uŝytku rozsądnych zasad i metod inŝynierskich w celu uzyskania, w sposób ekonomiczny niezawodnego i działającego na komputerze oprogramowania Systemy informatyczne: Obszary zainteresowania: niezawodność oprogramowania - jak pisać niezawodne programy zarządzanie projektem oprogramowania produktywność programisty

Rok akademicki 2007/2008, Wykład nr 8 25/32 Cykl Ŝycia oprogramowania Analiza potrzeb (specyfikacja) - zebranie potrzebnych informacji, przyszłych uŝytkowników systemu dla ustalenia zgodności celów systemu z celami uŝytkownika oraz przepływów informacyjnych w zinformatyzowanym systemie

Rok akademicki 2007/2008, Wykład nr 8 26/32 Cykl Ŝycia oprogramowania Projektowanie - wyodrębnienie a następnie opis modelu danych i modelu procesów (statyka i dynamika); propozycje rozwiązania problemów uŝytkownika

Rok akademicki 2007/2008, Wykład nr 8 27/32 Cykl Ŝycia oprogramowania Implementacja - zaprojektowanie struktur danych i napisanie programów realizujących procesy

Rok akademicki 2007/2008, Wykład nr 8 28/32 Cykl Ŝycia oprogramowania Testowanie - wykrywanie i usuwanie błędów zawartych w kodzie systemu informatycznego przy pomocy danych symulowanych i rzeczywistych

Rok akademicki 2007/2008, Wykład nr 8 29/32 Cykl Ŝycia oprogramowania Pielęgnacja (ewolucja) - usuwanie błędów wykrytych w czasie eksploatacji systemu oraz jego udoskonalenie (w moŝliwym zakresie)

Rok akademicki 2007/2008, Wykład nr 8 30/32 Cykl Ŝycia oprogramowania Nakład pracy w cyklu tworzenia oprogramowania 6% 5% 67% 7% 15% Analiza potrzeb Projektowanie Implementacja Testowanie Pielęgnacja

Rok akademicki 2007/2008, Wykład nr 8 31/32 Cykl Ŝycia oprogramowania Źródła błędów 7% 10% 27% 56% Analiza potrzeb Projektowanie Implementacja Inne

Rok akademicki 2007/2008, Wykład nr 8 32/32 Cykl Ŝycia oprogramowania Koszty poprawienia błędów 4% 13% 1% 82% Analiza potrzeb Projektowanie Implementacja Inne

Rok akademicki 2007/2008, Wykład nr 8 33/32 Koniec wykładu nr 8 Dziękuj kuję za uwagę!