Informatyka I Wyk lad II Algorytm, podstawowe notacje, typy danych i wyrażenia Zagadnienia: pojecie algorytmu, diagramy algorytmów, przejście od algorytmu do programu, zapis sk ladni programu, typy danych, operatory, wyrażenia, zmienne.
š Algorytm!#"%$'&)(+*-,/. 0132 465879 :<;=>? @8ABC/D E3FGHJI KML-NO<PQR œÿž y ª «Ÿ ± ²Ÿ³µ Ÿ Ï Ð Ñ Ò Ó Ô Õ Ö S T U V WXYZ[ \]^_`ä bc d efhg6i j/kmlnoqpr s3t<uvwyx/z{ J}~/ ƒ8 / ˆ 8Š Œ/ Ž3 J M - < º¹¼»¾½ ÁÀÃÂ Ä ÅŸÆÈÇÊÉËÌyÍÁÎ 1
Œ Ž š Przyk ladowy algorytm! "#$&% ' ( )+*,.-/102 35461798;:=< >? @BAC D!EGFBHJILKNM!OQPNRTSNUWVYX9Z [W\^]_B` a b c^d9ejf!gih jtkml;nio!p qwrnswt1ubviw xzy{ }~ ƒ+ & ˆ 5 9Š œžÿ!. 1 «ª.! ± ² ³ µ 2
Diagramy algorytmów ƒ 2 ˆŠ Œ okž2 2.,/ "!$#&%('*),+&- 02143 5 6 7 8:9;$<2=>@? ACBEDGF*H2IKJCL M NO P QSRCTU VWYXZ [2\ ]_^ `a b cedgf"hjilkmonqp rs t usv$w xzy {( 2} ~4K Elementy sk ladowe schematów blokowych algorytmów. 3
r x t z w y q s ª«Przyk ladowy algorytm cd.! #"%$ &(' )!*,+-/.1032457698;:,< =>? @,A BDC7EGF7HJIK LNM O!PJQ!RJS Ỹ šœ Wž/Ÿ T1UWVYX[Z \^] _a`cbed^f g hji9kjljm ïñðò;ógô õöé Dø7ùGú7û üý þ ÿ EFGH+IKJ LMNO+PDQRS TU VW XY2Z\[^]A_ ` abcedf2g.h i2j kalam nodp+qsrt u+v w.x yze{\ <}~ eƒ 2. 2ˆ AŠ N ¹ Y± ²³ º» ¼!#"%$'&( )+*,.- /021435 6 78:9<;=2>?A@ BDC [ [µ ŒŽ+K + 2 Dš+ œ žÿe e 2 upv npo {} 7~/G ƒ; ˆ ŠGŒ Ž;! ½ ¾ /ÀGÁ Âà Ä,Å/Æ ÇÉÈÊË Ì/ÍÎ Ï Ð ÑÒ Ó!ÔÉÕÖ JØÚÙGÛ Ü,ÝÞ ß/à7á â ãäå æ!ç;ègé ê ë ì7íî p 4
Notacja MBNF Sk ladnia programu LHS = RHS Symbole nieterminalne: zdania, grupy podmiotu; symbole terminalne: bezbarwne, zielone, pomys ly, śpia, wściekle ; operatory: konkatenacja, alternatywa, opcja [], powtórzenie {}, grupowanie (). Diagramy sk ladni Zdanie jezyka Symbol poczatkowy + Regu ly zastepowania Symbole nieterminalne ; symbole terminalne ; operatory. 5
Ÿ Z Notacja MBNF Przyk ladowe konstrukcje liczba-calkowita = [ znak-liczby ] liczba-calkowita-bez-znaku. znak-liczby = "+" "-". liczba-calkowita-bez-znaku = ciag-cyfr. ciag-cyfr = cyfra { cyfra }. cyfra = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9". Porównaj ciag-cyfr = { cyfra }. Diagram sk ladni 465879;:=<?>A@CBED6F G;HJI K.L () *+,.- / 0 123!#" $ %&' M;N=OEP QSR6T8UV;WYX gih jk;l=monqpcresit u=vjw xzyo{} =~?Y ;ƒ= C Ž8? o A C []\ ^_ `acbcdfe ˆ cšf #Œ š Cœq.ž 6
Kategorie sk ladniowe Pascala symbol-pascalowy = identyfikator dyrektywa liczba etykieta napis symbol-specjalny. symbol-specjalny = "+" "-" "*" "/" "=" "<" ">" "[" "]" "." "," ":" ";" "^" "(" ")" "<>" "<=" ">=" ":=" ".." slowo-kluczowe. slowo-kluczowe = "AND" "ARRAY" "BEGIN" "CASE" "CONST" "DIV" "DO" "DOWNTO" "ELSE" "END" "FILE" "FOR" "FUNCTION" "GOTO" "IF" "IN" "LABEL" "MOD" "NIL" "NOT" "OF" "OR" "PACKED" "PROCEDURE" "PROGRAM" "RECORD" "REPEAT" "SET" "THEN" "TO" "TYPE" "UNTIL" "VAR" "WHILE" "WITH". liczba-rzeczywista = [ znak-liczby ] liczba-rzeczywista-bez-znaku. liczba-rzeczywista-bez-znaku = liczba-calkowita-bez-znaku "." ciag-cyfr [ "e" mnoznik-skalujacy ] liczba-calkowita-bez-znaku "e" mnoznik-skalujacy. mnoznik-skalujacy = liczba-calkowita. 7
Typy danych Podstawowe typy proste liczby ca lkowite INTEGER liczby rzeczywiste REAL zmienne logiczne BOOLEAN zbiór znaków ASCII CHAR Podstawowe typy z lożone typ okrojony TYPE Miesiace = 1..12; typ wyliczeniowy TYPE DniTygodnia = (Pon, Wto,Sro,Czw,Pia,Sob,Nie); tablice TYPE Zal = ARRAY [1..200] OF 2..5; rekordy TYPE Zespolona = RECORD Re, Im: REAL; END; zbiory TYPE Litery = SET OF CHAR; Dynamiczne struktury danych 8
Operatory Podstawowe operatory proste operatory arytmetyczne porównanie = przypisanie := operatory logiczne dodawanie + odejmowanie - mnożenie * dzielenie /, DIV, MOD alternatywa OR koniunkcja AND negacja NOT pozosta le operatory relacyjne <, <=, <>, >=, > Podstawowe operatory z lożone konstruktory selektory 9
sta le Wyrażenia jawne 3, 3.14, TRUE, a, ala ma kota symboliczne CONST pi = 3.14159, im = ala ; zmienne VAR Promien, Kat, Luk: REAL; wywo lania funkcji SIN(Kat/180*pi) wyrażenia operatorowe (a * b) + (c * d) (Kat >= 0.0) AND (Kat <= 180.0) Regu ly wyliczania wartości wyrażeń: (a) sta le jawne: ich wartość jest im równa, (b) sta le symboliczne i zmienne: ich wartość jest im przypisana, przy czym dla zmiennych może ulegać zmianie w trakcie pracy programu, (c) wywo lania funkcji i wyrażenia operatorowe: wpierw wyliczane sa wartości argumentów (które same sa wyrażeniami), a nastepnie operator lub funkcja wylicza swoja wartość. instrukcja-przypisania = zmienna ":=" wyrazenie. 10
Operatory priorytety operatory grupu- mnogośpriorytet jace arytmetyczne logiczne ciowe relacyjne najwyższy () NOT * / DIV MOD AND * + OR + najniższy IN < <= = <> >= > 11
Zmienne posiadaja: Zmienne a) nazw e, która musi być identyfikatorem pascalowym i różnić si e od s lów kluczowych Pascala, b) typ, który określa, jakie informacje bed a przechowywane w zmiennej; nazwa i typ zmiennej sa wymienione w jej deklaracji, c) aktualna wartość, d) alokacj e, która jest miejscem w pami eci, gdzie ma być przechowywana wartość zmiennej, e) zakres, który jest miejscem w programie, gdzie można odwo lywać si e do zmiennej, f) czas trwania, to jest czas, w jakim moga wystapić odwo lania do zmiennej. a), b) określone treścia programu, c), d) ustalone chwilowo w trakcie wykonywania programu, e), f) określone w Pascalu na sta le. 12