wyklad1 - Paweł Mazurek

Transkrypt

wyklad1 - Paweł Mazurek
Informatyka
Studia niestacjonarne
EZ 2.
dr inż. Paweł A. Mazurek
Informacje organizacyjne
Forma zajęć
wykład – 2 x 2h na zjazd
laboratorium – 2h na zjazd
Informacje
strony: http://mazurek.pollub.pl
email: [email protected]
konsultacje : sobota 13-14 E414
2
ZMIANY PLANU ZAJĘĆ
3
Wstęp do programowania
Lublin, 2012
Czym jest programowanie?
Programowanie to formułowanie ciągu operacji rozwiązującego dany
problem w postaci akceptowalnej przez komputer.
inaczej:
Proces tworzenia programu (systemu) komputerowego, na który
składają się:
• opracowanie założeń
• kodowanie
• testowanie
Dobre programowanie łączy elementy inżynierii, „rzemiosła” i „sztuki”.
Programowanie - projektowanie, pisanie, modyfikowanie i testowanie
programów.
(IBM Dictionary of Computing)
5
6
Podstawowe pojęcia
• Algorytm
• Język programowania
• Program
• Kod źródłowy i wynikowy
• Kompilacja
• Programowanie strukturalne i obiektowe
• Środowisko programistyczne
7
Algorytm
Algorytm to dokładny, jednoznacznie sformułowany sposób postępowania,
umożliwiający rozwiązanie określonego zadania w skończonej liczbie
kroków.
(zbiór poleceń ze wskazaniem porządku, w jakim mają być realizowane).
Słowo algorytm pochodzi od przydomka matematyka arabskiego (IX w.) AlChwarizmi (Algorismus, Algorithmus).
Zapis algorytmu:
• w postaci opisu słownego
• w postaci pseudokodu
• w postaci schematu blokowego.
Algorytm - uporządkowany zbiór reguł rozwiązania zadania w skończonej liczbie
kroków.
(IBM Dictionary of Computing)
Program - algorytm zapisany w języku programowania.
8
Algorytm
Programista musi znać sposób rozwiązania problemu, który stanowi
przedmiot programu. Ten sposób określa algorytm.
Algorytm określa dane oraz skończony ciąg operacji, jakie należy na
tych danych wykonać, aby rozwiązać dowolny problem z określonej
klasy.
Inaczej mówiąc, algorytm określa dane oraz plan akcji, jakie należy
wykonać, aby osiągnąć założony cel.
9
Algorytm ma być..
1. Poprawny — dla każdego poprawnego zestawu informacji
wejściowych prowadzić do poprawnych rezultatów.
2. Jednoznaczny — każdorazowo, dla każdego poprawnego
zestawu informacji wejściowych, prowadzić do tych
samych rezultatów.
3. Szczegółowy — aby ktoś albo coś wykonujący algorytm
rozumiał dokładnie opisane operacje i potrafił je wykonać.
4. Uniwersalny —
pozwalał na rozwiązanie dowolnego
problem z określonej klasy, a nie dotyczył pewnych
przypadków.
10
Metody zapisu algorytmów
1. Język naturalny (potoczny) określający ciąg kroków
algorytmu.
2. Notacje graficzne,
blokowe.
najpopularniejsze
są
schematy
3. Pseudokod — połączenie języka naturalnego i notacji
matematycznej z elementami języków programowania.
4. Zapis w postaci kodu programu w pewnym języku
programowania.
11
Schemat (diagram) blokowy
SCHEMAT BLOKOWY (ang. flowchart, block diagram, block scheme, flow
diagram)
Sieć działań, czyli graficzna reprezentacja procedury lub programu
sporządzana w celach poglądowych lub jako przedstawienie algorytmu
do zapisania w języku programowania.
Ogólny plan budowy układu elektronicznego sporządzonych za pomocą
umownych symboli z zaznaczeniem połączeń i kierunków przepływu
informacji.
W schemacie blokowym poszczególne operacje przedstawione są za pomocą
odpowiednio połączonych skrzynek (klocków, bloków). Połączenia określają
kolejność i sposób wykonywania operacji realizujących dany algorytm.
W literaturze informatycznej przyjęto pewne standardowe oznaczenia
poszczególnych działań (są to figury geometryczne), ale można również używać
innych oznaczeń (muszą one jednak być takie same dla określonego typu
operacji).
(PN-75/E-01226)
12
Symbole stosowane w diagramach działań programów
Wprowadzanie, wyprowadzanie
wprowadzanie lub (i)
wyprowadzanie danych
Przetwarzanie operacja lub grupa
operacji, w wyniku których ulega
zmianie wartość, postać lub
miejsce zapisu danych
Skrzynka warunkowa sprawdzanie
Decyzja operacja określająca
warunku, np. czy N>0, mają kształt
wybór jednej
rombu. Ze skrzynki wychodzą tylko
z alternatywnych
dwa
połączenia: jedno oznaczone
dróg
działania
TAK, a drugie NIE.
13
Symbole stosowane w diagramach działań programów
Łącznik stronicowy
wejście lub wyjście z wyodrębnionych
fragmentów schematu znajdujących
się na jednej stronie
Łącznik międzystronicowy
wejście lub wyjście z wyodrębnionych
fragmentów schematu znajdujących
się na różnych stronach
14
Symbole stosowane w diagramach działań programów
Przygotowanie
modyfikacja instrukcji lub grupy instrukcji
powodująca zmianę w przebiegu procesu
przetwarzania
Droga przepływu danych
więź operacyjna między poszczególnymi
operacjami procesu przetwarzania
Droga przepływu danych o wskazanym
kierunku
15
Schemat blokowy tworzony jest według
następujących reguł:
1. Schemat blokowy składa się z bloków połączonych
zorientowanymi liniami;
2. Bloki obrazują ciąg operacji; powinien być start i koniec;
3. Zawsze wykonywane są albo wszystkie instrukcje w bloku
albo żadna;
4. Dalsze operacje nie zależą od poprzednich wariantów, chyba
że zależności te zostały przekazane za pomocą danych;
5. Kolejność wykonania operacji jest ściśle określona przez
zorientowane linie łączące poszczególne bloki;
6. Do każdego bloku może prowadzić co najwyżej jedna linia;
7. Linie mogą się łączyć ale nie mogą się rozdzielać (bez bloku
decyzyjnego).
16
Przykładowe diagramy
17
Przykładowe diagramy
18
Soft do diagramów
Do realizacji diagramów graficznych można wykorzystać wiele
programów, w tym nawet proste programy graficzne. Na
laboratorium wykorzystywany będzie darmowy program Diagram
Designer. Aktualną wersje programu można ściągnąć ze strony
projektu: http://meesoft.logicnet.dk/
19
Język programowania
Język programowania to zbiór:
• zasad (tzw. składnia języka)
• instrukcji
• operatorów
• …..
dzięki którym powstaje program komputerowy (a ściślej: kod źródłowy
programu).
Język programowania - język formalny (sztuczny) służący do zapisu
programów komputerowych.
(IBM Dictionary of Computing)
20
Dlaczego powstały języki programowania?
21
Języki programowania – pojęcia podstawowe
Język
ogólna nazwa zdefiniowanego zbioru znaków i symboli oraz
reguł określających sposoby i kolejność ich użycia. Język, który
jest stosowany do przetwarzania algorytmów nosi nazwę języka
algorytmicznego, a przy zastosowaniu go do celów
programowania określony jest jako język programowania.
Ponieważ komputer posługuje się językiem binarnym, tzn.
rozróżnia stany 0:1 - program w języku programowania należy
przetworzyć tak, aby był zrozumiały dla maszyny – zadaniem
tym zajmują się translatory.
Języki programowania – pojęcia podstawowe
Język programowania
zbiór zasad składni, instrukcji, dzięki którym powstaje kod
źródłowy programu. Procesor jest w stanie wykonywać program
w kodzie maszynowym. Jednakże tworzenie programów w tym
języku jest praktycznie niemożliwe. Dlatego programista używa
języka zrozumiałego dla człowieka, który następnie jest
kompilowany bądź interpretowany do postaci maszynowej.
Istnieje wiele rodzajów języków programowania. Można je
podzielić na języki strukturalne i obiektowe. Innym kryterium
podziału jest zastosowanie języków (innych używa się do
tworzenia programów multimedialnych, a innych do obliczeń
numerycznych czy np. aplikacji sieciowych). Niektóre z języków
są bardziej uniwersalne niż inne.
Języki programowania – pojęcia podstawowe
Implementacja
zestaw narzędzi pośredniczący w tłumaczeniu kodu zapisanego
w danym języku na kod maszynowy danego procesora. Każdy
język programowania ma z reguły kilka implementacji
przeznaczonych na różne platformy i robione przez różnych
producentów
24
Języki programowania – pojęcia podstawowe
Kod (plik) źródłowy
program komputerowy w postaci tekstu zawierającego instrukcje
języka programowania. Kod źródłowy jest jedynym formatem
programu czytelnym dla człowieka. Kod źródłowy jest
przetwarzany na kod maszynowy przez program zwany
translatorem.
Kod (plik) obiektowy
przetłumaczona na język niskiego poziomu (asembler) wersja
kodu źródłowego.
25
Języki programowania – pojęcia podstawowe
Translator
służy do wykonania kompilacji lub interpretacji kodu źródłowego
(automatycznego tłumaczenia kodu źródłowego na język
maszynowy).
Standardowym katalogiem, w których umieszcza się pliki
translatora jest katalog BIN w głównym katalogu aplikacji. Aby
proces translacji był możliwy, system operacyjny musi znać
dokładne położenie translatora i jego bibliotek. W tym celu
należy dokonać odpowiedniego wpisu w pliku wsadowym
autoexec.bat (czasami wpis tworzony jest automatycznie
podczas instalacji).
Rozróżnia się dwa rodzaje translatorów: kompilatory i
interpretery.
26
Języki programowania – pojęcia podstawowe
Kompilator
program jednorazowo tłumaczący cały kod źródłowy na język maszynowy i
zapisujący go do pliku wynikowego.
Kolejne uruchomienia programu (pliku wynikowego) nie wymagają
powtórzenia etapu kompilacji – oznacza to, że kompilator nie jest potrzebny
do uruchamiania programu. Typowymi przykładami języków kompilowanych
są: C, C++, Pascal, Fortran;
27
Języki programowania – pojęcia podstawowe
Interpreter
program tłumaczący i wykonujący kod źródłowy linia po linii. W tym
przypadku nie ma pliku wynikowego, a każde uruchomienie wymaga
ponownego przeprowadzenia etapu interpretacji – interpreter jest więc
niezbędny do uruchomienia i wykonania programu. Typowymi przykładami
języków interpretowanych są: Python, MatLab, GNU Plot, HTML, BPL;
28
Języki programowania – pojęcia podstawowe
Biblioteka statyczna
rodzaj biblioteki, która łączona jest z programem w etapie
konsolidacji. W systemach z rodziny Windows zwykło nadawać
się im rozszerzenia .lib lub .o, natomiast w systemach z rodziny
Unix są to zwykle .a lub .o. Biblioteki statyczne, w
przeciwieństwie do bibliotek dynamicznych, nie wymagają
pomocy systemu operacyjnego komputera – po połączeniu z
danym programem są od razu gotowe do użycia.
Biblioteka dynamiczna
rodzaj biblioteki, która łączona jest z programem dopiero w
momencie jego wykonania. Aby tego dokonać system
operacyjny komputera musi posiadać pewne funkcje, które
umożliwiają łączenie dynamiczne. W systemach Windows
biblioteki dynamiczne mają zazwyczaj rozszerzenie .dll
29
Języki programowania – pojęcia podstawowe
Edytor kodu
służy do pisania tekstu kodu źródłowego. Edytory mogą być
uniwersalne (np. ConText, Amigo, Crimson, Codex, EditPlus,
UltraEdit, Editeur, …) lub też zintegrowane z konkretną
implementacją języka (np. Borland Delphi, Compaq Visual
Fortran …). Edytory uniwersalne pozwalają na podłączanie
kompilatorów jednego lub wielu języków i są rozprowadzane
jako oddzielne programy. Podłączenie konkretnego kompilatora
odbywa się poprzez odpowiednią definicję opcji programu.
Zaletą edytorów jest to, że poprawiają znacznie przejrzystość i
wygodę tworzenia kodu, a także „pomagają” pisać kod
źródłowy programu wyróżniając, zazwyczaj kolorem lub
wytłuszczoną czcionką, słowa kluczowe danego języka – łatwo
wówczas zauważyć błąd już na etapie jego popełniania.
30
Języki programowania – pojęcia podstawowe
Debugger (analizator kodu)
służy do analizy poprawności tworzonego kodu źródłowego i
stanowi zazwyczaj integralną część translatora (może być to
również oddzielny program). Podczas analizy kodu źródłowego
generowane są informacje o błędach – czasami wymaga to
podania dodatkowych opcji kompilacji – na bieżąco (analizator
zatrzymuje się w miejscu wykrycia błędu) lub też w postaci
końcowego raportu. Oprócz sygnałów o błędach, analizatory
podają również tzw. ostrzeżenia, tzn. informacje o znalezieniu
niejasności w kodzie lub o wykryciu miejsca potencjalnie
niebezpiecznego. Typowym ostrzeżeniem jest wiadomość o
wykryciu deklaracji zmiennej, która nie została nigdzie w kodzie
wykorzystana.
31
Języki programowania – pojęcia podstawowe
Edytor formularzy
służy do budowy okien widzianych przez użytkownika po
uruchomieniu programu (formularzy). Element ten występuje
jedynie w językach wizualnych, takich jak Visual Basic, Delphi,
Compaq Visual Fortan i innych. W różnych implementacjach
języków, edytor formularzy może być dostępny bezpośrednio
po uruchomieniu programu lub też po wybraniu odpowiedniej
opcji z menu. Zaletą stosowania tego narzędzia jest łatwość
tworzenia dowolnie skomplikowanych okien i określania ich
właściwości. Nie traci się wówczas czasu na pisanie elementów
kodu, odpowiedzialnych za tworzenie się formularzy i ich
elementów, a programista skupia się jedynie na realizacji
założonego algorytmu. Brak edytora formularzy nie przesądza
o tym, że nie można tworzyć standardowych, „okienkowych”
aplikacji – wygląd definiowany jest wówczas przez programistę
w kodzie źródłowym.
32
Języki programowania – pojęcia podstawowe
Menadżer projektu
służy do zarządzania modułami i plikami projektu. Rzadko
bowiem tak się zdarza, że cały kod źródłowy zawarty jest w
jednym pliku – przeważnie jest ich wiele i zawierają nie tylko
poszczególne moduły kodu, ale również biblioteki, różne pliki
wsadowe, grafikę i pliki multimedialne. Zazwyczaj istnieje
główny plik projektu zawierający wszystkie potrzebne do
kompilacji informacje. Z pomocą menadżera łatwo można
modyfikować zawartość i strukturę projektu.
Narzędzia dodatkowe
służą do tworzenia systemu pomocy, ikon i kursorów,
programów instalacyjnych. Ilość narzędzi i poziom ich
zaawansowania zależy od implementacji języka.
33
Języki programowania – pojęcia podstawowe
System pomocy
służy
do
uzyskiwania
informacji
o
środowisku
programistycznym, zasadach jego użytkowania, elementach
języka (wraz z przykładami), rodzaju licencji, autorach i
kontaktach. Zależnie od implementacji języka oraz jego
rodzaju pomoc może być mniej lub bardziej rozwinięta. Dobrze
zorganizowanie, obszerne systemy pomocy zawierają często
kompendium wiedzy na temat danego języka programowania.
34
Języki programowania – pojęcia podstawowe
Etapy kompilacji
Etap preprocesingu – obejmuje on odczyt i analizę kodu źródłowego na podstawie
reguł danego języka. W tym etapie dokonywana jest:
• analiza leksykalna – rozdzielenie kodu źródłowego na elementarne jednostki
języka programowania zwane tokenami;
• analiza składniowa – kontrola, czy ułożenie tokenów nie łamie reguł danego
języka programowania (czy kod źródłowy był poprawny składniowo);
• analiza semantyczna – określenie znaczenia poszczególnych tokenów.
Przykładem może być sprawdzanie, czy nie występuje niezgodność typów.
Etap kompilacji – służy do przetłumaczenia kodu źródłowego na kod obiektowy. W
przypadku jednoczesnej kompilacji wielu plików źródłowych, każdy z nich
przetworzony jest na oddzielny kod obiektowy. Na tym etapie nie są analizowane
zależności pomiędzy poszczególnymi segmentami programu;
Etap konsolidacji – służy do połączenia wszystkich plików obiektowych oraz
dodatkowych bibliotek statycznych w jeden kod wynikowy. Na tym etapie
sprawdzane są zależności pomiędzy poszczególnymi segmentami programu. Dodanie
biblioteki statycznej wymaga podania odpowiednich opcji kompilacji. Po konsolidacji
program jest gotowy do uruchomienia.
35
Języki programowania – pojęcia podstawowe
Nieformalna klasyfikacja języków
Języki 1 generacji – kod maszynowy
Języki 2 generacji – asemblery
Języki 3 generacji – języki wysokiego poziomu
Języki 4 generacji – (generatory aplikacji)
aplikacji)
Komputery 5 generacji
Języki skryptowe
Języki obsługi baz danych
Języki opisu dokumentu
Meta języki (opisu innych języków)
języków)
Istnieje ponad 2000 języków programowania
36
Języki programowania – pojęcia podstawowe
Język maszynowy (kod maszynowy)
język programowania, w którym zapis programu wymaga
instrukcji bezpośrednio jako liczb, które są rozkazami i
danymi bezpośrednio pobieranymi przez procesor
wykonujący ten program.
Kod maszynowy to ciąg rozkazów procesora, inaczej instrukcji
maszynowych oraz danych, na których te rozkazy operują.
Rozkazy i dane zapisywane są w postaci liczb binarnych.
Każdy procesor ma swoją własną listę rozkazów, rozkazy te
zwykle różnią się od rozkazów innych procesorów.
Kod maszynowy jest dedykowany dla procesora danego typu.
Procesor wykonuje tylko kod maszynowy załadowany do
pamięci operacyjnej komputera (ROM lub RAM).
37
Kod maszynowy to jedyna postać programu komputerowego, która jest
zrozumiała dla komputera i może być przez niego wykonana.
Kod maszynowy to ciąg rozkazów zrozumiałych dla procesora. Procesor pobiera,
dekoduje i wykonuje te rozkazy. Rozkazy pobierane są z komórek pamięci
operacyjnej, gdzie są zapisane w postaci binarnej.
38
Języki programowania – pojęcia podstawowe
Asemblery
rodzina języków programowania niskiego poziomu, w których
zasadniczo jedno polecenie odpowiada jednemu rozkazowi
procesora. Są to języki powstałe na bazie języka maszynowego
poprzez zastąpienie liczb odpowiadających fragmentom
rozkazów
kodu
maszynowego
ich
symbolicznymi
odpowiednikami. Dzięki zamianie liczb na tzw. mnemoniki
można pisać programy w miarę zrozumiałe dla człowieka, a
jednocześnie bezpośrednio tłumaczone na kod maszynowy
procesora, co pozwala zapewnić duży stopień kontroli
programisty nad zachowaniem procesora.
Pierwszym asemblerem był skonstruowany przez Konrada Zuse
- układ
elektromechaniczny
przygotowania taśmy perforowanej z
dodanie
dwóch
liczb:
programem
dla maszyny Z4. Pozwalał na wprowadzanie i odczyt
LD
ax es
LD bx $FFC1
39
rozkazów i adresów w sposób zrozumiały dla człowieka.
ADD ax es
40
Języki programowania – pojęcia podstawowe
Język wysokiego poziomu
typ języka programowania, którego składnia i słowa kluczowe mają
maksymalnie ułatwić rozumienie kodu programu dla człowieka dystansując
się od sprzętowych niuansów. Kod napisany w języku wysokiego poziomu
nie jest bezpośrednio „zrozumiały” dla komputera – większość kodu
stanowią tak naprawdę normalne słowa, np. w języku angielskim. Aby
umożliwić wykonanie programu napisanego w tym języku należy dokonać
kompilacji. Programista języków wysokiego poziomu uwolniony jest od
konieczności znajomości rejestrów i adresów fizycznych pamięci
41
Języki programowania – pojęcia podstawowe
Typy języków wysokiego poziomu
Języki deklaratywne - składają się z opisowych stwierdzeń dotyczących
danych i relacji pomiędzy danymi
danymi..
Języki proceduralne - określające procedury obliczeniowe
obliczeniowe..
Języki funkcyjne - stosują funkcje do kolejnych wartości oraz funkcje
(operatory) do manipulacji funkcjami
funkcjami..
Języki definicyjne - kolejne podstawienia interpretowane są jako definicje
definicje..
Języki logiczne - oparte na logice matematycznej, programy traktowane są
jako formuły logiczne
logiczne..
Języki ograniczeń (constraint) - problemy są w nich specyfikowane nie w
sposób jawny lecz przez podanie zbioru ograniczeń
ograniczeń..
Języki obiektowo zorientowane - dane i procedury tworzą obiekty
obiekty..
Języki programowania współbieżnego - dla komputerów o wielu
procesorach..
procesorach
Języki „przepływu danych” (dataflow) - dla komputerów o
eksperymentalnej architekturze, sterowanych nie tyle kolejnymi
instrukcjami co przepływem danych
danych..
42
Języki programowania – pojęcia podstawowe
Języki IV generacji
język programowania, pozwalający przy użyciu krótkich
instrukcji stworzyć program, którego napisanie w językach
niższej generacji wymaga użycia setek lub tysięcy razy
większej liczby wierszy programu źródłowego.
Innym określeniem języków 4 generacji jest Generatory
aplikacji.
Najważniejsze zastosowania:
Multimedia (tworzenie prezentacji multimedialnych)
Bazy danych (budowanie systemów baz danych)
Obliczenia i modelowanie matematyczne
Symulacje komputerowe
43
Języki programowania – pojęcia podstawowe
Komputery (Języki) V Generacji
Komputery V generacji mają (z założenia)
wykorzystywać język naturalny i mechanizmy
sztucznej inteligencji do autoprogramowania
Język The Last One (ostatni) napisany w
1982
44
Języki programowania – pojęcia podstawowe
Darmowe środowiska programistyczne
Dev-C++
DevKDevelop
Kylix
Rapid--Q
Rapid
Lazarus
Visual Basic
45
Języki programowania – pojęcia podstawowe
Dev--C++
Dev
Zintegrowane środowisko programistyczne (IDE),
umożliwiające tworzenie programów w języku C/C++
działających w systemie Windows lub DOS.
DOS. W
zestawie umieszczono naprawdę wygodny edytor,
pozwalający na kontrolę nawet dużego projektu,
szybki i dający niewielki kod kompilator, dość dobry
debuger i kilka innych przydatnych narzędzi, m.in.
in.
moduł do tworzenia instalacyjnych wersji programów
programów..
Języki programowania – pojęcia podstawowe
Interfejs Dev-C++
47
Języki programowania – pojęcia podstawowe
KDevelop
Jest to opensource'owy produkt promowany przez firmę
TrollTech, twórcę biblioteki komponentów Qt (podstawę
środowiska KDE).
KDE). KDevelop wspomaga programistów
piszących w C++ i jest równie elastyczny w konfiguracji, co
wygodny podczas pracy
pracy.. KDevelop udostępnia (lub
wykorzystuje dostępne w systemie) wszystkie potrzebne
narzędzia, takie jak solidny edytor kodu (oparty o KWrite),
narzędzie do tworzenia GUI (QtDesigner), kompilator
(GCC), moduł współpracy z narzędziem kontroli wersji
(CVS)..
(CVS)
Języki programowania – pojęcia podstawowe
Interfejs KDevelop
49
Języki programowania – pojęcia podstawowe
Kylix
Zintegrowane środowisko dla programistów (IDE)
pracujące pod Linuksem produkowane przez firmę
Borland.. Pozwala na pisanie aplikacji w języku Delphi
Borland
(Obiect Pascal) i korzystanie z komponentów CLX
CLX.. Od
wersji 3 (2003
2003)) umożliwia także pisanie aplikacji w C++
C++..
Aplikacje CLX są kompatybilne na poziomie źródeł ze
środowiskiem
Delphi,
dzięki
czemu
ułatwiono
przenoszenie tych aplikacji do systemu Windows.
Windows.
Języki programowania – pojęcia podstawowe
RapidQ
RapidQ to kompilator języka podobnego do Basica w
wersji dla Windows i Linuxa (a także dla innych Unixów)
Unixów)..
Kompilator generuje dość duże pliki.
pliki. Kompiluje na
zasadzie kompilatora Delphi, czyli jest generowany plik
EXE..
EXE
Języki programowania – pojęcia podstawowe
Interfejs RapidQ
52
Języki programowania – pojęcia podstawowe
Lazarus
Lazarus to nakładka na kompilator Free Pascal - wzorowane na
Delphi wizualne środowisko programistyczne oraz biblioteka
Lazarus Component Library (LCL) - odpowiednik VCL
VCL.. Program
napisany z użyciem LCL można bez żadnych zmian
skompilować dla dowolnego obsługiwanego procesora, systemu
operacyjnego i interfejsu okienek
okienek..
Projekt Lazarus rozpoczęto w lutym 1999
1999..
Cliff Baeseman
Shane Miller
Michael A. Hess
Języki programowania – pojęcia podstawowe
www.lazarus.freepascal.org
Najnowszy (76.2 MB)
Lazarus 0.9.30.2
54
Języki programowania – pojęcia podstawowe
Visual Basic
Jest to język i narzędzie programowania firmy Microsoft
Microsoft..
Składnia
jest
oparta
na
języku
BASIC
ale
unowocześniona..
unowocześniona
Zawiera kilkaset instrukcji, funkcji i słów kluczowych
kluczowych.. Nie
jest językiem w pełni obiektowym gdyż nie udostępnia,
np.
np. możliwości dziedziczenia czy polimorfizmu
polimorfizmu..
Wykorzystuje technologię ActiveX
ActiveX..
Języki programowania – pojęcia podstawowe
Interfejs Visual Basic
56
DELPHI
Środowisko programisty
Zestaw programów narzędziowych wspomagających tworzenie
kodu.
Najlepsze edytory, poza kolorowaniem kodu na bieżąco interpretują
pisany kod, wyszukują błędy, pozwalają unikać przypadkowych
błędów składniowych i literowych, oferują gotowe fragmenty kodu
(snippets)
58
W epoce DOS-u tworzenie aplikacji za pomocą języka programowania
takiego jak Turbo Pascal zajmowało bardzo dużo czasu. Dużą jego część
poświęcano na tworzenie interfejsu użytkownika.
W momencie pojawienia się systemu Windows programista dostał do
ręki nowe narzędzia. Mógł wykorzystać gotowe funkcje, które tworzyły
podstawowe elementy aplikacji , takie jak: okna, przyciski, grupy opcji
itp. Niestety, programowanie w WinAPI było zadaniem bardzo trudnym
i wymagało sporej wiedzy i umiejętności.
Wkrótce jednak pojawiło się rozwiązanie: Rapid Application
Development (RAD)(szybkie tworzenie aplikacji). Narzędzia te
oferowały już na starcie gotowe okno aplikacji. Aby dodać do niego
jakieś elementy, np. przyciski, wystarczy przeciągnąć je myszką z paska
narzędzi. Za pomocą myszki można dowolnie zmienić ich położenie i
rozmiary.
59
Borland Delphi jest narzędziem RAD umożliwiającym szybkie
tworzenie aplikacji działających w systemie Windows. Ma dwie
podstawowe cechy:
jest wizualny tzn. pozwala przenosić myszką elementy aplikacji (np.
przyciski) i układać je w oknach.
jest obiektowy tzn. oparty jest na obiektowej wersji Pascala (Object
Pascal).
Doświadczenie zdobyte podczas programowania w Borland Pascalu
będzie w Delphi owocować i ułatwi pracę z nowym narzędziem. Język
Object Pascal wchodzący w skład Delphi jest zgodny z językiem
Borland/Turbo Pascal . W czasie programowania nie można odwoływać
się do takich modułów jak: Crt, DOS, Graph itp. Ze starej biblioteki
zachowano jedynie moduł System, który został znacznie rozwinięty.
Istnieją też różnice w nazwie funkcji, np. zamiast Close, jest CloseFile.
W Object Pascalu został wprowadzony nowy model typu obiektowego
definiowany za pomocą słowa kluczowego class.
60
Tworzenie aplikacji w Delphi jest dwutorowe (ang. two-way-tools).
Pierwszym torem są narzędzia wizualne, drugim - pisanie kodu
źródłowego. Najważniejsze jest to, że wszystko co zrobisz za pomocą
narzędzi wizualnych jest automatycznie uwzględniane w kodzie
źródłowym. Obydwie drogi są równie ważne: narzędzia wizualne służą
do szybkiego projektowania interfejsu użytkownika, jednak aby
aplikacja robiła coś konkretnego, musimy to napisać za pomocą języka
Object Pascal.
61
Historia środowiska programistycznego Delphi
Delphi, opracowane przez firmę Borland, jest następcą środowiska Turbo Pascal,
będącego połączeniem kompilatora języka Pascal ze środowiskiem edycyjnym.
Pierwsza wersja (16-bitowa) Delphi ukazała się w 1995 roku i przeznaczona była do
pracy w Microsoft Windows 3.1. Było to jedno z pierwszych narzędzi typu Rapid
Application Development
Kolejna wersja – Delphi 2 – ukazała się w roku 1996 i była środowiskiem 32-bitowym,
generującym kod dla Microsoft Windows 95.
Delphi 3 ukazało się w roku 1997 i wprowadziło do środowiska następujące elementy:
pakiety, rozproszoną obsługę baz danych, wspomaganie tworzenia aplikacji
internetowych, wspomaganie tworzenia kontrolek ActiveX.
Delphi 4 dodało wiele nowych usprawnień IDE (jak na przykład możliwość dokowania
okien), oraz usprawnienia w samym języku programowania.
W wersji 6 pojawiła się m.in. możliwość tworzenia przeźroczystych okien (Windows
2k/XP).
Wersja 7 wniosła nowy komponent pozwalający na używanie stylów wizualnych z
Windows XP w tworzonych programach. W roku 2001 powstała edycja przeznaczona
dla Linuksa nazwana Kylix.
Wersja 8 (rok 2003) wprowadziła Delphi w środowisko .NET, po raz pierwszy od
powstania uległo też zmianie IDE, upodobniając się do Microsoft Visual Studio .NET.
W edycji 2005, oprócz zintegrowania w jednym środowisku kompilatorów dla języków
Delphi, Delphi.NET oraz C#, wprowadzono dalsze udoskonalenia środowiska
62
Historia środowiska programistycznego Delphi
Na początku 2006 roku firma Borland wystawiła wszystkie przygotowane przez nią
środowiska programistyczne – w tym również Delphi – na sprzedaż. Pomimo
zapowiedzi sprzedaży w roku 2006 wprowadzono wersję Borland Turbo znana
jako Borland Turbo Delphi /Borland Turbo C# /Borland Turbo C++ / Borland Turbo
Delphi for .NET
14 listopada 2006 – powstała firma-córka CodeGear, która została wyodrębniona z
firmy Borland.
19 marca 2007 – powstało CodeGear Delphi 2007 for Vista and AJAX.
5 września 2007 – powstało CodeGear RAD Studio 2007 (Delphi, Delphi for .NET
oraz C++Builder )
8 marca 2008 – pojawiło się CodeGear Delphi/400 for PHP
14 kwietnia 2008 – pojawiło się CodeGear Delphi for PHP
7 maja 2008 roku firma CodeGear przestała być własnością Borlanda. CodeGear
została sprzedana za kwotę 23 milionów dolarów firmie Embarcadero.
63
Historia środowiska programistycznego Delphi
Delphi Prism – jest to wtyczka do IDE Microsoft Visual Studio, wraz z kompilatorem
– stanowiący nowe środowisko programistyczne. Delphi Prism używa
udoskonalonego kompilatora Oxygene firmy RemObjects. Pozwala na pisanie
aplikacji .NET dla Windows, Linux i Mac. Nowy kompilator jest oczekiwaną
alternatywą dla języka C# – obsługuje .NET 1.1, 2.0, 3.0, 3.5, WinForms, WPF,
Silverlight, ASP.NET i LINQ. Nie obsługuje Compact Framework. W języku Delphi
Prism nie można używać już VCL.NET.
Delphi 2009 – Delphi dla Windows obsługujące Win32. CodeGear oficjalnie
zapowiedziało, że ma zamiar standaryzować i rozwijać język Delphi.
Delphi 2010 - wydano 25 sierpnia 2009 roku. Jest to druga wersja środowiska
Delphi, która obsługuje Unicode. Nie niesie dużych zmian w stosunku do Delphi
2009. Delphi 2010 posiada wsparcie dla Windows 7, oraz dla ekranów dotykowych i
gestów (nowe kontrolki VCL)
Delphi XE - wydano 30 sierpnia 2010 roku. Dodano kilka narzędzi do środowiska
takich jak AQtime, CodeSite, Beyond Compare, zapewniono integrację z Subversion
w IDE, dodano kontrolki do współpracy z Windows Azure oraz do przetwarzania w
chmurze obliczeniowej Amazon EC2, oraz dokonano kilku ulepszeń w języku.
Delphi XE Starter Edition - edycja Delphi XE udostępniona 27 stycznia 2011,
skierowana dla hobbystów, studentów i małych firm, zatrudniających do pięciu
programistów - dostępna za niższą cenę (około 190 $)
64
DELPHI 7 – wersja softu który jest w lab.
Personal (Standard, Desktop) – wersja przeznaczona do
konstruowania autonomicznych (niezależnych) programów
użytkowych dla środowiska Windows, która zawiera ponad 85
gotowych do użycia komponentów i liczne przykładowe
programy okienkowe, polecana przede wszystkim osobom
początkującym w wizualnym programowaniu.
Professional - wersja przeznaczona dla profesjonalistów z
pełnym zintegrowanym środowiskiem programowania i
komponentami internetowymi (łączna liczba komponentów
przekracza 150), która dodatkowo umożliwia przygotowanie
programów dla loklanych sieci komputerowych i do
wielostanowiskowego obsługiwania baz danych.
65
DELPHI
Enterprise - wersja z ponad 200 komponentami, umożliwia
tworzenie programów rozproszonych, typu klient-serwer (w
sieciach komputerowych składających się z komputera
centralnego - serwera - oraz podporządkowanych mu stacji
roboczych - klientów) i programów przeznaczonych dla
Internetu, w tym typu e-commerce.
Architect - jw. + narzędzia Bold for Delphi firmy BoldSoft (do
tworzenia biznesowych aplikacji wielowarstwowych)
66
67
Download Delphi 7 Personal
Delphi 7 Personal
~ 54 MB
Alternatywne (i nowsze zarazem) wersje:
Delphi 2005 (2007, 2009, 2010)
Triale ~ 280 MB
Turbo Delphi ~ 340 MB
Wersje delphi na licencji Emabarcadero…
68
http://www.embarcadero.com/products/delphi
69
Embarcadero Delphi XE jest kompletnym pakietem do
szybkiego tworzenia rozbudowanych aplikacji Windows.
Pozwala znacznie ograniczyć czas pisania kodu i nawet
kilkakrotnie skrócić czas dostarczania aplikacji dzięki
wykorzystaniu bogatej biblioteki komponentów oraz w pełni
dwukierunkowego środowiska RAD IDE. Narzędzie pozwala
na wydajne tworzenie rozwiązań dla wielu różnych
systemów Windows korzystających z różnych platform
bazodanowych, w tym rozbudowanych aplikacji GUI,
interaktywnych
aplikacji
dotykowych,
kiosków
multimedialnych
oraz
wielowarstwowych
aplikacji
bazodanowych, Internetowych i programowania "w
chmurze".
70
Delphi XE pozwala na:
Szybsze tworzenie aplikacji dzięki gotowym do użycia komponentom oraz
wizualnej technice "drag-and-drop"
Tworzenie aplikacji które wymagają szybkiej wizualizacji danych, bieżącego
kontrolowania urządzeń (tryb czasu rzeczywistego), manipulowania obiektami i
grafiką 3D, tworzenia modeli finansowych
Otwarcie aplikacji na przyszłe wyzwania - tworzenie natywnych połączeń z 9
głównymi bazami danych wsparte wykorzystaniem komponentów do "łączenia w
chmurze"
Wykorzystanie tysięcy darmowych i komercyjnych komponentów wspierających
programowanie
interfejsów
użytkownika,
baz
danych,
rozwiązań
wielowarstwowych, internetowych i wielu innych
Dostęp do starszych wersji środowiska
Kupując Delphi XE użytkownik dostaje dostęp do wcześniejszych wersji
środowiska:
Delphi 7
Delphi 2007 Delphi 2009 Delphi 2010
Delphi XE jest dostępne w 3 wersjach: Professional, Enterprise i Architect.
71
Informacje dodatkowe
http://download.4programmers.net/Delphi
http://4programmers.net/Delphi
72
http://www.borland.com/delphi/
http://www.borland.pl/delphi/
http://www.swissdelphicenter.ch/en/ – baza wiedzy na temat
Delphi (po angielsku)
http://delphi.icm.edu.pl/ – komponenty dla Kyliksa oraz
wszystkich wersji Delphi i C++ Buildera
http://delphi.about.com/ – mnóstwo ciekawych kawałków kodu
oraz opis niektórych wersji Delphi
http://www.unit1.pl/ – strona poświęcona programowaniu w
Delphi
http://www.delphifaq.net/ - mnóstwo ciekawych porad i kawałków
kodu w Delphi
73
Jak znaleźć? …a
od czego Google ??
74
Lazarus – alternatywne środowisko dla chętnych !!
Przy instalowaniu
umieszczać program w
katalogu BEZ SPACJI
75
Lazarus
Uprawnienia administracyjne
Firewall
76
Lazarus
77

Podobne dokumenty