Übungspaket 7 Angemessenes Formatieren von C-Programmen
|
|
- Achim Reiner Beyer
- vor 5 Jahren
- Abrufe
Transkript
1 Ü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: Thomas, Tim und Ralf Synopsis: Das Kodieren eines Algorithmus in ein C-Programm und das Eintippen in den Rechner ist eigentlich gar nicht so problematisch. Schwierig wird s nur bei der Fehlersuche, wenn das Programm nicht das macht, was es machen soll. Noch schwieriger wird es, wenn dann der Betreuer mal eben den Fehler finden soll. Hier helfen Kommentare und angemessenes Einrücken, was wir hier ein wenig üben wollen.
2 Teil I: Stoffwiederholung Aufgabe 1: Kommentare In der Programmiersprache C gibt es zwei Möglichkeiten, Kommentare zu verwenden. Erkläre kurz die Syntax und zeige ein Beispiel. Möglichkeit 1: Syntax Die erste Möglichkeit erfordert sowohl öffnende /* als auch schließende */ Klammern und kann sich über mehrere Zeilen erstrecken. Beispiel int i /* hier ist ein kommentar der hier zu ende ist */ = -1; Möglichkeit : Syntax Die zweite Möglichkeit besteht in //. Derartige Kommentare beginnen mit // und gehen immer bis zum Ende der Zeile. Bei mehrzeiligen Kommentaren ist das // entsprechend in jeder Zeile zu wiederholen. Beispiel int i = // variablendefinition -1; // initialisierung Aufgabe : Geschachtelte Kommentare Erkläre kurz, wie man Kommentare schachteln kann und was dabei passiert. Natürlich kann man Kommentare schachteln wie man will, nur muss man verstehen, was dabei passiert. Die wesentliche Frage ist immer, welche Kommentarform die äußere ist. 1. //-Kommentare: Egal, was man hier hineinschreibt, der Kommentar endet am Zeilenende. Auch wenn die schließende Klammer fehlt, ist dieser am Zeilenende zu Ende. Beispiel: // aeuesserer kommentar /* innerer kommentar. /*... */-Kommentare: Egal, was man hier hineinschreibt, der Kommentar ist beim Auftreten des ersten */ zu Ende, egal ob dies in der selben oder einer späteren Zeile der Fall ist. Beispiel: /* aeusserer kommentar */ kein kommentar mehr */ 7-1 Wintersemester 018/19, Einführung in die Praktische Informatik
3 Aufgabe 3: Angemessenes Einrücken Erkläre kurz in eigenen Worten, warum wir als Lehrpersonal so sehr auf eine angemessene Form des Einrückens Wert legen. Ein C-Programm besteht in der Regel aus Variablendefinitionen und Anweisungsblöcken. Ein Charakteristikum von Anweisungsblöcken ist, dass sie aus verschiedenen Elementen wie Fallunterscheidungen, Schleifen und weiteren Anweisungen bestehen, die ineinander verschachtelt sein können. Daraus ergibt sich eine logische Strukur. Für das Finden möglicher Fehler ist es für alle sehr hilfreich, wenn man die intendierte Struktur auf den ersten Blick erfasst. Damit vermeidet man nicht nur Fehler, sondern sieht sehr schnell, wo möglicherweise Klammern fehlen oder zu viele gesetzt sind. Aufgabe 4: Recherche Recherchiere etwa fünf bis zehn Minuten im Web zum Thema Einrücken in C und notiere deine zwei Favoriten. Mögliche Schlagwörter sind: einruecken c programm Die meisten von uns favorisieren einen Einrückstil, der sehr stark dem Allman/BSD/ East Coast Stil ähnelt. Ihr könnt selbstverständlich euren Einrückstil frei wählen, solange er auch tatsächlich einrückt (also nicht linksbündig schreibt), konsistent ist und alle Beteiligten damit zurecht kommen. Einführung in die Praktische Informatik, Wintersemester 018/19 7-
4 Teil II: Quiz Aufgabe 1: Finden von Kommentaren Im folgenden (recht sinnfreien) Text befinden sich einige Kommentare. Schaue dir die Texte an und unterstreiche alle Kommentare einschließlich der Kommentarklammern. Dabei ist jede Zeile für sich zu behandeln, d.h. eventuell noch nicht abgeschlossene Kommentare aus vorherigen Zeilen haben keinen Einfluss. Korrigiere die Kommentare, sofern dir dies sinnvoll, logisch oder naheliegend erscheint. 1 heute ist ein /* schoener */ tag gestern schien die sonne // den ganzen tag 3 /* das */ lernen der /* pro gr am mi er sp ra ch e C */ ist anstrengend 4 // ich wuenschte, das studium waere schon fertig 5 ich habe /* sehr /* nette */ */ kommilitonen 6 beim hochschulsport findet man viele /** gute */ kurse 7 im sommer ist es warm, im winter /* nicht **/ immer 8 mathe ist /* oft * / anstrengend, /* physik */ leider auch 9 das lernen /* in der // gruppe */ macht spass 10 schoen, // bald */ ist wochenende 11 kommentare sind /* sehr * / bloed // finde ich Im Text haben wir folgende Kommentare gefunden: Zeile Kommentar 1 /* schoener */ // den ganzen Tag 3 /* das */ 3 /* programmiersprache C */ 4 // ich wuenschte, dass studium waere schon fertig 5 /* sehr /* nette */ 6 /** gute */ 7 /* nicht **/ 8 /* oft * / anstrengend, /* physik */ 9 /* in der // gruppe */ 10 // bald */ ist wochenende 11 /* sehr * / bloed // finde ich 7-3 Wintersemester 018/19, Einführung in die Praktische Informatik
5 Die im Text verwendete Schreibweise legt nahe, dass einige Tippfehler passiert sind, die folgende Korrekturen nahelegen: Zeile Korrektur Begründung 5 /* sehr nette */ Kommentare kann man nicht schachteln 6 /* gute */ Vermutlich ein * zu viel 7 /* nicht */ Vermutlich ein * zu viel 8 /* oft */ vermutlich ein Leerzeichen zu viel 10 /* bald */ vermutlich Verwechslung von / und * 11 /* sehr */ vermutlich ein Leerzeichen zu viel Diese Korrekturen ergeben folgenden Text: 1 heute ist ein /* schoener */ tag gestern schien die sonne // den ganzen tag 3 /* das */ lernen der /* pro gr am mi er sp ra ch e C */ ist anstrengend 4 // ich wuenschte, das studium waere schon fertig 5 ich habe /* sehr nette */ kommilitonen 6 beim hochschulsport findet man viele /* gute */ kurse 7 im sommer ist es warm, im winter /* nicht */ immer 8 mathe ist /* oft */ anstrengend, /* physik */ leider auch 9 das lernen /* in der // gruppe */ macht spass 10 schoen, /* bald */ ist wochenende 11 kommentare sind /* sehr */ bloed // finde ich Einführung in die Praktische Informatik, Wintersemester 018/19 7-4
6 Teil III: Fehlersuche Aufgabe 1: Fehlerhafte Kommentare finden Im folgenden Programm befinden sich für seine Größe recht viele Kommentare. Leider hat der Programmierer hier und dort den einen oder anderen Fehler gemacht. Fehlerhaftes Programm: 1 # include < stdio. h > /* kommentar 3 int main ( int argc, kommentar char ** argv ) 4 // hier ist ganz /* viel 5 kommentar sogar ueber */ 6 // drei zeilen 7 { /* schon wieder ein /* einfacher */ kommentar */ 8 int // kommentar mitten i; drin 9 if ( i == ) 10 hier auch printf ( " true \n" ); 11 else printf ( " false \ n" ); /* und jetzt ist aber schluss 1 } Viele dieser Kommentare sind völlig sinnfrei. Aber dennoch, finde und korrigiere sie. Bedenke, dass es immer mehrere Möglichkeiten gibt, die Fehler zu korrigieren. Entscheide dich jeweils für eine. Bei richtig gesetzten Kommentaren sollte der Compiler folgendes Programm sehen, sofern er selbige entfernt hat: Programm, wie es ohne Kommentare sein sollte: 1 # include <stdio.h> 5 int i; 6 if ( i == ) 7 printf ( " true \n" ); 8 else printf ( " false \n" ); 9 } Die Richtigkeit der durchgeführten Korrekturen lässt sich sehr einfach feststellen. Einfach mal das Kommando cpp <datei.c> ausführen, wobei <datei.c> natürlich durch den richtigen Dateinamen zu ersetzen ist. Am Anfang steht sehr viel, das alles mit stdio.h zu tun hat. Am Ende jedoch sollte das Programm richtig erscheinen (unter Umständen sind aber die Zeilen ein wenig verrutscht). Statt cpp kann natürlich auch gcc -E verwendet werden. 7-5 Wintersemester 018/19, Einführung in die Praktische Informatik
7 Fehlerbeschreibung: Zeile Fehler Erläuterung Korrektur 1 */ fehlt Die schließende Kommentarklammer */ fehlt. */ ergänzen 3 /*...*/ kommentar steht nicht in Kommentarklammern. /*... */ fehlen ergänzen 4 Alles völlig korrekt. 5 /* oder // Der Kommentar wird zwar beendet, aber die öffnende /* oder // ergänzen fehlen Klammer fehlt. 6 Alles völlig korrekt 7 falsche Durch /* ist der hintere Teil kein Kommentar, da man Schachtelung Kommentare so nicht schachteln kann. neu anfangen 8 i ist im Kommentar Die Variable i ist leider im Kommentar. Hier muss der Kommentar vorher beendet und anschließend wieder angefangen werden. */ und // ergänzen 9 Alles völlig korrekt. 10 /*...*/ fehlen Die ersten beiden Wörter sind zu viel. Diese müssen durch weitere Kommentarklammern entfernt werden. /*...*/ ergänzen 11 */ fehlt Die schließende Kommentarklammer */ fehlt entweder */ am Ende ergänzen oder // am Kommentaranfang. Wir haben das schreckliche Programm jedenfalls wie folgt korrigiert: Korrigiertes Programm: */ ergänzen 1 # include < stdio. h > /* kommentar */ 3 int main ( int argc, /* kommentar */ char ** argv ) 4 // hier ist ganz /* viel 5 // kommentar sogar ueber */ 6 // drei zeilen 7 { /* schon wieder ein /* einfacher */ /* kommentar */ 8 int /* kommentar mitten */ i; // drin 9 if ( i == ) 10 /* hier auch */ printf ( " true \n" ); 11 else printf ( " false \ n" ); // und jetzt ist aber schluss 1 } Einführung in die Praktische Informatik, Wintersemester 018/19 7-6
8 Teil IV: Anwendungen In diesem Aufgabenteil sollt ihr schlecht formatierte Programme durch Verwenden von Leerzeichen und Zeilenumbrüchen so umwandeln, dass deren Struktur sofort erkennbar ist. Aufgabe 1: Ein erstes, einfaches Programm 1 # include < stdio.h> 5 int i, j; 6 if(i<j) 7 for (i =0;i <10; i=i +1) 8 printf ("ha ha\n"); 9 else 10 if(i==j) 11 for (i =0;i <3; i=i +1) 1 for (j =0;j <10; j=j +1) 13 printf ("ho ho\n"); 14 else 15 printf (" total bloed \n"); 16 } Neue Formatierung: 1 # include <stdio.h> 5 int i, j; 6 if (i < j ) 7 for ( i = 0; i < 10; i = i + 1 ) 8 printf ( "ha ha\n" ); 9 else if( i == j ) 10 for ( i = 0; i < 3; i = i + 1 ) 11 for ( j = 0; j < 10; j = j + 1 ) 1 printf ( "ho ho\n" ); 13 else printf ( " total bloed \n" ); 14 } Dies ist nur eine von vielen Möglichkeiten. Hauptsache die Programmstrukur ist auf den ersten Blick erkennbar! 7-7 Wintersemester 018/19, Einführung in die Praktische Informatik
9 Aufgabe : Ein zweites, einfaches Programm 1 # include < stdio.h> 5 int i, j; 6 if(i<j) 7 for (i =0;i <10; i=i +1) 8 if(i ==3) 9 for (j =0;j <3; j=j +1) 10 printf ("ha ha\n"); 11 else 1 printf ("ho ho\n"); 13 else 14 printf (" total bloed \n"); 15 } Neue Formatierung: (Konsistent, aber mit vielen geschweiften Klammern) 1 # include <stdio.h> 5 int i, j; 6 if (i < j) 7 { 8 for ( i = 0; i < 10; i = i + 1) 9 { 10 if (i == 3) 11 { 1 for ( j = 0; j < 3; j = j + 1) 13 { 14 printf ("ha ha\n"); 15 } 16 } 17 else { 18 printf ("ho ho\n"); 19 } 0 } 1 } else { 3 printf (" total bloed \n"); 4 } 5 } Einführung in die Praktische Informatik, Wintersemester 018/19 7-8
10 Ohne alle nicht unbedingt notwendigen geschweiften Klammern hätten wir folgendes, recht kompaktes Programm: 1 # include <stdio.h> 5 int i, j; 6 if (i < j) 7 for ( i = 0; i < 10; i = i + 1) 8 if (i == 3) 9 for ( j = 0; j < 3; j = j + 1) 10 printf ("ha ha\n"); 11 else printf ("ho ho\n"); 1 else printf (" total bloed \n"); 13 } Aufgabe 3: Ein drittes, einfaches Programm 1 # include /* eingabe */ < stdio. h > 5 int i 6 ; if ( i 7 == ) printf ( " true \n" ); else printf 8 ( " false \n" ); 9 10 } Neue Formatierung: 1 # include <stdio.h> /* eingabe */ 5 int i; 6 if ( i == ) 7 printf ( " true \n" ); 8 else printf ( " false \n" ); 9 } Bei diesem Programm haben wir zwecks Übersichtlichkeit und erkennbarer Programmstruktur zusätzlich die Inhalte zwischen den Zeilen hin- und hergeschoben. 7-9 Wintersemester 018/19, Einführung in die Praktische Informatik
Ü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 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 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 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 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 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 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 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 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 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Ü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 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 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 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 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 Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrÜ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 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 Ü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 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 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 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 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 Ü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 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 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
MehrBedingte Anweisungen
Bedingte Anweisungen Bedingte Anweisungen werden nicht immer ausgeführt, sondern nur, wenn eine Bedingung erfüllt (wahr) ist. C/C++/Java bieten hier 2 Konstruktionen an: if-anweisung sowie switch-case
MehrEinführung in die Programmierung Wintersemester 2011/12
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while
MehrÜbungspaket 6 Arbeiten mit Syntaxdiagrammen
Übungspaket 6 Arbeiten mit Syntaxdiagrammen Übungsziele: Skript: Verstehen, Anwenden und Erstellen von Syntaxdiagrammen Kapitel: 20 Semester: Wintersemester 2017/18 Betreuer: Kevin, Theo, Thomas und Ralf
MehrObjektorientierte Programmierung - Was ist Programmieren?
Objektorientierte Programmierung - Was ist Programmieren? Programmieren ist ein logischer, sequentieller Vorgang Programmieren Beim Programmieren nutzt man eine Sprache Diese Sprache ist ein Hilfsmittel
MehrÜ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:
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrEinführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann
Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 64 1 Einführung Java Geschichte 2 Programmieren in Java Einführung
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf
MehrÜ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 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
MehrJava Ablaufsteuerung (Beispiele)
Informatik 1 für Nebenfachstudierende Grundmodul Java Ablaufsteuerung (Beispiele) Kai-Steffen Hielscher Folienversion: 16. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Blöcke Anweisungen
MehrÜ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 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 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
MehrAnleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung
for-schleife 1. Aufgabe: 1 Tippe die Zeilen in BlueJ ein. Was macht das Programm? public class C14ForSchleife { int i; for(i=0;i
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrBeispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)
Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+
MehrJava Anweisungen und Ablaufsteuerung
Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung
MehrC# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen
C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Leibniz Universität IT Services Anja Aue Programmabläufe grafisch abbilden
MehrÜbungspaket 24 Zeichenketten
Ü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
MehrII ELEMENTARES PROGRAMMIEREN IN C++
II ELEMENTARES PROGRAMMIEREN IN C++ S. BARTELS, 26.3.2018 1. Aufbau eines Programms Wir diskutieren typische Aspekte eines Computerprogramms am Beispiel der Programmiersprache C++, jedoch finden sich die
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,
MehrTest-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO
Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO Dipl.-Ing. Klaus Knopper 21.12.2006 Hinweis: Bitte schreiben Sie auf das Deckblatt und auf jede Seite Ihren Namen und Ihre Matrikelnummer,
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 +
MehrSchleifen: Immer wieder dasselbe tun
Schleifen: Immer wieder dasselbe tun Bei einer Schleife werden Anweisungen immer wieder ausgeführt, solange die Bedingung wahr ist. Dafür muss man eine Variable immer wieder ändern, solange bis eine Überprüfung
Mehr06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen
06 While-Schleifen While-Schleifen 1/7 Wiederholung: Schleifen Eine Schleife ist eine Struktur, welche den Computer anweist, eine Liste von Befehlen mehrmals auszuführen. Falls Du ein Verfahren hast, das
Mehr2.5 Programmstrukturen Entscheidung / Alternative
Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung
MehrEinführung in die Informatik I
Einführung in die Informatik I Kapitel I.5: Verzweigungen Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
MehrÜ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
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)
MehrS. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
MehrGI 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
MehrSchleifen in Javascript
Schleifen in Javascript Jobst-Hartmut Lüddecke 3. April 2013 Zusammenfassung In dieser Lektion geht es um Schleifen (engl. loop). Diese Schleifen sind in jeder Programmiersprache das beste Werkzeug für
MehrPIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
MehrSchöner Programmieren
Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 30.05.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 30.05.07
MehrSchöner Programmieren
Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 20.11.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07
MehrPeter Prinz. Das Übungsbuch. CTestfragen und Aufgaben mit Lösungen
Peter Prinz Das Übungsbuch CTestfragen und Aufgaben mit Lösungen Grundlagen Dieses Kapitel enthält grundlegende Fragen und Aufgaben zur Erstellung von C-Programmen. Hierzu gehören folgende Themen: Header-Dateien
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
MehrKompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen
Kompaktkurs Einführung in die Programmierung 4. Kontrollstrukturen Stefan Zimmer 28.2.2008-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon ist
MehrKapitel 4. Kontrollstrukturen
Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen
MehrÜ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
MehrKapitel 4. Kontrollstrukturen
Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen
Mehr1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?
1.8 Kontrollstrukturen 75 1.8.5 Wiederholungen Häufig muss die gleiche Teilaufgabe oft wiederholt werden. Denken Sie nur an die Summation von Tabellenspalten in der Buchführung oder an das Suchen einer
MehrÜ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
MehrC-Propädeutikum Anweisungen
C-Propädeutikum Anweisungen Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann Ausdrücke Institut
MehrÜbungen zu Programmieren - Code-Formatierung -
- Code-Formatierung - Tutoren: Sven Groppe Florian Frischat David Gregorczyk Dana Linnepe Sven-Erik Pfeiffer Markus Weigel Simon Werner groppe@ifis.uni-luebeck.de prog2@ifis.uni-luebeck.de prog6@ifis.uni-luebeck.de
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrGrundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen.
Grundlegende Programmstrukturen Seite 1 von 14 Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen. Sequenzen Eine Sequenz ist eine Folge von en (sblock) ohne Verzweigungen. Der
Mehr<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";
Vorbemerkungen Diese Schrittanleitung bezieht sich auf die Aufgaben 4 bis 6 von "Übung 2 - Schleifenbeispiele (1)" Sie soll als Anregung dienen, wie Sie Ihren Code blockweise erstellen und testen können.
MehrSchleifen in C/C++/Java
Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrProgrammierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 2. Blatt Für die Woche vom 3.5. bis zum 7.5.
Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 2. Blatt Für die Woche vom 3.5. bis zum 7.5.2010 (KW 18) Organisatorisches Im Web unter http://www.uni-ulm.de/in/programmierstarthilfe.html
Mehr2. 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
MehrEinführung in die Programmierung II. 3. Kontrollstrukturen
Einführung in die Programmierung II 3. Kontrollstrukturen Thomas Huckle, Stefan Zimmer 2.5.2007-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon
MehrGedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
MehrProgrammierkurs Java
Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung
MehrAufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:
Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: o Klasse 0: kein Rabatt o Klasse 1: 4,5 % Rabatt o Klasse 2: 8,75% Rabatt
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
MehrArithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
Mehrhue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
Mehr