Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 15 von 28 Treffern Seiten (2): [1] 2 nächste »
Autor Beitrag
Thema: Bios Checksum Error
David1979

Antworten: 5
Hits: 10.627
20.12.2006 16:03 Forum: Off-Topic


Ich schließe mich der Meinung vom Tobias an,

in einigen Foren wird bei deinem Fehler darauf hingewiesen, dass oft defekter Speicher die Ursache des Problems ist (und nicht wie viele denken das Bios selbst), allerdings muss es nicht zwangsweise so sein.

Wäre es mein Rechner, dann würde ich ihn auf jeden Fall wegbringen, bevor man sich in einem Sumpf aus Kopfschmerzen stürzt und das Ding selber wieder flott macht smile

Liegt ein Hardwareproblem vor, dann wird meist auch ein Piepton vom System abgegeben, den sogenannten BeepCode aus langen und kurzen Tönen. Meist findest du im Handbuch eine nähere Beschreibung des Fehlers, oder im Datenblatt des Bios oder Boardherstellers. Das hilft manchmal das Problem weiter einzugrenzen.

Gruß, David
Thema: Subnetting 2
David1979

Antworten: 1
Hits: 6.975
RE: Subnetting 2 17.12.2006 21:05 Forum: Technische Informatik


Ich versuchs mal...

Also meiner Einschätzung nach kannst du die IP-Adressen A,B und D verwenden.

Bei der Subnetzmaske 255.255.255.192 unterteilst du das Netz in 4 Subnetze, mit den jeweiligen Adressen:

(i) 10.1.1.0 - 10.1.1.63
(ii) 10.1.1.64 - 10.1.1.127
(iii) 10.1.1.128 - 10.1.1.191
(iv) 10.1.1.192 - 10.1.1.255

Das errechnet sich dadurch, dass die freien Bits in der Subnetzsmaske die Anzahl der Rechner pro Netz angibt. Bei der 192 erhalten wir binär 11000000, dass heisst 6 freie Bitplätze pro Netz. 2^6 ergibt 64, also 64 IP-Adressen pro Netz.

Da aus jedem Netz die erste Adresse für das Netz selber reserviert ist und die letzte Adresse aus einem Netz für den Broadcast, sind alle IP-Adressen mit Ausnahme von C gültig, denn das ist die Broadcastadresse von Netz (ii).

//EDIT: Was ich ganz vergessen habe zu schreiben ;o) Um zu schauen, in welchem Subnetz eine IP ist, brauchtst du sie nur mit der Subnetzmaske mit einem logischen Und verknüpfen.

Gruß, David
Thema: rekursive funktion als while-loop
David1979

Antworten: 6
Hits: 7.974
14.12.2006 12:32 Forum: Theoretische Informatik


Hallo asm_user,

noch als kleinen Zusatztip:

Oft kann man den Verlauf der Funktion relativ einfach abschätzen, bzw. auch feststellen, wenn man die rekursive Funktion mit (kleinen) Parametern füttert und sich den Verlauf ansieht. Schwieriger wird es allerdings oft, wenn man für die linearisierte Fassung die (Abbruch-)Bedingungen finden will.

Hierzu noch folgendes: Oft kann man das Problem so lösen, dass man sich in der Bedingungsfolge von unten nach oben arbeitet, bzw von dem Term der den rekursiven Aufruf enthält zu den anderen, insbesondere dann, wenn zu dem Ergebnis der Rekursionsfolge noch die Werte hinzugerechnet werden müssen, die keinen rekursiven Term enthalten.

Jetzt bleibt nur noch die Frage, wie man den rekursiven Term auflöst. Hier bietet sich eigentlich generell die Methode der Invariante an. Dabei betrachtet man immer einen Rekursionsschritt und beschreibt mit einer Invariante und einer Nachbedingung, die Zustände während und nach eines Iterationsschrittes. Mit einer Vorbedingung legt man den Zustand fest, der vor dem Schleifen durchlauf gegeben sein muss. Hält man sich an diese Bedingungen, dann dürfte eigentlich nicht viel schief gehen.

