<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gironimo.org &#187; Studium</title>
	<atom:link href="http://www.gironimo.org/category/hochschule/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gironimo.org</link>
	<description>there&#039;s nothing left to say...</description>
	<lastBuildDate>Wed, 25 Jan 2012 16:32:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Python und Qt &#8211; PyQt4</title>
		<link>http://www.gironimo.org/hochschule/python-und-qt-pyqt4.html</link>
		<comments>http://www.gironimo.org/hochschule/python-und-qt-pyqt4.html#comments</comments>
		<pubDate>Fri, 11 Dec 2009 15:28:50 +0000</pubDate>
		<dc:creator>Marc Rochow</dc:creator>
				<category><![CDATA[Studium]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netzwelt]]></category>

		<guid isPermaLink="false">http://www.gironimo.org/?p=712</guid>
		<description><![CDATA[Im Studium durfte ich dieses Semester Python lernen, genauer gesagt Python in Version 2.5. Wie ich finde ist diese Sprache um einiges einfacher, schöner und vor allem schneller zu erlernen als beispielsweise Java. Nun gut, für das Praktikum in Programmieren dieses Jahr musste ich gerade...]]></description>
			<content:encoded><![CDATA[<p>Im Studium durfte ich dieses Semester <a href="http://www.python.org/">Python</a> lernen, genauer gesagt Python in Version 2.5. Wie ich finde ist diese Sprache um einiges einfacher, schöner und vor allem schneller zu erlernen als beispielsweise <a href="http://www.java.com/">Java</a>. Nun gut, für das Praktikum in Programmieren dieses Jahr musste ich gerade <a href="http://qt.nokia.com/">Qt</a> lernen in Verbindung mit Python, das Modul pflegt den Namen <a href="http://www.riverbankcomputing.co.uk/software/pyqt/intro">PyQt4</a>.</p>
<p>Ich möchte euch nun ein kleinen Überblick über Qt vor allem Qt4, Python und PyQt4 geben. Und wie das ganze auf einem Linux Rechner mit Kubuntu 9.10 installiert wird.</p>
<h3>über Qt</h3>
<p><img class="alignleft" style="margin-right: 20px;" title="Qt" src="http://qt.nokia.com/logo.png" alt="" width="174" height="71" /></p>
<blockquote><p>Qt: Alles, was Sie brauchen um Web ermöglichte Desktop Anwendungen, Mobil- und Embedded-Anwendungen zu krieren.</p></blockquote>
<p>Dieser Satz steht auf der Einführungsseite von <a href="http://www.nokia.com/">Nokia</a>, um Qt zu präsentieren. So ganz unrecht haben Sie damit nicht. Qt hat aktuelles Look &amp; Feel, läuft auf so gut wie allen Systemen und ist gar nicht so schwer zu erlernen. Was dazu kommt, Qt gibt es unter 3 verschiedenen Lizenzen zu erwerben. Eine davon ist GPL v3. Das heißt frei und für jedermann zugänglich.</p>
<p>Also was ist Qt? Ganz einfach:</p>
<p>Qt ist ein Cross-Plattform-Anwendungs-und UI-Framework. Mit Qt können Sie Web-Anwendungen schreiben und diese bereitstellen über Desktop-, Mobil-und Embedded-Betriebssysteme ohne das Sie den Source-Code umschreiben müssen.</p>
<p>Merkmale von Qt:</p>
<ul>
<li>Intuitive C + + Klassenbibliothek</li>
<li>Portabilität auf Desktop-und Embedded-Betriebssystemen</li>
<li>Integrierte Entwicklungs-Tools mit Cross-Plattform-IDE</li>
<li>Hohe Laufzeit-Performance und geringen Platzbedarf für eingebettete Systeme</li>
</ul>
<h3>über Python</h3>
<p><img class="alignleft" style="margin-right: 20px;" title="Python" src="http://zetcode.com/tutorials/pyqt4/german/images/pythonlogo.png" alt="" width="149" height="148" />Python ist eine erfolgreiche Skriptsprache.  Ursprünglich entwickelt von <strong>Guido van Rossum</strong> wurde Python erstmalig 1991 veröffentlicht. Dabei wurde van Rossum von den Programmiersprachen ABC und Haskell inspiriert. Python ist eine Allzweck-, Multiplattform- und Interpretersprache. Manche ziehen es vor, es eine dynamische Sprache zu nennen. Python ist eine minimalistische, leicht zu lernende Sprache, deren sichtbarste Eigenschaft das Fehlen der Semikolons und Klammern ist. Statt dessen verwendet Python Zeileneinrückung. Die aktuell meist verwendeten Versionen von Python sind 2.5 und 2.6. Die 2008 herausgegebene Version 3 ist nicht abwärtskompatibel, sodass alle davor entwickelten Anwendungen und Bibliotheken angepasst werden müssen, weswegen noch einige Jahren vergehen werden, bis Python 3 zum allgemeinen Standard der Entwickler werden wird. Heute wird Python von einer großen Gemeinde von Freiwilligen gepflegt und weiterentwickelt.</p>
<p>Der <a href="http://www.tiobe.com/tpci.htm">TIOBE</a> Programming Community Index gibt uns eine Ahnung von der theoretischen Bedeutung verschiedener Programmiersprachen. An der Spitze steht hier Java, während C++ vom Thron gestoßen wurde. Allerdings wird C++ seine Bedeutung in seinen Stammgebieten über die nächsten Jahrzehnte hinweg bereichen und scheint keiner ernsten Bedrohung ausgesetzt zu sein. Tatsächlich ist eine deutliche Spezialisierung unter den Programmiersprachen zu erkennen. Java kommt vorwiegend bei Projekten in Unternehmen und bei portablen Geräten zum Einsatz, C ist führend beim Programmieren auf Systemebene (Betriebssystem, Treiber, Mini-Anwendungen), PHP gibt bei den kleinen bis mittleren Webprojekten den Ton an, während Javascript diese Rolle auf der Client-Seite der Webanwendungen inne hat.</p>
<p>Python steht aktuell auf Rang 7. Auch Ruby hat es mittlerweile in die Spitzenliste geschafft  und ist somit gemeinsam mit Perl einer der engsten Konkurrenten von Python.</p>
<h3>über PyQt4</h3>
<p>PyQt ist ein Toolkit zur Erstellung von Anwendungen mit grafischer Oberfläche (GUI). Es ist die Verbindung der Python Programmiersprache und die erfolgreiche Qt-Bibliothek, eine der einflussreichsten Bibliotheken der Welt. Wenn nicht <em>die</em> einflussreichste. Die offizielle Homepage von PyQt finden Sie unter <a href="http://www.riverbankcomputing.co.uk/pyqt">www.riverbankcomputing.co.uk</a>. Entwickelt wurde sie von <strong>Phil Thompson</strong>.</p>
<p>PyQt wurde als eine Reihe von Python-Modulen umgesetzt. Es enthält über 300 Klassen und beinahe 6000 Funktionen und Methoden. Es steht auf diversen Plattformen zur Verfügung und läuft auf allen bedeutenden Betriebssystemen inkl. Unixoide wie Linux, Windows und Mac. PyQt wurde dual lizenziert: Entwickler können zwischen der GPL und einer kommerziellen Lizenz wählen. Anfangs war die GPL-Version ausschließlich unter Unixoiden verfügbar, seit Version 4 gibt es sie für alle unterstützten Plattformen.</p>
<p>Wegen der großen Zahl verfügbarer Klassen wurden diese auf verschiedene Module aufgeteilt.</p>
<p><img class="aligncenter" title="PyQt4 Module" src="http://zetcode.com/tutorials/pyqt4/german/images/modules.jpg" alt="" width="217" height="230" /></p>
<p>Die <strong>QtCore</strong>-Module enthalten die wesentliche nicht-grafische Funktionalität. Das Modul dient der Verarbeitung von Zeitangaben, Dateien und Verzeichnissen, verschiedenen Datentypen, Streams, URLs, mime-Typen, Threads oder Prozessen. Das <strong>QtGui</strong>-Modul enthält die grafischen Komponenten und damit verbundene Klassen, welche zum Beispiel Knöpfe, Fenster, Statusleisten, Werkzeugleisten, Schieberegler, Bitmaps, Farben, Schriften usw. enthalten. Das <strong>Qt-Network-</strong>-Modul enthält die Klassen für die Netzwerk-Programmierung. Sie erlauben das Schreiben von TCP/IP- und UDP-Clients und -Servern. So wird Netzwerkprogrammierung einfacher und leichter portierbar. Das <strong>QtXml</strong>-Modul enthält Klassen zur Verarbeitung von XML-Dateien und bietet Implementierungen von sowohl SAX als auch DOM APIs. Das <strong>QtSvg</strong>-Modul bringt Klassen zur Darstellung von SVG. <em>Skalierbare Vektorgrafiken</em> sind eine Sprache zur Beschreibung zweidimensionaler Grafiken und grafischer Anwendungen in XML. Das <strong>QtOpengl</strong>-Modul wird zum Rendern von 3D- und 2D-Grafiken unter Verwendung der OpenGL-Bibliothek verwendet. Das Modul verbindet die QtGui-Bibliothek nahtlos mit der OpenGL-Bibliothek. Das <strong>QtSql</strong>-Modul schließlich beinhaltet Klassen für die Arbeit mit Datenbanken.</p>
<h3>Installation von Python und Qt sowie PyQt4 unter Kubuntu 9.10</h3>
<p>Python sollte eigentlich Standardmäßig unter Kubuntu installiert sein, da viele Systemkomponenten ebenfalls Python benötigen. Der Befehl</p>
<p><code>sudo apt-get install python</code></p>
<p>installiert eine Reihe von Standard Bibliotheken von Python. Wer Python ausprobieren will kann einfach mal eine interaktive Python Sitzung starten. Man gebe nur folgendes in die Konsole ein</p>
<p><code>python</code></p>
<p>So nun dürft ihr ein wenig spielen damit <img src='http://www.gironimo.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Qt installiert man wie folgt</p>
<p><code>sudo apt-get install libqt4-core libqt4-dev qt4-dev-tools qt4-designer qt4-doc</code></p>
<p>damit habt ihr das Programm designer, die Programmbibliotheken und die Dokumentation (sehr wichtig!).</p>
<p>Als letztes benötigt ihr noch das Python Modul PyQt4 um Python mit Qt zu koppeln.</p>
<p><code>sudo apt-get install python-qt4</code></p>
<p>Nachdem ihr alles installiert habt, könnt ihr endlich los legen tolle Sachen zu basteln. Liest euch das Tutorial durch, das ich oben verlinkt habe, und ihr werdet schnell merken, wie einfach und intuitiv Python &amp; Qt eigentlich ist. Viel Spaß dabei</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gironimo.org/hochschule/python-und-qt-pyqt4.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmieren: Java</title>
		<link>http://www.gironimo.org/hochschule/programmieren-java.html</link>
		<comments>http://www.gironimo.org/hochschule/programmieren-java.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 13:54:34 +0000</pubDate>
		<dc:creator>Marc Rochow</dc:creator>
				<category><![CDATA[Studium]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.gironimo.org/?p=443</guid>
		<description><![CDATA[Welche Ausgaben auf dem Bildschirm erzeugt folgende Klasse beim Ausführen? A:-1 B:Infinity C:4 4 D:7 E:255 F:++++ G:false H:true Es sei folgende rekursive Methode gegeben: a) Welches Muster erzeugt der Aufruf printRec(5) auf dem Bildschirm? 12345 1234 123 12 1 b) Was passiert, wenn Sie...]]></description>
			<content:encoded><![CDATA[<p>Welche Ausgaben auf dem Bildschirm erzeugt folgende Klasse beim Ausführen?</p>
<pre class="brush: java; title: ; notranslate">package aufg1;

public class Aufg1 {

	public static void main(String[] args) {

		int i = Integer.MAX_VALUE; // entspricht Wert 2147483647

		System.out.println(&quot;A:&quot; + ((i+1) + i));

		float f = Float.MAX_VALUE; // entspricht Wert 3.4028235E38
		System.out.println(&quot;B:&quot; + ( 2*f - f));

		i = 1;
		System.out.println(&quot;C:&quot; + (i&lt;&lt;=2) + &quot; &quot; + i);

		i = 7;
		System.out.println(&quot;D:&quot; + (i &amp; 0xFF));
		System.out.println(&quot;E:&quot; + (i | 0xFF));

		i = 4;
		System.out.print(&quot;F:&quot;);
		while (i-- &gt; 0) {
			System.out.print(&quot;+&quot;);
		}
		System.out.println();

		String first = new String(&quot;Hallo&quot;);
		String second = new String(&quot;Hallo&quot;);
		System.out.println(&quot;G:&quot; + (first==second));
		System.out.println(&quot;H:&quot; + (first.equals(second)));
	}

}</pre>
<blockquote><p>A:-1<br />
B:Infinity<br />
C:4 4<br />
D:7<br />
E:255<br />
F:++++<br />
G:false<br />
H:true</p></blockquote>
<p>Es sei folgende rekursive Methode gegeben:</p>
<pre class="brush: java; title: ; notranslate">package aufg2;

public class Aufg2a {

	public static void main(String[] args) {
		printRec(5);
	}

	public static void printRec(int n) {
		if (n == 0)
			return;
		for (int j = 1; j &lt;= n; j++)
			System.out.print(j);
		System.out.println();
		printRec(n - 1);
	}

}</pre>
<p>a) Welches Muster erzeugt der Aufruf <span style="font-weight: bold; font-style: italic;">printRec(5)</span> auf dem Bildschirm?</p>
<blockquote><p>12345<br />
1234<br />
123<br />
12<br />
1</p></blockquote>
<p>b) Was passiert, wenn Sie versuchen, einen Aufruf der Form <span style="font-weight: bold; font-style: italic;">printRec(3.14)</span> zu tätigen?</p>
<blockquote><p>1. Compiler wird einen Fehler ausgeben<br />
2. Die rekursive Methode erwartet einen Integer Wert, es wird allerdings ein Double übergeben</p></blockquote>
<p>c) Was erfolgt, wenn die Methode <span style="font-weight: bold; font-style: italic;">printRec()</span> mit einer negativen ganzen Zahl als aktuellem Parameter aufgerufen wird? Wie würden Sie die Implementierung der Methode verändern, um diesen Effekt zu verhindern?</p>
<blockquote><p>Die Methode bricht nicht mehr ab, dh sie wird unendlich lange laufen bis der minimale Integer Wert erreicht wird und dann weiter laufen bis sie endlich bei 0 ankommt.</p></blockquote>
<pre class="brush: java; title: ; notranslate">package aufg2;

