1 / 26

Podstawy programowania

Zachodniopomorska Szkoła Biznesu. Podstawy programowania. Wykład 1: Wprowadzenie. dr inż. Michał Pałczyński mpalczynski@wi.ps.pl mpalczynski@zpsb.szczecin.pl. Cele i zakres przedmiotu. Zapoznanie z istotą i metodyką programowania Opanowanie podstawowych technik programowania strukturalnego

verity
Download Presentation

Podstawy programowania

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zachodniopomorska Szkoła Biznesu Podstawy programowania Wykład 1: Wprowadzenie dr inż. Michał Pałczyńskimpalczynski@wi.ps.plmpalczynski@zpsb.szczecin.pl

  2. Cele i zakres przedmiotu • Zapoznanie z istotą i metodyką programowania • Opanowanie podstawowych technik programowania strukturalnego • Nabycie umiejętności zapisu algorytmów w wybranym języku programowania • Nauka czytania i analizy prostych programów w celu przewidywania ich wyniku oraz poszukiwania błędów • Literatura: Jerzy Grębosz - Symfonia C++ (tom I) Podstawy programowania - Wprowadzenie

  3. Co to jest programowanie • Ogólnie:Tworzenie mechanizmów pozwalających na automatyzację pracy danego urządzenia • W informatyce:Proces projektowania, tworzenia i poprawianiakodu źródłowego programu z użyciem wybranego języka programowania Podstawy programowania - Wprowadzenie

  4. Algorytm a program • Algorytm - opis czynności, które mają na celu rozwiązanie postawionego problemu lub realizację zadania. Typowe formy zapisu algorytmów to - opis słowny - lista kroków - schemat blokowy - diagramy NS - pseudokod - kod źródłowy programu • Program - algorytm zapisany w postaci umożliwiającej (zwykle po przetworzeniu) jego automatyczną realizację za pomocą systemu komputerowego.Postać ta zależy od użytego języka programowania. • Kodowanie - proces „tłumaczenia” algorytmu z dowolnej postaci na wybrany język programowania Podstawy programowania - Wprowadzenie

  5. Od problemu do programu • Sformułowanie problemu (definicja zadania) • Analiza problemu • Wybór metody (metod) rozwiązania • Opracowanie algorytmu • Kodowanie (implementacja) programu • Testowanie programu • Sporządzenie dokumentacji Podstawy programowania - Wprowadzenie

  6. Definicje • Język programowania - Zrozumiały dla komputera sposób przekazywania poleceń przez człowieka. • Symbol - najmniejszy element języka • Alfabet - zbiór wszystkich symboli danego języka • Kod źródłowy programu - napis rozumiany jako ciąg symboli należących do alfabetu • Program wykonywalny - kod źródłowy przetworzony na postać zrozumiałą dla komputera • Składnia - kolejność występowania symboli w programie • Gramatyka - zbiór reguł definiujących zbiór wszystkich możliwych ciągów symboli poprawnych z punktu widzenia danego języka • Semantyka - znaczenie poprawnego składniowo ciągu symboli czyli akcja, która została zakodowana Podstawy programowania - Wprowadzenie

  7. Cechy programów • Skuteczność - czy program dla różnych danych wejściowych realizuje postawione zadanie • Dokładność - stopień, w jakim uzyskane rozwiązanie problemu odpowiada postawionemu celowi • Wydajność - odpowiada szybkości działania programu dla określonego sprzętu, na jakim działa.Często jest przedmiotem porównania różnych rozwiązań, czasem odnosi się do wymogów tzw. czasu rzeczywistego • Czytelność - odnosi się do kodu źródłowego programu, oznacza zrozumiałość i przejrzystość kodu • Zużycie zasobów - konieczność dostępu programu do różnych zasobów sprzętowych systemu, zwłaszcza pamięci RAM Podstawy programowania - Wprowadzenie

  8. Klasyfikacje języków programowania • Paradygmat: • Imperatywny, Obiektowy, Funkcyjny, Logiczny • Poziom (generacja) • Asemblery, Języki wysokiego poziomu, Języki 4 generacji • Przeznaczenie • Języki ogólnego przeznaczenia i specjalizowane • Tryb interpretacji • Języki interpretowane i kompilowane Podstawy programowania - Wprowadzenie

  9. Poziom języka:Kod maszynowy i asembler • Zależność od sprzętu (procesora), nieprzenośność • Wysoka wydajność • Duża pracochłonność tworzenia programów Przykładowy fragment Interpretacja w postaci programu w pamięci: symboli asemblera 8D 7D C0 lea edi,[ebp-40h] B9 10 00 00 00 mov ecx,10h B8 CC CC CC CC mov eax,0CCCCCCCCh F3 AB rep dword ptr [edi] C6 05 D8 25 42 00 0A mov byte ptr [c (004225d8)],0Ah A0 D8 25 42 00 mov al,[c (004225d8)] 04 05 add al,5 A2 D8 25 42 00 mov [c (004225d8)],al B8 01 00 00 00 mov eax,1 Podstawy programowania - Wprowadzenie

  10. Poziom języka:Języki wysokiego poziomu (3G) • Dużo większa zrozumiałość tekstu programu dla człowieka niż w przypadku asemblera • Możliwość operowania zarówno na prostych danych, jak i tworzenia złożonych struktur • Konieczność przetworzenia kodu źródłowego na postać wykonywalną (kod maszynowy) • Przenośność • Stosunkowo duża wydajność przy dużo krótszym czasie tworzenia programu niż dla asemblera • Duża uniwersalność w porównaniu z językami 4G Podstawy programowania - Wprowadzenie

  11. Poziom języka:Języki wysokiego poziomu (3G) - c.d. • Poprzedni fragment programu zapisany w języku C++: c=10; c+=5; return 1; • Fragment innego programu w języku Pascal: for i:=1 to N do begin for j:=1 to m do write(macierz[i,j]:4); writeln; end; Podstawy programowania - Wprowadzenie

  12. Poziom języka:Języki wysokiego poziomu (3G) - c.d. • Przykładowe języki wysokiego poziomu to: • - C, C++, C# • - Pascal, Fortran, Cobol, Algol • - Java, Python • - Basic • - PHP • - SmallTalk • - HTML Podstawy programowania - Wprowadzenie

  13. Poziom języka:Języki czwartej generacji (4G) • Instrukcje symbolizują bardzo złożone działania • Bardzo krótki kod źródłowy(kilka linijek programu może odpowiadać nawet tysiącom linii kodu w języku 3G) • Specjalizacja • Przykładowe języki: • SQL • Matlab • TEX, LATEX • PostScript Podstawy programowania - Wprowadzenie

  14. Tryby wykonania programu:Interpretacja i interpreter • Interpreter - system pobierający instrukcje kodu źródłowego, dekodujący je i wykonujący na bieżąco (po jednej). Jego obecność w pamięci jest niezbędna do wykonania programu. • Umożliwia to programiście interaktywną pracę poprzez podawanie pojedynczych rozkazów. • Niska wydajność (konieczność dekodowania poleceń) • Typowe języki interpretowane: • BASIC • Większość języków 4G • Języki skryptowe • Polecenia systemu operacyjnego Podstawy programowania - Wprowadzenie

  15. Tryby wykonania programu:Kompilacja i kompilator • Kompilator - program „tłumaczący” kod źródłowy w całości na postać wykonywalną. Zwykle odbywa się to w 4 etapach: • Analiza leksykalna - kontrola poprawności oraz rozpoznanie poszczególnych symboli (znaków) kodu źródłowego • Analiza składniowa (syntaktyczna) - analiza i kontrola poprawności kodu źródłowego pod względem zgodności z gramatyką języka • Analiza semantyczna - analiza znaczenia (sensu) poszczególnych struktur programu (częściowa kontrola) • Generacja kodu - tworzenie kodu maszynowego, przeznaczonego na konkretną platformę sprzętową, realizującego zapisany program Podstawy programowania - Wprowadzenie

  16. Tryby wykonania programu:Kompilacja i kompilator - c.d. • Wysoka wydajność • Możliwości optymalizacji kodu • Brak możliwości pracy interaktywnej • Postać skompilowana jest samodzielnym programem i do wykonania nie wymaga obecności innych programów • Przykładowe języki kompilowane: • Większość języków wysokiego poziomu, w tym C, C++, Pascal • Szczególnym przypadkiem są koncepcje typu Java lub .NET, gdzie kod źródłowy podlega skompilowaniu do tzw. postaci pośredniej, która do pracy wymaga specjalnego programu zwanego maszyną wirtualną Podstawy programowania - Wprowadzenie

  17. Tryby wykonania programu:Maszyna wirtualna • Nowe koncepcje programowania (np. Java) wprowadziły tryb pracy polegający na: • kompilacji programu do postaci pośredniej,niezrozumiałej bezpośrednio dla komputera ale niezależnej od platformy sprzętowo-programowej • interpretacji i wykonaniu programu w postaci pośredniej przez zainstalowany program, zwany maszyną wirtualną • Języki wykorzystujące ten tryb pracy to: • Java (Java Virtual Machine) • C# (.NET) • Python Podstawy programowania - Wprowadzenie

  18. Paradygmaty programowania • Programowanie imperatywne:Program to sekwencja poleceń wpływających na stan maszyny aż do uzyskania oczekiwanego wyniku • Programowanie obiektowe:Program to zbiór obiektów porozumiewających się ze sobą. Obiekty to dane oraz operacje, jakie można na tych danych wykonać • Programowanie funkcyjne:Program to funkcja, której wynik należy obliczyć. Z reguły bazuje ona na wynikach innych funkcji • Programowanie logiczne:Program to zbiór przesłanek i hipoteza, którą należy udowodnić Podstawy programowania - Wprowadzenie

  19. Języki proceduralne i funkcyjne • Są to podstawowe odmiany języków, pozwalające na programowanie strukturalne. • Procedura - fragment kodu programu opatrzony nazwą, który można wywoływać poprzez jej podanie • Funkcja - od procedury różni ją jedynie fakt zwracania wartości określonego typu • Definiowanie takich struktur pozwala na budowanie większych, złożonych programów z gotowych elementów • Program jest zazwyczaj ciągiem deklaracji oraz instrukcji lub wyrażeń Podstawy programowania - Wprowadzenie

  20. Języki obiektowe • Podstawowymi elementami języka obiektowego są: • Klasa - opis formalny zestawu danych oraz operacji, jakie można wykonać na tych danych • Obiekt - konkretny egzemplarz danej klasy • Możliwości definiowania klas obejmujące: • Zawieranie się innych klas wewnątrz danej klasy • Dziedziczenie, oznaczające zdefiniowanie podklasy powodują, że sposób definiowania struktur danych jest zbliżony do ludzkiego postrzegania obiektów świata rzeczywistego • Duża efektywność tworzenia złożonych systemów • Wymagają specyficznego podejścia przy projektowaniu oprogramowania Podstawy programowania - Wprowadzenie

  21. Dlaczego C++? • Uniwersalność (język ogólnego przeznaczenia) • Możliwość programowania zarówno strukturalnego jak i obiektowego • Język wysokiego poziomu, ale z możliwościami dostępu do zasobów sprzętowych • Wydajność kodu wynikowego • Przenośność (w części niezależnej od systemu) • Liczne biblioteki • Popularność Podstawy programowania - Wprowadzenie

  22. Budowa programu wykonywalnego • Główne typy plików związane z C++: • Moduł źródłowy (.CPP) • Plik nagłówkowy (.H) • Biblioteka statyczna (.LIB) • Skompilowany moduł (.OBJ) • Program wykonywalny (.EXE) (na platformie PC) • Biblioteka dołączana dynamicznie (.DLL) • Zwykle programista tworzy pewną liczbę modułów oraz plików nagłówkowych • Następnie uruchamia on kompilator, który tworzy plik wykonywalny programu Podstawy programowania - Wprowadzenie

  23. Tworzenie programu wykonywalnego .H .H .H .H .CPP .CPP .LIB .LIB Kompilacja Kompilacja .OBJ .OBJ Konsolidacja (linkowanie) .EXE, .LIB lub .DLL Podstawy programowania - Wprowadzenie

  24. Systemy SDK (Sofware Development Kit) • Wspomaganie dla tworzenia złożonych projektów • Kontrola nad procesem tworzenia programu wykonywalnego, prezentacja błędów i ostrzeżeń • Wspomaganie pisania kodu źródłowego • Podświetlanie kolorami poszczególnych symboli • „Podpowiadanie” kolejnych elementów programu • Wyświetlanie informacji o wskazanym symbolu • Kontekstowa pomoc dotycząca wybranego języka programowania • Biblioteki standardowe i dodatkowe (w tym GUI) • Debugger Podstawy programowania - Wprowadzenie

  25. Komunikaty o błędach kompilacji • Podczas kompilacji generowane są komunikaty: • Błędów (Error) - wskazują miejsca w programie niezgodnez alfabetem lub gramatyką języka i niemożność dokonania pełnej kompilacji. • Ostrzeżeń (Warning) - wskazują miejsca, które pomimo poprawności leksykalnej i składniowej, nasuwają przypuszczenie, że programista popełnił błąd semantyczny, a program może działać błędnie • Błąd wskazywany jest za pomocą numeru linii lub bezpośrednio w tekście programu i zwykle pokazuje początek fragmentu, który nie odpowiada specyfikacji języka. W rzeczywistości często zdarza się, że właściwy błąd popełniono znacznie wcześniej. Podstawy programowania - Wprowadzenie

  26. Co to jest Debugger? • Debugger - (ang. bug - pluskwa - błąd) program umożliwiający interaktywne śledzenie wykonania programu znacznie ułatwiając odnalezienie źródeł błędów. Typowe możliwości debuggera: • Ręczne uruchamianie kolejnych instrukcji (trace into, step over) • Ustawianie tzw. pułapek (breakpoints) • Wyświetlanie wartości dowolnych wyrażeń (watch) • Zatrzymanie programu na dowolnym etapie • Użycie debuggera wymaga włączenia do programu wykonywalnego dodatkowych informacji na etapie jego kompilacji Podstawy programowania - Wprowadzenie

More Related