> Übung Betriebssysteme
|
|
- Frieder Grosser
- vor 8 Jahren
- Abrufe
Transkript
1 > Übung Betriebssysteme Übung 3 Michel Steuwer Wintersemester 2012/13 Gruppe Parallele und Verteilte Systeme (PVS) Institut für Informatik Westfälische Wilhelms-Universität Münster
2 Organisatorisches 2 Die Vorlesung am Donnerstag, den 8. November 2012, findet wegen des Hochschultags nicht statt.
3 1. Übungsblatt 3 Aufgabe 1 Dynamische Speicherverwaltung in C a) Verwendung von malloc und free b) Fehlersuche Aufgabe 2 Binärer Baum in C
4 Aufgabe 1 a): Verwendung von malloc und free 4 Vervollständigung eines Programms zur dynamischen Speicherverwaltung Anlegen und Freigeben von Speicherbereichen soll überwacht werden monitoring alloc.c: Anlegen und Freigeben von Speicherblöcken. Ablage der reservierten Blöcke in einem Array (alloc blocks) Maximale Anzahl von reservierten Blöcken: MAX ALLOCATIONS
5 Aufgabe 1 a): Verwendung von malloc und free 4 Vervollständigung eines Programms zur dynamischen Speicherverwaltung Anlegen und Freigeben von Speicherbereichen soll überwacht werden monitoring alloc.c: Anlegen und Freigeben von Speicherblöcken. Ablage der reservierten Blöcke in einem Array (alloc blocks) Maximale Anzahl von reservierten Blöcken: MAX ALLOCATIONS 1 void *monitoring alloc malloc(size t size): Speicher reservieren mittels Systemaufruf (malloc) Speichern von Informationen zu abgelegten Blöcken in alloc blocks
6 Aufgabe 1 a): Verwendung von malloc und free 5 2 void monitoring alloc free(void * block): Freigabe des übergebenen Speicherbereiches (free) Einträge im Array wieder freigeben
7 Aufgabe 1 a): Verwendung von malloc und free 5 2 void monitoring alloc free(void * block): Freigabe des übergebenen Speicherbereiches (free) Einträge im Array wieder freigeben 3 void init monitoring alloc(): Initialisierung der Datenstrukturen
8 Aufgabe 1 a): Verwendung von malloc und free 5 2 void monitoring alloc free(void * block): Freigabe des übergebenen Speicherbereiches (free) Einträge im Array wieder freigeben 3 void init monitoring alloc(): Initialisierung der Datenstrukturen 4 int shutdown monitoring alloc(): Überprüfen des Arrays auf nicht freigegebene Blöcke Rückgabe der Anzahl der nicht freigegebenen Blöcke 15 Punkte
9 init monitoring alloc 6 Globale Variablen: int allocations: Anzahl der Speicherallokationen init_monitoring_alloc: void init_monitoring_alloc() { allocations = 0; // no allocation done so far // iterate through the array... AllocatedMemoryBlock block; for (int i = 0; i < MAX_ALLOCATIONS; i++) { block = &allocated_blocks[i]; //... initializing all block block >frame block >size = 0; block >ordinal = 0; = NULL; // or use memset to set the whole memory to 0 at once / memset(allocated_blocks, 0, sizeof(allocatedmemoryblock) MAX_ALLOCATIONS); /
10 monitoring alloc malloc 7 monitoring_alloc_malloc: void monitoring_alloc_malloc(size_t size) { void allocated = NULL; if (allocations < MAX_ALLOCATIONS) { allocated = malloc(size); if(!allocated) { printf("error: Block of size %lu could not be allocated!\n", (unsigned long)size); else { // allocation was successful // number of allocations is used as index of the global array AllocatedMemoryBlock block = &allocated_blocks[allocations]; // store information about allocation in a block block >frame = allocated; block >size = size; block >ordinal = allocations; allocations++; // increment allocations done return allocated; Neuen Speicherblock anlegen und am Ende von alloc_blocks ablegen. allocations wird als Index des globalen Arrays verwendet
11 monitoring alloc free 8 monitoring_alloc_free: void monitoring_alloc_free(void ptr) { int found = 0; for( AllocatedMemoryBlock block = allocated_blocks; block!= &allocated_blocks[max_allocations 1]; block++ ) { if (block >frame == ptr && ptr!= NULL) { found = 1; // found block to be freed free(block >frame); // free allocated memory // clear information about the block block >frame = NULL; block >size = 0; block >ordinal = 0; if(!found) { printf("error: Block %p not allocated!\n", ptr); Durchsuche Array nach dem freizugebenden Block Das Array wird mit dem Zeiger block durchgegangen, bis die Speicheradresse des letzten Elements des Arrays erreicht wurde
12 shutdown monitoring alloc 9 shutdown_monitoring_alloc: int shutdown_monitoring_alloc() { int leakingbytes = 0; // iterate through the array to search for leaks for( AllocatedMemoryBlock block = allocated_blocks; block!= &allocated_blocks[max_allocations 1]; block++ ) { if (block >frame!= NULL) { // found leak printf("error: block with ordinal %lu was not freed!\n", (unsigned long)block >ordinal); leakingbytes += block >size; // count bytes leaked free(block >frame); // free allocated memory block >frame = NULL;block >size = 0; block >ordinal = 0; printf("error: Leaking %lu bytes in total!\n", (unsigned long)leakingbytes); return leakingbytes; Die Anzahl der nicht freigegebenen Bytes wird gezählt und ausgegeben
13 Aufgabenteil b): Fehlersuche 10 Finden Sie die Speicherlöcher im Beispielprogramm Textuelle Beschreibung ausreichend 3 Punkte
14 leaking function 11 char leaking_function(char first, char last) { char allocated = NULL; char ptr = first; if(ptr) { while(ptr!= last) { if( ptr) { allocated = (char ) monitoring_alloc_malloc( ( ptr) sizeof(char) ); ++ptr; return allocated; In leaking_function werden u. U. mehrere Speicherblöcke reserviert. Es wird aber nur ein Zeiger auf den zuletzt reservierten Block zurückgegeben. Die anderen Blöcke sind somit nicht mehr erreichbar und werden nicht freigegeben!
15 leaking program 12 foo = (char ) monitoring_alloc_malloc(23); bar = (char ) monitoring_alloc_malloc(5); bar[0] = 11; bar[1] = 22; bar[2] = 33; bar[3] = 44; bar[4] = 55; allocated = leaking_function(foo, foo+23); if(allocated) { monitoring_alloc_free(allocated); allocated = NULL; In main wird an verschiedenen Stellen Speicher reserviert explizit durch Aufruf von monitoring_alloc_malloc implizit im Aufruf von leaking_function Jeder dieser Speicherblöcke muss wieder freigegeben werden, sobald er nicht mehr verwendet werden wird. Jedoch wird der an foo zugewiesen Speicherblock nie freigeben.
16 Binärer Baum in C 13 Implementierung eines binären Suchbaums in C Beispiel eines binären Suchbaums: Dazu sollten vier Funktionen implementiert werden: createtree Erzeugt einen neuen Baum insert Fügt dem Baum einen Knoten hinzu binarysearch Durchsucht den Baum cleanuptree Gibt den allozierten Speicher des Baums frei
17 node t Struktur 14 Eine Struktur node_t repräsentiert einen Knoten im Baum typedef struct _node_t { int value; struct _node_t parent; struct _node_t left; struct _node_t right; node_t; Jeder Knoten hält einen Wert (value), sowie Zeiger auf den Elternknoten und die beiden Kinderknoten Der Typ der Zeiger ist jedoch nicht node_t, sondern struct _node_t Dies ist nötig, da der Typname node_t erst nach der Definition eingeführt wird und in der Definition noch nicht zur Verfügung steht Daher wird der Struktur der Typname struct _node_t gegeben, bevor der Typ in node_t umbenannt wird Auf diesen temporären Typnamen kann in der Definition verwiesen werden
18 createtree 15 createtree: node_t createtree(int rootvalue) { // allocate memory for one node node_t root = (node_t )malloc(sizeof(node_t)); // initialize newly created node root >value = rootvalue; root >parent = NULL; root >left = NULL; root >right = NULL; return root; Der Wurzelknoten muss mit malloc angelegt werden, da auch noch nach Beenden der Funktion mit ihm gearbeitet werden soll
19 insert Teil 1 16 Es muss die richtige Position zum Einfügen gefunden werden Dazu wird der Baum traversiert und insert rekursiv aufgerufen insert: void insert(node_t tree, int value) { if (tree >value >= value) { // value to be inserted is smaller or equal if (tree >left) { // tree >left is not NULL => insert anywhere in left subtree insert(tree >left, value); else { // tree >left is NULL => insert new node node_t left = (node_t )malloc(sizeof(node_t)); left >value = value; left >parent = tree; left >left = NULL; left >right = NULL; tree >left else { = left;
20 insert Teil 2 17 Die Überprüfung ob in Zeiger NULL ist wir genutzt um zu entscheiden, ob der Baum weiter durchsucht werden muss, oder die Position zum Einfügen gefunden wurde insert: else { // value to be inserted is greater if (tree >right) { // tree >right is not NULL => insert anywhere in right subtree insert(tree >right, value); else { // tree >right is NULL => insert new node node_t right = (node_t )malloc(sizeof(node_t)); right >value = value; right >parent = tree; right >left = NULL; right >right = NULL; tree >right = right;
21 binarysearch 18 Der Baum wird per Rekursion traversiert Wird der Wert gefunden, wird 1 zurückgegeben Sind wir bei einem ungültigen Knoten (Zeiger ist NULL) kann der Wert nicht mehr gefunden werden und wir geben 0 zurück binarysearch: int binarysearch(node_t tree, int value) { // if tree is invalid return false if (tree == NULL) { return 0; // if value of current node is equal to value return true if (tree >value == value) { return 1; // value of current node is greater => go left if (tree >value > value) { return binarysearch(tree >left, value); // value of current node is smaller => go right if (tree >value < value) { return binarysearch(tree >right, value); return 0; // to prevent compiler warning; shouldn t go here
22 cleanuptree 19 Nachdem beide Teilbäume aufgeräumt wurden, wird der Knoten mit free freigegeben Es wird nur traversiert, wenn der Knoten nicht NULL ist cleanuptree: void cleanuptree(node_t tree) { if (tree) { // tree is not NULL => traverse tree if (tree >left) { // tree >left is not NULL => clean up left subtree cleanuptree(tree >left); if (tree >right) { // tree >right is not NULL => clean up right subtree cleanuptree(tree >right); // free current node itself free(tree); // free can be called with a NULL pointer
23 Schnittstellen: Übersicht 20 API ABI ISA Tools Libraries System aufrufe Betriebssystem System ISA Hardware Anwendungen User ISA Aus Sicht des Anwenders gibt es mehrere Ebenen von Schnittstellen: Tools, Systemprogramme: Schnittstelle für den Benutzer (z.b. dir, ls) API: Schnittstelle für Programmierer (Compilezeit, z.b. libc,win32,...) ABI: Schnittstelle für Programme (Laufzeit, z.b. ELF,PE32+,...) ISA (Instruction Set Architecture): Maschinenbefehlssatz (i386,sparc,...)
24 Wahl der Waffen: Individualität vs. Kompatibilität 21 Ausprägung der Schnittstelle auf allen Ebenen hängt ab von BS und Maschine D.h. Benutzer, Programmierer und Programme müssen sich auf ein bestimmtes System einstellen Es gibt eine enorme Vielzahl verschiedener Systeme Gut: Unterschiedliche Systeme bieten unterschiedliche Stärken (und natürlich auch Schwächen) Schlecht: Will man mehrere Systeme unterstützen muss man die Eigenheiten der Systeme beachten Standards grenzen das Chaos der Schnittstellen auf einzelnen Ebenen oder sogar ebenenübergreifend ein Leider gibt es auch wieder eine Vielzahl von Standards Heute: große Klassen von BS mit grundlegender Kompatibilität innerhalb der Klasse und kleineren individuellen Unterschieden
25 (Defacto)-Standards für System-Schnittstellen 22 Verschiedene Standards spezifizieren Tools, APIs und ABIs. Standard Tools API ABI Beispiele (konforme Systeme) POSIX Y Y Solaris, Mac OS X, AIX, Linux, Cygwin System V Y Y Y Solaris, AIX, Linux BSD Y Y (Y) FreeBSD, OpenBSD, NetBSD, Linux WIN32 Y Y Y Windows NT und folgende, Wine (teilw.) POSIX: Portable Operating System Interface (for UniX) Standard aus der Unix-Welt, aktuell in der Version POSIX:2008 Umfasst API sowie Standardtools Nicht nur auf Unix beschränkt, auch für Windows gibt es Adaptierungen (Cygwin, Interix,...)
26 (Defacto)-Standards für System-Schnittstellen 23 System V: BSD: Unix Betriebssystem von AT&T, seit 1992 in der Version 4.2 Bezeichnet aber auch Standard für Schnittstellen für eine ganze Klasse von Unix (ähnlichen) Systemen Umfasst API und Tools aber vor allem ABI System V ABI wird in nahezu allen Unix ähnlichen Systemen genutzt Von der Berkley Software Distribution (erstmals 1977) abgeleiteter Standard Umfasst API sowie Tools BSD und System V sind Unix Derivate die maßgeblichen Einfluss auf andere Unix-basierte und -ähnliche BS genommen haben Linux, Mac OS, Solaris, uvm.
27 APIs: Beispiele und weitere Informationen 24 Linux und Unix Die wichtigsten System APIs sind: POSIX, System V sowie BSD (in verschiedenen Versionen) Informationen findet man online sowie zum jeweiligen System mittels man 2 intro bzw. man syscalls Windows Die Win32 API ist seit Windows NT die gängige API für alle Windows Programme Die Erweiterung für 64-Bit wird meist ebenfalls mit Win32 (for 64-bit Windows) bezeichnet Eine Online-Dokumentation ist im MSDN (Microsoft Developer Network, msdn.microsoft.com) zu finden
28 Beispiel für eine API: Lesen aus einer Datei 25 Eine Anwendung möchte aus einer Datei lesen Dazu wird eine konkrete API benötigt Eine Mögliche Lösung: Die Funktion read der POSIX API Diese Funktion dient zum Lesen aus einer Datei und besitzt drei Parameter: Dateideskriptor, Datenpuffer, Zeichenanzahl Beispiel-Aufruf in C (u.a. POSIX-konform): count = read(fd, buffer, nbytes); Es wird durch count die Anzahl tatsächlich gelesener Zeichen zurückgeliefert, sie kann evtl. kleiner als nbytes sein Wurde der Systemaufruf nicht erfolgreich ausgeführt, dann wird count auf -1 gesetzt, die Fehlernummer wird hierbei in die globale Variable errno gelegt
29 Verwendung und Implementierung der API 26 Eine API muss von einer konkreten Bibliothek implementiert werden Die Implementierung ist System-spezifisch (also bezgl. ABI und ISA) Die durch die API beschrieben Funktionalität wird dabei auf konkrete Aufrufe des Systems abgebildet Die Funktion read ist z.b. unter Unix in der C Standard Library implementiert (z.b. glibc) Dabei gilt insbesondere: Ein Programmtext kann auf allen Systemen übersetzt werden, welche die verwendete API anbieten Ein Programm (binär) kann auf allen Systemen ausgeführt werden, welche die verwendete ABI und ISA anbieten
30 ABI vs. API 27 API Application Programming Interface: Syntaktische und Semantische Beschreibung von Funktionsaufrufen Für eine konkrete Programmiersprache ABI Application Binary Interface: Beschreibung der Konvention zur Ausführung und Interaktion von Programmen in einem BS Format von binären Programm-, Object- und Bibliotheksdateien: z.b. ELF (Unix), PE32+ (Windows) Repräsentation von Datentypen: Größe, byte-order, alignment Speicherverwaltung und -layout: Virtuelle Adressräume, Abbild des Programms und der Daten im Speicher Realisierung von Funktionsaufrufen (calling conventions): Umgang mit Stack und Registern, Übergabe von Parametern, Rückgabe von Werten Symbole der Systemaufrufe: Beschreibung der Systemaufrufe auf binärer Ebene (Umsetzung einer API in Programmadressen)
31 ABI Ausprägungen 28 ABIs existieren für verschiedene Plattformen: i386, AMD-64, SPARC, MIPS,... verschiedene Systeme: System V, Windows, Mac OS, OS/2,... Binärformate: ELF (System V), PE32+ (Windows), a.out,... Datenrepräsentation: z.b. 32 oder 64 Bit, Big- oder Little-Endian Calling Convention: cdecl (x86 standard), stdcall (Win 32 standard), fastcall (Win 32, gcc)
32 ABI: Beispiel Binärformat ELF 29 Eine ELF konforme Datei enthält: Program Header Table, Section Header Table, sowie Daten (Programmcode usw.) Header beschreibt Einstiegspunkte der Datei sowie genaues Datenformat und Plattform Kurzinformationen, für welche Plattform eine ELF-Datei bestimmt ist, können mittels file ausgelesen werden Beispiel: Binary (myapp) für x86 64 GNU/Linux myapp: ELF 64 bit LSB executable, x86 64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux ,... Beispiel: Binary (myapp) für SPARC myapp: ELF 32 bit MSB executable, SPARC, version 1 (SYSV), dynamically linked (uses shared libs), not stripped Mittels readelf können alle ELF-Informationen ausgelesen werden
33 ABI: Beispiel Calling Conventions cdecl,fastcall 30 cdecl: Parameter werden von rechts nach links auf dem Stack abgelegt Rückgabe wird in Registern abgelegt, falls passend (int in eax, float in st0) Die Register eax,ecx,edx können von der Funktion frei verwendet werden fastcall: Nicht standardisiert, Microsoft und GCC arbeiten dabei wie folgt: Die ersten beiden Parameter (von links nach rechts) werden in Registern ( fast) abgelegt, falls passend Die restlichen Parameter werden von rechts nach links auf dem Stack abgelegt
34 Zusammenfassung ABI 31 Mit dem ABI Aspekt der Speicherverwaltung aus Sicht der Prozesse werden wir uns später noch ausführlich befassen! Kompatibilität: Programme können auf anderen Systemen ausgeführt werden, wenn diese die gleiche ABI (Version!) unterstützen (Calling Conventions, Systemaufrufe), und insbesondere den gleichen Maschinenbefehlssatz und die gleiche Datenrepräsentation verwenden. außerdem kompatible Versionen aller verwendeten Bibliotheken installiert sind.
Binä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
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 **
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:
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
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 --
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
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
Mehr4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
Mehr17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung 13.1. bis 17.1.2014
17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici 12.Übung 13.1. bis 17.1.2014 1 BEFRAGUNG http://1.bp.blogspot.com/- waaowrew9gc/tuhgqro4u_i/aaaaaaaaaey/3xhl 4Va2SOQ/s1600/crying%2Bmeme.png
MehrMetaQuotes Empfehlungen zum Gebrauch von
MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden
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
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
Mehrdesk.modul : WaWi- Export
desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm
MehrLiesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung
Liesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung 1 1 Allgemeines Um die Beispiele und Aufgaben des Kurses Programmieren in der Bioinformatik mit Perl
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
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()
MehrWorkshop: Eigenes Image ohne VMware-Programme erstellen
Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community
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
MehrKarlsruher Institut für Technologie
Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt
MehrInformatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
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
MehrAutomatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)
HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
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
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrThermoguard. Thermoguard CIM Custom Integration Module Version 2.70
Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4
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; {
MehrSCHNELLEINSTIEG ZUM TOOL NODEBUILDER
Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Betreuer: Dipl.-Ing. A. Cemal Özlük Dipl.-Inf. Uwe Ryssel ALLGEMEINE
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrÜ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
MehrZugriff auf die Modul-EEPROMs
MAX-P- und P-Bibliotheken EEPROM-Zugriff 1 Zugriff auf die Modul-EEPROMs Jedes X-Bus-Modul verfügt über ein EEPROM, in dem modulspezifische Daten gespeichert werden. Neben einigen Bereichen, die vom Betriebssystem
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
MehrLeitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrComputeria Solothurn
Computeria Solothurn Seniorinnen und Senioren entdecken den Computer und das Internet Sich mit «TeamViewer» von einem Supporter helfen lassen Diese Anleitung und die Illustrationen wurden unter Mac OS
MehrWindows Server 2012 R2 Essentials & Hyper-V
erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrWas ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,
Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
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
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).
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrKünstliches binäres Neuron
Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de
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
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrLeitfaden zur Installation von Bitbyters.WinShutdown
Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
Mehr2. Darstellung von Information im Computer
Informationsbestände analysieren Darstellung von Information im Computer 2. Darstellung von Information im Computer Übung 2.1. Formatierung eines Datenträgers Ziel Sie haben ein Idee, wie in einem Computersystem
Mehr2. Konfiguration der Adobe Software für die Überprüfung von digitalen Unterschriften
1. Digital signierte Rechnungen Nach 11 Abs. 2 zweiter Unterabsatz UStG 1994 gilt eine auf elektronischem Weg übermittelte Rechnung nur dann als Rechnung im Sinne des 11 UStG 1994, wenn die Echtheit der
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
Mehrmit dem TeXnicCenter von Andreas Both
LaTeX mit dem TeXnicCenter Seite 1 von 9 mit dem TeXnicCenter von Andreas Both Diese Dokument soll den Schnelleinstieg von der Installation bis zum ersten LaTeX-Dokument in sehr kurzen (5) Schritten und
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
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
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
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
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrZugriff auf Daten der Wago 750-841 über eine Webseite
Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
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
MehrKommunikations-Parameter
KNX App knxpresso für Android Tablets/Phones Kommunikations-Parameter Ausgabe Dokumentation: Mai. 2015 Doku Version V1.0.0 - Seite 1/8 Inhaltsverzeichnis 1.1 Nützliche Links... 3 1.2 Beschreibung der Kommunikations-Datei...
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
MehrAlte Software auf neuer Hardware, Neue Software auf alter Hardware
Alte Software auf neuer Hardware, Neue Software auf alter Hardware Ignatios Souvatzis Institut für Informatik NetBSD Project ignatios@cs.uni-bonn.de is@netbsd.org http://theory.cs.uni-bonn.de/ ignatios/
Mehr2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem
2 DAS BETRIEBSSYSTEM Themen in diesem Kapitel: Das Betriebssystem Die Windows-Oberfläche Elemente eines Fensters 2.1 Wozu dient das Betriebssystem Das Betriebssystem (engl.: operating system, kurz: OS)
MehrArtikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrThe ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
MehrQUICK INSTALLATION GUIDE
BIANCA/BRI für Windows NT Willkommen zu einer der leistungsfähigsten ISDN-Lösungen für Windows NT. Diese Lösung umfaßt nicht nur die CAPI (Common ISDN Application Program Interface), sondern auch NDIS-IP.
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
MehrWerkzeuge der Informatik UNIX
Autor: David Mainzer Institut für Informatik 1 Werkzeuge der Informatik UNIX Prof. Dr. Gabriel Zachmann (zach@in.tu-clausthal.de) David Mainzer (dm@tu-clausthal.de) Institut für Informatik 17. Dezember
MehrInstallation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit
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
MehrÜbung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
MehrApplet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
Mehr1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern
1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten
MehrWie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
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/
MehrKVIrc installieren (win) i. KVIrc installieren (win)
i KVIrc installieren (win) ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME 1.0 May 08 T iii Contents 1 Einleitung 1 1.1 Über KVIrc...................................................... 1 1.2 Vorbereitungen....................................................
MehrHerzlich Willkommen bei der nfon GmbH
efax Handbuch Herzlich Willkommen bei der nfon GmbH Wir freuen uns, Ihnen unser efax vorstellen zu dürfen. Mit dem efax können Sie zu jeder Zeit mit Ihrem Rechner Faxe empfangen. Sie bekommen diese dann
MehrABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2
Produkt: Melde- und Bedientableau Typ: MT 701.2 Aktuelles Anwendungsprogramm Plug-In für ETS 2 MT_701_2_ETS2_SOW_xx_V1-12a_de_en.exe Plug-In für ETS 3 MT_701_2_ETS3_SOW_xx_V1-12a_de_en.exe EIBTAB: MT_701_2_EIBTAB_SOW_de_V2-08-00A_EibTab+Firmware.EXE
MehrJava Script für die Nutzung unseres Online-Bestellsystems
Es erreichen uns immer wieder Anfragen bzgl. Java Script in Bezug auf unser Online-Bestell-System und unser Homepage. Mit dieser Anleitung möchten wir Ihnen einige Informationen, und Erklärungen geben,
MehrDer neue persönliche Bereich/die CommSy-Leiste
Der neue persönliche Bereich/die CommSy-Leiste Mit der neue CommSy-Version wurde auch der persönliche Bereich umstrukturiert. Sie finden all Ihre persönlichen Dokumente jetzt in Ihrer CommSy-Leiste. Ein
MehrInformatik I Tutorial
ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr
MehrICS-Addin. Benutzerhandbuch. Version: 1.0
ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...
MehrProgrammieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.
Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Ein Rechner Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Rechner sind überall Ihr Rechner
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:
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,
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
MehrWie können Sie eine Client Lizenz wieder freigeben?
NetWorker - Allgemein Tip #267, Seite 1/5 Wie können Sie eine Client Lizenz wieder freigeben? Auch diese Frage wird häufig gestellt - sie ist wichtig, wenn ein Computer außer Dienst gestellt wurde und
MehrDatei Erweiterungen Anzeigen!
Einleitung Beim Kauf eines PCs werden die Dateierweiterungen sowie einige Dateien nicht angezeigt. Grund: Es gibt sehr viele Dateien die für das System ganz wichtig sind. Diese Dateien und auch Ordner
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
Mehr