Klausur in Programmieren



Ähnliche Dokumente
Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Einführung in die Programmierung

1 Vom Problem zum Programm

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Angewandte Mathematik und Programmierung

Programmierkurs Java

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Informatik Repetitorium SS Volker Jaedicke

Übung 9 - Lösungsvorschlag

Fakultät Angewandte Informatik Lehrprofessur für Informatik

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

Einführung in die Programmierung

Übungen zu C++ Kapitel 1

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

2. Semester, 2. Prüfung, Lösung

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

Einführung in die Programmierung (EPR)

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Objektorientiertes Programmieren für Ingenieure

Kontrollstrukturen und Funktionen in C

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

FB Informatik. Fehler. Testplan

Theoretische Informatik SS 04 Übung 1

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Graphic Coding. Klausur. 9. Februar Kurs A

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Grundlagen der Informatik

Einführung in die C++ Programmierung für Ingenieure

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Übungen Programmieren 1 Felix Rohrer. Übungen

Excel Funktionen durch eigene Funktionen erweitern.

Java Kurs für Anfänger Einheit 5 Methoden

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Grundlagen der Informatik (BSc) Übung Nr. 5

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

IT-Basics 2. DI Gerhard Fließ

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Einführung in die Programmierung für Wirtschaftsinformatik

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

PVL 3 - Roulette. (5 Punkte) Abgabe bis

Einführung in die Java- Programmierung

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Grundlagen der Theoretischen Informatik, SoSe 2008

Programmierung in C. Grundlagen. Stefan Kallerhoff

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

2. Programmierung in C

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

Diana Lange. Generative Gestaltung Operatoren

Professionelle Seminare im Bereich MS-Office

Übungsblatt 3: Algorithmen in Java & Grammatiken

Einfache kryptographische Verfahren

25 kann ohne Rest durch 5 geteilt werden! ist wahr

Vorkurs C++ Programmierung

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

BEISPIELKLAUSUR Softwareentwicklung:

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Softwarelösungen: Versuch 4

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

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

Gleichungen und Ungleichungen

Zeichen bei Zahlen entschlüsseln

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.

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

Delegatesund Ereignisse

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Repetitionsaufgaben: Lineare Gleichungen

Die Programmiersprache C99: Zusammenfassung

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Java-Programmierung mit NetBeans

Kapiteltests zum Leitprogramm Binäre Suchbäume

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Grundbegriffe der Informatik

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Binär- und Hexadezimal-Zahl Arithmetik.

Whitebox-Tests: Allgemeines

Transkript:

Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.: Aufgabe 1 2 3 4 5 6 Summe Punkte max 12 9 16 20 26 17 100 Punkte Alle Fragen beziehen sich auf den Stoff der Vorlesung. Somit sind sie z.b. bezogen auf die Programmiersprache C++. Auch sonst gelten die Konventionen wie in unserer Vorlesung. 1. Aufgabe: Grundlagen Stellen Sie die nachfolgenden Zahlen in den jeweiligen Zahlensystemen dar (12P): a) 1011 1110 1010 1111 (binär) hex: (1P) oktal: (3P) b) 254 (dezimal) hex: (2P) binär: (2P) c) 6A (hex) dezimal: (3P) binär: (1P) - Bitte beachten Sie auch die Rückseite - Seite 1 von 7

2. Aufgabe: Grundlagen Schreiben Sie ein Hauptprogramm, das die Kantenlänge eines Rechtecks von der Konsole (über cin) als reelle Zahl einliest und sowohl Umfang als auch Fläche als Ergebnis ausgibt (9P). - Bitte beachten Sie auch die Rückseite - Seite 2 von 7

3. Aufgabe: Schleifen a) Kreuzen Sie an, welche Schleifen es in C/C++ gibt (6P): (Falsche Antworten geben 1 Punkt Abzug; minimale Punktzahl dieser Aufgabe sind 0 P) 1. for...o 2. repeat until...o 3. do while...o 4. if...o 5. foreach...o 6. when...o 7. else...o 8. while...o 9. forget...o 10. loop...o b) Schreiben Sie nachfolgend eine Schleife, in der die Quadrate aller Zahlen von 100 bis 199 summiert werden und das Ergebnis nach der Schleife in einer unsigned int-variablen steht. Verwenden Sie für die Bestimmung der Quadrate ein Makro SQR und definieren Sie dieses Makro vor Beginn des Programmfragments (10P): - Bitte beachten Sie auch die Rückseite - Seite 3 von 7

