Übungspaket 24 Zeichenketten

Größe: px
Ab Seite anzeigen:

Download "Übungspaket 24 Zeichenketten"

Transkript

1 Übungspaket 24 Zeichenketten Übungsziele: Skript: 1. Verständnis über die interne Repräsentation von Zeichenketten 2. Arbeiten mit Zeichenketten 3. Definition konstanter Zeichenketten 4. Verwendung diverser Sonderzeichen in Zeichenketten Kapitel: 50 Semester: Wintersemester 2018/19 Betreuer: Thomas, Tim und Ralf Synopsis: Schon bei unseren ersten Programmierversuchen hatten wir mit konstanten Zeichenketten zu tun. Damals waren es die einfachen Ausgabetexte sowie Eingabeformate. In diesem Übungspaket beschäftigen wir uns eingehender mit der internen Repräsentation, der Bearbeitung von Zeichenketten und dem Verwalten von Zeichenketten in Tabellen, um diese zu sortieren oder in ihnen zu suchen.

2 Teil I: Stoffwiederholung Aufgabe 1: Interne Repräsentation einzelner Zeichen Zunächst wiederholen wir nochmals den Datentyp char, denn sicher ist sicher ;-) Auf welche drei Arten kann innerhalb eines C-Programms ein Zeichen dargestellt werden? Erkläre dies am Beispiel des Großbuchstabens A: Wie viel Speicherplatz benötigt ein Zeichen (Datentyp char) Was bedeutet die Abkürzung ASCII? Was ergibt sizeof(char) im C-Programm? Aufgabe 2: Aufbau von Zeichenketten Erkläre mit eigenen Worten, was aus Nutzersicht eine Zeichenkette ist. Unter konstanten Zeichenketten verstehen wir diejenigen, die wir als Programmierer selbst direkt hinschreiben. Wie werden diese im C-Programm dargestellt? Anfang: Ende: Welchen Typ verwendet man in C für Zeichenketten? Wie werden Zeichenketten im Arbeitsspeicher abgelegt? Wie erkennt der Compiler den Anfang? Wie erkennt er ihr Ende? In welchem Segment werden Zeichenketten abgelegt? Können konstante Zeichenketten verändert werden? Falls nein, wie kann man sich seine Zeichenketten selbst zusammenbauen? Einführung in die Praktische Informatik, Wintersemester 2018/

