P O D S T A W Y P R O G R A M O W A N I A · komputer · program – obliczenia – decyzje – przetwarzanie danych – wizualizacja – sterowanie · program zapis algorytmu · algorytm – obliczeniowy – decyzyjny – przetwarzania danych – sterowania
Problem Algorytm Rozwiązanie Program Komputer Dane Problem Sygnały Problem Algorytm Program Komputer Rozwiązanie Dane Problem Algorytm Sygnały Sterujące Program Komputer Dane Pomiarowe Raporty
Problem Algorytm Program Komputer Użytkownik Dane Rezultaty
· dane i struktury danych – rodzaje danych : liczbowe, tekstowe, graficzne, dźwiękowe, ... – typy danych : • sposób reprezentacji • rola w programie
Alfa Cena CenaMleka Imie_Ojca · zmienne { nazwa , wartość } i j x y x1 k125 Alfa Cena CenaMleka Imie_Ojca x := 1 x 1 x = 1 x = x + 1 xt+1 = xt + 1 x = 7 y = -12 x = y + 5 x = y – x + 1 – wartość jest zapisywana w pewnym obszarze pamięci komputera
– tablice jednowymiarowe struktury danych – tablice jednowymiarowe d0 d1 d2 . . . dn 0 1 2 n W jednowymiarowe : W [ 4 ] W [ i ]
– tablice wielowymiarowe D 0 1 k D00 D01 . . . D0k D10 D11 . . . D1k Dw0 Dw1 . . . Dwk . 1 w dwuwymiarowe : D[ wie ] [ kol ] D[ 5 ] [ 2 ] D[ a ] [ b ] trójwymiarowe : T [ mat ] [ wie ] [ kol ] T [ 2 ] [ 5 ] [ 12 ] . . . .
• listy D1 D0 Dn jednokierunkowa Dm dwukierunkowa
• stos, kolejka • rekord Kowalski Stanisław 88311201234 42547,54 Podatnik Nazwisko Imię Pesel DochódRoczny Kowalski Stanisław 88311201234 42547,54 PodatnikAktualny . Nazwisko PodatnikAktualny . DochódRoczny • tablice rekordów Podatnicy [ 12435 ] . Nazwisko Podatnicy [ 32343 ] . Pesel
· zapisywanie algorytmów pisanie programów – język naturalny – notacja graficzna schematy, diagramy – języki programowania · schematy blokowe ( sieci działań ) (PN-75/E-01226) Stop k Start NIE Warunek TAK Operacja k
Start Stop Wykonaj wszystkie operacje programu
– program liniowy : x - 5 y = x2 + 1 y =( x - 5 ) /( x * x + 1 ) Start wczytaj wartość x wyprowadź wartość y Start Stop y = x y = y – 5 z = x z = z * x z = z + 1 y = y / z y =( x - 5 ) /( x * x + 1 )
– program z rozgałęzieniami : MAX ( a, b, c ) Start wczytaj a, b, c T N a > b N N a > c b > c T T wyprowadź a wyprowadź c wyprowadź b Stop
ustalenie wartości początkowej licznika powtórzeń N – pętla ( iteracja ) • pętla wyliczeniowa ustalenie wartości początkowej licznika powtórzeń N czy licznik powtórzeń N osiągnął wartość graniczną NIE TAK wykonanie treści pętli zmiana wartości licznika powtórzeń N
ai S = a1 + a2 + . . . + an Kolejność danych: n, a1, a2, . . . an Start n ai S = i = 1 S = 0 a1 + a2 + . . . + an wczytaj n Kolejność danych: n, a1, a2, . . . an NIE n > 0 TAK wczytaj a S = S + a n = n – 1 Stop wyprowadź S
• pętla warunkowa ustalenie wartości początkowych czy warunek zakończenia jest spełniony T N wykonanie treści pętli
Zgadnij liczbę. Start X = losuj ( 1, 10 ) K = 0 , Z = 0 T X == Z N wyświetl tekst " Zgadnij liczbę od 1 do 10 : " K = K + 1 wczytaj Z wyświetl K Stop
· programowanie strukturalne struktury sterowania : – predykat ( blok decyzyjny, warunkowy ) W – iteracja ( pętla ) War_Pocz Treść W
wczytywanie danych wejściowych wyprowadzanie wyników · modularyzacja programu Start wczytywanie danych wejściowych przetwarzanie danych wyprowadzanie wyników Stop
Start wczytaj polecenie wykonaj polecenie N czy polecenie zakończenia T Stop
– imperatywne języki programowania – deklaratywne języki programowania A = { a1 , a2 , . . . , an } alfabet W = A* zbiór ciągów L W zbiór słów języka – analiza leksykalna – analiza składniowa – analiza semantyczna – imperatywne języki programowania – deklaratywne języki programowania – język wewnętrzny, asembler – języki programowania wysokiego poziomu
przekład w języku wewnętrznym program w języku wysokiego poziomu translator ( kompilator ) przekład w języku wewnętrznym interpreter kompilacja interpretacja
– początki języków programowania : FORTRAN COBOL ALGOL – języki programowania strukturalnego : C Pascal Ada PL/1 – języki programowania obiektowego : C++ C# Object Pacal Java – języki opisu dokumentów i stron www : HTML XML PHP JAVA SCRIPT – języki specjalizowane LISP SIMULA Prolog Clipper