Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wprowadzenie. PK1 Rybnik Dr inż. Roman Starosolski Pokój nr 527, Akademicka 16 (AEiI), Gliwice

Podobne prezentacje


Prezentacja na temat: "Wprowadzenie. PK1 Rybnik Dr inż. Roman Starosolski Pokój nr 527, Akademicka 16 (AEiI), Gliwice"— Zapis prezentacji:

1 Wprowadzenie

2 PK1 Rybnik Dr inż. Roman Starosolski Pokój nr 527, Akademicka 16 (AEiI), Gliwice regulaminy regulaminy materiały materiały zasoby zasoby

3 Tematyka wykładów 1. Wprowadzenie 1. przedmiot, wykłady, laboratoria, regulamin 2. Komputer – historia, podstawy budowy 3. Języki programowania 2. Język Pascal 1. przegląd konstrukcji języka 2. programowanie strukturalne 3. rekurencja 4. Abstrakcyjne Typy Danych 5. programowanie modularne

4 Książki o Pascalu Niklaus Wirth Algorytmy + struktury danych = programy. WNT, Warszawa Niklaus Wirth Algorytmy + struktury danych = programy. WNT, Warszawa inne … inne …

5 Regulamin przedmiotu 1. Przedmiot składa się z wykładu oraz ćwiczeń laboratoryjnych odbywających się raz w tygodniu. 1. Przedmiot składa się z wykładu oraz ćwiczeń laboratoryjnych odbywających się raz w tygodniu. 2. Obecność na ćwiczeniach laboratoryjnych jest obowiązkowa. Dwukrotna nieusprawiedliwiona nieobecność na laboratorium powoduje skreślenie z listy ćwiczących i nie zaliczenie przedmiotu. Zgodnie z Regulaminem Studiów w Poli-tech-nice Śląskiej fakt nieobecności zgłaszany jest Dziekanowi. W przypadku nie uzyskania zaliczenia, studentowi przysługuje prawo odwołania się do Dziekana, który może zarządzić komisyjne sprawdzenie wiadomości.

6 Regulamin przedmiotu 3. Zaliczenie przedmiotu polega na zdobyciu więcej niż 15 punktów na 30 możliwych w ciągu całego semestru, przy czym należy uzyskać co najmniej 3 punkty (ocena 3.0) za każdy z dwóch pisanych na laboratorium programów zaliczeniowych. Maksymalna liczba 30 jest sumą punktów uzyskanych za kartkówki (5 x 1pkt), programy (2 x 5pkt) oraz sprawdziany z wykładów (3 x 5pkt). Ocena na zaliczenie przedmiotu przyznawana jest w zależności od liczby zdobytych przez studenta punktów, w sposób następujący:

7 Regulamin przedmiotu PunktyOcena ( 27, 30 ] 5.0 ( 24, 27 ] 4.5 ( 21, 24 ] 4.0 ( 18, 21 ] 3.5 ( 15, 18 ] 3.0 [ 0, 15 ] 2.0

8 Regulamin przedmiotu 4. Kartkówki są niezapowiedziane i ich forma zależna jest od osób prowadzących zajęcia. Zamiast przeprowadzenia kartkówki osoba prowadząca zajęcia może "punktować" aktywność studentów na zajęciach. Sprawdziany z wykładów są wcześniej zapowiedziane i odbywają się w czasie trwania ćwiczeń laboratoryjnych. Nie przewiduje się możliwości poprawiania kartkówek i sprawdzianów. W przypadku nieobecności studenta, zaległa kartkówka jest przez niego pisana na najbliższych ćwiczeniach laboratoryjnych, a zaległe sprawdziany z wykładów w terminie podanym przez wykładowcę. W przypadku oceny programów, osoba prowadząca zajęcia ma prawo do zweryfikowania autorstwa oddawanego programu w sposób, jaki uzna za odpowiedni. Przekroczenie terminu oddania programu powoduje obniżenie jego oceny (liczby punktów) o 0.5 za każdy tydzień opóźnienia (zaokrąglane na niekorzyść studenta).). Ocena za działający poprawnie program i prawidłowo napisane sprawozdanie, nie może spaść poniżej 3.0.