3 Wie können die folgenden vier Sonderzeichen in eine Zeichenkette eingefügt werden? 1. Tabulator 2. Zeilenwechsel 3. Gänsefüßchen 4. \ (Backslash) Müssen Zeichenketten in einer Zeile anfangen und abgeschlossen sein? Was kann man machen, wenn die Zeichenkette länger als eine Zeile ist? Aufgabe 3: Eingabe Funktionen zum Einlesen von Zeichenketten wie beispielsweise scanf( "%s", buf ) verhindern keinen Buffer Overflow (sie sind nicht fail save), was zu fatalen Fehlern führen kann. Entsprechend sichere Alternativen besprechen wir am Ende dieses Übungspaketes. Aufgabe 4: Ausgabe Mit welcher Formatangabe können Zeichenketten ausgegeben werden? Gib ein Beispiel: Aufgabe 5: Operationen mit Zeichenketten Es gibt einige Operationen, die auf Zeichenketten arbeiten. Diese gehören aber nicht zum C-Sprachumfang, sondern sind Teil der C-Standardbibliothek (#include <string.h>). Erläutere kurz, was die folgenden Funktionen machen: strcmp() : strcpy() : strlen() : sizeof() : 24-2 Wintersemester 2018/19, Einführung in die Praktische Informatik

4 Teil II: Quiz Aufgabe 1: Zeichenketten: C-Kodierung und Ausgabe In dieser Übungsaufgabe gehen wir davon aus, dass die angegebenen Zeichenketten mittels der Funktion printf() ausgegeben werden. In der folgenden Tabelle sind links verschiedene Zeichenketten angegeben, die alle gültiger C-Code sind, und rechts, wie sie auf dem Bildschirm erscheinen würden. In jeder Zeile fehlt eine der beiden Seiten, die ihr vervollständigen sollt. Leerzeichen und Zeilenumbrüche symbolisieren wir mit den Zeichen und. Ferner gehen wir davon aus, dass sich alle acht (Ausgabe-) Positionen ein Tabulator-Stop befindet. C-Code Ausgabe "abc" abc "Peter Pan" "Heute ist Montag" Sonntag ist Wochenende. C ueben! C lernen macht( manchmal) spass "ein\ttabulator\tbeispiel" noch so ein beispiel "so\nwas\nbloedes\n" es geht noch bloeder " apostrophs? no problem" "one of it? no problem" mit " gaensefuesschen I want " you" how can we do this: \? and how this \"? "and how\ about this?" Einführung in die Praktische Informatik, Wintersemester 2018/

5 Teil III: Fehlersuche Aufgabe 1: Ausgeben von Zeichenketten Wie sollte es anders sein, wieder einmal hat einer unserer Starprogrammierer, diesmal Dr. String, etwas für uns programmiert. Aber irgendwie will es nicht laufen. Finde die Fehler und korrigiere sie (direkt im Quelltext): 1 # include <stdio.h> 2 3 int main ( int argc, char ** argv ) 4 { 5 printf ( "es geht ganz einfach los \N" ); 6 printf ( "\ netwas \t schwieriger \n" ); 7 printf ( " noch " schwieriger "\n" ); 8 printf ( " ganz \ schwieriger \ \n" ); 9 printf ( "a\" usserst \\" schwierig \\"\n" ); 10 printf ( \" ultra a \\\" usserst \" schwierig \"\ n" ); 11 printf ( " so, nun reicht \ 12 es mir aber. \" ich \" gehe jetzt \\\ 13 windsurfen \\ egal, \ nwer das wissen will \": -) \"\ n" ); 14 } 24-4 Wintersemester 2018/19, Einführung in die Praktische Informatik

6 Teil IV: Anwendungen Aufgabe 1: Länge einer Zeichenkette ermitteln 1. Aufgabenstellung Wie wir schon im ersten Teil dieses Übungspaketes kurz angerissen haben, gibt es eine Funktion strlen( char * str ), die die Länge einer Zeichenkette str ermittelt. Ziel dieser Übungsaufgabe ist es nun, diese Funktion selbst zu entwickeln. Wir nennen sie einfach int my strlen( char * str ). Überlege im Spezifikationsteil (nächster Punkt), was das Kriterium für die zu verwendende Schleife ist und was die Funktion zurückgeben soll, wenn ihr ein Null-Zeiger übergeben wird. 2. Pflichtenheft: Aufgabe, Parameter, Rückgabewert, Schleifenbedingung 3. Testdaten Zeichenkette Ergebnis Implementierung Einführung in die Praktische Informatik, Wintersemester 2018/

7 5. Kodierung Aufgabe 2: Vokale in einer Zeichenkette zählen 1. Aufgabenstellung Ziel dieser Übungsaufgabe ist es, eine Funktion zu entwickeln, die die Zahl der Vokale einer Zeichenkette zählt. Wir nennen diese Funktion int vokale( char * str ). Überlege im Spezifikationsteil, was das Kriterium für die zu verwendende Schleife ist und was die Funktion zurückgeben soll, wenn ihr ein Null-Zeiger übergeben wird. 2. Pflichtenheft: Aufgabe, Parameter, Rückgabewert, Schleifenbedingung 24-6 Wintersemester 2018/19, Einführung in die Praktische Informatik

8 3. Testdaten Zeichenkette Ergebnis Implementierung 5. Kodierung Einführung in die Praktische Informatik, Wintersemester 2018/

9 Aufgabe 3: Zählen von Ziffern 1. Aufgabenstellung In dieser Aufgabe soll nicht die Zahl der Vokale sondern die Zahl der Ziffern in einer Zeichenkette bestimmt werden. Da sich diese Aufgabe in nur einem kleinen Detail von der vorherigen unterscheidet, übernehmen wir fast alles und fahren gleich mit der Kodierung fort. Hinweis: Statt jedes Zeichen einzeln auf die Ziffern zu überprüfen können wir das Makro isdigit() aus der Standardbibliothek <ctype.h> verwenden. 2. Kodierung 24-8 Wintersemester 2018/19, Einführung in die Praktische Informatik

10 Aufgabe 4: Vergleich zweier Zeichenketten 1. Aufgabenstellung Auch wenn es bereits eine Funktion strcmp() in der Standardbibliothek gibt, so ist es dennoch eine gute Übung, diese einmal selbst zu programmieren. Mit dem bisher Erlernten sollte dies auch kein Problem sein. Entsprechend ist die Aufgabe, eine Funktion zu entwickeln, die zwei Zeichenketten miteinander vergleicht und ein Resultat zurückgibt. Anhand des Resultats soll man erkennen, ob die erste Zeichenkette kleiner (lexikalisch vor), gleich (lexikalisch identisch) oder größer (lexikalisch nach) als die zweite Zeichenkette ist. Die Funktion kann davon ausgehen, dass keines der beiden Argumente (Operanden) ein Null-Zeiger ist. Beispiele: my strcmp( "abc", "abe") -2 my strcmp( "xx", "xx") 0 2. Pflichtenheft: Aufgabe, Parameter, Rückgabewert 3. Testdaten Als Testdaten nehmen wir einfach die in der Aufgabenstellung erwähnten Beispiele. 4. Vorüberlegungen Hier geben wir ein paar kleine Hinweise, wie man diese Aufgabe am besten löst. Sportlich orientierte lesen lieber nicht, sondern versuchen es erst einmal alleine. Was müssen wir machen? Nehmen wir an, wir haben zwei Zeichenketten "a11" und "a22". Wir müssen jetzt in beiden Zeichenketten solange synchron nach rechts gehen, bis wir einen Unterschied gefunden haben. In unserem Beispiel ist dies an der zweiten Stelle der Fall, 1 ist anders als 2. Wenn wir diese Stelle gefunden haben, reicht es aus, die beiden Werte voneinander zu subtrahieren. Jetzt könnte es aber eine Komplikation geben: Sollten beide Zeichenketten identisch sein, gibt es keinen Unterschied und eine derartige Schleife würde über das Ende der Zeichenketten hinaus gehen. Von da her müssen wir mit der Schleife auch dann aufhören, wenn wir das Ende einer der beiden Zeichenketten erreicht haben. Auch jetzt funktioniert die Idee mit der Subtraktion: sollten beide Zeichenketten identisch sein, subtrahiert der Algorithmus die beiden Null-Bytes voneinander, was zum Resultat 0 führt und somit die Identität beider anzeigt. Einführung in die Praktische Informatik, Wintersemester 2018/

11 5. Implementierung 6. Kodierung Wintersemester 2018/19, Einführung in die Praktische Informatik

12 Aufgabe 5: Suchen von Zeichenketten 1. Aufgabenstellung Mit der Funktion aus der letzten Aufgabe (oder der entsprechenden Funktion aus der Standardbibliothek) können wir nun auch Zeichenketten in Tabellen suchen und hoffentlich auch finden. Derartige Funktionen benötigt man beispielsweise, wenn man einen Namen in einer Tabelle suchen muss. Aufgabe: Schreibe eine Funktion search str(), die eine gegebene Zeichenkette (token) in einer Tabelle (Array) von Zeichenketten sucht und ggf. findet. 2. Entwurf Welche Indizes sind in einer Tabelle mit size Einträgen gültig? Welchen Index nehmen wir üblicherweise bei nicht gefunden? Vervollständige folgende Funktionsdeklaration: search str() 3. Pflichtenheft: Aufgabe, Parameter, Rückgabewert 4. Implementierung Einführung in die Praktische Informatik, Wintersemester 2018/

13 5. Kodierung Wintersemester 2018/19, Einführung in die Praktische Informatik

14 Aufgabe 6: Sicheres Einlesen von Zeichenketten Am Anfang dieses Übungspakets haben wir darauf hingewiesen, dass die Verwendung von Standardfunktionen zum Einlesen von Zeichenketten zu fatalen Fehlern führen kann. In dieser Aufgabe schauen wir uns zunächst das eigentliche Problem an, um dann selbst eine sichere Alternative zum Einlesen von Zeichenketten zu entwickeln. 1. Vorbetrachtungen und Motivation Die wohl am meisten verbreitete Methode zum Einlesen von Zeichenketten besteht in folgendem Funktionsaufruf: scanf( "%s", buf ), wobei buf ein Array vom Typ char ist. Die Funktionalität ist, wie man es sich vorstellt: alle Zeichen bis zum nächsten Zeilenumbruch \n werden eingelesen, im Array buf abgelegt und mit einem Null- Byte \0 abgeschlossen. Häufig wird auch der Funktionsaufruf gets( buf ) verwendet, der zum selben Resultat führt. Von beiden Vorgehensweisen raten wir dringend ab! Don t do that! Never ever! Don t even think about it! Hoppla, warum seid ihr denn so hysterisch? Beide Funktionsaufrufe sehen doch prima aus? Ganz einfach: Beide Funktionsaufrufe sind nicht fail save und können im besten Falle zum Programmabsturz, im ungünstigsten Fall zu ganz merkwürdigen Effekten führen. Ja, ja, erzählt mal! Das ist doch Standard-C. Wo soll denn da ein Fehler auftreten können? Das Problem liegt darin, dass die Größe des Puffers buf nicht überprüft wird. Nehmen wir folgende Funktion: 1 void f( int i ) 2 { 3 char buf [ 4 ]; 4 scanf ( "%s", buf ); 5 printf ( "i=%d buf = %s \n", i, buf ); 6 } In Zeile 4 wird eine Zeichenkette eingelesen und in Zeile 5 wird diese nebst des Parameters i wieder ausgegeben. Um die folgenden Ausführungen zu verstehen, benötigen wir erst einmal einen Stack-Frame, den ihr für den Funktionsaufruf f( 1 ) und die Eingabe hi\n vervollständigen sollt: Adresse Variable Wert 0xFFEE1008 0xFFEE1004 0xFFEE1000 Zeile x Nach dem Einlesen befinden sich drei Zeichen im Array buf, wobei der Zeilenwechsel \n durch ein Null-Byte \0 ersetzt wurde. So weit, so gut. Ja, was soll der Unsinn? Ist doch klar, wo ist das Problem? Das Problem bekommen wir, wenn die vom Nutzer Einführung in die Praktische Informatik, Wintersemester 2018/

15 eingegebenen Zeichenketten länger werden. Vervollständige einen Stack-Frame für den Funktionsaufruf f( 1 ) und die eingegebene Zeichenkette \n: Adresse Variable Wert 0xFFEE1008 0xFFEE xFFEE1000 Bei richtiger Komplettierung sehen wir, dass nicht nur die Variable buf einen Wert erhalten hat sondern dass sowohl der alte PC (die Rücksprungadresse) als auch die Variable i mit neuen Werten überschrieben wurden. Dies hat weitreichende Konsequenzen: Nach Beendigung der Funktion f() springt die CPU an die falsche Stelle zurück. Ferner können beliebig viele Variablen mit neuen Werten überschrieben worden sein. Im obigen Beispiel könnte auf einigen Systemen die Variable i den Wert erhalten; auf anderen Systemen ganz andere Werte. Aus diesem Grund sollten wir von eingangs erwähnten Funktionsaufrufen strickt Abstand nehmen und unsere eigene Einlesefunktion realisieren. 2. Aufgabenstellung Schreibe eine Funktion myreadstring() die eine Zeichenkette von der Tastatur einliest und in einem übergebenen Puffer der Länge size ablegt. Das Einlesen wird beendet, wenn entweder der Zeilenumbruch \n gelesen wurde oder der Puffer voll ist (wobei immer noch Platz für das Null-Byte vorhanden sein muss). 3. Entwurf Vervollständige zunächst den Funktionskopf der zu realisierenden Funktion: myreadstring(): 4. Implementierung Wintersemester 2018/19, Einführung in die Praktische Informatik

16 5. Kodierung Einführung in die Praktische Informatik, Wintersemester 2018/

Übungspaket 24 Zeichenketten

Übungspaket 24 Zeichenketten Übungspaket 4 Zeichenketten Übungsziele: Skript: 1. Verständnis über die interne Repräsentation von Zeichenketten. Arbeiten mit Zeichenketten 3. Definition konstanter Zeichenketten 4. Verwendung diverser

Mehr

Übungspaket 25 Kommandozeilenargumente

Übungspaket 25 Kommandozeilenargumente Übungspaket 25 Kommandozeilenargumente Übungsziele: Skript: 1. Umgang mit argc/argv 2. argc/argv als Schnittstelle von Programm und Betriebssystem 3. Vereinfachtes Testen mit argc/argv Kapitel: 51 und

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,

Mehr

Übungspaket 20 Zeiger und Zeigervariablen

Übungspaket 20 Zeiger und Zeigervariablen Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 1 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char,. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 9 bis 31 sowie 4, 5 und

Mehr

Übungspaket 14 Eindimensionale Arrays

Übungspaket 14 Eindimensionale Arrays Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungspaket 10 Fallunterscheidungen

Übungspaket 10 Fallunterscheidungen Übungspaket 10 Fallunterscheidungen Übungsziele: Skript: 1. Umgang mit der einfachen Fallunterscheidung, 2. sowie mehrfachen Fallunterscheidung und 3. problemangepasster Auswahl Kapitel: 24 und 25 Semester:

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungspaket 9 Logische Ausdrücke

Übungspaket 9 Logische Ausdrücke Übungspaket 9 Logische Ausdrücke Übungsziele: Skript: 1. Umgang mit logischen Vergleichs- und Verknüpfungsoperatoren 2. Bilden einfacher und komplexer logischer Ausdrücke Kapitel: 22 Semester: Wintersemester

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungsziele: Skript: In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Übungspaket 8 Datentyp int

Übungspaket 8 Datentyp int Übungspaket 8 Datentyp int Übungsziele: Skript: 1. Umgang mit dem Datentyp int, 2. Deklarationen von int-variablen, 3. int-konstanten 4. und int-rechenoperationen. Kapitel: 21 Semester: Wintersemester

Mehr

Übungspaket 32 Einfach verkettete, sortierte Liste

Übungspaket 32 Einfach verkettete, sortierte Liste Übungspaket 32 Einfach verkettete, sortierte Liste Übungsziele: Skript: 1. Aufbau einer einfach verketteten, sortierten Liste 2. Traversieren von Listen 3. Vereinfachung durch ein Dummy-Element Kapitel:

Mehr

Übungspaket 20 Zeiger und Zeigervariablen

Übungspaket 20 Zeiger und Zeigervariablen Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18

Mehr

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungsziele: Skript: 1. Funktionen mit Zeigern als Parameter 2. Emulation von Variablenparametern 3. Funktionen mit Arrays als Parameter 4.

Mehr

Übungspaket 13 Der Datentyp double

Übungspaket 13 Der Datentyp double Übungspaket 13 Der Datentyp double Übungsziele: Skript: 1. Umgang mit dem Datentyp double, 2. Deklarationen von double-variablen, 3. double-konstanten 4. und double-rechenoperationen. Kapitel: 32 Semester:

Mehr

Übungspaket 7 Angemessenes Formatieren von C-Programmen

Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungsziele: Skript: 1. Gute Layout-Struktur durch Einrücken. Richtiges Verwenden von Kommentaren Kapitel: 19 Semester: Wintersemester 016/17 Betreuer:

Mehr

Übungspaket 22 Rekursive Funktionsaufrufe

Übungspaket 22 Rekursive Funktionsaufrufe Übungspaket 22 Rekursive Funktionsaufrufe Übungsziele: Skript: 1. Technische Voraussetzungen für rekursive Funktionsaufrufe 2. Umsetzung mathematisch definierter Rekursionen in entsprechende C-Programme

Mehr

Zeichenketten. Peter Sobe

Zeichenketten. Peter Sobe Zeichenketten existieren in C nicht als eigener Typ. Es können nur Zeichenkettenkonstante z.b. zur Ausgabe benutzt werden. Beispiel: printf( Guten Tag!\n ); Eine Zeichenkette als Variable kann aber in

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Übungspaket 4 Klassifikation von Dreiecken

Übungspaket 4 Klassifikation von Dreiecken Übungspaket 4 Klassifikation von Dreiecken Übungsziele: Skript: 1. Selbstständiges Entwickeln eines ersten Programms 2. Anwenden der Methoden des Software Life Cycles 3. Programmentwurf durch Anwendung

Mehr

Übungspaket 8 Datentyp int

Übungspaket 8 Datentyp int Übungspaket 8 Datentyp int Übungsziele: Skript: 1. Umgang mit dem Datentyp int, 2. Deklarationen von int-variablen, 3. int-konstanten 4. und int-rechenoperationen. Kapitel: 21 Semester: Wintersemester

Mehr

Übungspaket 7 Angemessenes Formatieren von C-Programmen

Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungspaket 7 Angemessenes Formatieren von C-Programmen Übungsziele: Skript: 1. Gute Layout-Struktur durch Einrücken. Richtiges Verwenden von Kommentaren Kapitel: 19 Semester: Wintersemester 018/19 Betreuer:

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen 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

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Übungspaket 22 Rekursive Funktionsaufrufe

Übungspaket 22 Rekursive Funktionsaufrufe Übungspaket 22 Rekursive Funktionsaufrufe Übungsziele: Skript: 1. Technische Voraussetzungen für rekursive Funktionsaufrufe 2. Umsetzung mathematisch definierter Rekursionen in entsprechende C-Programme

Mehr

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in  angegeben waren; z.b. als Formatstring in der printf()-funktion: Zeichenketten (Strings) Seite 1 von 11 Zeichenketten(Strings) sind wichtige Bestandteile fast eines jeden Programms. Beispiele sind Eingabe von Namen oder Adressen, Ausgabe von Meldetexten oder Bearbeitung

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Übungspaket 13 Der Datentyp double

Übungspaket 13 Der Datentyp double Übungspaket 13 Der Datentyp double Übungsziele: Skript: 1. Umgang mit dem Datentyp double, 2. Deklarationen von double-variablen, 3. double-konstanten 4. und double-rechenoperationen. Kapitel: 32 Semester:

Mehr

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt Zeichenketten (1) Literale Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt "Hallo Welt" Mehrere solcher Literale gelten als eine Zeichenkette, wenn sie nur durch Whitespaces (Leerzeichen,

Mehr

Übungspaket 3 Mein erstes Programm: Fläche eines Rechtecks

Übungspaket 3 Mein erstes Programm: Fläche eines Rechtecks Übungspaket 3 Mein erstes Programm: Fläche eines Rechtecks Übungsziele: Skript: 1. Der Software Life Cycle im Überblick. Umgang mit Editor und Compiler 3. Editieren und Starten eines eigenen Programms

Mehr

Übungspaket 5 Abstrakte Programmierung

Übungspaket 5 Abstrakte Programmierung Übungspaket 5 Abstrakte Programmierung Übungsziele: Skript: 1. Strukturierung einer gegebenen Aufgabe, 2. Bearbeitung von Arbeitsabläufen des alltäglichen Lebens mittels Struktogrammen 3. und der Methode

Mehr

Übungspaket 28 Module und getrenntes Übersetzen

Übungspaket 28 Module und getrenntes Übersetzen Übungspaket 28 Module und getrenntes Übersetzen Übungsziele: Skript: 1. Verteilen von Programmteilen auf mehrere Dateien 2. Richtige Verwendung der Header-Dateien 3. Richtiger Umgang mit dem C-Compiler

Mehr

Übungspaket 30 Kopieren von Dateien

Übungspaket 30 Kopieren von Dateien Übungspaket 30 Kopieren von Dateien Übungsziele: Skript: 1. Öffnen und Schließen von Dateien 2. Einfaches Lesen und Schreiben 3. Behandlung der EOF-Marke 4. Kopieren ganzer Dateien Kapitel: 59 bis 67 und

Mehr

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter

Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungspaket 21 Funktionen mit Zeigern und Arrays als Parameter Übungsziele: Skript: 1. Funktionen mit Zeigern als Parameter 2. Emulation von Variablenparametern 3. Funktionen mit Arrays als Parameter 4.

Mehr

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im

Mehr

8. Arbeiten mit Dateien

8. Arbeiten mit Dateien 8. Arbeiten mit Dateien www.c-programme.de Stefan Thiemert Kapitel 8 - Seite 1 von 6 8. 1. Allgemeines Bisher haben wir Daten, die wir in unseren Programmen erzeugt und verarbeitet haben, nur über den

Mehr

Strings (Zeichenketten)

Strings (Zeichenketten) Strings (Zeichenketten) INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird

Mehr

Zeichenketten (Strings)

Zeichenketten (Strings) Zeichenketten (Strings) Programme verarbeiten neben numerischen Daten oft auch Daten in Textform. Texte sind Zeichenketten, die auch als Strings bezeichnet werden In C gibt es keinen eigenständigen Datentyp

Mehr

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll

Mehr

Zeiger in C und C++ Zeiger in Java und C/C++

Zeiger in C und C++ Zeiger in Java und C/C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,

Mehr

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Informatik. Wiederholung Felder (Arrays), string. Vorlesung Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Übungspaket 11 Schleifen

Übungspaket 11 Schleifen Übungspaket 11 Schleifen Übungsziele: Skript: 1. Umgang mit den Schleifen in C. Wahl des richtigen Schleifentyps 3. Umwandlung der Schleifen ineinander Kapitel: 6 bis 8 Semester: Wintersemester 017/18

Mehr

Übungspaket 4 Funktionszeiger

Übungspaket 4 Funktionszeiger Übungspaket 4 Funktionszeiger Übungsziele: Literatur: 1. Verstehen von Funktionszeigern. 2. Anwenden von Funktionszeigern. C-Skript 1, Kapitel: 85 Semester: Wintersemester 2017/18 Betreuer: Kevin, Peter

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 4: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen

Mehr

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 3.2 Auswahl an Stringfunktionen W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu Allgemeines (1) Die ANSI-Norm definiert auch nützliche Funktionen zur ASCIIZ-Stringbearbeitung.

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Inhalt. Zeichen und Zeichenketten (engl. Strings)

Inhalt. Zeichen und Zeichenketten (engl. Strings) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

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

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

Übungspaket 1 Grundlagen: von der Hardware zum Programmieren

Übungspaket 1 Grundlagen: von der Hardware zum Programmieren Übungspaket 1 Grundlagen: von der Hardware zum Programmieren Übungsziele: Skript: 1. Die Bedeutung des Programmierens für mein Studium und meine spätere Berufstätigkeit 2. Was ist eine erfolgreiche Lernstrategie?

Mehr

Übungspaket 1 Grundlagen: von der Hardware zum Programmieren

Übungspaket 1 Grundlagen: von der Hardware zum Programmieren Übungspaket 1 Grundlagen: von der Hardware zum Programmieren Übungsziele: Skript: 1. Die Bedeutung des Programmierens für mein Studium und meine spätere Berufstätigkeit 2. Was ist eine erfolgreiche Lernstrategie?

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Einführung in die Programmiersprache C Teil 2 Ein- und Ausgabe in C-Programmen Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Überblick zur Vorlesung Ein-

Mehr

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten Kapitel 7 Zusammengesetzte Datentypen, Vektoren, Zeichenketten 1 Gliederung Kapitel 7 Zusammengesetzte Datentypen 7.1 Vektoren 7.2 Sortieren eines Vektors 7.3 Mehrdimensionale Felder 7.4 Umgang mit ein-/zweidimensionalen

Mehr

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

6. Bearbeitung von Strings in C Bearbeitung von Strings in C Bearbeitung von Strings in C 6-1 Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char [ ] ; Wie die Daten (Zeichenfolge)

Mehr

*** Viel Erfolg! ***

*** Viel Erfolg! *** Hochschule München, FK 03 SS 2016 Ingenieurinformatik C-Programmierung Zulassung geprüft: Bachelorstudiengang: Studienbeginn vor WS13/14 (Kombinationsprüfung) ** Studienbeginn ab WS13/14 bis WS15/16 **

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

1. Definition. 2. Interne Speicherung der Zeichenketten. 3. Vereinbarung von Zeichenketten

1. Definition. 2. Interne Speicherung der Zeichenketten. 3. Vereinbarung von Zeichenketten 1. Definition Eine Zeichenkette (String) ist eine Aufeinanderfolge von darstellbaren Zeichen, die sequentiell im Speicher angeordnet sind und gemeinsam angesprochen werden. Jedes einzelne Zeichen wird

Mehr

Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.

Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5. Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom 18.5. bis zum 22.5.2009 (KW 21) Organisatorisches Die Webseiten zur Veranstaltung sind unter

Mehr

+ C - Formatierte Eingabe mit scanf()

+ C - Formatierte Eingabe mit scanf() + C - Formatierte Eingabe mit scanf() BKTM - Programmieren leicht gemacht. Formatierte Eingabe mit scanf() Um eine Eingabe von der Tastatur bereitzustellen, kann man die scanf()-funktion benutzen. Der

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 12 Strings Seite 1 von 29 Konstante Zeichenfolgen - Zeichenfolgen, die in char-arrays abgelegt werden, werden C- String genannt. - Dies ist in der Programmiersprache C die einzige Möglichkeit Zeichenfolgen

Mehr

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

Mehr

Primzahlen und Programmieren

Primzahlen und Programmieren Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und

Mehr

Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger

Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni 2015 Felder und Zeiger 1. Felder 1. Felder werden deklariert und definiert durch die Angabe der Elementanzahl nach dem Feldnamen mit dem Feldoperator

Mehr

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt). 3 Erste Programme 3.1 Übungsaufgabe Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt). 3.1.1 Aufgabe 1 Schreiben Sie ein C++ Programm, das einen String einliest und testet,

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

