DO 8 I = 1, 100 ITOTAL

Größe: px
Ab Seite anzeigen:

Download "DO 8 I = 1, 100 ITOTAL"

Transkript

1 Teil 4 Programmformate Festes Programmformat FORTRAN (FORmula TRANslator) Fortran I: 1954 Fortran IV: 1966 Fortran 77: 1977 Fortran 90: 1990 Fortran 95: 1995 high performance FORTRAN (HPF): Fortran 90 für SIMD-Rechner veraltet Ursprung im Lochkartenformat Freies Programmformat Alle neueren FORTRAN Versionen Standardzeichensatz: Großbuchstaben und _, Ziffern, Sonderzeichen Kleinbuchstaben äquivalent zu Großbuchstaben (Vorsicht an externen Schnittstellen: foo = FOO) Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Festes Format Beispiel Spalte 1: Kommentarzeichen ( C, *,! ) 1-5 Marke als Sprungziel (nat. Zahl) beliebige Position, führende 0 ignoriert 6 beliebiges Zeichen kennzeichnet Fortsetzungszeile, sonst leer 7-72 Programm Kommentar (fortlauf. Numerierung) Keine Unterscheidung Bezeichnern und Wortsymbolen Leerzeichen in Wortsymbolen erlaubt Wortsymbole in Ausdrücken in der Form.gt. d.h. mit Punkt eingegrenzt Fortran 77: max. 8 Zeichen für Bezeichner PROGRAM SUMME C Dies ist ein Fortran 77 Programm COMMON /CB/ M CALL TOTAL WRITE (6,9) M 9 FORMAT (I10) END SUBROUTINE TOTAL! dies ist ein Zeilenendkommentar COMMON /CB/ ITOTAL ITOTAL = 0 DO 8 I = 1, 100 ITOTAL = 1ITOTAL + I 8 CONTINUE END 2 Übersetzungseinheiten Beachte: Alle Anweisungen in Fortran beginnen mit Wortsymbol außer Zuweisung und Definition Anweisungsfunktion (statement function) Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/2002 4

2 Beispiel Fortran 90/95 Beispiel Fortran 90/95 mit Modul PROGRAM SUMME C In Fortran 90/95 geht das auch so: INTEGER ITOTAL CALL TOTAL(100) PRINT *, ITOTAL CONTAINS SUBROUTINE TOTAL(N) ITOTAL = 0 DO I = 1, N ITOTAL = ITOTAL + I END DO END SUBROUTINE TOTAL END PROGRAM SUMME 1 Übersetzungseinheit MODULE SUMMIEREN CONTAINS FUNCTION TOTAL(N) INTEGER TOTAL, N, I TOTAL = 0 DO I = 1, N TOTAL = TOTAL + I END DO END FUNCTION TOTAL END MODULE SUMMIEREN PROGRAM SUMME C In Fortran 90/95 geht das auch so: USE SUMMIEREN PRINT *, TOTAL (100) END PROGRAM SUMME 2 Übersetzungseinheiten Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Freies Format Klassifikation Zeilen bis 132 Zeichen, Spaltenposition bedeutungslos Strichpunkt trennt mehrere Anweisungen auf gleicher Zeile Fortsetzungszeichen: & am Zeilenende Leerzeichen in Wortsymbolen verboten max. 31 Zeichen für Bezeichner Unterscheide Ausführbare Anweisungen ASSIGN, DO, PRINT, IF, END IF,... Nichtausführbare Anweisungen: Spezifikationsanweisungen FORMAT, COMMON, DATA,... Typvereinbarungen (in Wahrheit Variablenvereinbarungen) INTEGER, COMPLEX,... Strukturierungsanweisungen FUNCTION, SUBROUTINE, MODULE,... Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/2002 8

3 Türme von Hanoi Programmaufbau program hanoi write (6,*) 'Wert fuer N an: '; read (5,*) n call hanoi0 (n,'a','b','c') contains subroutine move (von,nach)... end subroutine move recursive subroutine hanoi0 (n,von,nach,ueber) integer :: n character :: von, nach, ueber if (n.eq. 1) then call move (von, nach) else if (n.gt. 1) then call hanoi0 (n-1, von, ueber, nach) call move (von, nach) call hanoi0 (n-1, ueber, nach, von) end if end subroutine hanoi0 end program hanoi Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Hauptprogramm, ausführbar: PROGRAM name... CONTAINS... END PROGRAM name Externes Unterprogramm, ausführbar: SUBROUTINE name... CONTAINS... END SUBROUTINE name FUNCTION name... CONTAINS... END FUNCTION name Modul, nicht ausführbar: MODULE name... CONTAINS... END MODULE name Block-Data, nicht ausführbar: BLOCK DATA name... END BLOCK DATA name Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Vordefinierte Datentypen Weitere Datentypen INTEGER: Ausschnitt der ganzen Zahlen, parametrisiert mit KIND Attribut REAL: Annäherung an reelle Zahlen mit KIND COMPLEX: KIND wie REAL LOGICAL: Boolesche Werte, KIND für Anzahl Bytes CHARACTER: KIND für Zeichendarstellung, LEN für Anzahl Bytes KIND: Parametrisierung kennzeichnet Genauigkeit/Werteumfang, z.b. INTEGER (KIND = HIGH) zufall INTEGER (KIND = SHORT) wochentag COMPLEX (KIND = HIGH) z HIGH, SHORT,... benannte ganzzahlige Konstante Fortran 77: Neben Typ REAL noch DOUBLE PRECISION Vereinbarungen in der Form INTEGER i,j! alt INTEGER (Zusätze) i,j! alt, z.b. Zusatz SAVE: Wert erhalten INTEGER :: i,j! neu INTEGER, Zusätze :: i,j! neu implizite Vereinbarung: Bezeichner beginnend mit I,J,K,L,M,N ganzzahlig, sonst real Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Reihungen statische offene Verbunde Zeiger und Ziele von Zeigern Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

