Kurs 1575, Klausur vom , Musterlösung
|
|
- Claus Fromm
- vor 5 Jahren
- Abrufe
Transkript
1 Aufgabe 1: Schleife, Fallunterscheidung (CASE) Schreiben Sie ein Programm, das eine positive ganze Zahl (im Gültigkeitsbereich von integer) einliest und ihre Ziffern in umgekehrter Reihenfolge als Text ausgibt. Beispiel: Die Eingabe von führe zu der Ausgabe: ergibt in Worten rueckwaerts: fuenf vier drei zwei eins 6789 ergibt in Worten rueckwaerts: neun acht sieben sechs ergibt in Worten rueckwaerts: neun sieben fuenf drei eins ergibt in Worten rueckwaerts: null acht sechs vier zwei ergibt in Worten rueckwaerts: sieben sechs sieben zwei drei Hinweis: Zum Abtrennen der letzten Ziffer kann der mod-operator nützlich sein, zum Verkleinern einer Zahl um die letzte Stelle der div- Operator. (Max. 20 Punkte) PROGRAM zerleg(input,output); VAR zahl, rest: INTEGER; assign(input,'zerleg.dat'); assign(output,'zerleg.out'); reset (input); REPEAT read(zahl); write(zahl:6, ' ergibt in Worten rueckwaerts: '); WHILE (zahl<>0) DO rest := zahl MOD 10; zahl := zahl DIV 10; CASE rest OF 1 : write('eins '); 2 : write('zwei '); 3 : write('drei '); 4 : write('vier '); 5 : write('fuenf '); 6 : write('sechs '); 7 : write('sieben '); 8 : write('acht '); 9 : write('neun '); 0 : write('null ') ; writeln UNTIL eof. 1
2 Aufgabe 2: Funktion Zwei verschiedene natürliche Zahlen a und b heissen befreundet, wenn die Summe der (von a verschiedenen) Teiler von a gleich b ist und die Summe der (von b verschiedenen) Teiler von b gleich a. Beispiel für ein solches Paar: 220 und 284: Teilersumme von a: = 284 = b Teilersumme von b: = 220 = a Schreiben Sie ein Programm, dass für eingegebene Zahlenpaare überprüft, ob es sich um in diesem Sinne befreundete Paare handelt. Zur Ermittlung der Teilersumme ist eine Funktion zu schreiben. Die Eingabe von: führe zu der Ausgabe: 220 und 284 sind befreundet 220 und 285 sind nicht befreundet 1184 und 1210 sind befreundet 1185 und 1210 sind nicht befreundet 2620 und 2924 sind befreundet 5020 und 5564 sind befreundet 6232 und 6368 sind befreundet und sind befreundet und sind befreundet und sind befreundet und sind nicht befreundet (Max. 20 Punkte) program teilsum(input,output); VAR zahl1, zahl2: INTEGER; FUNCTION teilersumme(zahl: INTEGER): INTEGER; VAR summe, zaehler: INTEGER; summe := 0; FOR zaehler := 1 TO zahl-1 DO IF zahl MOD zaehler = 0 THEN summe := summe + zaehler; teilersumme := summe ; {teilersumme} assign(input,'teilsum.dat'); assign(output,'teilsum.out'); reset (input); REPEAT read(zahl1, zahl2); write(zahl1:5, ' und ',zahl2:5,' sind '); IF (teilersumme(zahl1) <> zahl2) OR (teilersumme(zahl2) <> zahl1) THEN write('nicht '); writeln('befreundet') UNTIL eof. 2
3 Aufgabe 3: Einfach verkettete Liste, rekursive Funktion Ein Palindrom ist eine Zeichenkette, die vorwärts und rückwärts gelesen dasselbe ergibt. Z.B.: otto imi einnegermitgazellezagtimregennie amanaplanacanalpanama (Die beiden letzten Zeilen werden etwas verständlicher, wenn man sie wie folgt schreibt: Ein Neger mit Gazelle zagt im Regen nie A man, a plan, a canal: Panama Dann sind sie aber strenggenommen keine Palindrome mehr.) Ein Programm, das eine Zeichenkette daraufhin untersuchen soll, ob es sich bei ihr um ein Palindrom handelt, muß also das erste Zeichen der Kette mit dem letzten vergleichen, das zweite mit dem vorletzten usw. Um die Zeichenkette analysieren zu können, muss sie also vollständig im Programm eingelesen sein. Da sie im Prinzip beliebig lang sein darf, kann man sie nicht in einem Array speichern, sonder muss dafür eine dynamische Datenstruktur wählen, hier: eine einfach verkettete Liste. Wir verlangen von Ihnen nun nicht, das komplette Programm zu entwickeln. Das meiste stellen wir Ihnen zur Verfügung (s.u.), Sie sollen nur noch die rekursive Funktion schreiben, die analysiert, ob es sich bei der in der linearen Liste Zeichen für Zeichen gespeicherten Zeichenkette um ein Palindrom handelt oder nicht 1, sowie um den Aufruf dieser Funktion im Hauptprogramm. Auch die Formal- und Aktualparameter hier als? dargestellt - müssen bestimmt werden. Die beiden zu bearbeitenden Stellen haben wir unten im Programm fett hervorgehoben. PROGRAM PalRek(input,output); TYPE zeiger = ^komponente; komponente = RECORD zeichen: char; weiter: zeiger ; VAR kopf: zeiger; zeichen, buchstabek: CHAR; FUNCTION genknoten(zeichen: char): zeiger; VAR neu: zeiger; new(neu); neu^.zeichen :=zeichen; neu^.weiter := NIL; genknoten := neu {genknoten}; PROCEDURE erzeugeliste(var kopf: zeiger); VAR lauf, hilf: zeiger; read(zeichen); kopf := genknoten(zeichen); hilf := kopf; WHILE (NOT eoln) DO read(zeichen); hilf^.weiter := genknoten(zeichen); hilf := hilf^.weiter {erzeugeliste}; PROCEDURE printliste(liste: Zeiger); WHILE liste <> NIL DO write(liste^.zeichen); liste := liste^.weiter {printliste}; FUNCTION istpalindrom(?,?) : BOOLEAN; {Diese Funktion sollen Sie schreiben} { istpalindrom }; 1 Diese Funktion lässt sich in etwa zehn Zeilen hinschreiben. 3
4 assign(input,'palrek.dat'); assign(output,'palrek.out'); reset(input); WHILE (NOT eof) DO erzeugeliste(kopf); printliste(kopf); write(' ist '); IF (NOT istpalindrom(?,?)) THEN write('k'); writeln ('ein Palindrom'); readln {palrek}. Bei der Eingabe von einnegermitgazellezagtimregennie otto emil amanaplanacanalpanama imi yoyo oma würde die Ausgabe so aussehen: einnegermitgazellezagtimregennie ist ein Palindrom otto ist ein Palindrom emil ist kein Palindrom amanaplanacanalpanama ist ein Palindrom imi ist ein Palindrom yoyo ist kein Palindrom oma ist kein Palindrom Schreiben Sie die Funktion istpalindrom einschließlich ihrer Formalparameter sowie den Aufruf der Funktion mit ihren Aktualparametern. (Max. 30 Punkte) PROGRAM PalRek(input,output); TYPE zeiger = ^komponente; komponente = RECORD zeichen: char; weiter: zeiger ; VAR kopf: zeiger; zeichen: char; FUNCTION genknoten(zeichen: char): zeiger; VAR neu: zeiger; new(neu); neu^.zeichen :=zeichen; neu^.weiter := NIL; genknoten := neu {genknoten}; 4
5 PROCEDURE erzeugeliste(var kopf: zeiger); VAR lauf, hilf: zeiger; read(zeichen); kopf := genknoten(zeichen); hilf := kopf; WHILE (NOT eoln) DO read(zeichen); hilf^.weiter := genknoten(zeichen); hilf := hilf^.weiter {erzeugeliste}; PROCEDURE printliste(liste: Zeiger); WHILE liste <> NIL DO write(liste^.zeichen); liste := liste^.weiter {printliste}; FUNCTION istpalindrom(var anfang: zeiger; ende: zeiger) : BOOLEAN; istpalindrom := FALSE; IF ende <> NIL THEN istpalindrom := istpalindrom(anfang, ende^.weiter) AND (anfang^.zeichen = ende^.zeichen); anfang := anfang^.weiter ELSE istpalindrom := TRUE { istpalindrom }; assign(input,'palrek.dat'); assign(output,'palrek.out'); reset(input); WHILE (NOT eof) DO erzeugeliste(kopf); printliste(kopf); write(' ist '); IF (NOT istpalindrom(kopf,kopf)) THEN write('k'); writeln ('ein Palindrom'); readln {palrek}. 5
6 Aufgabe 4: Schleife, Array, Prozedur Beim Schachspielen gibt es die sogenannte Patt-Situation: Steht einem am Zug befindlichen Spieler keine Zugmöglichkeit zur Verfügung, befindet sein König sich jedoch nicht im Schach, so spricht man von einem Patt, die Partie endet in diesem Fall remis (unentschieden). Sie sollen nun ein Pascal-Programm schreiben, dass für eine bestimmte Konfiguration von Schachfiguren feststellt, ob es sich um eine Patt-Situation handelt. Die Situation ist wie folgt beschrieben: Weiss verfügt über den König und einen Springer. Schwarz verfügt nur über den König und ist am Zug. Die Zugregeln für König und Springer: Der König kann sich grundsätzlich nur auf ein anliegendes Nachbarfeld bewegen. Der Springer zieht in eine der vier Himmelsrichtungen zwei Felder geradeaus sowie ein Feld nach links oder rechts. Die Figuren bedrohen die Felder, auf die sie beim nächsten Zug ziehen könnten. Der König bedrohe zusätzlich das Feld, auf dem er steht 2. Einige Hinweise zur Lösung: Stellen Sie das Schachbrett durch ein 8x8-Array dar. Die Positionen der drei Figuren werden als Indexwerte für dieses Array eingelesen. Ausgehend von den Positionen von weissem König und weissem Springer werden mit den Zugregeln diejenigen Felder (genauer gesagt: deren Indexe) im Array berechnet, die sie bedrohen, und entsprechend markiert. Für den schwarzen König wird von seiner Position aus berechnet, ob er (im nächsten Zug) ein Feld erreichen kann, das nicht bedroht ist. Ist das der Fall, so liegt keine Patt- Situation vor. Es ist dafür zu sorgen, dass kein Zug aus dem Schachbrett herausführen darf (Indexgrenzenverletzung)! Und denken Sie daran: Ihr Programm soll kein vollständiges Schachprogramm sein, sonder ausschließlich die beschriebene spezielle Konfiguration analysieren. Eine Beispielsituation: 2 Dies als Hilfskonstruktion, um eine reguläre Schachsituation sicherzustellen (Hinweis für passionierte Schachspieler). 6
7 Der schwarze König befinde sich auf Position [1,1], der weisse König auf [2,3] und der weisse Springer auf [1,3]. (Diese Positionen wurden in der folgenden Darstellung hilfsweise mit (sk), (wk) bzw (ws) bezeichnet. Mit der Darstellung (sk) usw. soll angedeutet werden, dass dies nicht etwa im Array gespeichert werden muss, sondern nur zur Erläuterung der Situation im Bild dienen soll.) Dann könnten die bedrohten Felder durch (z.b.) b markiert werden: (sk) b 2 b b b 3 (ws) b (wk) b b 4 b b b 5 b Man erkennt, dass der schwarze König sich nur auf bedrohte Felder bewegen könnte. Es liegt also eine Patt-Situation vor. Für die folgende Eingabe: soll dass Programm diese Ausgabe erzeugen: Schwarzer Koenig[1,1], Weisser Koenig[2,3], Weisser Springer[1,3]: Patt Schwarzer Koenig[1,1], Weisser Koenig[2,3], Weisser Springer[1,4]: Kein Patt Schwarzer Koenig[3,3], Weisser Koenig[4,5], Weisser Springer[3,5]: Kein Patt Schwarzer Koenig[1,1], Weisser Koenig[2,3], Weisser Springer[3,3]: Patt Schwarzer Koenig[1,1], Weisser Koenig[3,2], Weisser Springer[3,3]: Patt Schwarzer Koenig[1,1], Weisser Koenig[3,2], Weisser Springer[3,1]: Patt Die erste Eingabezeile entspricht übrigens der dargestellten Beispielsituation. (Max. 30 Punkte) 7
8 PROGRAM patt(input,output); CONST N=8; TESTEN=TRUE; ZIEHEN=FALSE; TYPE brett = ARRAY[1..N,1..N] OF CHAR; VAR schachbrett: brett; u,v: ARRAY[1..8] OF INTEGER; {relative Sprungadresse} xks, yks, xkw, ykw, xsw, ysw: INTEGER; {x/y-koord von schwarzem/weissem Koenig, weissem Springer} istkeinpatt: BOOLEAN; FUNCTION zulaessigesziel(x, y : INTEGER): BOOLEAN; zulaessigesziel := (x>=1) AND (y>=1) AND (x<=n) AND (y<=n) {zulaessigesziel}; PROCEDURE initialisieresprungtabelle; u[1] := 2; v[1] := 1; u[2] := 1; v[2] := 2; u[3] :=-1; v[3] := 2; u[4] :=-2; v[4] := 1; u[5] :=-2; v[5] :=-1; u[6] :=-1; v[6] :=-2; u[7] := 1; v[7] :=-2; u[8] := 2; v[8] :=-1 {initialisieresprungtabelle}; PROCEDURE initialisiereschachbrett; VAR xlauf, ylauf: INTEGER; FOR xlauf:=1 TO N DO FOR ylauf:=1 TO N DO schachbrett[xlauf,ylauf] := ' ' {initialisiereschachbrett}; PROCEDURE springer(xa, ya : INTEGER); VAR lauf, xz, yz : INTEGER; FOR lauf:=1 TO 8 DO xz := xa + u[lauf]; yz := ya + v[lauf]; IF zulaessigesziel(xz,yz) THEN {Zug bleibt im Schachbrett} schachbrett[xz,yz] :='b' {springer}; 8
9 PROCEDURE koenig(xa, ya : INTEGER; test: BOOLEAN; VAR zugistmoeglich: BOOLEAN); VAR xz, yz, xlauf, ylauf : INTEGER; zugistmoeglich := FALSE; FOR xlauf:=-1 TO 1 DO FOR ylauf:=-1 TO 1 DO xz := xa + xlauf; yz := ya + ylauf; IF zulaessigesziel(xz,yz) THEN {Zug bleibt im Schachbrett} IF (NOT test) THEN {moegl. Zug markieren} schachbrett[xz,yz] := 'b' ELSE {Testen auf freie Position} IF NOT ((xz=xa) AND (yz=ya)) THEN {Figur darf nicht auf Ausgangsposition stehenbleiben} IF schachbrett[xz,yz]<>'b' THEN zugistmoeglich := TRUE {koenig}; assign(input,'patt.dat'); assign(output,'patt.out'); reset (input); initialisieresprungtabelle; REPEAT initialisiereschachbrett; readln(xks, yks, xkw, ykw, xsw, ysw); springer(xsw,ysw); koenig(xkw,ykw,ziehen,istkeinpatt); {istkeinpatt: hier (nur) formal erforderlich} koenig(xks,yks,testen,istkeinpatt); write('schwarzer Koenig[',xks:1,',',yks,'], '); write('weisser Koenig[',xkw:1,',',ykw,'], '); write('weisser Springer[',xsw:1,',',ysw,']: '); IF istkeinpatt THEN write('kein '); writeln('patt') UNTIL eof. 9
Kurs 1575, Klausur vom , Musterlösung
Kurs 1575, Klausur vom 7.2.1998, Musterlösung Sie wollen die Tause von Büchern in Ihrem heimischen Bücherregal lich systematisch erfassen. Dazu schreiben Sie sich von jedem Buch Autorenname, Titel sowie
MehrSyntax 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 +
MehrKurs 1575, Musterlösung der Klausur vom
Vorbemerkung: Gehen Sie bei Ihren Lösungen grundsätzlich davon aus, dass die Eingabedaten in einer Datei zur Verfügung stehen und über input eingelesen werden, und dass die Ausgabe über output in eine
Mehr2.2 Einfache Datenstrukturen
2.2 Einfache Datenstrukturen Konstante und Variable Die Begriffe "Konstante" und "Variable" haben zunächst auch in der Informatik dieselbe grundsätzliche Bedeutung wie in der übrigen Mathematik. Variablen
Mehr4.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
MehrKurs 1575, Musterlösung zur Winter Klausur 2003/04
Kurs 1575, Musterlösung zur Klausur im Wintersemester 2003/04 1 Kurs 1575, Musterlösung zur Winter Klausur 2003/04 Aufgabe 1: Römische Zahlen Wer kennt das Problem nicht: Sie stehen vor einer Inschrift,
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 1. Oktober, 2015 Plan für heute 1. Nachbesprechung Übung 2 2. Vorbesprechung Übung 3 3. Zusammenfassung der für Übung 3 wichtigen Vorlesungsslides Informatik 1 (D-BAUG) Giuseppe Accaputo
Mehr15 Der strukturierte Datentyp»set«(Mengen)
Dr. K. Haller Turbo-Pascal Kap. 15: Mengen (Sets) 15-1 15 Der strukturierte Datentyp»set«(Mengen) Gliederung 15.1 Allgemeines zu Mengen...2 15.2 Mengen-Operatoren, Demo-Programm...3 15.3 Mengen-Prozeduren,
MehrVordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG
Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS 00 30. Juli 00 Bearbeitungszeit: 10 Minuten BEISPIELLÖSUNG Name: Vorname: Matrikelnummer: Aufgabe Punkte Bewertung 1 8 a) b) 6 8 3 8
Mehr1953/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
MehrKurs 1575, Klausur vom
Kurs 1575, Klausur vom 7.2.1998 Sie wollen die Tausende von Büchern in Ihrem heimischen Bücherregal endlich systematisch erfassen. Dazu schreiben Sie sich von jedem Buch Autorenname, Titel sowie ein beschreibendes
MehrVordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 2001/ Februar 2002
Vordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 2001/2002 19. Februar 2002 Name: Vorname: Matrikelnummer: Bearbeitungszeit: 120 Minuten Aufgabe Punkte Bewertung 1 12 a) 2 b) 2 c) 2 d) 3
MehrKlausur zu Grundlagen der Informatik I mit Lösungen 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth
Klausur zu Grundlagen der Informatik I mit Lösungen 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth A Nr Max Bewertung 1 14 2 12 3 14 4 12 5 12 6 12 7 12 8 12 Summe 100 Klausur
MehrUrsprü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
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am
Kurs 1613 Einführung in die imperative Programmierung 1 Aufgabe 1 In einer ersten for-schleife wird das Kandidatenfeld initialisiert, so dass alle Kandidaten hinten stehen. Eine zweite for-schleife simuliert
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 2. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
MehrKurs 1613 Einführung in die imperative Programmierung Lösungen der Aufgaben zum Studientag
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;
MehrBoolean 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( = 18 Punkte)
1 Lösung 1 ( 6 + 5 + 3 + 4 = 18 Punkte) a) function countziff (inzahl : tnatzahl): tnatzahl; {gibt die Stellenanzahl der inzahl} i, j : tnatzahl; i := inzahl; j := 1; while i => 10 do j := j + 1; i :=
MehrGrundlagen 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
MehrDatentypen: integer, char, string, boolean
Agenda für heute, 13. April, 2006 Der Datentyp integer Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen Zusammengesetzte if-then-else-anweisungen Var i: integer; Teilbereich der ganzen Zahlen,
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
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
Mehreinlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrÜber Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
MehrKlausur zu Grundlagen der Informatik I 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth
Klausur zu Grundlagen der Informatik I 28. Februar 2005 (WS 2004/2005) Dr. Andreas F. Borchert Norbert Heidenbluth A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer:
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am
1 Aufgabe 1 Analysiert man das Verfahren anhand des angegebenen Beispiels, ist schnell zu erkennen, dass das erste Element von infeld2 nach outfeld an Index 2 kopiert wird, das zweite den Index 4 bekommt,
Mehr10 Wiederholungsanweisungen
Dr. K. Haller Turbo-Pascal Kap. 10: Wiederholungsanweisungen 10.1 10 Wiederholungsanweisungen /until-schleifen while-schleifen for-schleifen Break und Continue Gliederung 10.1 Die /until-schleife...2 10.2
MehrFachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog
Fachbericht DPR Name: René Wagener Klasse: CI3O1 Fachlehrer: Herr Balog Inhalt Der Anfang... 3 Was ist Delphi?... 3 Das erste Programm... 3 Delphi VCL-Formularanwendung... 4 Variablen... 5 Beispiel für
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am
1 Aufgabe 1 a) Die erste Variante (Verkettungsänderung) ist vorzuziehen. Sie hat zwei wesentliche Vorteile: Zunächst ist eine solche Implementierung universell einsetzbar, unabhängig davon, wieviele Informationen
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrLösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I
Lösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I 12.08.2006 Seite 2 Lösungsvorschläge zur Klausur vom 12.08.2006 Kurs 1661 Datenstrukturen I Aufgabe 1 (a) algebra sammlung sorts sammlung, marke,
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrEinstieg 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,
MehrTutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
MehrKlausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
MehrVordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 2001/ April 2002
Vordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 200/2002 2. April 2002 Name: Vorname: Matrikelnummer: Bearbeitungszeit: 20 Minuten Aufgabe Punkte Bewertung 2 a) 2 b) 2 c) 2 d) 2 e) 4 2 0
MehrAndroid-Apps Gegenüberstellung Delphi java
Android-Apps Gegenüberstellung 2/9 Grundsätzliches etc. Groß-/Kleinschreibung egal sensitiv! Zuweisung := = Kommentare // // { } /* */ Zeichenkettenbegrenzer: 'text' "text" Inkrementieren / Dekrementieren
Mehr1. Allgemeine Datei (Binärdatei mit formatierten Inhalt)
Datei ein komplexer Datentyp, der primär zur dauerhaften (persistenten) Speicherung von Daten auf einen externen Datenträger dient die wichtigsten Operationen, die mit Dateien durchgeführt werden, sind
MehrKurs 1613 Einführung in die imperative Programmierung
1 Wintersemester 2003/2004 Hinweise zur Bearbeitung der Klausur zum Wir begrüßen Sie zur Klausur "Einführung in die imperative Programmierung". Lesen Sie sich diese Hinweise vollständig und aufmerksam
MehrKlausur zur Wirtschaftsinformatik II im Grundstudium
Prof. Dr. R. Gabriel Sommersemester 2005 Wirtschaftsinformatik 19. August 2005 Ruhr-Universität Bochum Klausur zur Wirtschaftsinformatik II im Grundstudium - Die Bearbeitungszeit der Klausur beträgt 90
MehrUm mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle.
TURBO-PASCAL Programmaufbau Jedes Pascal-Programm hat eine ganz bestimmte Struktur. Außerdem hat jeder Teil des Programms eine ähnliche Struktur. Man teilt ein Pascal-Programm in drei Abschnitte ein: 1.
MehrProgrammieren lernen mit Visual Basic
Programmieren lernen mit Visual Basic Teil 5: Fallunterscheidungen (Teil 1) Ein paar Operatoren fehlen noch. Zum einen logische Operatoren, die mit Wahrheitswerden arbeiten. Die folgenden drei verwenden
MehrAufgabe (Schreibtischtest, lexikographische Ordnung)
Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem
MehrVorkurs Mathematik für Informatiker. 1 Potenzen. Michael Bader, Thomas Huckle, Stefan Zimmer Oktober Kap.
1 Potenzen Michael Bader, Thomas Huckle, Stefan Zimmer 1. 9. Oktober 2008 Kap. 1: Potenzen 1 Potenzen Definition Für reelle Zahl x R (Basis) und eine natürliche Zahl n N (Exponent): x n := x x x... x }{{}
MehrEinstieg 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ÜBERPRÜFUNG VON TYPEN
5. Kapitel ÜBERPRÜFUNG VON TYPEN Compilerbau Prof. Dr. Wolfgang Schramm Typüberprüfung 1 Was ist wird überprüft? Ob Operatoren und Operanden verträglich (kompatibel) sind. Welche Programmelemente haben
MehrWie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort?
Wie funktioniert das Sortieren einer Reihe von Zufallszahlen mit Quicksort? Seite 1 Sehen wir uns zunächst einmal die grundsätzliche Vorgehensweise des Programmes an, ohne auf Einzelheiten oder Fachtermini
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
MehrINSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt.
Aufgabe 1 INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt. QUICK-SORT: Hängt davon ab ob PARTITION stabil ist. MERGE-SORT: Ja, Splitten, sowie Mergen ist stabil.
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am
1 Lösung 1 ( 4+4 Punkte) a) procedure VerschiebeZyklisch ( iofeld : tfeld); { verschiebt die Werte innerhalb eines Feldes eine Position nach rechts; der Wert iofeld[max] wird nach iofeld[1] übertragen
MehrInformatik I Übung, Woche 41
Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
MehrKurs 1612 Konzepte imperativer Programmierung Musterlösung zur Klausur am
Kurs 1612 Konzepte imperativer Programmierung 1 Aufgabe 1 a) Wir müssen zunächst die Abbruchbedingung des Verfahrens festlegen: Wir beenden die Rekursion, wenn das zu untersuchende Feldstück nur noch aus
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrProgrammiertechnik Übungen zu Klassen & -methoden
Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a
Mehr3. Sprachkonzepte und ihre Übersetzungen
Übersetzung von Wertzuweisungen: Funktion coder x p codel x p; ind T coder c p ldc T c coder (e1 = e2) p coder e1 p; coder e2 p; equ T coder (e1 / e2) p coder e1 p; coder e2 p; div N coder(-e) p coder
MehrGrundlagen der Informatik
Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrPostScript -Sprache. Frank Richter
PostScript -Sprache Frank Richter 27.01.2003 Stack-Operationen exch vertauscht die zwei obersten Stackelemente x y exch => y x dup dupliziert oberstes Stackelement x dup => x x pop löscht oberstes Element
MehrBerechnungsschemata: Funktion als Parameter abstrahiert Operation im Schema, wird bei Aufruf des Schemas konkretisiert
6. Funktionen als Daten, Übersicht Orthogonales Typsystem: Funktionen sind beliebig mit anderen Typen kombinierbar Notation für Funktionswerte (Lambda-Ausdruck): fn (z,k) => z*k Datenstrukturen mit Funktionen
MehrStudienseminar Koblenz - Fachseminar Informatik Visualisierung von Sortieralgorithmen
Thema: Visualisieren von Sortieralgorithmen in Delphi (am Beispiel: Bubblesort und Quicksort) Ziel ist es, eine Animation des Bubblesort- und Quicksort-Algorithmus in Delphi für die Anwung im Unterricht
Mehr9 Steueranweisungen. if... then if... then... else case... of goto. Gliederung. 9.1 Die einseitige Verzweigung if... then...2
Dr. K. Haller Turbo-Pascal Kap. 9: Steueranweisungen 9-1 9 Steueranweisungen if... then if... then... else case... of goto Gliederung 9.1 Die einseitige Verzweigung if... then...2 9.2 Die zweiseitige Verzweigung
MehrNachklausur: 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
MehrNachklausur: 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
MehrInformatik I Übung, Woche 38
Giuseppe Accaputo 18. September, 2014 Plan für heute 1. Wer bin ich 2. Allgemeines 3. Zusammenfassung der bisherigen Vorlesungsslides 4. Kurze Vorbesprechung zur Übung 1 Informatik 1 (D-BAUG) Giuseppe
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 1
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 1 Darstellungsarten von Algorithmen Umgangssprache Stilisierte Prosa Ablauf-/Struktogramme Jana Programmiersprache Institut für Pervasive
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 1
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 1 Darstellungsarten von Algorithmen Umgangssprache Stilisierte Prosa Ablauf-/Struktogramme Jana Programmiersprache Institut für Pervasive
MehrEkkehard Kaier. Informationstechnische Grundbildung Turbo Pascal
Ekkehard Kaier Informationstechnische Grundbildung Turbo Pascal Ekkehard Kaier I nformationstechnische Grundbildung Turbo Pascal Mit Referenzliste zur strukturierten Programmierung Zweite, durchgesehene
MehrOffenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
MehrDie Notwendigkeit für wiederholte Programmausführungen. Agenda für heute, 11. März, 2010
Agenda für heute, 11. März, 2010 Die Notwendigkeit für wiederholte Programmausführungen Aufgabe: Die Quadratwurzel einer positiven Zahl berechnen Einschränkung: Es stehen nur arithmetische Operationen
MehrWintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung
Name: Matrikelnr.: Wintersemester 2010/2011 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Wir begrüßen Sie zur Klausur Einführung in die imperative Programmierung.
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrVorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel
Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
Mehrzu 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
MehrCrashkurs: Haskell. Mentoring FU Berlin Felix Droop
Crashkurs: Haskell Mentoring FU Berlin 7.11.2018 Felix Droop Crashkurs Haskell 1. GHCi Umgebung
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben
PK-Einstufungstest 34 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 4 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrAnwendung (2. Versuch:-) Entkopplung der Locks
Gut gemeint aber leider fehlerhaft... Jeder Producer benötigt zwei Locks gleichzeitig, um zu produzieren: 1. dasjenige für den Puffer; 2. dasjenige für einen Semaphor. Musser fürden Semaphor einwait()
MehrKontrollstrukturen. Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue
Kontrollstrukturen Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue Einfache Verzweigung Eine Verzweigung erlaubt das bedingte Ausführen bestimmter Programm-Teile.
MehrAlgorithmen und ihre Programmierung
Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines
MehrEinstieg 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
MehrKurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am
Kurs 1613 Einführung in die imperative Programmierung 1 Aufgabe 1 procedure NachVorn( inwert: integer; var iorefanfang: trefelement); {Sucht das erste vorkommende Element mit inwert in der info-komponente
MehrTURBO 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
MehrWiederholungsanweisungen II
Wiederholungsanweisungen II (1.) (a.) Die Fakultät einer positiven ganzen Zahl wird als n!(fakultät) geschrieben und wie folgt definiert: n!=n(n-1)(n-2)* * 4*3*2*1 0!=1 Beispiel: 5!=5*4*3*2*1=120 (a.)
MehrEinführung in die Programmierung. (K-)II/Wb17
Probeklausur Hochschule Zittau/Görlitz, Prüfer: Prof. Dr. Georg Ringwelski Einführung in die Programmierung (K-)II/Wb17 Matrikelnummer: Punkte: 1 2 3 4 5 6 Gesamt /21 /19 /20 /20 /20 /20 /120 Spielregeln:
MehrWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
unit sudoku; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TCvD_Sudoku = class(tform) Panel1: TPanel; Bevel1: TBevel; Bevel2:
MehrAlgorithmen I - Tutorium 28 Nr. 3
Algorithmen I - Tutorium 28 Nr. 3 18.05.2016: Spaß mit Listen, Arrays und amortisierter Analyse Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
MehrPROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Amortisierte Analyse Suche in sortierten Arrays Heaps Vorstellen des fünften Übungsblatts
Mehr5. Übung - Kanalkodierung/Programmierung
5. Übung - Kanalkodierung/Programmierung Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Kanalkodierung a Folgende Kodes stehen Ihnen zur Verfügung: Kode 1: 0000000 Kode
MehrEinfü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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
MehrTeil X. Von Mini Pascal zu Pascal
Teil X Von Mini Pascal zu Pascal 1 Teil X.1 Pascal Datentypen 2 Begriffe Typ: Menge von Werten Beispiel: integer alle ganzen Zahlen zwischen - MaxInt und MaxInt Variable: Reserviert Speicherplatz für Werte
MehrLösungen zu den Übungsaufgaben zu Feldern
Lösungen zu den Übungsaufgaben zu Feldern Aufgabe 1: Punktberechnung procedure TForm1.Button1Click(Ser: TObject); punkt = array[1..3] of double; d, p, q: punkt; abstand: double; // Eingabe p[1]:= StrToFloat(Edit1.Text);
Mehr