1 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
2 Problem Algorytm Rozwiązanie Program Komputer Dane Problem SygnałyProblem Algorytm Program Komputer Rozwiązanie Dane Problem Algorytm Sygnały Sterujące Program Komputer Dane Pomiarowe Raporty
3 Problem Algorytm Program Komputer Użytkownik Dane Rezultaty
4 · dane i struktury danych– rodzaje danych : liczbowe, tekstowe, graficzne, dźwiękowe, ... – typy danych : • sposób reprezentacji • rola w programie
5 Alfa Cena CenaMleka Imie_Ojca· zmienne { nazwa , wartość } i j x y x1 k125 Alfa Cena CenaMleka Imie_Ojca x := x x = 1 x = x xt+1 = xt + 1 x = y = -12 x = y + 5 x = y – x + 1 – wartość jest zapisywana w pewnym obszarze pamięci komputera
6 – tablice jednowymiarowe struktury danych – tablice jednowymiarowe d0 d1 d dn n W jednowymiarowe : W [ 4 ] W [ i ]
7 – tablice wielowymiaroweD k D00 D D0k D10 D D1k Dw0 Dw Dwk . 1 w dwuwymiarowe : D[ wie ] [ kol ] D[ 5 ] [ 2 ] D[ a ] [ b ] trójwymiarowe : T [ mat ] [ wie ] [ kol ] T [ 2 ] [ 5 ] [ 12 ]
8 • listy D1 D0 Dn jednokierunkowa Dm dwukierunkowa
9 • stos, kolejka • rekord Kowalski Stanisław 88311201234 42547,54Podatnik Nazwisko Imię Pesel DochódRoczny Kowalski Stanisław 42547,54 PodatnikAktualny . Nazwisko PodatnikAktualny . DochódRoczny • tablice rekordów Podatnicy [ ] . Nazwisko Podatnicy [ ] . Pesel
10 · 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
11 Start Stop Wykonaj wszystkie operacje programu
12 – program liniowy : x - 5 y = x2 + 1 y =( x - 5 ) /( x * x + 1 ) Startwczytaj 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 )
13 – 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
14 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
15 ai S = a1 + a2 + . . . + an Kolejność danych: n, a1, a2, . . . anStart n ai S = i = 1 S = 0 a1 + a an wczytaj n Kolejność danych: n, a1, a2, an NIE n > 0 TAK wczytaj a S = S + a n = n – 1 Stop wyprowadź S
16 • pętla warunkowa ustalenie wartości początkowychczy warunek zakończenia jest spełniony T N wykonanie treści pętli
17 Zgadnij liczbę. Start X = losuj ( 1, 10 ) K = 0 , Z = 0 T X == Z Nwyświetl tekst " Zgadnij liczbę od 1 do 10 : " K = K + 1 wczytaj Z wyświetl K Stop
18 · programowanie strukturalne struktury sterowania : – predykat ( blok decyzyjny, warunkowy ) W – iteracja ( pętla ) War_Pocz Treść W
19 wczytywanie danych wejściowych wyprowadzanie wyników· modularyzacja programu Start wczytywanie danych wejściowych przetwarzanie danych wyprowadzanie wyników Stop
20 Start wczytaj polecenie wykonaj polecenie N czy polecenie zakończenia T Stop
21 – 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
22 przekład w języku wewnętrznymprogram w języku wysokiego poziomu translator ( kompilator ) przekład w języku wewnętrznym interpreter kompilacja interpretacja
23 – 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