Programmieren in C. Eigene Datentypen per typedef und Strukturen. Prof. Dr. Nikolaus Wulff
|
|
- Hennie Schulz
- vor 8 Jahren
- Abrufe
Transkript
1 Programmieren in C Eigene Datentypen per typedef und Strukturen Prof. Dr. Nikolaus Wulff
2 C Datentypen Variablen in C sind immer von einem bestimmten Datentyp, z. B. int, float, char, etc. Zusätzlich definiert die Sprache Operationen die mit den Datentypen erlaubt sind, +,*, etc. Diese Typen sind eng angelegt an die Möglichkeiten einer CPU und den primitiven mathematischen Operationen, die damit möglich sind. Für fachliche Anwendungen ist es wünschenswert eigene Datentypen zu verwenden, wie z.b. einen Geldbetrag, ein Datum, eine Farbe, etc. Prof. Dr. Nikolaus Wulff Programmieren in C 2
3 Eigene Datentypen C kennt verschiedene Mechanismen, um eigene Datentypen zu definieren. Diese Typen können dann mit sprechenden Typnamen versehen sein. Dies ermöglicht es sprachlich näher an der Semantik des Problembereichs zu bleiben. Dies erleichtert die Lesbarkeit und kann auch verwendet werden, um Programme leichter zwischen verschiedenen Maschinenarchitekturen zu portieren. Prof. Dr. Nikolaus Wulff Programmieren in C 3
4 Aufzählungstypen Das Konzept von Aufzählungen (eng. Enumeration) kommt derart häufig vor, das C hierfür eine eigene Anweisung besitzt, um einen Aufzählungstypen für Konstanten zu definieren. enum <identifier> { value 1,...,value N }; Statt vieler Konstanten per #define wird die enum Anweisung verwendet, um einen ganzen Satz von Konstanten zu definieren. Prof. Dr. Nikolaus Wulff Programmieren in C 4
5 Boolean per enum C kennt keinen Booleschen Datentyp, daher werden die Variablen TRUE und FALSE häufig per #define Anweisung definiert: #define FALSE 0 #define TRUE 1 Sauberer geht es per enum: enum Boolean { false, true}; Die Voreinstellung ist, dass der erste Bezeichner (hier false) mit 0 belegt wird und dann wird jeweils um eins inkrementiert. Prof. Dr. Nikolaus Wulff Programmieren in C 5
6 Wochentage Wir wollen ein Programm Kalender zur Bearbeitung von Wochentagen entwickeln. Die Header Datei Kalender.h könnte so aus sehen: #define MONDAY 1 #define TUESDAY 2 #define WEDNESDAY 3 #define THURSDAY 4 #define FRIDAY 5 #define SATURDAY 6 #define SUNDAY 7 void printday(int day); Prof. Dr. Nikolaus Wulff Programmieren in C 6
7 Aufzählungstypen Statt vieler Konstanten per #define wird die enum Anweisung verwendet. enum Day { monday=1, tuesday, wednesday, thursday, friday, saturday, sunday}; void printday(enum Day day); Damit die Zählung nicht mit monday bei 0 beginnt, kann explizit der erste Wert belegt werden. Der enum Typ Day kann sogar als Parametertyp in der Methode printday deklariert werden. Prof. Dr. Nikolaus Wulff Programmieren in C 7
8 Verwendung von enum Die Methode printday kann nun mit den Konstanten des Aufzählungstypen Day gerufen werden: printday(tuesday); aber auch ein Aufruf mit int funktioniert: printday(2); Intern wird enum immer als eine Konstante vom Typ int repräsentiert. Leider kann auch Unsinn übergeben werden: printday(-20); Merke: Wir kümmern uns um die Namen, der Compiler um die Werte... Prof. Dr. Nikolaus Wulff Programmieren in C 8
9 Enum sind intern Integers void printday(enum Day day) { switch(day) { case monday: case tuesday: case wednesday: case thursday: case friday: printf("go to work\n"); break; case saturday: case sunday: printf("sleep well it's weekend\n"); break; default: printf("unknown day %d\n", day); handleerror(); }; } Für solche Fälle muss eine Möglichkeit der Fehlerbehandlung vorgesehen werden... Prof. Dr. Nikolaus Wulff Programmieren in C 9
10 Enum Konstanten vorbelegen Die enum Konstanten können beliebig vergeben werden auch mit negativen Werten: enum example { a, b, c, d, e=-2, f, g, h i=-3, j, k, l, m,...}; Es lassen sich mehrere Bezeichner mit dem selben Wert belegen: Wert Name -3 i -2 e j -1 f k 0 a g l 1 b h m 2 c 3 d Prof. Dr. Nikolaus Wulff Programmieren in C 10
11 Alias per typdef Während enums immer Konstanten vom Typ int sind gibt es mit dem typedef Konstrukt eine Möglichkeit ein Alias für einen schon existierenden beliebigen Typ zu vergeben: typedef <type> <new_type_identifier>; So kann z.b. das Konstrukt char* mit einer Zeichenkette als String identifiziert werden: typedef char* String; String s = "Hallo"; s ist immer noch eine Variable vom Typ char*! Prof. Dr. Nikolaus Wulff Programmieren in C 11
12 Anwendungen von typedef Ein paar Beispiele zur Anwendung von typedef: typedef float Geld; typedef unsigned short Alter; Alter volljaehrig = 18; Geld gehalt = ; Die Bedeutung des Codes erschließt sich mit den Typen Alter und Geld wesentlich leichter, als wenn dort mit unsigned short gearbeitet worden wäre. Sollte die Genauigkeit von float nicht ausreichen, genügt es den typedef auf double zu ändern und an allen Stellen, wo Geld vorkommt wird mit double gerechnet... Prof. Dr. Nikolaus Wulff Programmieren in C 12
13 typedef und enum Etwas unschön beim Day Beispiel war es überall in den Methodensignaturen enum mit einzufügen: enum Day { monday=1, tuesday,...}; void printday(enum Day day); Wesentlich eleganter geht es mit typedef : enum day_enum { monday=1, tuesday,...}; typedef enum day_enum Day; void printday(day day); oder in einem Rutsch: typedef enum { monday=1, tuesday,...} Day; Prof. Dr. Nikolaus Wulff Programmieren in C 13
14 Ein altes Beispiel... /** two constants for f2c and c2f calculus */ #define SHIFT 32.0 #define SCALE (9.0/5.0) /** calulate celsius as fct of fahrenheit */ double f2c(double f) { double c = (f - SHIFT)/SCALE; return c; } /** calulate fahrenheit as fct of celsius */ double c2f(double c) { double f = c*scale + SHIFT; return f; } Da müsste sich doch mit typedef etwas machen lassen... Prof. Dr. Nikolaus Wulff Programmieren in C 14
15 Nochmal Celsius zu Fahrenheit /** two constants for f2c and c2f calculus */ #define SHIFT 32.0 #define SCALE (9.0/5.0) typedef double Celsius; typedef double Fahrenheit; /** calulate celsius as fct of fahrenheit */ Celsius f2c(fahrenheit f) { Celsius c = (f - SHIFT)/SCALE; return c; } /** calulate fahrenheit as fct of celsius */ Fahrenheit c2f(celsius c) { Fahrenheit f = c*scale + SHIFT; return f; } So wird der Code sprechend... Prof. Dr. Nikolaus Wulff Programmieren in C 15
16 C Datentypen Die bis lang vorgestellten Konstrukte, enum und typedef, erfüllen noch nicht die Anforderung an selbst definierten Datentypen. enum definiert Aufzählungen von int Konstanten. typedefs sind lediglich alias Bezeichner für bereits existierende Datentypen. Keines der beiden Konstrukte liefert wirklich einen neuen Datentyp. Prof. Dr. Nikolaus Wulff Programmieren in C 16
17 Do it yourself... Wir möchten den Datentyp Farbe (Color) implementieren. Color soll die drei Werte (r,g,b) als Triple, jeweils im Bereich 0<x<255 repräsentieren. = >(2 8,2 8,2 8 ) Welch Möglichkeiten kennen wir bis lang? Farbwerte in einer 4Byte Ganzzahl abspeichern Farbwerte in einem short/char Array abspeichern Prof. Dr. Nikolaus Wulff Programmieren in C 17
18 Farbe als Ganzzahl modelliert Ein int mit 4 Byte (ansonsten typedef mit long) bietet genug Platz, um 3 Byte rgb-werte abzulegen, mit entsprechenden Bit und Shift Operationen... typedef int Color; #define R_MASK 0x00FF0000 #define G_MASK 0x0000FF00 #define B_MASK 0x000000FF #define getr(c) ( ((C) & R_MASK)>>16 ) #define getg(c) ( ((C) & G_MASK)>>8 ) #define getb(c) ( ((C) & B_MASK) ) Bits: Die get-methoden lesen mit entsprechenden Masken und shift Operationen die rgb-werte. Prof. Dr. Nikolaus Wulff Programmieren in C 18
19 Farbe als Ganzzahl setzen Ein Farb-Byte gezielt innerhalb des 4 Byte Color int zu setzten erfordert schon mehr Operationen: #define setr(c,x) ( (C) = \ ((C) & ~R_MASK) (((x)<<16)& R_MASK)) #define setg(c,x) ( (C) = \ ((C) & ~G_MASK) (((x)<< 8)& G_MASK)) #define setb(c,x) ( (C) = \ ((C) & ~B_MASK) ((x) & B_MASK) ) Farbe löschen neuer Farbwert Zunächst werden die Bits der zu setzenden Farbe gelöscht, ohne die beiden anderen Farben zu löschen. Anschließend wird mit oder der neue Wert gesetzt. Diese Bytefolge ergibt sich aus einer Shift-Operation des Farbwertes und anschließender Maskierung. Prof. Dr. Nikolaus Wulff Programmieren in C 19
20 Ganzzahl Variante Durch die Macros lassen sich per get/setx die Bit und Shift-Operationen verstecken und in eine Color.h Datei auslagern. Ein Nachteil ist, dass für jeden getx/setx Befehl Berechnungen durchgeführt werden müssen. Eine Zuweisung per = Operanden funktioniert nicht, es ist immer ein setx Befehl notwendig. Color color; setr(color,238); setg(color,124); setb(color, 32); printf("color (%d,%d,%d)\n", getr(color),getg(color),getb(color)); Prof. Dr. Nikolaus Wulff Programmieren in C 20
21 Farbe als Feld modellieren typedef unsigned char Color[3]; #define getr(c) ( (C)[0]) #define getg(c) ( (C)[1]) #define getb(c) ( (C)[2]) #define setr(c,x) ( (C)[0] = x) #define setg(c,x) ( (C)[1] = x) #define setb(c,x) ( (C)[2] = x) In diesem Fall werden die Farbeinträge als Feld abgelegt und auf jede Komponente kann direkt zugegriffen werden. Die Makros verstecken vor der Testroutine wieder die Implementierungsdetails... Prof. Dr. Nikolaus Wulff Programmieren in C 21
22 Feld Variante Für die getx/setx Methoden sind keine Berechnungen notwendig. Es ist möglich direkte Zuweisungen mit dem = Operanden vorzunehmen. Es muss immer berücksichtigt werden, dass es sich bei diesem Color Typ um ein Feld der Länge drei handelt, d.h. Zuweisungen geschehen per Index: Color color ={0,255,127}; color[1] = 32; setr(color,125); Beide bisherigen Varianten sind unbefriedigend... Prof. Dr. Nikolaus Wulff Programmieren in C 22
23 C Strukturen Im Allgemeinen kennen Programmiersprachen für genau diese Problematik ein eigenständiges Modellierungselement: z.b. in Pascal den record, in C das struct und OO-Sprachen besitzen hierzu das Konzept der Klasse. Ein struct ist ein neuer Datentyp. Zusammengesetzt als Aggregat aus bereits bekannten Datentypen: struct <identifier> { type 1 <identifier 1 >;... ; type N <identifier N >; }; Prof. Dr. Nikolaus Wulff Programmieren in C 23
24 Color struct struct color_struct { unsigned char r; unsigned char g; unsigned char b; }; typedef struct color_struct Color; struct Definition typedef mit struct #define getr(c) ( (C).r ) #define getg(c) ( (C).g ) #define getb(c) ( (C).b ) #define setr(c,x) ( (C).r = (x) ) #define setg(c,x) ( (C).g = (x) ) #define setb(c,x) ( (C).b = (x) ) Die Zuweisungen sind viel deutlicher und klarer. Ein struct ist ein eigenständiger neuer Datentypen. Per typedef wird häufig ein struct-zeiger definiert. Prof. Dr. Nikolaus Wulff Programmieren in C 24
25 struct Verwendung Color white = {255,255,255}; Color color; color.r = white.r; color.g = 64; color.b = 32; printf("color (%d,%d,%d)\n", color.r, color.g, color.b); Ein struct kann bei der Erzeugung direkt mit entsprechenden Werten vorbelegt werden.. Mit dem Operator wird auf die einzelnen Elemente des struct in beliebiger Reihenfolge sowohl lesend als auch schreibend zugegriffen. Die getx/setx Makros sind im Prinzip überflüssig. Prof. Dr. Nikolaus Wulff Programmieren in C 25
26 Der komplexe Datentyp Für die Ingenieurwissenschaften sind in vielen Bereichen die komplexen Zahlen von Bedeutung. Mit Hilfe eines struct fällt es leicht diesen Datentypen zu implementieren und auch entsprechende Methoden wie +, -, * und / zu definieren. Ein gut modellierter abstrakter Datentyp (ADT) zeichnet sich nicht nur dadurch aus, dass er Felder besitzt, sondern auch noch einen Satz von Methoden, für die gültigen Operationen dieses ADT. Prof. Dr. Nikolaus Wulff Programmieren in C 26
27 Complex.h #ifndef COMPLEX_H #define COMPLEX_H /** * Structure for the complex ADT. */ typedef struct { double real, imag; } Complex; struct Definition und typedef in einem Schritt... /** * The basic operations for the complex ADT. */ Complex cadd(const Complex u, const Complex v); Complex csub(const Complex u, const Complex v); Complex cmul(const Complex u, const Complex v); Complex cdiv(const Complex u, const Complex v); #endif /* COMPLEX_H */ Prof. Dr. Nikolaus Wulff Programmieren in C 27
28 Complex.c /** multiplication of two complex numbers */ Complex cmul(const Complex u, const Complex v) { Complex z = { u.real * v.real - u.imag * v.imag, u.real * v.imag + u.imag * v.real }; return z; } Sobald die wesentlichen Operationen definiert und implementiert sind lässt sich leicht mit komplexen Zahlen rechnen. Leider erlaubt es C nicht die Operatoren für +,-,*,/ zu überladen, wie es mit C++ möglich ist. Deshalb werden die Methoden cadd, cmul, etc. definiert. Prof. Dr. Nikolaus Wulff Programmieren in C 28
29 structs verschachteln Strukturen können ihrerseits wieder aus Strukturen zusammengesetzt sein: typedef struct { String town; String street; long zipcode; } Adress; typedef struct { short year, month, day; } Date; typedef struct { String name; String surname; Adress adresse; Date birthday; } Person; Prof. Dr. Nikolaus Wulff Programmieren in C 29
30 Anwendung von Strukturen Mit Hilfe von geschachtelten Strukturen lassen sich Zugriffe recht übersichtlich programmieren: Person nw; nw.name nw.surname = "Nikolaus"; = "Wulff"; nw.adresse.town = "Steinfurt"; nw.adresse.street = "Stegerwaldstr. 39"; nw.adresse.zipcode = 48565; nw.birthday.month = 11; nw.birthday.day = 20;... Prof. Dr. Nikolaus Wulff Programmieren in C 30
Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrDatentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
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
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrIndividuelle Formulare
Individuelle Formulare Die Vorlagen ermöglichen die Definition von Schnellerfassungen für die Kontenanlage sowie für den Im- und Export von Stammdaten. Dabei kann frei entschieden werden, welche Felder
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
MehrInformatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrM. 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
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrARCO Software - Anleitung zur Umstellung der MWSt
ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
Mehr! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
MehrProgrammieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrViele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
MehrProgrammieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff
Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen
Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrDatenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrUm ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.
Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrOPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
Mehr4 Aufzählungen und Listen erstellen
4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer
MehrAnleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball
Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball Inhalt 1. Login: Wo und Wie kann ich mich einloggen?... 2 Die Webseite: www.basketplan.ch... 2 Mein Klub-Login?... 2 2. Orientierung: Was
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16
Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrEinstellen der Makrosicherheit in Microsoft Word
Einstellen der Makrosicherheit in Microsoft Word Stand: Word 2016 Inhalt Inhalt... 2 Allgemeine Anmerkungen... 3 Microsoft Word 2013/2016... 5 Microsoft Word 2010... 10 Microsoft Word 2007... 16 Microsoft
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrProseminar C-Programmierung. Strukturen. Von Marcel Lebek
Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrErste-Schritte VP 5.1
In diesem Dokument werden wichtige Einstellungen beschrieben, die vorgenommen werden müssen, wenn mit einer leeren Planung begonnen wird. Inhaltsverzeichnis Erstellung einer leeren Planung...1 Wichtige
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrOnline-Bestellung Tageskarten für Mitglieder des FC St. Pauli, die nicht im Besitz einer Dauer- oder Saisonkarte sind.
Online-Bestellung Tageskarten für Mitglieder des FC St. Pauli, die nicht im Besitz einer Dauer- oder Saisonkarte sind. 1. Anmeldung Soweit noch nicht geschehen, muss im Vorfeld (vor Verkaufsstart am 21.07.)
MehrÜberprüfung der digital signierten E-Rechnung
Überprüfung der digital signierten E-Rechnung Aufgrund des BMF-Erlasses vom Juli 2005 (BMF-010219/0183-IV/9/2005) gelten ab 01.01.2006 nur noch jene elektronischen Rechnungen als vorsteuerabzugspflichtig,
MehrS7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
MehrDokumentenverwaltung im Internet
Dokumentenverwaltung im Internet WS 09/10 mit: Thema: Workflow und Rollenverteilung im Backend Gruppe: DVI 10 Patrick Plaum und Kay Hofmann Inhalt 1. Benutzer und Benutzergruppen erstellen...2 1.1. Benutzergruppen...2
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrBenutzerverwaltung Business- & Company-Paket
Benutzerverwaltung Business- & Company-Paket Gemeinsames Arbeiten mit der easyfeedback Umfragesoftware. Inhaltsübersicht Freischaltung des Business- oder Company-Paketes... 3 Benutzerverwaltung Business-Paket...
MehrErstellen einer digitalen Signatur für Adobe-Formulare
Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist
MehrWü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!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrStapelverarbeitung Teil 1
Stapelverarbeitung Teil 1 In jedem Unternehmen gibt es von Zeit zu Zeit Änderungen in Normen und Firmenstandards, an die aktuelle und bereits bestehende Zeichnungen angepasst werden müssen. Auch Fehler
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrNumerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrArchiv - Berechtigungen
Archiv - Berechtigungen - 1 Inhaltsverzeichnis 1. Grunddefinitionen...3 1.1. Mögliche Definitionen...3 1.1.1. Programme...3 1.1.2. Prinzipale...3 1.1.3 Archivzugriff...3 1.2. Leserichtung...3 1.2.1. Ordnerbezogen...3
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
MehrWie Sie mit Mastern arbeiten
Wie Sie mit Mastern arbeiten Was ist ein Master? Einer der großen Vorteile von EDV besteht darin, dass Ihnen der Rechner Arbeit abnimmt. Diesen Vorteil sollten sie nutzen, wo immer es geht. In PowerPoint
MehrSeriendruck mit der Codex-Software
Seriendruck mit der Codex-Software Seriendruck mit der Codex-Software Erstellen der Seriendruck-Datei in Windach Sie können aus der Adressverwaltung von Windach eine sogenannte Seriendruck-Datei erstellen,
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrAnleitung E-Mail - Archivierung
Anleitung E-Mail - Archivierung Aufgrund unserer langjährigen Erfahrung, wissen wir um viele Kundenprobleme in der Bedienung von IKT-Produkten. Um solche Probleme bei der Nutzung der Net4You Produkte zu
MehrModerne C-Programmierung
Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete
MehrTutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe
Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003
Mehr2 Einfache Rechnungen
2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,
MehrFunktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH
Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...
MehrInformatik 1 Tutorial
ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so
Mehrteischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
MehrP&P Software - Adressexport an Outlook 05/29/16 14:44:26
Adressexport an Outlook Wozu? Aus EASY können viele Daten im Excelformat ausgegeben werden. Diese Funktion kann zum Beispiel zum Export von Lieferantenadressen an Outlook genutzt werden. Hinweis Wir können
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrGrundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in
MehrFelder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
MehrCodex Newsletter. Allgemeines. Codex Newsletter
Newsletter Newsletter Dezember 05 Seite 1 Allgemeines Newsletter Mit diesem Rundschreiben (Newsletter) wollen wir Sie in ca. zweimonatigen Abständen per Mail über Neuerungen in unseren Programmen informieren.
MehrWindows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen
Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrWas ist Sozial-Raum-Orientierung?
Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrDas sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
Mehr