9 Regulamin przedmiotu 5. Przedmiot kończy się egzaminem. Warunkiem dopuszczenia do egzaminu jest wcześniejsze uzyskanie zaliczenia przedmiotu. Egzamin składa się z części pisemnej i części ustnej. Student zostaje dopuszczony do części ustnej po zdaniu części pisemnej. W czasie trwania egzaminu student zobowiązany jest do posiadania przy sobie dowolnego dokumentu tożsamości z aktualnym zdjęciem i okazania go na żądanie osoby egzaminującej.

10 Regulamin przedmiotu 6. Istnieje możliwość uzyskania całkowitego lub częściowego (tylko z części pisemnej) zwolnienia z egzaminu. Warunkiem jest uzyskanie odpowiedniej oceny na zaliczenie. Ocena na zaliczenie Zwolnienie 5.0 całkowite z oceną całkowite z oceną i minimum po 4 punkty za każdy z programów częściowe z oceną 4.0

11 Regulamin przedmiotu 7. Posiadanie pozytywnej oceny końcowej z egzaminu jest warunkiem koniecznym do uczestnictwa w zajęciach z przedmiotu Programowanie Komputerów odbywających się na semestrze II. W przypadkach nieobjętych tym regulamine decyduje wykładowca przedmiotu.

12 Historia komputerów Wilhelm Schickard - pierwszy mechaniczny kalkulator Wilhelm Schickard - pierwszy mechaniczny kalkulator francuski filozof i matematyk Błażej Pascal (Blaise Pascal) zbudował mechaniczną maszynę dodającą francuski filozof i matematyk Błażej Pascal (Blaise Pascal) zbudował mechaniczną maszynę dodającą Gottfried Wilhelm Leibnitz udoskonalił tę maszynę uzupełniając jej możliwości o mnożenie Gottfried Wilhelm Leibnitz udoskonalił tę maszynę uzupełniając jej możliwości o mnożenie Joseph Marie Jacquard – krosna z perforowanymi płytkami do sterowania procesem tkania Joseph Marie Jacquard – krosna z perforowanymi płytkami do sterowania procesem tkania. lata 80 XIX wieku - amerykański statystyk Herman Hollerith wykorzystał tę ideę do automatycznego przetwarzania danych. lata 80 XIX wieku - amerykański statystyk Herman Hollerith wykorzystał tę ideę do automatycznego przetwarzania danych.

13 Historia komputerów 1822 roku brytyjski matematyk i wynalazca Charles Babbage opracował zasady działania nowoczesnego komputera cyfrowego roku brytyjski matematyk i wynalazca Charles Babbage opracował zasady działania nowoczesnego komputera cyfrowego George Boole opublikował pracę The Mathematical Analysis of Logic: Being an Essay Towards a Calculus of Deductive Reasoning - podstawy logiki jako działu matematyki George Boole opublikował pracę The Mathematical Analysis of Logic: Being an Essay Towards a Calculus of Deductive Reasoning - podstawy logiki jako działu matematyki Howard Aiken, matematyk z uniwersytetu Harvard, skonstruował cyfrowy komputer - elektromechaniczny, sterowany programem na papierowej rolce (Harvard Mark I) Howard Aiken, matematyk z uniwersytetu Harvard, skonstruował cyfrowy komputer - elektromechaniczny, sterowany programem na papierowej rolce (Harvard Mark I) , Konrad Zuse opracował w Niemczech serię czterech komputerów, Z1-Z4 (Z1 - mechaniczny, pozostałe elektromechaniczne) , Konrad Zuse opracował w Niemczech serię czterech komputerów, Z1-Z4 (Z1 - mechaniczny, pozostałe elektromechaniczne) roku został zbudowany komputer według koncepcji węgiersko- amerykańskiego matematyka Johna von Neumanna: Zarówno program, jak i dane przechowywane są w takich komputerach w pamięci roku został zbudowany komputer według koncepcji węgiersko- amerykańskiego matematyka Johna von Neumanna: Zarówno program, jak i dane przechowywane są w takich komputerach w pamięci.