An deinem Beispiel mit nem Pseudocodeschnipsel verdeutlicht:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
function p(n:Integer):Integer {

    // Precondition: Unsere Variable result enthält zu Beginn der Iteration 
    // den Wert 0 und n >= 2. (Der Fehler, den Friedrich beschrieben hat, 
    // fangen wir hier nicht ab. In dem Fall wird 0 zurückgegeben). Das ist 
    // die Ausgangssituation vor der Iteration.
    result = 0;     

    while (n > 3) {
         // Invariante: Sagt aus, was zum Zeitpunkt eines Iterationsschrittes
         // als Bedingung in der Schleife gegeben sein muss. Hier ist die
         // Bedingung lediglich, dass n > 3 gegeben sein muss. Die Bedingung 
         // n > 3 kommt daher, weil wir uns vom rekursiven Term zu den
         // anderen hangeln.

         ...
    }
    // Postcondition: result = result + 2n+1 (zusammengefasst) und n = n-1
    // Die Nachbedingung, beschreibt den Zustand nach einem Iterations-
    // schritt.

    // Jetzt kümmern wir uns um die anderen und restlichen Fälle:
    // Die stärkere Bedingung zuerst.
    if (n == 3) {
        result = result + 1;
    }

    // Da wir am Anfang result schon mit 0 initialisiert haben, haben wir den
    // Fall, dass n==2 ist bereits abgedeckt. Auch wenn wir in der Schleife
    // gewesen sind, dann wird ja nichts dazuaddiert. Also einfach result
    // zurückgeben.
    return result;
}


Ich hoffe, dass hilft auch bei zukünftigen Aufgaben bzgl. Linearisierung einer Rekursion.

// EDIT: Übrigens: Wenn du mal nachprüfst, was Friedrich über den Fehler gesagt hat, wirst du schnell merken, dass es da tatsächlich einen Fehler gibt! Es sei denn du hast die Funktion falsch gepostet. Also ERST prüfen, DANN antworten. smile
Thema: Aus einem Prüfungsbogen: RAM
David1979

Antworten: 1
Hits: 5.427
RE: Aus einem Prüfungsbogen: RAM 01.12.2006 23:33 Forum: Technische Informatik


Hallo Tukki,

auf die Lösung kommt man sehr einfach mit zwei Überlegungen: Zuerst muss man wissen, wie oft das zu adressierende Wort in den Speicher passt.

An deinem Beispiel ist das sehr einfach auszurechnen, da die Datenwortbreite genau 8 Bit (= 1 Byte) beträgt. Du teilst dann einfach deine Speicherkapazität durch die Wortbreite (dabei aber auf die Einheiten achten!). 64 KB sind umgerechnet 64 * 1024 = 65536 Byte, was in deinem Beispiel gerade die Anzahl der zu adressierenden Speicherplätze mit der Datenbreite von 8 Bit (bzw. 1 Byte) ist.

Da an jeder Adressleitung entweder eine 0 oder eine 1 anliegen kann, muss man sich nun fragen mit welcher 2er Potenz man die gewünschten 65536 Speicherplätze eindeutig identifizieren kann.

[latex]2^x = 65536 \Leftrightarrow x = log_2(65536)[/latex]

Gruß, David
Thema: Dateizugriff mit Visual Basic 2005
David1979

Antworten: 2
Hits: 6.906
RE: Dateizugriff mit Visual Basic 2005 26.11.2006 14:20 Forum: Praktische Informatik


Hallo Scio,

hab leider absolut keine Ahnung von VB, aber vielleicht hilft dir das VB Open Book von Galileo weiter.

Gruß David
Thema: Steine verrücken
David1979

Antworten: 4
Hits: 7.633
23.11.2006 15:13 Forum: Praktische Informatik


Hallo H4wk,

eine Schleife in C++ ist nach folgender Syntax aufgebaut:

code:
1:
2:
3:
4:
5:
for (<Initialisierung>;<Bedingung>;<Reinitialisierung>) { 
    Anweisung_1;
    ...
    Anweisung_n; 
}


Dabei kannst du bei der For-Schleife im Initialisierungsteil alle Startbedingungen für deine Variablen festlegen. Zum Beispiel kannst du dort einen Zähler definieren. Dieser Teil wird nur einmal ausgeführt. Anschließend wird die Bedingung geprüft. Die Schleife wird anschließend so oft durchlaufen, wie die Bedingung den Wahrheitswert true (bzw. einen Wert > 0) zurückliefert. Nach jedem Schleifendurchlauf wird der Teil ausgeführtl, der mit Reinitialisierung gekennzeichnet ist. Hier kann man beispielsweise dein Zähler um 1 erhöhen. Dann wird bei der Bedingungsprüfung weiter gemacht.