printf("%c \n", 'd'); printf("%lx \n", 32L); printf("%o \n", 64); printf("%f \n", 1.0E-2); printf("%d \n", '\r'); printf("%f \n", 1.0/2.

printf(%c \n, 'd'); printf(%lx \n, 32L); printf(%o \n, 64); printf(%f \n, 1.0E-2); printf(%d \n, '\r'); printf(%f \n, 1.0/2. Abt. Elektrotechnik Labor für Technische Informatik Prüfung 1, Informatik 2. Semester Name:... Klasse:... Datum:... Erlaubte Hilfsmittel: Alles, außer PC, Laptop oder Nachbar. Zeit 90 min 1. Aufgabe [2

Mehr

Informatik I Einführung in die Informatik und Programmierung. Klausur

Informatik I Einführung in die Informatik und Programmierung. Klausur Angewandte Informatik Algorithmik Informatik I Einführung in die Informatik und Programmierung (Vorlesung vom WS 2004/2005) Klausur Datum: 24.02.2005 Beginn: 10.00 Uhr s.t. Bearbeitungszeit: 120 Minuten

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

6. Zeiger Allgemeines Definition eines Zeigers

6. Zeiger Allgemeines Definition eines Zeigers 6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.

Mehr

Übungspaket 30 Kopieren von Dateien

Übungspaket 30 Kopieren von Dateien Übungspaket 30 Kopieren von Dateien Übungsziele: Skript: 1. Öffnen und Schließen von Dateien 2. Einfaches Lesen und Schreiben 3. Behandlung der EOF-Marke 4. Kopieren ganzer Dateien Kapitel: 59 bis 67 und

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 2: Prof. Dr. Unser erstes C-Programm int main (int argc, char *argv[]) int i; int sum = 0; for (i = 0; i

Mehr

Arrays, Zeiger und Funktionen (call by reference)

Arrays, Zeiger und Funktionen (call by reference) Arrays, Zeiger und Funktionen (call by reference) Aufgabe 1: Zeichenketten Gegeben sei das folgende Programm: char text[] = "Informatik\aist toll\n"; printf("%i\n", sizeof(text)/sizeof(char)); printf("%s\n",

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

Zeiger in C und C++ Zeiger in Java und C/C++

Zeiger in C und C++ Zeiger in Java und C/C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,

Mehr

C-Programmierung: Ausdrücke und Operatoren#Division.2F

C-Programmierung: Ausdrücke und Operatoren#Division.2F C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF

Mehr

K Ergänzungen zur Einführung in C

K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0

Mehr

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei

Mehr

Ein- und Ausgabe von Daten

Ein- und Ausgabe von Daten Ein- und Ausgabe von Daten Datenausgabe Dateneingabe Datenformatierung Seite 1 -Anweisungen Beispiel printf ("SelectionSort sortiert maximal 50 Zahlen!\n"); printf ("Wie viele Zahlen sollen sortiert werden?

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)

Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18) Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)

Mehr