14 Historia komputerów 1946 – ENIAC, lampowy 1946 – ENIAC, lampowy koniec lat 50 – tranzystory koniec lat 50 – tranzystory koniec lat 60 – układy scalone koniec lat 60 – układy scalone połowa lat 70 – pierwszy mikroprocesor ogólnego zastosowania, początek szybkiego wzrostu mocy obliczeniowych. połowa lat 70 – pierwszy mikroprocesor ogólnego zastosowania, początek szybkiego wzrostu mocy obliczeniowych.

15 Komputer

16 Komputer Procesor Procesor Zadania, możliwości Zadania, możliwości Język maszynowy Język maszynowy Słowo komputerowe Słowo komputerowe

17 Komputer Pamięć Pamięć Przeznaczenie pamięci operacyjnej (von Neumann) Przeznaczenie pamięci operacyjnej (von Neumann) Struktura pamięci: Bit, Bajt, Struktura pamięci: Bit, Bajt, Sposoby reprezentowania obiektów w PaO Sposoby reprezentowania obiektów w PaO Adresowanie Adresowanie Rodzaje pamięci, przeznaczenie i parametry Rodzaje pamięci, przeznaczenie i parametry ROM – Read Only Memory ROM – Read Only Memory RAM – Random Access Memory RAM – Random Access Memory cena, typ, prędkość pamięci, pojemność (kB, MB, GB) cena, typ, prędkość pamięci, pojemność (kB, MB, GB) (Cache Memory – nie zawsze tam, gdzie na schemacie) (Cache Memory – nie zawsze tam, gdzie na schemacie)

18 Komputer Urządzenia wejścia/wyjścia Urządzenia wejścia/wyjścia Urządzenia wewnętrzne Urządzenia wewnętrzne Interfejsy urządzeń zewnętrznych Interfejsy urządzeń zewnętrznych

19 Komputer Urządzenia wejścia/wyjścia (typowe) Urządzenia wejścia/wyjścia (typowe) klawiatura klawiatura monitor monitor pamięci masowe pamięci masowe interfejsy komunikacyjne interfejsy komunikacyjne urządzenia wskazujące urządzenia wskazujące urządzenia akwizycji obrazu urządzenia akwizycji obrazu drukarki drukarki karty dźwiękowe karty dźwiękowe uniwersalne interfejsy urządzeń (RS-232, USB, …) uniwersalne interfejsy urządzeń (RS-232, USB, …) interfejsy dedykowane ( -> ABS, … :-) interfejsy dedykowane ( -> ABS, … :-)

20 Komputer Jak realizowane są programy w komputerze? Jak realizowane są programy w komputerze? Komputer jako synteza sprzętu i oprogramowania. Komputer jako synteza sprzętu i oprogramowania. Oprogramowanie systemowe i użytkowe. Oprogramowanie systemowe i użytkowe. Możliwości, zalety i wady współczesnych komputerów. Możliwości, zalety i wady współczesnych komputerów.

21 Języki programowania Język maszynowy (1GL) Język maszynowy (1GL) Assembler (2GL), translator Assembler (2GL), translator Języki wysokiego poziomu (3GL) Języki wysokiego poziomu (3GL) FLOW-MATIC Grace Hopper. FORTRAN (IBM) - w 1954 roku rozpoczęto prace, zakończono w ALGOL – COBOL. przełom lat 50 i 60 LISP PL/I. FLOW-MATIC Grace Hopper. FORTRAN (IBM) - w 1954 roku rozpoczęto prace, zakończono w ALGOL – COBOL. przełom lat 50 i 60 LISP PL/I. połowa lat 60 BASIC (Beginner's All-Purpose Symbolic Instruction Code) połowa lat 60 BASIC (Beginner's All-Purpose Symbolic Instruction Code) koniec lat 60 Pascal (Niklaus Wirth) koniec lat 60 Pascal (Niklaus Wirth) 1972 C (Dennis M. Ritchie, AT&T Bell Laboratories) 1972 C (Dennis M. Ritchie, AT&T Bell Laboratories) 1975 Ada 1975 Ada początek lat 80 C++ (Bjarne Stroustrup, AT&T Bell Laboratories) początek lat 80 C++ (Bjarne Stroustrup, AT&T Bell Laboratories)

