Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1
Materiały do wykładu i ćwiczeń http://moskit.ie.tu.koszalin.pl/~bobby 2
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. 3
Podstawowe pojęcia Algorytm Język programowania Program Kod źródłowy i wynikowy Kompilacja Programowanie strukturalne i obiektowe Środowisko programistyczne 4
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.) Al-Chwarizmi (Algorismus, Algorithmus). Zapis algorytmu: w postaci opisu słownego w postaci pseudokodu w postaci schematu blokowego 5
Schematy blokowe Podstawowe symbole START STOP początek lub koniec algorytmu 1 WE WY 1 łącznik operacja wejścia/wyjścia 6
Schematy blokowe Podstawowe symbole blok operacyjny (wykonanie działania) PRAWDA FAŁSZ TAK NIE blok decyzyjny 7
Przykład schematu blokowego SIEĆ DZIAŁAŃ DIAGRAM PRZEPŁYWU DANYCH Start Wczytaj a, b, c Oblicz d b 2 4ac Założenie: a jest różne od 0 TAK d >= 0 NIE x,12 b d 2a x1, x2 Brak pierwiastków rzeczywistych Stop 8
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). 9
Dlaczego powstały języki programowania? Dodaj a do b, wynik zapamiętaj w c 01001101001 10001011011 11010111001 Język naturalny Język maszynowy c = a + b; Język programowania 10
Języki programowania Niskiego poziomu Wysokiego poziomu asembler Lisp Forth SPECJALIZOWANE SQL Prolog STRUKTURALNE Pascal C Modula Visual Basic SKRYPTOWE Perl OBIEKTOWE C++ Java C# Object Pascal Smalltalk Eiffel JavaScript PHP Ruby Python
Program komputerowy Program to ciąg poleceń (instrukcji) do wykonania dla komputera. Program to algorytm zapisany w języku programowania. Program może występować w dwóch postaciach: kod źródłowy kod wynikowy 12
Kod źródłowy i wynikowy Kod źródłowy to zapis programu komputerowego w pewnym języku programowania. Jest to postać programu zrozumiała dla programisty (bez konieczności jego uruchamiania). Kod wynikowy to rezultat pracy translatora (kompilatora, interpretera), nadający się do bezpośredniego wykonywania przez procesor. 13
Kompilacja Kompilacja to proces przekształcania kodu źródłowego na kod wynikowy (maszynowy). Kompilator to translator języka wysokiego poziomu, którego programy wynikowe mogą być wprowadzone do pamięci i wykonane dopiero po zakończeniu tłumaczenia (w odróżnieniu od interpretera, w którym instrukcje wynikowe są wykonywane na bieżąco). 14
Kompilacja kodu źródłowego w C Kod źródłowy *.C, *.H PREPROCESOR KOMPILATOR Kod wynikowy (pośredni) *.OBJ Biblioteki KONSOLIDATOR (LINKER) Kod wynikowy *.EXE 15
Programowanie strukturalne Modularne Program podzielony jest na niewielkie fragmenty (podprogramy) nazywane procedurami lub funkcjami. Programowanie obiektowe Komponentowe Dane i wykonywane na nich operacje są połączone - tworzą tzw. klasę. obiekt 16
Środowisko programistyczne IDE (Integrated Development Environment) Visual Studio.NET C++ Builder NetBeans Eclipse Delphi PowerBuilder JBuilder Kylix RAD (Rapid Application Development) Szybkie tworzenie aplikacji 17
Etapy tworzenia programu POMYSŁ (koncepcja) KONSERWACJA TESTOWANIE strukturalna obiektowa ANALIZA PROBLEMU C PROJEKT (struktury danych, algorytmy) Pascal Wybór języka programowania DOKUMENTACJA KOMPILACJA KODOWANIE OPTYMALIZACJA KODU (szybkość, rozmiar) 18
Język C Historia języka Zaprojektowany w 1972 w Bell Laboratories (Dennis Ritchie). Zrealizowany pod systemem operacyjnym UNIX dla komputera DEC PDP-11. PDP 11/45 Początkowo był językiem oprogramowania systemowego (powstał jako język do programowania systemu UNIX). Szybko zyskał popularność jako uniwersalny język programowania ogólnego przeznaczenia. 19
Zaglądamy do muzeum 20
Zaglądamy do muzeum 21
Język C Główne cechy język proceduralny (strukturalny) język wysokiego poziomu, ale dość bliski sprzętowi zwięzły i elastyczny mały zestaw instrukcji rozbudowany zestaw operatorów duża przenośność kodu źródłowego przerzuca dużą odpowiedzialności na programistę (np. brak wbudowanej kontroli indeksowania tablic) Język C jest jak ostry nóż: w sprawnych rękach narzędzie proste i użyteczne, które jednak może skaleczyć nowicjusza (Andrew Koenig). 22
Język C Standard języka (ANSI C) tzw. pure C ( czysty język C) Standaryzacja w latach 1983-1988 ANSI (American National Standards Institute) Amerykański Narodowy Instytut Normalizacyjny Standard ANSI X3.159-1989 Programming Language C (1988 rok) 23
Literatura B. Kernighan, D. Ritchie: Język ANSI C, WNT, Warszawa, 2000. J. Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo, Oficyna Kallimach, Kraków, 1999. K. Barteczko: Praktyczne wprowadzenie do programowania obiektowego w języku C++, Wydawnictwo Lupus, Warszawa 1993. B. Stroustrup: Język C++, WNT, Warszawa, 2000. S. Lippman: Podstawy języka C++, WNT, Warszawa, 1997. S. Lippman, J. Lajoie: Podstawy języka C++, WNT, Warszawa 2001. B. Eckel: Thinking in C++. Edycja polska, Wydawnictwo Helion, Gliwice 2002. 24