4 Statische Reihungen Equivalence Anweisung Reihungen spaltenweise gespeichert! (column major order) reihung ::= typ [par][, attribute] [, DIMENSION ( indexgrenzen )]:: name [( indexgrenzen )][=ausdruck] indexgrenzen ::= [untergrenze : ] obergrenze untergrenze und obergrenze konstant Indexgrenzen gehören zum Typ INTEGER A(100)! Untergrenze 1 REAL, DIMENSION(0:100,0:100) :: x mit Initialisierung durch DATA Anweisung: REAL :: x (100,100)= RESHAPE((/ ((1.0,K=1,J-1),& (0.0,K=J,100), J=1,100) /), SHAPE = (/ 100, 100 /) ) REAL :: y (100,100) DATA ((y (K,J), K=1,J-1), J= 1,100) / 4050*1.0 / DATA ((y (K,J), K=J,100), J= 1,100) / 5050*0.0 / Reihungszugriff: a(i,j)! kein Unterschied zu Funktionsaufruf a(i,:)! i-te Zeile a(i,10:1:-1)! Elemente a i,10, a i,9,...,a i,1 Ziel: Überlagerung mehrerer Variablen, meistens Reihungen, im Speicher Methode: Angabe von Gruppen von Variablen, insbesondere Reihungselementen, die den gleichen Speicherplatz einnehmen sollen; der Rest der Reihungen wird dann entsprechend überlagert. Vorsicht! Widersprüche werden beanstandet! REAL A(10,10), B(100) EQUIVALENCE (A,B) REAL A(100) COMPLEX Z(50) EQUIVALENCE (A,Z) REAL A(100) REAL X,Y,Z(98) EQUIVALENCE (Y,A(1)),(X,A(100)),Z(50),A(51)) Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Offene Reihungen Verbunde Ziel wie in Pascal: Vereinbarung von Parametern oder Variablen, deren Umfang bei Aufruf oder durch explizite Allokation festgelegt wird Anzahl der Indexgrenzen, repräsentiert durch Doppelpunkt mit/ohne Grenzen, gehört zum Typ SUBROUTINE f (reihung, n, m) INTEGER n, m REAL, DIMENSION(0:n,0:m) :: reihung Typdeklaration: typdef ::= TYPE [[,zugriffsrecht] ::] name [ PRIVATE ][ SEQUENCE ] komp* END TYPE [name] komp ::= typ [par][[,attribute] ::] namesliste Variablendeklaration REAL A(:,:) INTEGER, DIMENSION (:,:) :: K vardekl ::= typ [par][[,attribute] ::] namesliste Komponentenzugriff: zugriff ::= verbundname % komponentenname CHARACTER, ALLOCATABLE :: C (:,:) ALLOCATE (C(100,100)) REAL A(2:4,*)! Werte werden so verteilt, daß 3 Zeilen entstehen Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

5 Zeiger und ihre Ziele Ausdrücke zeiger ::= typ [par][,attribute], POINTER :: name [(:[,:]*)] ziel ::= typ [par][,attribute], TARGET :: name [( indexgrenzen )][=ausdruck] Rekursive Datenstrukturen TYPE liste INTEGER wert TYPE (liste), POINTER :: next END TYPE liste TYPE (liste), TARGET :: anker TYPE (liste), POINTER :: temp, hinten hinten = anker ALLOCATE(temp) hinten%next = temp Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Numerische Datentypen: Addition, Subtraktion, Division, Exponentiation, Negation, Identität, weitere mathematische Funktionen, Vergleiche Vektoren und Matrizen: elementweise Operationen, Skalarprodukt, Transposition, Matrixmultiplikation, Maximum, Minimum, Summe, Produkt Logischer Datentyp: Negation, Konjunktion, Disjunktion, Äquivalenz, Antivalenz. Matrizen: ALL und ANY. Zeichen: Verkettung zu Feldern. Selbstdefinierte Operationen möglich. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prioritäten Ablaufsteuerung selbstdefiniert einstellig Numerische Operationen, Verkettung, Vergleichsoperatoren, Logische Operatoren, selbstdefinierte zweistellig Sprünge Bedingte Anweisungen und Sprünge Schleifen Prozeduren und Funktionen Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

6 Sprünge Bedingte Anweisungen und Fallunterscheidungen goto ::= GOTO label berechnetes goto ::= GOTO ( label1, label2, label3...) skalarer numerischer ausdruck arithmetisches if ::= IF ( skalarer ausdruck ) label1, label2, label3 inzwischen veraltet logisches if ::= IF ( logischer ausdruck ) anweisung* block if ::= IF ( logischer ausdruck ) THEN... [ELSE IF...]*[ELSE...] END IF Fallunterscheidung case ::= SELECT CASE ( ausdruck ) [CASE ( ausdruck )... ]* [CASE DEFAULT... ] END SELECT Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Schleifen Zuweisungen, forall-schleifen schleife ::= [name:] DO schleifensteuerung... END DO [name] alt: schleife ::= [name:] DO label schleifensteuerung... label ende anweisung ende anweisung ::= continue beliebig schleifensteuerung ::= leer for while for ::= i = anfang, ende [,increment] [,] while while ::= WHILE ( logischer ausdruck ) exit ::= EXIT [name] cycle ::= CYCLE [name] Normale Zuweisung: Variable = Ausdruck Zeigerzuweisung: Zeiger => Zielobjekt maskierte Reihungszuweisung: real A(10,10) where (A /= 0.0) A_NEU = 1.0/A elsewhere A_NEU = 1.0 END WHERE forall-schleife: forall (I = 1:N, J = 1:M) A(I,J) = I+J zusätzlich kann ein logischer Ausdruck einzelne Zweige ausblenden Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