Als kleines Beispiel, dass alle Zahlen von 0 bis 10 ausgibt:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
#include <iostream.h>

void main(void) {
    int counter;
    for (counter = 0; counter <= 10; counter++) {
        cout << "Zaehler : " << counter << "\n"; 
    }
}


Du müsstest das untere Beispiel nun so umformen, dass über die Länge des Arrays iteriert wird und jedem Feld des Arrays der Wert 2 zugewiesen wird.

Gruß. David
Thema: Induktiver Beweis mittels Operation und Anfangsmenge (?)
David1979

Antworten: 9
Hits: 13.720
23.11.2006 13:19 Forum: Theoretische Informatik


Ahhhh, Zunge raus jetzt seh ichs!!!! Alles klar Prost !!

Manchmal hilft es, wenn man es einfach aufschreibt. Augenzwinkern

\\EDIT: Kurze Erklärung: Man macht die Vereinigung ja über alle x aus [latex]Z_i[/latex] und nicht nur über eins.

Gruß und sorry, David

P.S: Kann man hier auch Beiträge herauslöschen großes Grinsen
Thema: Induktiver Beweis mittels Operation und Anfangsmenge (?)
David1979

Antworten: 9
Hits: 13.720
23.11.2006 13:15 Forum: Theoretische Informatik


Vielleicht habe ich das doch noch nicht so gut verstanden, wie ich gedacht habe, deshalb schreib ich es noch mal detaillierter auf:

Es ist doch:

[latex]Z_{0} & = & \{0\}, \mbox{nach Def.} \\ Z_{1} & = & Z_0 \cup \{2x+1 | x \in Z_0 \} = \{0\} \cup \{2 \cdot 0 + 1\} \ = \{0,1\}, \mbox{bis hier noch alles klar, weil} \ Z_0 \ \mbox{nur ein Element hat}[/latex]

An dem Punkt hänge ich jetzt, weil [latex]Z_1[/latex] eine Menge ist und kein einzelnes Wort, somit ist doch die Aussage für die nächste Zeile nicht genau beschrieben ist, wenn es heisst

[latex]Z_2 & = & Z_1 \cup \{2x+1 \ | \ x \in \ Z_1\} = \{0,1\} \cup \ \{2x+1 \ | \ x \in \ \{0,1\} \}[/latex]

Woher weiss man denn welches x aus Z ich nehmen muss? verwirrt
Thema: Induktiver Beweis mittels Operation und Anfangsmenge (?)
David1979

Antworten: 9
Hits: 13.720
22.11.2006 22:47 Forum: Theoretische Informatik


Zitat:
Original von Tobias
[latex] Z_{i+1} = \mathcal{O}(Z_i) = Z_i \cup \{ 2x+1 \; | \; x \in Z_i \}[/latex].


Hmm..., müsste das nicht [latex] Z_{i+1} = \mathcal{O}(Z_i) = Z_i \cup \{ 2x+1 \; | \; x = max(Z_i) \ \}[/latex], oder so ähnlich sein , wobei man natürlich noch genauer beschreiben muss, wie der Operator max() definiert ist. Denn nur das größte Element liefert ein neues Wort für [latex]Z_{i+1}[/latex] zurück, oder nicht? verwirrt

Gruß, David
Thema: Steine verrücken
David1979

Antworten: 4
Hits: 7.633
RE: Steine verrücken 22.11.2006 19:40 Forum: Praktische Informatik


Hallo H4wk,

dass, was du mit Steine verrücken meinst ist unter dem Begriff Die Türme von Hanoi bekannt. Ohne großartig viel rumzureden hier der Link zur Wikipediaseite, da ist von der Geschichte bis zur algorithmischen Umsetzung alles haarklein erklärt. Fall du nach dem Durchlesen immer noch Verständnisprobleme haben solltest, meld dich! Wink

Gruß, David
Thema: Rechenoperation in einer Teilaufgabe
David1979

Antworten: 1
Hits: 5.563
RE: Rechenoperation in einer Teilaufgabe 22.11.2006 16:52 Forum: Theoretische Informatik


Hallo Kadeos,

In welchem Zusammenhang denn und vor allem was ist denn F?

