The Programming Language Pascal Niklaus Wirth 26.November 2004 Sezgi Seret - 0227324 1 Programmiersprache Pascal Pascal ist eine Programmiersprache, die 1968 bis 1972 von dem Schweizer Informatiker Niklaus Wirth entwickelt wurde. Sie ist nach Blaise Pascal benannt. Pascal ist ein prozedurale Sprache wie Modula 2 und C. Pascal ist ein Lehrsprache, welches leicht erlernbar ist und eine einfachen Syntax hat. 26.November 2004 Sezgi Seret - 0227324 2 Einfaches Pascal Programm 26.November 2004 Sezgi Seret - 0227324 3 Struktur eines Pascalprogramms PROGRAM ProgramName (FileList); CONST (* Konstanten *) TYPE (* Datentypen *) VAR (* Variablen *) (* Subprogram definitions *) BEGIN (* ausfühbare Anweisungen *) END. 26.November 2004 Sezgi Seret - 0227324 4 Konstanten const Name = 'Niklaus Wirth'; FirstLetter = 'N'; Year = 1971; pi = 3.1415926535897932; UsingNCSAMosaic = TRUE; 26.November 2004 Sezgi Seret - 0227324 5 Variablen und Datentypen var age, year, grade : integer; circumference : real; LetterGrade : char; DidYouFail : Boolean; 26.November 2004 Sezgi Seret - 0227324 6 Sytaktische Grundelemente Operatoren : Arithmetische Operatoren + - * / div mod Logische Operatoren not Vergleichsoperatoren = < > < <= > >= Zuweisungsoperator := Mengenoperatoren * 26.November 2004 Sezgi Seret - 0227324 and + or - 7 Reservierte Namen in Pascal 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 26.November 2004 Sezgi Seret - 0227324 8 Standard Funktionen abs(x) sqr(x) sin(x) cos(x) exp(x) ln(x) sqrt(x) arctan(x) trunc(x) round(x) odd(x) 26.November 2004 Sezgi Seret - 0227324 9 Wertzuweisung var x,y:real; i:integer; i := i+1 y:=x+cos(x/3) variable 26.November 2004 := Sezgi Seret - 0227324 ausdruck 10 Verbundsanweisung begin h:=a; a:=b; b:=h end begin anweisung end ; 26.November 2004 Sezgi Seret - 0227324 11 while-Anweisung (Abweisschleife) a := 5; while a < 6 do writeln (a); while 26.November 2004 ausdruck do Sezgi Seret - 0227324 anweisung 12 repeat-Anweisung (Nichtabweisschleife) repeat-anweisung ; repeat 26.November 2004 anweisung until Sezgi Seret - 0227324 ausdruck 13 if-Anweisung if (konto > 20) and (temperatur >= 25) then begin essen_bestellen; trinken_bestellen end; if 26.November 2004 ausdruck then anweisung else anweisung Sezgi Seret - 0227324 14 for-Anweisung { anfangswert <= endwert, schrittweite = 1 } for laufvariable:=anfangswert to endwert do anweisung; { einzelne Anweisung oder Verbundanweisung } { anfangswert >= endwert, schrittweite = -1 } for laufvariable:=anfangswert downto endwert do anweisung; { einzelne Anweisung oder Verbundanweisung } 26.November 2004 Sezgi Seret - 0227324 15 case-Anweisung (Fallauswahl) Die case-Anweisung bietet eine unbegrenzte Anzahl von Alternativen im weiteren Ablauf an. case Ausdruck of Konstante : Anweisung end , ; 26.November 2004 Sezgi Seret - 0227324 16 Sprunganweisung(goto-Anweisung) begin . . 30 : x := x + 0.5; . . if x = 7 then go to 30; . goto 40; . . 40 : write(x); end. 26.November 2004 Die goto-Anweisung erlaubt einen Sprung von einer Stelle eines Programmes zu einer beliebigen anderen. Sezgi Seret - 0227324 17 Prozeduren und Funktionen Prozeduren sind in Pascal die allgemeinste Form von Unterprogrammen. Ein Prozeduraufruf in einem Programm wird notiert durch Nennung des Prozedurnamens, gefolgt von der in Klammern eingeschlossenen Liste der aktuellen Parameter. procedure Name; const (* Constants *) var (* Variables *) begin (* Statements *) end; 26.November 2004 Sezgi Seret - 0227324 18 Prozeduren und Funktionen(2) Eine Funktion ist eine Prozedur,dass genau ein Ausgangswert prozudiert und dieser in einem Ausdruck aufgerufen werden kann. function Name (parameter_list) : return_type; 26.November 2004 Sezgi Seret - 0227324 19 Vorteile und Nachteile relativ höhe Geschwindigkeit leicht zu erlernen gut strukturierbar keine Objektorientierte Sprache nicht mehr zeitgemäß 26.November 2004 Sezgi Seret - 0227324 20 Vielen Dank für Ihre Aufmerksamkeit. 26.November 2004 Sezgi Seret - 0227324 21