7 Prozeduren und Funktionen Ein-/Ausgabe Externe und Interne Prozeduren [RECURSIVE] FUNCTION name... END FUNCTION name Ergebnis an Funktionsname zuweisen, dieses als Variable vereinbaren [RECURSIVE] SUBROUTINE name... END SUBROUTINE name ENTRY name... END SUBROUTINE name weiterer Eingang in Unterprogramm Reine Prozeduren (PURE procedures): Prozeduren ohne Nebenwirkung (für FORALL) Aufruf von Unterprogrammen: CALL subroutinename(...) Parameterübergabe: Referenzaufruf oder Wert/Ergebnisaufruf, oder INTEND(IN) INTEND(OUT) INTEND(INOUT) Parameter können optional sein generische Prozedur: überladene Prozedur, zur Auflösung Argumentliste benutzen Block Data: Unterprogramm zur (statischen) initialisierung von COMMON Zonen E/A durch die Anweisungen READ, PRINT, WRITE, OPEN, CLOSE, INQUIRE, BACKSPACE, ENDFILE, REWIND (keine Prozeduraufrufe!) Dateien intern gekennzeichnet durch ganze Zahlen (unit number) Standard-Eingabe: 5, Standardausgabe: 6, (Standards, wenn nichts angegeben) unterscheide externe (echte) und interne Dateien (lokal im Programm) Zugriffsmethoden: sequentiell, direkt formatierte Text-E/A: READ (UNIT=5,FMT=FMT) EA-Liste oder kürzer READ FMT EA-Liste, analog für WRITE (PRINT erlaubt nur die Kurzform) EA-Liste enthält Variable/Ausdruck oder Schleifen (EA-Liste, i=anfang,ende) auch Ausgabe von ganzen Reihungen und Verbunden erlaubt Format FMT: * (implizite Formatierung), Textkonstante/Marke einer Formatanw. 'A6', 'E10.3', 'F10.3', 'I3', 'G10.3', '5I3', '3(I3,2F10.3)' formatiert Texte, reelle Zahlen mit/ohne Exponent, ganze Zahlen, beliebiges,... Formatkontrolle wiederholt anwenden, wenn nicht ausreichend viele Spez. erstes Zeichen bei Ausgabeformat: Druckersteuerung: Zwi: neue Zeile, 0: mit Leerzeile, 1: neue Seite, +: kein Zeilenvorschub Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Module in Fortran 77 Module in Fortran 90 Benannte Common Bereiche Partitionierung bezüglich der verwendeten globalen Daten ist Modularisierung MODULE name [ use ] [ deklarationen ] [ typdefinitionen ] [ schnittstellen ] [ [ CONTAINS [ module-unterprogramme ] ] END MODULE Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

8 Schnittstellen Teil 5 provide ::= INTERFACE [ OPERATOR ] name MODULE PROCEDURE prozedurname... END INTERFACE require ::= INTERFACE prozedurkopf... END INTERFACE COBOL COmmon Business Oriented Language 60 Kaufmännische, behördliche Anwendungen E/A ist Hauptteil der Anwendung, große Zahl einfacher Berechnungen, Dezimalarithmetik, DoD & IBM, 1959/60, die treibenden Kräfte: Grace Hopper, Jean Sammet Standardisierung 1968 durch CODASYL (COnference on DAta SYstems Languages) dann 1974, 1985, de facto Standard: IBM COBOL Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ COBOL by the numbers (Quelle: ZDNet / Gartner Inc., 2001) Sprache ohne Programmierer Crunching the COBOL numbers leads to one chilling conclusion: The projected proliferation of COBOL code over the next four years goes hand-in-hand with a drastic dwindling of the number of programmers who know anything about supporting the language. Here's the skills-hungry picture Gartner paints: 200 billion lines of COBOL code in existence in billion lines estimated annual growth of COBOL code over the next four years 90,000 Number of COBOL programmers in North America in % des Welthandels gehen über Systeme die in COBOL implementiert sind. 60% der weltweiten Codebasis ist COBOL, die Zahl vergrößert sich sogar! Die COBOL-Programmierer gehen zur Zeit in Rente oder sterben. << Unfortunately, many four-year colleges and universities have cut back or stopped giving classes in COBOL. "You can't get the new kids the dotcommers to take a second look at COBOL. It's far easier to teach a COBOLer the dot-com stuff than vice versa. Knowing COBOL means you already know how the business runs." >> 13 percent estimated annual decrease in number of COBOL programmers due to retirement and death Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

9 Entwurfsprinzipien ANSI-COBOL-85 Norm Strikte Trennung der Beschreibung von Daten und Operationen. Selbst-Dokumentation: Programme wie Sätze, Flut von Schlüsselworten, oft optional Unterscheidung Umgebung - interne Namen Statische Speicherzuteilung Keine Unterprogramme (ursprünglich) Sehr umfangreiche Sprache Bestehend aus elf Bausteinen Bausteine obligatorisch, optional oder zusätzlich Verschiedene Leistungsstufen einzelner Bausteine Keine zwei Übersetzer übersetzen die gleiche Sprache. IBM Übersetzer de facto Standard. neue Norm 2002? Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Obligatorische Bausteine Optionale Bausteine Kern (Nucleus): allgemeine Sprachelemente, Datendefinitionen (Elemente, Gruppen, Sätze, Tabellen), Basisoperationen (Zuweisung, Arithmetik, etc.), Programmablaufsteuerung Sequentielle EA: sequentieller Zugriff auf (sequentielle) Dateien, Formatierung von Seiten in Druckdateien Programmkommunikation: Aufruf externer Programme, fremde Sprachen anbinden Relative EA: sequentieller und wahlfreier Zugriff auf strukturierte Dateien Indizierte EA: Sätze einer Datei indiziert mit Schlüsseln, alternative Schlüssel, sequentieller und wahlfreier Zugriff über Schlüssel Sort/Merge: Sortieren und Mischen von Dateien, Operationen zur Datensatztransformation vor dem Sortieren/Mischen, Benutzergesteuerte Sortieroperationen Quelltext Manipulation: Bibliotheksmodell, Zusammenbinden verschiedener Programme Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

10 Zusätzliche Bausteine Programmformate Testhilfe: Sprachelemente zur Fehlersuche (z.b. Statusregister) Kommunikation: Datenfernübertragung Segmentierung: Auslagerung einzelner Programmteile zur Laufzeit Report Writer: Listenerstellung Festes Format (veraltet): Spalte 1-6: Marke, numerisch, führende Nullen ignoriert 7: Kommentar- (*, /) oder Fortsetzungszeichen (-) 8-11: Feld A - Stufennummern, Hauptabschnitte 12-72: Feld B - Namen in Datenbeschreibungen, Anweisungen 73-80: Kommentar (ignoriert, Zeilenkennung/Numerierung) Alternative: Freies Format Groß-/Kleinbuchstaben äquivalent, Minuszeichen Bestandteil von Bezeichnern Überschriften, Vereinbarungen, Anweisungen abgeschlossen mit Punkt. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Beispiel (IBM 1965) IDENTIFICATION DIVISION. PROGRAM-ID. 'SORT360'. AUTHOR. IBM. DATE-WRITTEN DATE-COMPILED. UNKNOWN. SECURITY. CONFIDENTIAL. REMARKS. THIS PROGRAM WAS WRITTEN TO DEMONSTRATE THE USE OF THE SORT FEATURE. THIS PROGRAM PERFORMS THE FOLLOWING TASKS - 1. SELECTS, FROM A FILE OF 1000-CHARACTER RECORDS, THOSE RECORDS HAVING FIELD-A NOT EQUAL TO FIELD-B 2. EXTRACTS INFORMATION FROM THE SELECTED RECORDS. 3. SORTS THE SELECTED RECORDS INTO SEQUENCE, USING FIELD-AA, FIELD-BB, AND FIELD-CC AS SORT KEYS. 4. WRITES THOSE SORTED RECORDS HAVING FIELD-FF EQUAL TO FIELD-EE ON FILE-3 AND WRITES SELECTED DATA OF THE OTHER RECORDS ON FILE-2. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-360 F50. OBJECT-COMPUTER. IBM-360 F50. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INPUT-FILE-1 ASSIGN TO 'F401' UTILITY. SELECT SORT-FILE-1 ASSIGN 'SF1' UTILITY. SELECT FILE-2 ASSIGN 'F402' UTILITY. SELECT FILE-3 ASSIGN 'F403' UTILITY. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

11 DATA DIVISION. FILE SECTION. FD INPUT-FILE-1 BLOCK CONTAINS 5 RECORDS RECORDING MODE IS F LABEL RECORDS ARE STANDARD DATA RECORD IS INPUT-RECORD. 01 INPUT-RECORD 02 FIELD-A PICTURE X (20). 02 FIELD-C PICTURE 9 (10). 02 FIELD-D PICTURE X (15). 02 FILLER PICTURE X (900). 02 FIELD-B PICTURE X (20). 02 FIELD-E PICTURE 9 (5). 02 FIELD-G PICTURE X (25). 02 FIELD-F PICTURE 9 (5). 01 FILE-2-RECORD 02 FIELD-EEE PICTURE $$$$9. 02 FILLER-A PICTURE 9 (2). 02 FIELD-FFF PICTURE 9 (5). 02 FILLER-B PICTURE X (2). 02 FIELD-AAA PICTURE X (20). 02 FIELD-BBB PICTURE X (20). FD FILE-3 BLOCK CONTAINS 15 RECORDS RECORDING MODE IS F LABEL RECORDS ARE STANDARD DATA RECORD IS FILE-3-RECORD. 01 FILE-3-RECORD PICTURE X(75). Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ SD SORT-FILE-1 DATA RECORD IS SORT-RECORD. 01 SORT-RECORD 02 FIELD-AA PICTURE X (20). 02 FIELD-CC PICTURE 9 (10). 02 FIELD-BB PICTURE X (20). 02 FIELD-DD PICTURE X (15). 02 FIELD-EE PICTURE 9 (5). 02 FIELD-FF PICTURE 9 (5). FD FILE-2 BLOCK CONTAINS 10 RECORDS RECORDING MODE IS F LABEL RECORDS ARE STANDARD DATA RECORD IS FILE-2-RECORD. PROCEDURE DIVISION. OPEN INPUT-FILE-1, OUTPUT FILE-2, FILE-3. SORT SORT-FILE-1 ASCENDING FIELD-AA, DESCENDING FIELD-BB, ASCENDING FIELD-CC INPUT PROCEDURE RECORD-SELECTION OUTPUT PROCEDURE PROCESS-SORTED-RECORDS. CLOSE INPUT-FILE-1, FILE-2, FILE-3. STOP RUN. RECORD-SELECTION SECTION. PARAGRAPH-1. READ INPUT-FILE-1 AT END GO TO PARAGRAPH-2. IF FIELD-A = FIELD-B GO TO PARAGRAPH-1 ELSE MOVE FIELD-A TO FIELD-AA MOVE FIELD-F TO FIELD-FF MOVE FIELD-C TO FIELD-CC MOVE FIELD-B TO FIELD-BB MOVE FIELD-D TO FIELD-DD MOVE FIELD E TO FIELD-EE RELEASE SORT-RECORD. GO TO PARAGRAPH-1. PARAGRAPH-2. EXIT. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

12 PROCEDURE DIVISION. OPEN INPUT-FILE-1, OUTPUT FILE-2, FILE-3. SORT SORT-FILE-1 ASCENDING FIELD-AA, DESCENDING FIELD-BB, ASCENDING FIELD-CC INPUT PROCEDURE RECORD-SELECTION OUTPUT PROCEDURE PROCESS-SORTED-RECORDS. CLOSE INPUT-FILE-1, FILE-2, FILE-3. STOP RUN. RECORD-SELECTION SECTION. PARAGRAPH-1. READ INPUT-FILE-1 AT END GO TO PARAGRAPH-2. IF FIELD-A = FIELD-B GO TO PARAGRAPH-1 ELSE MOVE FIELD-A TO FIELD-AA MOVE FIELD-F TO FIELD-FF MOVE FIELD-C TO FIELD-CC MOVE FIELD-B TO FIELD-BB MOVE FIELD-D TO FIELD-DD MOVE FIELD E TO FIELD-EE RELEASE SORT-RECORD. GO TO PARAGRAPH-1. PARAGRAPH-2. EXIT. PROCESS-SORTED-RECORDS SECTION. PARAGRAPH-3. RETURN SORT-FILE-1 AT END GO TO PARAGRAPH-4. IF FIELD-FF = FIELD-EE WRITE FILE-3-RECORD FROM SORT-RECORD GO TO PARAGRAPH-3 ELSE MOVE FIELD-EE TO FIELD-EEE MOVE FIELD-FF TO FIELD-FFF MOVE FIELD-AA TO FIELD-AAA MOVE FIELD-BB TO FIELD-BBB MOVE SPACES TO FILLER-A, FILLER-B WRITE FILE-2-RECORD. GO TO PARAGRAPH-3. PARAGRAPH-4. EXIT. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Programmaufbau IDENTIFICATION DIVISION Hierarchische Gliederung: Division - Section - Paragraph vier Abteilungen: Name des Programms Allgemeine Programminformationen Optionale Zusatzangaben ohne semantische Bedeutung IDENTIFICATION DIVISION Verfasser, Datum, usw. ENVIRONMENT DIVISION Konfiguration, EA-Steuerung: Zuordnung externe-interne Datei DATA DIVISION Dateivereinbarungen, EA-Puffer, Datenvereinbarungen PROCEDURE DIVISION Anweisungen. Abschnitts-/Absatznamen als Sprungziele. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

13 ENVIRONMENT DIVISION ENVIRONMENT DIVISION Konfigurationsabschnitt: Übersetzung (Quell-Ziel-System), Internationalisierung (Dezimaltrenner, Sortierangaben, etc.) Ein-Ausgabe-Informationen: Zuordnung externe (physikalische) Dateien - interne (logische) Dateien Vereinbarung der EA-Puffer ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. Atari ST OBJECT-COMPUTER. Cray SPECIAL-NAMES. DECIMAL-POINT IS COMMA. INPUT-OUTPUT SECTION. SELECT datafile ASSIGN TO Data.dat Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Datei (Data-Set) DATA DIVISION zuordnung ::= SELECT intern ASSIGN TO system [organisation] [zugriff] [schlüssel] [status] organisation ::= ORGANIZATION IS (SEQUENTIAL RELATIVE INDEXED) zugriff ::= ACCESS IS (SEQUENTIAL RELATIVE INDEXED) schlüssel ::= RELATIVE KEY IS ganzzahlfeld RECORD KEY IS feld [ALTERNATIVE RECORD KEY IS feld [ WITH DUPLICATES ] ]* FILE SECTION Persistente Daten und Dateistrukturen WORKING-STORAGE SECTION Temporäre Daten LINKAGE SECTION Formale Parameter status ::= FILE STATUS IS zweizeichenfeld Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

14 Typkonzept Satznummern Skalare Werte: datenelement ::= sn datenname PICTURE IS art [ USAGE IS format ] [ VALUE IS literal ] Statische Reihungen (Tabellen): tabelle ::= datenelement OCCURS ganze zahl [ASCENDING KEY IS[datenname] + ] [INDEXED BY datenname] zugriff ::= tabellenname ( ganze zahl ) Records (Datensätze): satz ::= [ datenelement ] * zugriff ::= datenname [. datenname ]* Definieren Ebene in Datensätzen Besondere Satznummern: Ebenen-Nummern 66 Umbenennungen (renames), 77 Unabhängige Datenelemente, 88 Bedingungen Reihungen maximal dreistufig Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Datenart Numerische Typen PICTURE IS (Kurzform PIC) X - Alphanumerisch A - Alphabetisch 9 - Numerisch Anzahl Stellen definiert durch PICTURE IS [S](9* 9(zahl)) [V(9* 9(zahl))] USAGE art art ::= BINARY COMPUTATIONAL-1 COMPUTATIONAL-2 DISPLAY PACKED-DECIMAL Beispiel: 01 bezeichner PIC S99V99 1. Klammerung, z.b. X(3) Wiederholung, z.b. XXX Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

15 Druckformate DATA DIVISION Beispiel 01 bezeichner PIC Z99.99CB SIGN LEADING Dezimalpunkt oder -Komma:., Keine Nullen vorn: Z Soll und Haben: CB DB Formate gehören zum Datenelement nicht zu EA Operationen FILE SECTION. FD interne-datei daten-satz-name PIC FD interne-datei WORKING-STORAGE SECTION. 01 daten-satz-name-1 PIC daten-satz-name-2 PIC... LINKAGE SECTION. 01 daten-satz-name PIC... Ebene 02 bedeutet Unterverbund, Ebene 03 Unter-Unterverbund, usw. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ PROCEDURE DIVISION Bildschirm Ein- und Ausgabe Anweisungsteil Anweisungen bilden Sätze Sätze bilden Paragraphen Paragraphen bilden Abschnitte Prozedur - Oberbegriff für Abschnitte und Paragraphen Paragraph- und Abschnittsbezeichner: Marken und Untermarken ausgabe ::= DISPLAY ( literal datenname ) eingabe ::= ACCEPT datenname Beispiel: WORKING-STORAGE SECTION. 01 zeile PIC X(80) VALUE String. PROCEDURE DIVISION. DISPLAY zeile, ACCEPT zeile, DISPLAY zeile. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

16 Eingabemasken Perform-Anweisung, Unterprogramme, Schleifen DATA DIVISION. WORKING-STORAGE SECTION. 01 kunde. 02 name PIC X(30). 02 vorname PIC X(30). 02 adresse PIC X(100). SCREEN SECTION. 01 eingabemaske. 02 blank screen. 02 line 1 column 5 value Name:. 02 line 1 column 15 PIC X(30) to name. 02 line 2 column 5 value Vorame:. 02 line 2 column 15 PIC X(30) to vorname. 02 line 3 column 5 value Adresse:. 02 line 3 column 15 PIC X(100) to adresse. PROCEDURE DIVISION: display eingabemaske. accept eingabemaske.... Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ perform ::= PERFORM wiederholung [ anweisung Marken ]* END-PERFORM wiederholung ::= (ganze zahl datenname ) TIMES Beispiel: PROCEDURE DIVISION. PERFORM 100 TIMES ACCEPT zeile, DISPLAY zeile END-PERFORM. Beispiel: PROCEDURE DIVISION. PERFORM 100 TIMES PARAGRAPH-1 THRU PARAGRAPH-7 END-PERFORM.... PARAGRAPH PARAGRAPH also: perform-anweisung erlaubt Zählschleife und Unterprogrammaufruf (parameterlos, keine Rekursion) Problem: wie unterscheidet man Absätze, die normal durchlaufen werden von Unterprogrammrümpfen? Keine Unterscheidung in der Sprache. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ While Schleife PERFORM - Anweisung perform ::= PERFORM abbruch [ anweisung ]* END-PERFORM abbruch ::= WITH TEST ( BEFORE AFTER) UNTIL bedingung Beispiel: PERFORM WITH TEST AFTER zeile=... END ACCEPT zeile, DISPLAY zeile END-PERFORM. perform ::= PERFORM prozedurname [THRU prozedurname][wiederholung abbruch] Beispiel: BEGIN. PERFORM EINLESEN THRU AUSGEBEN END-PERFORM. EINLESEN. ACCEPT zeile BERECHNEN. * Mach irgendetwas. AUSGEBEN. DISPLAY zeile, STOP RUN. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

17 Zuweisung Beispiel zuweisung ::= MOVE ( literal datenname ) TO datenname zuweisung ::= MOVE CORRESPONDING datensatz-name-1 TO datensatz-name-2 CORRESPONDING: gleichbezeichnete Felder der Sätze Beispiel: WORKING-STORAGE SECTION. 01 englisches-datum. 02 monat PIC FILLER PIC X VALUE ''/''. 02 tag PIC FILLER PIC X VALUE ''/''. 02 jahr PIC deutsches-datum. 02 tag PIC FILLER PIC X VALUE ''.''. 02 monat PIC FILLER PIC X VALUE ''.''. 02 jahr PIC 99. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ PROCEDURE DIVISION. ACCEPT englisches-datum.monat, ACCEPT englisches-datum.tag, ACCEPT englisches-datum.jahr. MOVE CORRESPONDING englisches-datum TO deutsches-datum. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Arithmetische Operationen Addition und Subtraktion compute ::= COMPUTE [ datenname ]* = arithmetischer ausdruck mit Operatoren + - * / ** Aber: Kaufleuten kann man Zuweisungen und Ausdrücke der Form a := a*b+c nicht zumuten (Ansicht von 1960). daher Lösung wie auf den nächsten Seiten addition ::= ADD [literal datenname ] + TO [datenname ] + [ GIVING datenname ]* addition ::= ADD CORRESPONDING datensatz-name-1 TO datensatz-name-2 subtraktion ::= SUBTRACT [literal datenname ] + FROM [datenname ] + [ GIVING datenname ]* subtraktion ::= SUBTRACT CORRESPONDING datensatz-name-1 FROM datensatz-name-2 ADD GIN TO VERMOUTH GIVING MARTINI Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

18 Multiplikation und Division Datei Ausgabe multiplikation ::= MULTIPLY [literal datenname] + BY [datenname ] + [ GIVING datenname ]* multiplikation ::= MULTIPLY CORRESPONDING datensatz-name-1 BY datensatz-name-2 division ::= DIVIDE (literal datenname) (BY INTO) datenname [GIVING datenname]* [ REMAINDER datenname] öffenen ::= OPEN interner dateiname [ rechte ] schließen ::= CLOSE interner dateiname schreiben ::= WRITE datensatzname [ FROM datenname ] [ INVALID KEY anweisungen ] [ NOT INVALID KEY anweisungen ] [ END-WRITE ] überschreiben ::= REWRITE... [ END-REWRITE ] löschen ::= DELETE dateiname RECORD... [ END-DELETE ] Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Datei Eingabe Bedingungen lesen ::= READ dateiname RECORD [ INTO datenname ] [ KEY IS schlüssel ] [ INVALID KEY anweisungen ] [ NOT INVALID KEY anweisungen ] [ AT END anweisungen ] [ NOT AT END anweisungen ] [ END-READ ] positionieren ::= START dateiname RECORD [ KEY IS (EQUAL TO GREATER THAN...) schlüssel... [ END-START ] if ::= IF bedingung THEN anweissungen [ ELSE anweisungen ] [ END-IF ] bedingung ::= ( literal datenname ) vergleichsausdruck ( literal datenname ) bedingung ::= datenname IS klasse bedingung ::= bedingungsname case ::= EVALUATE ausdruck [ ALSO ausdruck ]* [WHEN ausdruck [ALSO ausdruck]* anweisungen]* [WHEN OTHERS anweisungen ] [END-EVALUATE] Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

19 Beispiel Weitere Steuerstrukturen 01 FAMILIENSTAND PIC 9 88 LEDIG VALUE VERHEIRATET VALUE 2... sprung ::= GO TO prozedurname [ [ prozedurname ]* DEPENDING ON datenname ] ende ::= STOP RUN Unterprogramme - IF LEDIG THEN... IF FAMILIENSTAND = 1 THEN... SET LEDIG TO TRUE. nicht im ursprünglichen Standard. Später ohne Parameter. Immer noch ohne Rekursion. Formale Parameter in der LINKAGE-SECTION vereinbart, Kein Speicherplatz vorgesehen. Statische Bindung und Speicherzuteilung Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Unterprogramme Tabellen verarbeiten aufruf ::= CALL (unterprogramm- datenname) [ USING [[übergabe] aktuelle parameter]*] übergabe ::= BY REFERENCE BY CONTENT BY CONTENT LENGTH definition ::= PROCEDURE-DIVISION [ formaler parameter ]* Identification division. program-id. Tabellen-demo. Environment division.... data division. working-storage section. 01 kontakt-tabelle. 02 kontakt occurs 100 ascending key is name vorname indexed by kontakt-idx. 03 name pic X(30). 03 vorname pic X(30). 03 kontakt-art pic interner-kontakt value externer-kontakt value adresse occurs strasse pic X(30). 04 plz pic XXXXX. 04 ort pic X(30). 01 temporaere-felder. 02 such-ende pic suche-lauft value suche-beendet value such-name pic X(30). Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/ Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

20 Tabellen verarbeiten, Fortsetzung procedure division.... move "Müller" to such-name. perform suche-alle-passenden. perform suche-alle-passenden-schneller.... suche-alle-passenden section. set suche-laeuft to true. set kontakt-idx to 1. perform until suche-beendet. search kontakt. at end set suche-beendet to true. when such-name = name perform gefunden. end search. exit.... suche-alle-passenden-schneller section. set suche-laeuft to true. set kontakt-idx to 1. perform until suche-beendet. search all kontakt. at end set suche-beendet to true. when such-name = name perform gefunden. end search. exit. gefunden section. display "Gefunden: " name "," vorname. exit. Prof. Dr. Gerhard Goos Höhere ProgrammiersprachenWS 2001/

Teil 4 FORTRAN. Prof. Dr. Gerhard Goos, Dr. Sabine Glesner Höhere ProgrammiersprachenWS 2002/03 (5. Foliensatz) 1

Teil 4 FORTRAN. Prof. Dr. Gerhard Goos, Dr. Sabine Glesner Höhere ProgrammiersprachenWS 2002/03 (5. Foliensatz) 1 Teil 4 FORTRAN Prof. Dr. Gerhard Goos, Dr. Sabine Glesner Höhere ProgrammiersprachenWS 2002/03 (5. Foliensatz) 1 Inhaltsübersicht HPS WS 2002/03 - Grundlagen (1,2,3) - Konzepte imperativer Programmiersprachen

Mehr

FORTRAN FORTRAN. Teil 4. Programmformate. Teil 4. Inhaltsübersicht HPS WS 2003/04

FORTRAN FORTRAN. Teil 4. Programmformate. Teil 4. Inhaltsübersicht HPS WS 2003/04 Teil 4 FORTRAN Inhaltsübersicht HPS WS 2003/04 - - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen (4) - Objektorientierte Programmiersprachen (5,6)

Mehr

COBOL. COBOL by the numbers (Quelle: ZDNet / Gartner Inc., 2001) Teil 5. Sprache ohne Programmierer. Entwurfsprinzipien

COBOL. COBOL by the numbers (Quelle: ZDNet / Gartner Inc., 2001) Teil 5. Sprache ohne Programmierer. Entwurfsprinzipien Teil 5 COBOL COmmon Business Oriented Language 60 Kaufmännische, behördliche Anwendungen E/A ist Hauptteil der Anwendung, große Zahl einfacher Berechnungen, Dezimalarithmetik, DoD & IBM, 1959/60, die treibenden

Mehr

Teil 5 COBOL. COmmon Business Oriented Language 60

Teil 5 COBOL. COmmon Business Oriented Language 60 Teil 5 COBOL COmmon Business Oriented Language 60 Kaufmännische, behördliche Anwendungen E/A ist Hauptteil der Anwendung, große Zahl einfacher Berechnungen, Dezimalarithmetik, DoD & IBM, 1959/60, die treibenden

Mehr

Programmieren mit COBOL

Programmieren mit COBOL Wirtschaftsinformatik: Datenverarbeitung Klaus Arzdorf Programmieren mit COBOL 4., völlig neu bearbeitete Auflage Vogel Buchverlag Inhaltsverzeichnis Vorwort 5 Urhebernachweis 7 Vom Problem zum Programm

Mehr

Vorwort 11 1 Einleitung Überblick Hardwareausstattung Softwarebausteine Programmentwicklung 19

Vorwort 11 1 Einleitung Überblick Hardwareausstattung Softwarebausteine Programmentwicklung 19 Inhaltsverzeichnis Vorwort 11 1 Einleitung. 15 1.1 Überblick 15 1.2 Hardwareausstattung 17 1.3 Softwarebausteine 17 1.4 Programmentwicklung 19 2 Einführungsbeispiel 21 3 Das grundlegende Konzept von Cobol

Mehr

COBOL Programmierte Unterweisung

COBOL Programmierte Unterweisung Harald Gockel COBOL Programmierte Unterweisung 3. Auflage Hüthig Buch Verlag Heidelberg Inhaltsverzeichnis Vorwort 1 1.1 Urhebernachweis 2 1.2 Hinweise zur Benutzung dieses Buches 3 Wie entsteht ein Programm?

Mehr

Fortran 90. Lehr- und Handbuch von Dr. Thomas Michel Sietec Consulting GmbH & Co. OHG, München. Wissenschaftsverlag Mannheim Leipzig Wien Zürich

Fortran 90. Lehr- und Handbuch von Dr. Thomas Michel Sietec Consulting GmbH & Co. OHG, München. Wissenschaftsverlag Mannheim Leipzig Wien Zürich Fortran 90 Lehr- und Handbuch von Dr. Thomas Michel Sietec Consulting GmbH & Co. OHG, München Wissenschaftsverlag Mannheim Leipzig Wien Zürich VII Vorwort.V ERSTER TEIL INFORMATIK FÜR PROGRAMMIERER 1 1

Mehr

COBOL COBOL. Tobias Denzler Eve Morel. Für das Seminar: 10 Programmiersprachen

COBOL COBOL. Tobias Denzler Eve Morel. Für das Seminar: 10 Programmiersprachen COBOL Tobias Denzler Eve Morel Für das Seminar: 10 Programmiersprachen COBOL Common Business Oriented Language Cobol verwirrt das Gehirn; diese Sprache zu lehren, sollte deshalb als kriminelle Tat verfolgt

Mehr

Common Business Oriented Language. Teil 1 - Einführung

Common Business Oriented Language. Teil 1 - Einführung Common Business Oriented Language Teil 1 - Einführung Eckdaten Erster Cobol Compiler 1959 Cobol ANSI/ISO Standards 1968, 1974, 1985, 2002 (!) Java: erster Release 1995, JDBC 1997, J2EE 1998 1997: Schätzungsweise

Mehr

ATIK ORMAT SINFO HAFTS WIRT. Swetlana Konovalov Seminar Programmiersprachen Westfälische Wilhelms-Universität Münster

ATIK ORMAT SINFO HAFTS WIRT. Swetlana Konovalov Seminar Programmiersprachen Westfälische Wilhelms-Universität Münster Westfälische Wilhelms-Universität Münster WIRTSCHAFTS ATIK ORMAT SINFO TSCH HAFTS WIRT FORTRAN Swetlana Konovalov Seminar Programmiersprachen 04.06.200906 Inhalt Einführung Historische Entwicklung Charakteristika

Mehr

Programmentwicklung. 4. allgemein (modularer Aufbau, Unterprogramme universell einsetzbar)

Programmentwicklung. 4. allgemein (modularer Aufbau, Unterprogramme universell einsetzbar) Programmentwicklung Ziele: 1. effizient (wenig Rechenzeit und Kernspeicher) 2. lesbar (Kommentare, sinnvolle Namen) 3. transportabel (Standard FORTRAN, rechnerunabhängig) 4. allgemein (modularer Aufbau,

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language) 4. Zur Struktur der PS PASCAL 4.1. Einleitende Bemerkungen 1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language) Anfang 60er (USA) COBOL (Commercial Business

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Syntax der Sprache PASCAL

Syntax der Sprache PASCAL Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +

Mehr

FORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München

FORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München FORTRAN77 eine höllische Programmiersprache Christian Sternecker TU-München Sommersemester 2010 Aufbau des Vortrags Geschichte Merkmale Höllische Konzepte Typsicherheit Programmstruktur Speicherverwaltung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Anweisungen in Fortran - Wertzuweisung

Anweisungen in Fortran - Wertzuweisung Anweisungen in Fortran - Wertzuweisung Wertzuweisung, Ausdrücke variable = ausdruck arithmetischer, logischer oder Zeichenketten-Ausdruck, Typ des Ergebnisses sollte auf den Typ der linksstehenden Variablen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration: Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,

Mehr

Grundlagen wissenschaftlichen Arbeitens (ws /05)

Grundlagen wissenschaftlichen Arbeitens (ws /05) Grundlagen wissenschaftlichen Arbeitens (ws.. 2004/05) Thema: The programming language PASCAL Autor: Ratko Trajanovski 1 kurzfassung Zur Sprache PASCAL Pascal in der Ausbildung Lexikalische Elemente Programmaufbau

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de FORTRAN Einführung I: FORTRAN Historie Sprachelemente

Mehr

Bemerkungen zu den Übergabeparametern 2 FORTRAN gestattet auch, Funktionen als Übergabeparameter zu behandeln, sofern sie mit

Bemerkungen zu den Übergabeparametern 2 FORTRAN gestattet auch, Funktionen als Übergabeparameter zu behandeln, sofern sie mit Bemerkungen zu den Übergabeparametern 2 FORTRAN gestattet auch, Funktionen als Übergabeparameter zu behandeln, sofern sie mit EXTERNAL im rufenden Programm deklariert wurden auch intrinsische

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden Funktionen in Matlab Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

TURBO PASCAL VERSION 5.5

TURBO PASCAL VERSION 5.5 Jörg Lange TURBO PASCAL VERSION 5.5 / Hüthig Buch Verlag Heidelberg 7 Inhaltsverzeichnis 1. DasTURBO-Pascal-System 13 1.1 Starten des TURBO-Pascal-Systems 13 1.2 DasTURBO-Pascal-Menue-System 17 1.3 DasF)ILE-Menue

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Inhaltsverzeichnis. Vorwort zur zweiten amerikanischen Ausgabe 19 Vorwort zur deutschen Ausgabe 25 Vorbemerkungen 29

Inhaltsverzeichnis. Vorwort zur zweiten amerikanischen Ausgabe 19 Vorwort zur deutschen Ausgabe 25 Vorbemerkungen 29 COBOL Strukturierte Programmierung mit COBOL 85 Von Daniel D. McCracken und Donald G. Golden 7., korrigierte Auflage Oldenbourg Verlag München Wien 5 Inhaltsverzeichnis Vorwort zur zweiten amerikanischen

Mehr

Inhalt. Einführung in die Strukturierte Programmierung 15

Inhalt. Einführung in die Strukturierte Programmierung 15 Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

3.1 Reservierte Wörter

3.1 Reservierte Wörter 3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der

Mehr

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Bauinformatik 1. Teil 1 / VBA. Ernst Baeck. Fachgebiet Statik und Dynamik der Flächentragwerke. 27. April 2017

Bauinformatik 1. Teil 1 / VBA. Ernst Baeck. Fachgebiet Statik und Dynamik der Flächentragwerke. 27. April 2017 Bauinformatik 1 Teil 1 / VBA Ernst Baeck Fachgebiet Statik und Dynamik der Flächentragwerke 27. April 2017 E. Baeck (Uni-DUE) Folien-Skript (V) 1 / 49 Die Programmiersprache VBA Visual Basic for Applications

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

WS2018/ Oktober 2018

WS2018/ Oktober 2018 Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen

Mehr

Vorlesung Objektorientierte Programmierung Klausur

Vorlesung Objektorientierte Programmierung Klausur Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

Mehr

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

D-BAUG Informatik I. Exercise session: week 1 HS 2018

D-BAUG Informatik I. Exercise session: week 1 HS 2018 1 D-BAUG Informatik I Exercise session: week 1 HS 2018 Java Tutorials 2 Questions? expert.ethz.ch 3 Common questions and issues. expert.ethz.ch 4 Need help with expert? Mixed expressions Type Conversions

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung

Mehr

Oracle PL/SQL - Grundlagen

Oracle PL/SQL - Grundlagen Oracle PL/SQL - Grundlagen Steven Feuerstein mit Bill Pribyl Deutsche Übersetzung von Matthias Kalle Dalheimer O'REILT Beijing Cambridge Köln Paris Sebastopol Taipei Tokyo Inhalt Vorwort Einleitung xiii

Mehr

Programmieren in. Brian W. Kernighan Dennis M. Ritchie ANSIC. Mit dem C-Reference Manual in deutscher Sprache. Zweite Ausgabe

Programmieren in. Brian W. Kernighan Dennis M. Ritchie ANSIC. Mit dem C-Reference Manual in deutscher Sprache. Zweite Ausgabe Brian W. Kernighan Dennis M. Ritchie Programmieren in Mit dem C-Reference Manual in deutscher Sprache Zweite Ausgabe ANSIC Die deutsche Ausgabe besorgten Prof. Dr. A.T. Schreiner und Dr. Ernst Janich Eine

Mehr

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen

Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen Beispiele elementarer Datentypen Ganze Zahlen (integer) - Werte sind ganze Zahlen in vorgegebenen Bereich (z. B. -2 31 bis 2 31-1) - Übliche Operationen: Arithmetik (z. B. +,-,*, Division mit Rest, Rest

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

Übersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code

Übersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code Informatik II D-BAUG Self-Assessment, 2. März 2017 Lösung Name, Vorname:............................................................. Legi-Nummer:.............................................................

Mehr

Informatik für Mathematiker und Physiker Woche 7. David Sommer

Informatik für Mathematiker und Physiker Woche 7. David Sommer Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

Lexikalische Struktur von Fortran 95. Normierte Zeichensätze

Lexikalische Struktur von Fortran 95. Normierte Zeichensätze Lexikalische Struktur von Fortran 95. Normierte Zeichensätze Im Folgenden steht für ein Leerzeichen! ASCII (American Standard Code for Information Interchange. Es gibt eine DIN-Norm die dem entspricht),

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

Mehr

EXCEL VBA Cheat Sheet

EXCEL VBA Cheat Sheet Variable Declaration Dim As Array Declaration (Unidimensional) Dim () As Dim ( To ) As

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP

Programmieren für Fortgeschrittene Einführung in die Programmiersprache ABAP Funktionsanalyse für einen programmgesteuerten Zugriff auf 3D-Modelle Robin Raetze Waldemar Gorbunov Braunschweig, 26.01.2017 GESIS, MV, Folie 1, Braunschweig, 23. Juni 2016 Programmieren für Fortgeschrittene

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

Mehr

B Synopsis der Programmiersprachen ABAP, VB und Java

B Synopsis der Programmiersprachen ABAP, VB und Java AnhangB.fm Seite 299 Dienstag, 22. April 2003 2:33 14 B Synopsis der Programmiersprachen ABAP, VB und Java Die folgenden Tabellen sind eine vergleichende Übersicht ausgewählter Sprachelemente der drei

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Erklären

Mehr

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos

Mehr

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2018

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2018 to to May 2018 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

6. Kontrollanweisungen II

6. Kontrollanweisungen II Sichtbarkeit 6. Kontrollanweisungen II Sichtbarkeit, Lokale Variablen, While-Anweisung, Do-Anweisung, Sprunganweisungen main block Deklaration in einem Block ist ausserhalb des Blocks nicht sichtbar. int

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

5. Kontrollanweisungen II

5. Kontrollanweisungen II Sichtbarkeit 5. Kontrollanweisungen II Sichtbarkeit, Lokale Variablen, While-Anweisung, Do-Anweisung, Sprunganweisungen main block Deklaration in einem Block ist ausserhalb des Blocks nicht sichtbar. int

Mehr