22 Języki programowania 4GL - Języki zapytań zbliżone do do języka naturalnego (SQL, QBE) 4GL - Języki zapytań zbliżone do do języka naturalnego (SQL, QBE) 5GL – Prolog 5GL – Prolog

23 Języki programowania Pojęcie translatora Pojęcie translatora interpreter interpreter kompilator kompilator kompilator skrośny (cross-compiler) kompilator skrośny (cross-compiler)

24 Rozwiązywanie zadań z użyciem komputera 1. Definicja problemu (język naturalny) 2. Analiza zadania (język naturalny) 3. Algorytm rozwiązania (język naturalny, schemat blokowy, pseudo-kod) 4. Kod źródłowy programu (język programowania) 5. Program wykonywalny (język maszynowy) 6. Uruchomiony program wykonywalny Koszty błędów na poszczególnych etepach Koszty błędów na poszczególnych etepach Rola testowania i uruchamiania Rola testowania i uruchamiania Błędy kompilacji, błędy wykonania programu Błędy kompilacji, błędy wykonania programu

25 Pascal - język programowania Definicja języka Definicja języka alfabet alfabet zbiór słów kluczowych zbiór słów kluczowych syntaktyka (składnia) syntaktyka (składnia) semantyka semantyka

26 Pascal – ogólna struktura program nazwa; …begin pierwsza instrukcja; druga instrukcja;... ostatnia instrukcja end. nagłówek programu sekcja deklaracji pętla główna | | instrukcje pętli głównej || koniec p.g. i programu

27 Pascal – pierwszy przykład program hello; begin writeln(Hello world) end. słowo kluczowe, identyfikator, podprogram słowo kluczowe, identyfikator, podprogram

28 Identyfikatory Identyfikator jest ciągiem znaków z następującego zbioru: Identyfikator jest ciągiem znaków z następującego zbioru: litery a-z, A-Z (duże i małe litery nie są w Pascalu rozróżniane, winnych językach czasami są) litery a-z, A-Z (duże i małe litery nie są w Pascalu rozróżniane, winnych językach czasami są) cyfry 0-9 cyfry 0-9 znak podkreślenia _ znak podkreślenia _

29 Identyfikatory Pierwszym znakiem identyfikatora nie może być żadna cyfra. Pierwszym znakiem identyfikatora nie może być żadna cyfra. Identyfikator nie może być identyczny z żadnym ze słów kluczowych języka Pascal. Identyfikator nie może być identyczny z żadnym ze słów kluczowych języka Pascal. Identyfikator definiowany przez użytkownika nie powinien być jednobrzmiący z nazwą istniejącego podprogramu z biblioteki (np. writeln), chociaż da się tak zrobić. Identyfikator definiowany przez użytkownika nie powinien być jednobrzmiący z nazwą istniejącego podprogramu z biblioteki (np. writeln), chociaż da się tak zrobić. Język Pascal nie nakłada żadnego ograniczenia na długość identyfikatora. Jednak wersja Turbo Pascal odróżnia tylko początkowe 63 znaki indentyfikatora. Język Pascal nie nakłada żadnego ograniczenia na długość identyfikatora. Jednak wersja Turbo Pascal odróżnia tylko początkowe 63 znaki indentyfikatora.

30 Identyfikatory Poprawne:xXmaxXk_10zmienna5r2002m2R2d2PaScAlpe4Q_3_4Błędne: 6 2zmienna program k-2 wartość a b 2R2D pi.3 Do #4

31 Komentarze (* komentarz – stara składnia *) { komentarz } Nie mieszaj obu typów komentarzy Nie mieszaj obu typów komentarzy Używaj tylko { komentarza } Używaj tylko { komentarza } Po co nam komentarz? Po co nam komentarz?

