Wprowadzenie.

Slides:



Advertisements
Podobne prezentacje
Katarzyna Szafrańska kl. II ti
Advertisements

Egzamin.
Zmienne i Typy.
Programowanie w języku C++. Jak napisać prosty program obliczeniowy lub grę komputerową? Zbigniew Nagórny Pracownia Komputerowa Wyższa Szkoła Humanistyczno-Przyrodnicza.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
Metody numeryczne Wykład no 1.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 3: Podstawowe elementy języka.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 2: Wstęp do programowania w Pascalu © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
P O D S T A W Y P R O G R A M O W A N I A
Informatyka jako dziedzina wiedzy Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Katarzyna Szafrańska kl. II TI
Kurs Pascala – spis treści
Tablice.
JAK ZBUDOWANY JEST KOMPUTER?
Schemat blokowy komputera
PODSTAWY INFORMATYKI Wykładowca: mgr Tadeusz Ziębakowski
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
Wykład 2 struktura programu elementy języka typy zmienne
Wstęp do interpretacji algorytmów
PASCAL Dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
INFORMATYKA II Wykładowca: mgr Tadeusz Ziębakowski
TECHNOLOGIE INFORMACYJNE
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Programowanie w języku Fortran 95
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
Technika Mikroprocesorowa 1
Programowanie strukturalne i obiektowe
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Algorytmy z przykładami w Turbo Pascal 7.0
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
TABLICE C++.
Procedury i funkcje.
Informatyka I - Wykład ANSI C
Zasada działania komputera
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Informatyka jako dziedzina wiedzy
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Architektura PC.
Wykład 10 typ zbiorowy rekurencja.
Ogólna struktura programu w TP
Podstawy języka Instrukcje - wprowadzenie
Podstawowe struktury danych. Typy danych.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wstęp do interpretacji algorytmów
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Schemat blokowy komputera
Zapis prezentacji:

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 Język Pascal 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

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

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.

Regulamin przedmiotu 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 Punkty Ocena ( 27, 30 ] 5.0 ( 24, 27 ] 4.5 ( 21, 24 ] 4.0 ( 18, 21 ] 3.5 ( 15, 18 ] 3.0 [ 0, 15 ] 2.0

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.

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.

4.0 i minimum po 4 punkty za każdy z programów Regulamin przedmiotu 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ą 5.0 4.5 całkowite z oceną 4.5 4.0 i minimum po 4 punkty za każdy z programów częściowe z oceną 4.0

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.

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.

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.

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.

Komputer

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

Komputer Pamięć Rodzaje pamięci, przeznaczenie i parametry 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)

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

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, … :-)

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.

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)

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

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

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

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

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

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

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 _

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.

Identyfikatory Poprawne: Błędne: 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

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

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

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

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

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.

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

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

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)

Standardowe rzeczywiste typy proste real [2.9e-39..1.7e38] (11..12 cyfr 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

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)

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.

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.

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)

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

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

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

Kody ASCII – pozostałe Zapamiętaj układ znaków! cyfry 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

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.

Zapisywanie wartości logicznych tylko dwie możliwości false true