public class Aufg2c {

	public static void main(String[] args) {
		printRec(-1);
	}

	public static void printRec(int n) {
		if (n == 0 || n &lt;= 0)
			return;
		for (int j = 1; j &lt;= n; j++)
			System.out.print(j);
		System.out.println();
		printRec(n - 1);
	}

}</pre>
<p>d) Wandeln Sie die rekursive Implementierung von <span style="font-weight: bold; font-style: italic;">printRec()</span> unter dem nachfolgenden Methodenkopf in eine iterative Implementierung um.</p>
<pre class="brush: java; title: ; notranslate">package aufg2;

public class Aufg2d {

	public static void main(String[] args) {
		printIt(9);
	}

	public static void printIt(int n) {
		if (n == 0 || n &lt;= 0)
			return;

		for (int i = 1-n; i &lt;= n; i++) {

			for (int j = 1; j &lt;= n; j++) {
				System.out.print(j);
			}
			n = n-1;
			System.out.println();
		}
	}

}</pre>
<p>e) Modifizieren Sie die Implementierung von <span style="font-weight: bold; font-style: italic;">printRec()</span> unter Benutzung des nachfolgenden Rahmens so, dass in dem erzeugten Muster nur noch Kleinbuchstaben statt Ziffern erscheinen, und zwar ein a an Stelle von 1, b an Stelle von 2, &#8230;. (Es kann dabei davon ausgegangen werden, dass die Methode nur für einstellig Zahlen 0, …, 9 als aktueller Parameter aufgerufen wird).</p>
<pre class="brush: java; title: ; notranslate">package aufg2;