4. Aufgabe: Array/Feld, Indizierung Gegeben ist ein globales Feld mit den Monatstagen im Jahr: unsigned int monatstage[12] = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ; a) Schreiben Sie eine Funktion berechnetagimjahr, der Sie ein Datum mittels dreier Parameter tag, monat, jahr übergeben. Der Rückgabewert der Funktion soll die Anzahl der bis zu diesem Datum vergangenen Tage (inklusive des angegebenen Datums) bestimmen. Beachten Sie dabei, dass alle durch 4 teilbaren Jahre im Februar 29 Tage besitzen (Ausnahmen von dieser Regel sollen nicht berücksichtigt werden) (18P). b) Skizzieren Sie eine Idee, wie man mit diesem Wert die Kalenderwoche bestimmen könnte (2P). Beispiele: berechnetagimjahr(20, 1, 2010) liefert den Wert 20. berechnetagimjahr(10, 3, 2008) liefert den Wert 70. - Bitte beachten Sie auch die Rückseite - Seite 4 von 7

5. Aufgabe: Ganzes Programm Ergänzen Sie die Lücken im nachfolgenden Programmtext zu einem lauffähigen C++- Programm. Es hat die Aufgabe, zwei Zeichenketten, die mit dem Wert 0 enden, auf Gleichheit zu prüfen. Dabei soll die Groß- und Kleinschreibung keine Rolle spielen (Da jedem Buchstabensymbol ein Wert zugeordnet ist und die Buchstabensymbole sowohl der großen als auch der kleinen Buchstaben lückenlos und alphabetisch angeordnet sind, kann ein Kleinbuchstabe durch Subtraktion in einen Großbuchstaben geändert werden. Die Differenz ist für alle zugehörigen Buchstaben gleich und entspricht dabei der Differenz zweier zueinander gehörenden Buchstabensymbole, also z.b. a - A == b - B ). (26P) #include using // Umwandeln der gegebenen Zeichenkette in Großbuchstaben void ingrossbuchstaben(char* aczeichenkette) ; // Initialisierung der Laufvariablen iindex char calphabetabstand = a - A ; while(aczeichenkette[iindex]!= ) // Zeichenkettenende erreicht? if(aczeichenkette[iindex] >= a && <= z ) // Kleinbuchstabe? aczeichenkette[iindex] -= calphabetabstand; ; // Erhöhung der Laufvariablen um 1 // Prüfung der Zeichenketten auf Gleichheit // Rückgabewert true: Zeichenketten sind gleich, Rückgabewert false: Zeichenketten sind ungleich. bool istgleich(char* aczeichenkette1, char* aczeichenkette2) ; // Initialisierung der Laufvariablen iindex while(aczeichenkette1[iindex]!= 0 && aczeichenkette2[iindex]!= 0 && aczeichenkette1 aczeichenkette2 ) // beide Zeichen gleich? ; // Erhöhung der Laufvariablen um 1 if(aczeichenkette1[iindex] == 0 && aczeichenkette2[iindex] == 0) // Ende beider Zeichenkette erreicht! return ; return ; - Bitte beachten Sie auch die Rückseite - Seite 5 von 7

int main() char aczeichenkette1[200]; char aczeichenkette2[200]; cout Zeichenkette1: ; cin aczeichenkette1; ingrossbuchstaben(aczeichenkette1); cout Zeichenkette2: ; cin aczeichenkette2; ingrossbuchstaben(aczeichenkette2); cout Zeichenketten sind ; if( ) cout un ; cout gleich ; return 0; - Bitte beachten Sie auch die Rückseite - Seite 6 von 7

6. Aufgabe: Algorithmus a) Was berechnet die nachfolgende Funktion bzw. was enthalten die Variablen ivalue1 und ivalue2 des Ergebnisses? Bitte beschreiben Sie die Funktionsweise möglichst abstrakt. (15 P) b) Wann erhalten Sie ein nicht definiertes Ergebnis? (2P) Hinweis: Testen Sie den Algorithmus anhand eines kleinen Arrays (z.b. der Größe 5) und beobachten Sie die Variablenwerte. struct tresult int ivalue1; int ivalue2; ; tresult unknown(int* aiinarray, unsigned int uiinanzahl) tresult sresult; sresult.ivalue1 = aiinarray[0]; sresult.ivalue2 = aiinarray[0]; for(unsigned int uiindex=0; uiindex < uiinanzahl; ++uiindex) if(sresult.ivalue1 < aiinarray[uiindex]) sresult.ivalue1 = aiinarray[uiindex]; sresult.ivalue2 = sresult.ivalue2 > aiinarray[uiindex]? aiinarray[uiindex] : sresult.ivalue2; return sresult; - Bitte beachten Sie auch die Rückseite - Seite 7 von 7