32 Zmienne Co to jest zmienna Co to jest zmienna nazwa nazwa typ typ rozmiar rozmiar zbiór operacji zbiór operacji adres adres wartość wartość

33 Deklaracja zmiennej var nazwa_zmiennej: typ_zmiennej; np.: var i:integer; var s:string;

34 Przypomnienie – systemy dziesiątkowy, dwójkowy, szesnastkowy To było w gimnazjum czy w liceum? To było w gimnazjum czy w liceum?

35 Deklaracja zmiennej program przyklad_1; vark:integer;begin k:=5; { od tego miejsca k pamięta liczbę 5 } k:=k+k; { od tego miejsca k pamięta liczbę 5+5=10 } writeln(k) { wypisanie k, czyli 10 } end.

36 Instrukcja przypisania nazwa_zmiennej := nowa_wartość; np.: k := 1; k := k + 1;

37 Typy Typy proste Typy proste typy porządkowe typy porządkowe typy rzeczywiste typy rzeczywiste Typy złożone Typy złożone tablice tablice rekordy rekordy … Ypy standardowe (predefiniowane) Ypy standardowe (predefiniowane) Typy niestandardowe Typy niestandardowe

38 Standardowe porządkowe typy proste (kompilator 16-bit) Typy całkowite Typy całkowite shortint [ ] (liczba 8-bitowa ze znakiem) integer [ ] (16-b ze zn.) longint [ ] (32-b ze zn.) byte [0..255] (8-b bez znaku) byte [0..255] (8-b bez znaku) word [ ] (16-b bez znaku) Typ znakowy Typ znakowy char [#0,..., 0, 1,..., A, B,..., #255] (8-b) Typ logiczny Typ logiczny boolean [FALSE, TRUE] (8-b)

39 Standardowe rzeczywiste typy proste real[2.9e e38]( cyfr dziesiętnych, 6B) single [1.5e e38] (7..8 cyfr, 4B) double[5.0e e308]( cyfr, 8B) extended[3.4e e4932]( cyfr, 10B) comp[-9.2e e18](19-20 cyfr, tylko całkowite, 8B) Ograniczenia typów rzeczywistych i porządkowych Ograniczenia typów rzeczywistych i porządkowych stałe MaxInt i MaxLongint stałe MaxInt i MaxLongint

40 Zapisywanie liczb całkowitych ciąg cyfr dziesiętnych, ewewentualnie poprzedzony znakiem - (minus) ciąg cyfr dziesiętnych, ewewentualnie poprzedzony znakiem - (minus) 123, -84, 0, 789, ciąg cyfr szesnastkowych poprzedzony znakiem $ ciąg cyfr szesnastkowych poprzedzony znakiem $ $10 (czyli dziesiętnie 16), $ff, $FF (255), $5 (5)

41 Zakres liczb całkowitych Kompilator wykryje tylko niektóre błędy Kompilator wykryje tylko niektóre błędy program typy_1; var x: longint; y: integer; begin x := 40000; { w zakresie longint, ale poza integer } y := x; { y nie potrafi przechować } writeln(y) { wypisze się } end.

42 Zakres liczb całkowitych Kompilator wykryje tylko niektóre błędy Kompilator wykryje tylko niektóre błędy program typy_2; var x,y: integer; { tak, można wymienić kilka zmiennych } begin x := 200; { w zakresie integer } y := x*x; { wynik poza zakresem y } writeln(y) { wypisze się } end.

43 Zapisywanie liczb rzeczywistych Zapis dziesiętny Zapis dziesiętny.14, , 4.0, 4, Zapis wyładniczy Zapis wyładniczyE (=mantysa*10 cecha ) 0.345E-5 (=0, =0,345*10 -5 ) 345E6 (= =345*10 6 ) 3.45E+8 (= =3,45*10 8 )

44 Konwersje typów liczbowych automatyczna konwersja automatyczna konwersja całkowita -> rzeczywistej brak konwersji automatycznej brak konwersji automatycznej rzeczywista -> całkowita trunc(l_rzecz)round(l_rzecz)

45 Zapisywanie znaków pojedynczy znak ujęty w apostrofy pojedynczy znak ujęty w apostrofy a, 0, +, # kod znaku, poprzedzony znakiem # kod znaku, poprzedzony znakiem # #0, #1, #10, #13, #27, #65 (to samo co A), #255

46 Kody ASCII - kody sterujące Dec Hex Ctl Name Control Meaning | Dec Hex Ctl Name Control Meaning | NUL null (end string) | ^P DLE data line escape 0 00 NUL null (end string) | ^P DLE data line escape 1 01 ^A SOH start of heading | ^Q DC1 dev ctrl 1 (X-ON) 1 01 ^A SOH start of heading | ^Q DC1 dev ctrl 1 (X-ON) 2 02 ^B STX start of text | ^R DC2 device ctrl ^B STX start of text | ^R DC2 device ctrl ^C ETX end of text | ^S DC3 dev ctrl 3 (X-OFF) 3 03 ^C ETX end of text | ^S DC3 dev ctrl 3 (X-OFF) 4 04 ^D EOT end of transmission | ^T DC4 device ctrl ^D EOT end of transmission | ^T DC4 device ctrl ^E ENQ enquiry | ^U NAK negative acknowledge 5 05 ^E ENQ enquiry | ^U NAK negative acknowledge 6 06 ^F ACK acknowledge | ^V SYN synchronous idle 6 06 ^F ACK acknowledge | ^V SYN synchronous idle 7 07 ^G BEL bell | ^W ETB end transmit block 7 07 ^G BEL bell | ^W ETB end transmit block 8 08 ^H BS backspace | ^X CAN cancel 8 08 ^H BS backspace | ^X CAN cancel 9 09 ^I HT TAB horizontal tab | ^Y EM end of medium 9 09 ^I HT TAB horizontal tab | ^Y EM end of medium 10 0a ^J LF line feed | 26 1a ^Z SUB substitute 10 0a ^J LF line feed | 26 1a ^Z SUB substitute 11 0b ^K VT vertical tab | 27 1b ^[ ESC escape 11 0b ^K VT vertical tab | 27 1b ^[ ESC escape 12 0c ^L FF form feed | 28 1c ^\ FS file separator 12 0c ^L FF form feed | 28 1c ^\ FS file separator 13 0d ^M CR carriage return | 29 1d ^] GS group separator 13 0d ^M CR carriage return | 29 1d ^] GS group separator 14 0e ^N SO shift out | 30 1e ^^ RS record separator 14 0e ^N SO shift out | 30 1e ^^ RS record separator 15 0f ^O SI shift in | 31 1f ^_ US unit separator 15 0f ^O SI shift in | 31 1f ^_ US unit separator

47 Kody ASCII – pozostałe a 0b 0c 0d 0e 0f a 0b 0c 0d 0e 0f ! " # $ % & ' ( ) * +, -. / : ; ? A B C D E F G H I J K L M N O 50 P Q R S T U V W X Y Z [ \ ] ^ _ 60 ` a b c d e f g h i j k l m n o 70 p q r s t u v w x y z { | } ~ 70 p q r s t u v w x y z { | } ~ Zapamiętaj układ znaków! Zapamiętaj układ znaków! cyfry cyfry małe litery (alfabet łaciński / angielski) małe litery (alfabet łaciński / angielski) duże litery duże litery

48 Znak a jego kod ord(znak) chr(liczba) ord(znak) chr(liczba) program konwersja; var x: integer; c: char; begin writeln(podaj cyfre); readln(x); c := chr(x+ord(0)); writeln(c); end.

49 Zapisywanie wartości logicznych tylko dwie możliwości tylko dwie możliwościfalsetrue


Pobierz ppt "Wprowadzenie. PK1 Rybnik Dr inż. Roman Starosolski Pokój nr 527, Akademicka 16 (AEiI), Gliwice"

Podobne prezentacje


Reklamy Google