public class Aufg2e {

	public static void main(String[] args) {
		printRec(9);
	}

	public static void printRec(int n) {
		if (n == 0 || n &lt;= 0)
			return;

		char c = 'a';

		for (int j = 1; j &lt;= n; j++) {
			System.out.print(((char)c));
			c++;
		}
		System.out.println();
		printRec(n - 1);
	}

}</pre>
<p>Auf Pythagoras geht der Begriff der vollkommenen Zahl (perfect number) zurück. Eine vollkommene Zahl ist eine positive ganze Zahl, deren Wert gleich der Summe seiner Teiler ist. Die kleinste vollkommene Zahl ist 6 (6 = 1 + 2 + 3), die nächste ist 28 (28 = 1 + 2 + 4 + 7 +14).<br />
Schreiben Sie eine Methode (Klassen- oder Objektmethode?), die als Parameter eine ganze Zahl übergeben bekommt und als Wahrheitswert zurückliefert, ob die übergebene Zahl eine vollkommene Zahl ist.</p>
<pre class="brush: java; title: ; notranslate">public static boolean perfectNumber(int n) {
	boolean perfNum = false;
	int sumSoFar = 0, sumOfDivisors, i;

	for (i = 1; i &lt; n; i = i + 1) {
		if (n%i == 0) {
			sumSoFar = sumSoFar + i;
		}
	}
	sumOfDivisors = sumSoFar;

	if (n == sumOfDivisors) {
		System.out.println( &quot;The value &quot; + n + &quot; is PERFECT&quot; );
		perfNum = true;
	} else {
		System.out.println( &quot;The value &quot; + n + &quot; is NOT PERFECT&quot; );
	}
	return perfNum;
}</pre>
<p>Es soll der Speiseplan eines Restaurants in Java-Code abgebildet werden. Das nachfolgende Klassendiagramm enthält fragmentarisch den zugehörigen Entwurf.</p>
<p><center><img src="/wp-content/uploads/2009/07/class.png" alt="class" /></center></p>
<p>a) Definieren Sie die Java-Klasse Gericht. Es soll die Attribute erhalten, die in obigem Klassendiagramm angegeben sind. Das Attribut <span style="font-weight: bold; font-style: italic;">preis</span> speichert den Preis des Gerichts in Cent. Sein Wert soll über eine <span style="font-weight: bold; font-style: italic;">get()-Methode</span> abgefragt und über eine <span style="font-weight: bold; font-style: italic;">set()-Methode</span> verändert werden können. Die Werte der restlichen Attribute sollen unveränderlich sein. Die Werte des Attributs <span style="font-weight: bold; font-style: italic;">typ</span> sollen wie im Diagramm durch ein auch zu definierendes <span style="font-weight: bold; font-style: italic;">enum Essenstyp</span> abgedeckt werden (oder, falls Sie damit nichts anfangen können, ersatzweise über symbolische Konstanten in einer eigenen Klasse Essenstyp).</p>
<p>Ergänzen Sie die Klasse Gericht durch einen entsprechenden <span style="font-weight: bold; font-style: italic;">Konstruktor</span> und überschreiben Sie die <span style="font-weight: bold; font-style: italic;">toString()-Methode</span> der Klasse Object geeignet, so dass dadurch alle Attributwerte wiedergegeben werden können.</p>
<pre class="brush: java; title: ; notranslate">package aufg4;

