1 / 49

Wprowadzenie

Wprowadzenie. PK1 Rybnik. Dr inż. Roman Starosolski Pokój nr 527 , Akademicka 16 (AEiI), Gliwice rstaros@star.iinf.polsl.gliwice.pl http://sun.iinf.polsl.gliwice.pl/~ cki / regulaminy materiały zasoby. Tematyka wykładów. Wprowadzenie przedmiot, wykłady, laboratoria, regulamin

yorick
Download Presentation

Wprowadzenie

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. Wprowadzenie

  2. PK1 Rybnik Dr inż. Roman Starosolski Pokój nr 527, Akademicka 16 (AEiI), Gliwice rstaros@star.iinf.polsl.gliwice.pl http://sun.iinf.polsl.gliwice.pl/~cki/ • regulaminy • materiały • zasoby

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

  4. Książki oPascalu • Niklaus Wirth „Algorytmy + struktury danych = programy”. WNT, Warszawa • inne …

  5. Regulamin przedmiotu • Przedmiot składa się z wykładu oraz ćwiczeń laboratoryjnych odbywających się raz w tygodniu. • 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. 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: Regulamin przedmiotu

  7. Regulamin przedmiotu

  8. Regulamin przedmiotu • 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 • 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. Istnieje możliwość uzyskania całkowitego lub częściowego (tylko z części pisemnej) zwolnienia z egzaminu. Warunkiem jest uzyskanie odpowiedniej oceny na zaliczenie. Regulamin przedmiotu

  11. Regulamin przedmiotu • 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 • 1623-24 Wilhelm Schickard - pierwszy mechaniczny kalkulator. • 1642 francuski filozof i matematyk Błażej Pascal (Blaise Pascal) zbudował mechaniczną maszynę dodającą. • 1670 Gottfried Wilhelm Leibnitz udoskonalił tę maszynę uzupełniając jej możliwości o mnożenie. • 1804 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.

  13. Historia komputerów • 1822 roku brytyjski matematyk i wynalazca Charles Babbage opracował zasady działania nowoczesnego komputera cyfrowego. • 1847 George Boole opublikował pracę „The Mathematical Analysis of Logic: Being an Essay Towards a Calculus of Deductive Reasoning” - podstawy logiki jako działu matematyki. • 1939-1944 Howard Aiken, matematyk z uniwersytetu Harvard, skonstruował cyfrowy komputer - elektromechaniczny, sterowany programem na papierowej rolce (Harvard Mark I). • 1936-1949, Konrad Zuse opracował w Niemczech serię czterech komputerów, Z1-Z4 (Z1 - mechaniczny, pozostałe elektromechaniczne). • 1945 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 • koniec lat 50 – tranzystory • koniec lat 60 – układy scalone • połowa lat 70 – pierwszy mikroprocesor ogólnego zastosowania, początek szybkiego wzrostu mocy obliczeniowych.

  15. Komputer

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

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

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

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

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

  21. Języki programowania • Język maszynowy (1GL) • Assembler (2GL), translator • Języki wysokiego poziomu (3GL) • FLOW-MATIC - 1952 Grace Hopper. FORTRAN (IBM) - w 1954 roku rozpoczęto prace, zakończono w 1957. 1958 - ALGOL. 1959 – COBOL. przełom lat 50 i 60 LISP. 1963 PL/I. • połowa lat 60 BASIC (Beginner's All-Purpose Symbolic Instruction Code) • koniec lat 60 Pascal (Niklaus Wirth) • 1972 C (Dennis M. Ritchie, AT&T Bell Laboratories) • 1975 Ada • 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) • 5GL – Prolog

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

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

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

  26. 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 Pascal – ogólna struktura

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

  28. Identyfikatory • 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ą) • cyfry 0-9 • znak podkreślenia _

  29. Identyfikatory • 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 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.

  30. Poprawne: x Xmax Xk_10 zmienna5 r2002m2 R2d2 PaScAl pe4 Q_3_4 Błędne: 6 2zmienna program k-2 wartość a b 2R2D pi.3 Do #4 Identyfikatory

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

  32. Zmienne • Co to jest zmienna • nazwa • typ • rozmiar • zbiór operacji • adres • 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?

  35. Deklaracja zmiennej program przyklad_1; var k: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 proste typy porządkowe typy rzeczywiste Typy złożone tablice rekordy … Ypy standardowe (predefiniowane) Typy niestandardowe Typy

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

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

  40. Zapisywanie liczb całkowitych • ciąg cyfr dziesiętnych, ewewentualnie poprzedzony znakiem “-” (minus) 123, -84, 0, 789, 00004 • 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 program typy_1; var x: longint; y: integer; begin x := 40000; { w zakresie longint, ale poza integer } y := x; { y nie potrafi przechować 40000 } writeln(y) { wypisze się -25536 } end.

  42. Zakres liczb całkowitych • 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ę -25536 } end.

  43. Zapisywanie liczb rzeczywistych • Zapis dziesiętny .14, -2.71828, 4.0, 4, -9999.999 • Zapis wyładniczy <mantysa>E<cecha> (=mantysa*10cecha) 0.345E-5 (=0,00000345 =0,345*10-5) 345E6 (=345000000 =345*106) 3.45E+8 (=345000000 =3,45*108)

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

  45. Zapisywanie znaków • pojedynczy znak ujęty w apostrofy ’a’, ’0’, ’+’, ’#’ • 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 --- --- --- ---- -------------------- | --- --- --- ---- -------------------- 0 00 ^@ NUL null (end string) | 16 10 ^P DLE data line escape 1 01 ^A SOH start of heading | 17 11 ^Q DC1 dev ctrl 1 (X-ON) 2 02 ^B STX start of text | 18 12 ^R DC2 device ctrl 2 3 03 ^C ETX end of text | 19 13 ^S DC3 dev ctrl 3 (X-OFF) 4 04 ^D EOT end of transmission | 20 14 ^T DC4 device ctrl 4 5 05 ^E ENQ enquiry | 21 15 ^U NAK negative acknowledge 6 06 ^F ACK acknowledge | 22 16 ^V SYN synchronous idle 7 07 ^G BEL bell | 23 17 ^W ETB end transmit block 8 08 ^H BS backspace | 24 18 ^X CAN cancel 9 09 ^I HT TAB horizontal tab | 25 19 ^Y EM end of medium 10 0a ^J LF line feed | 26 1a ^Z SUB substitute 11 0b ^K VT vertical tab | 27 1b ^[ ESC escape 12 0c ^L FF form feed | 28 1c ^\ FS file separator 13 0d ^M CR carriage return | 29 1d ^] GS group separator 14 0e ^N SO shift out | 30 1e ^^ RS record separator 15 0f ^O SI shift in | 31 1f ^_ US unit separator

  47. Kody ASCII – pozostałe 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 10 20 ! " # $ % & ' ( ) * + , - . / 30 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 40 @ 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 { | } ~  • Zapamiętaj układ znaków! • cyfry • małe litery (alfabet łaciński / angielski) • duże litery

  48. Znak a jego kod • 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 false true

More Related