Gruß, David
Thema: Sudokuloeser
David1979

Antworten: 4
Hits: 8.527
22.11.2006 15:59 Forum: Praktische Informatik


Das hört sich fast ok an. Allerdings kann es passieren, dass wenn eine Zahl richtig gesetzt wurde (z.B. die Zahl 5 ins dritte Feld) und das nächste freie Feld angesteuert wird (z.B. das 5te), dort KEINE der Zahlen von 1 bis 9 passen (das könnte die Endlos-Schleife erklären). Also musst du zurückspringen ins dritte Feld und die nächst gültige Zahl versuchen. Dannach läufst du wieder ins nächste Feld (5) und probierst wieder alle Zahlen aus. Sollte im dritten Feld allerdings auch keine Zahl mehr passen, dann musst du in das Feld davor und die nächstgültige Zahl probieren. USW.

Das Verfahren wird auch Backtracking genannt und läßt sich rekursiv programmieren. (Gehört übrigens in die Klasse der NP-Vollständigen Probleme).

Hier ist eine Seite mit verschiedenen Backtrackingverfahren in Java.

Gruß, David
Thema: Sudokuloeser
David1979

Antworten: 4
Hits: 8.527
RE: Sudokuloeser 22.11.2006 14:56 Forum: Praktische Informatik


Zu deinem Edit: Wenn du die Klasse AbstraktLoeser unbedingt benötigst, warum benutzt du die abstrakte Klasse denn nicht? Augenzwinkern (Es reicht nicht das Interface zu implementieren! Du musst von der abstrakten Klasse ableiten!)

\\EDIT: Die Methode int[] moeglicheZahlen(...) müsstest du in deinem Programm erstmal auskommentieren, da sie sonst die Implementierung aus der abstrakten Klasse überschreibt. Allerdings führt das ganze anschließend zu einer Endlosschleife, was auch nicht wirklich besser ist verwirrt

Gruß, David
Thema: Sudokuloeser
David1979

Antworten: 4
Hits: 8.527
RE: Sudokuloeser 22.11.2006 14:45 Forum: Praktische Informatik


Hallo Shaihulut,

nach welcher Lösungsstrategie bzw. welchem Algorithmus gehst du denn vor?

Anmerkung: Das mit dem Quellcode ist gut gemeint, aber oft kann man das Problem mit einer objektiven formalen Herangehensweise schneller finden, als Fehler im Quellcode zu lokalisieren (auch aus Gründen der Übersichtlichkeit). Zudem können dann auch NICHT-Javaianer bei der Problemsuche helfen. Und als kleine Anregung für zukünftige Programme: Besonders bei komplexeren Methoden sollte man auf eine klare Strukturierung achten. Es macht die Wartung nicht gerade einfacher, wenn der Hauptteil des Programms in einer einzigen Methode untergebracht ist, die dann mehr als 120 Zeilen umfasst und hauptsächlich aus Wiederholungen und Verzweigungen besteht. Als grobe Richtlinie kann man sich merken, dass wenn eine Methode mehr als 20 Anweisungen hat, eventuell das Klassendesign nochmal überdacht werden sollte. Augenzwinkern

Gruß, David
Thema: Induktiver Beweis mittels Operation und Anfangsmenge (?)
David1979

Antworten: 9
Hits: 13.720
22.11.2006 13:17 Forum: Theoretische Informatik


Hallo,

das sieht für mich so aus als müsstest du die induktiv definierte Menge nach folgendem rekursiven Schema von unten nach oben aufbauen:

[latex]Z_{0}  & = & \{0\} \\ Z_{i+1} & = & Z_{i} \cup \{R(i) \}[/latex]

wobei [latex]$R$[/latex] ein Regelwerk (Operationen) zur Erzeugung neuer Wörter in [latex]Z[/latex] ist und [latex]i, i \in N[/latex] ein Index anhand dessen das neue Wort eindeutig bestimmt werden kann.

So ergibt sich hieraus nach jeder i-ten Schicht ein neues Wort für [latex]Z[/latex]. Die Angabe [latex]F_{i}[/latex] stellt dann jeweils alle Elemente der i-ten Schicht dar.

Das ist nur eine Idee. Vielleicht hilft dir das ja weiter Augenzwinkern

Gruß, David
Zeige Beiträge 1 bis 15 von 28 Treffern Seiten (2): [1] 2 nächste »