public class Gericht {

	public final String name;
	public final Essenstyp typ;
	public final boolean fleischlos;
	private int preis;

	public Gericht(String name, Essenstyp typ, boolean fleischlos, int preis) {
		this.name = name;
		this.typ = typ;
		this.fleischlos = fleischlos;
		this.preis = preis;
	}

	public void setPreis(int preis) {
		this.preis = preis;
	}

	public int getPreis() {
		return preis;
	}

	public String toString() {
		String s = &quot;Name: &quot; + name + &quot;\nEssenstyp: &quot; + typ.toString() +
				   &quot;\nFleischlos: &quot; + fleischlos + &quot;\nPreis: &quot; + preis + &quot;cent&quot;;
		return s;
	}

}</pre>
<pre class="brush: java; title: ; notranslate">package aufg4;

public enum Essenstyp {

	VORSPEISE, HAUPTGERICHT, NACHSPEISE;

}</pre>
<p>b) Realisieren Sie nun die Klasse Speisekarte. Die Assoziation <span style="font-weight: bold; font-style: italic;">gerichte</span> im Klassendiagramm soll über ein Array fester Länge abgedeckt werden (Die Länge wird im Konstruktor übergeben). Realisieren Sie diesen <span style="font-weight: bold; font-style: italic;">Konstruktor</span> sowie die Methoden <span style="font-weight: bold; font-style: italic;">addGericht()</span> (fügt ein Gericht zur Speisekarte hinzu) sowie <span style="font-weight: bold; font-style: italic;">getBilligstes()</span> (sucht das billigste Gericht vom übergebenen Typ heraus).</p>
<pre class="brush: java; title: ; notranslate">package aufg4;

public class Speisekarte {

	private Gericht[] gerichte;
	private int z = 0;

	public Speisekarte(int n) {
		gerichte = new Gericht[n];
	}

	public void addGericht(Gericht gericht) {
		for (int i = 0; i &lt; gerichte.length -1; i++) {
			if (gerichte[i] == null) {
				gerichte[i] = gericht;
			}

			if (z &lt; gerichte.length) {
				gerichte[z++] = gericht;
			}

		}
	}

	public Gericht getBilligstes(Essenstyp typ) {
		Gericht bG = null, aG;

		for (int i = 0; i &lt; z; i++) {
			if (gerichte[i].typ != typ)
				continue;

			aG = gerichte[i];

			if (bG == null) {
				bG = aG;
				continue;
			}

			if (aG.getPreis() &lt; bG.getPreis()) {
				bG = aG;
			}
		}
		return bG;
	}

}</pre>
<p>c) Definieren Sie eine Test-Methode, in der eine Speisekarte und zwei Gerichte von gleichem Typ aber unterschiedlichem Preis instanziert und die Gerichte zur Speisekarte hinzugefügt werden. Anschließend soll die Speisekarte auf das billigste Gericht dieses Typs abgefragt werden und dessen Daten auf die Konsole ausgegeben werden.</p>
<pre class="brush: java; title: ; notranslate">package aufg4;

public class Test {

	public static void main(String[] args) {

		Speisekarte sk = new Speisekarte(2);
		Gericht knoedel = new Gericht(&quot;Knödel&quot;, Essenstyp.HAUPTGERICHT, true, 50);
		Gericht wurst = new Gericht(&quot;Wurst&quot;, Essenstyp.HAUPTGERICHT, false, 40);

		sk.addGericht(knoedel);
		sk.addGericht(wurst);

		System.out.println(sk.getBilligstes(knoedel.typ).toString());
	}

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gironimo.org/hochschule/programmieren-java.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Rechnerstrukturen</title>
		<link>http://www.gironimo.org/hochschule/rechnerstrukturen.html</link>
		<comments>http://www.gironimo.org/hochschule/rechnerstrukturen.html#comments</comments>
		<pubDate>Sun, 21 Jun 2009 11:30:04 +0000</pubDate>
		<dc:creator>Marc Rochow</dc:creator>
				<category><![CDATA[Studium]]></category>
		<category><![CDATA[Wissenschaft]]></category>

		<guid isPermaLink="false">http://www.gironimo.org/?p=374</guid>
		<description><![CDATA[1. Darstellung von Zahlen Gegeben sind die Zahlen z1= (165)7, z2= (141)8 a) Konvertieren Sie z1 und z2 ins Dualsystem und ins Dezimalsystem. b) Berechnen Sie die Differenz z3 = z1 &#8211; z2 mit Hilfe des 2-Komplements und konvertieren Sie diese ins Dezimalsystem. Die Dualzahlen...]]></description>
			<content:encoded><![CDATA[<h3>1. Darstellung von Zahlen</h3>
<p>Gegeben sind die Zahlen <strong>z1= (165)7</strong>, <strong>z2= (141)8</strong></p>
<p><strong>a) Konvertieren Sie z1 und z2 ins Dualsystem und ins Dezimalsystem.</strong></p>
<pre class="brush: plain; title: ; notranslate">z1 = (165)7 = 5*1 + 6*7 + 1*7² = (96)10
z2 = (141)8 = 1*1 + 4*8 + 1*8² = (97)10

z1 = (96)10 = (?)2
96 / 2 = 48 R 0
48 / 2 = 24 R 0
24 / 2 = 12 R 0
12 / 2 = 06 R 0
06 / 2 = 03 R 0
03 / 2 = 01 R 1
01 / 2 = 00 R 1
z1 = (96)10 = (1100000)2
z2 = (97)10 = (1100001)2</pre>
<p><strong>b) Berechnen Sie die Differenz z3 = z1 &#8211; z2 mit Hilfe des 2-Komplements und konvertieren Sie diese ins Dezimalsystem. Die Dualzahlen werden mit N=8 Bit dargestellt.</strong></p>
<pre class="brush: plain; title: ; notranslate">11000000
00111110
---------
11111110

z3 = (-1)10</pre>
<p><strong>c) Stellen Sie z2 im Exzesscode dar.</strong></p>
<pre class="brush: plain; title: ; notranslate">z+k mit k = 2^(n-1)
z + 2^(n-1) = 97 + 2^7 = (225)10 = (11100001)2</pre>
<h3>2. Codes, Funktionen</h3>
<p>a) Gegeben sind die beiden Mengen C={e, f, g, h, i} und D={0010, 1110, 1001, 0111} sowie die Funktion f: C-&gt;D, definiert durch</p>
<table style="border-collapse: collapse; width: 150px;" border="0">
<tbody>
<tr>
<td style="width: 50%; font-weight: bold; text-align: center;">c e C</td>
<td style="width: 50%; font-weight: bold; text-align: center;">d e D</td>
</tr>
<tr>
<td style="text-align: center;">e</td>
<td style="text-align: center;">0010</td>
</tr>
<tr>
<td style="text-align: center;">f</td>
<td style="text-align: center;">1110</td>
</tr>
<tr>
<td style="text-align: center;">g</td>
<td style="text-align: center;">1001</td>
</tr>
<tr>
<td style="text-align: center;">h</td>
<td style="text-align: center;">0111</td>
</tr>
<tr>
<td style="text-align: center;">i</td>
<td style="text-align: center;">0010</td>
</tr>
</tbody>
</table>
<p><strong>Welche Art von Abbildung (injektiv, surjektiv, bijektiv) wird durch f definiert? Begründen Sie Ihre Antwort.</strong></p>
<blockquote><p>surjektiv; denn jedes Element der Zielmenge wird mindestens einmal als Funktionswert angenommen. Es kannt nicht injektiv sein da die Abbildungen nicht eindeutig sind. Und daher ist die Abbildung auch nicht bijetiv.</p></blockquote>
<p><strong>b) Ist für die Zeichenmenge D der Hammingabstand definiert? Berechnen Sie ihn gegebenenfalls.</strong></p>
<blockquote><p>Ja;<br />
h = 2</p></blockquote>
<p><strong>c) Wieviele verschiedene 3-stellige und 4-wertige Schaltfunktionen gibt es?</strong></p>
<pre class="brush: plain; title: ; notranslate">2^(n+2^m) = 2^12 = 4096
n = wertig, m = stellig</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gironimo.org/hochschule/rechnerstrukturen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

