Zum Inhalt springen

Moeki

Mitglieder
  • Gesamte Inhalte

    560
  • Benutzer seit

  • Letzter Besuch

Beiträge von Moeki

  1. Hallo.

    Im Anschluss an meine verkürzte Ausbildung zum Fachinformatiker der Fachrichtung Systemintegration habe ich ein Lehramtsstudium in der Fächerkombination Informatik / Politische Bildung begonnen und befinde mich derzeit im 8. Fachsemester. Im Rahmen eines Seminars - Berufsorientierungsprozesse und Übergänge von Jugendlichen in weiterführende Bildungs- und Ausbildungssysteme - im erziehungswissenschaftlichen Teilstudiengang erwäge ich als quasi Hausarbeit eine fachwissenschaftliche Begriffserklärung zum Thema "Neue IT Berufe" zu machen.

    Ausgehend von einer Definition möchte ich an diesem Beispiel dem Wandel des Arbeitsmarktes der IT-Branche, Vorstellungen von Schülerinnen und Schülern über den zu ergreifenden Beruf, diesbezüglichen Qualifikationen uvm. behandeln.

    Kennt ihr darüber hinaus aktuelle Statistiken, Quellen oder eventuelle wissenschaftliche Abhandlungen zu diesem Thema?

    Vielen Dank.

    Marko.

  2. Hallo.

    Meine Lebensgefährtin arbeitet zwar in einer andere Branche aber die Thematik dürfte generell relevant sein. Sie hat die Möglichkeit, berufsbegleitend über 1 1/2 Jahre eine angesehene Schulung zu machen, muss dann aber in Form eines neuen Arbeitsvertrages bzw. einer Ergänzung 5 Jahre an den Arbeitgeber binden.

    Meine Fragen diesbezüglich:

    Ist diese Vorgehensweise seitens des Arbeitgebers rechtlich erlaubt?

    Gilt die vertragliche Bindung nur für die derzeitige "Filiale" (der AG hat in ganz Deutschland Filialen)?

    Gibt es rechtliche Regelungen über Teilzahlen, wenn man wegen Umzugs oder ähnlichem dennoch vorher kündigt? bzw. ist es rechtens, dass der AG im Falle einer vorzeitigen Kündigung die kompletten Schulungskosten zurückverlangt?

    Vielen Dank im Voraus,

    Marko.

  3. Hallo.

    Wir betreiben auf einem Server (VMware Server 1.0.3) (HP Proliant DL 380 G5- Intel Xeon 3GHz, 3 GB RAM), drei virtuelle XP SP2 Clients. Besonders beim gleichseitigen Aufsetzen der Maschinen über unser Softwaremanagementsystem haben wir enorme Performanceprobleme.

    RAM, CPU und (Netzwerk) liegen laut Taskmanager im grünen Bereich. Insofern kann ich mir noch die Festplatte als Flaschenhals vorstellen.

    Performanceprobleme – Die Leistung der physischen Hardware kann

    in einer VM nicht vollständig genutzt werden. Dieser Punkt spielt

    allerdings nur bei sehr hochlastigen Servern eine Rolle. Aktuelle

    Hardware wird nur in den wenigsten Fällen von einem Betriebssystem

    und den Applikationen voll ausgelastet, der Flaschenhals

    ist oft die Geschwindigkeit des Festplattenspeichers.

    Hat jemand ähnliche Erfahrungen? Wie kann ich den Flaschenhals herausfinden (Tools usw.). Heute Abend lassen wir mal Perfmom laufen.

    Gruß,

    Marko.

  4. Hallo.

    Ich bin auf der verzweifelten Suche nach einer analogen TV - Karte oder Hybrid, die eine Auflösung von 16:9 unterstützt. Quasi möchte ich auf meinem herkömmlichen TFT z.B. Fussballspiele mit der jeweiligen Anwendung unverzerrt im Fenstermodus im 16:9.

    Mit meiner jetzigen WinTV Karte geht es nicht (oder es kommt mir nur so vor). TV - technisch mag ich mich nicht zu weit aus dem Fenster lehnen, aber eine aktuelle TV - Karte sollte eigentlich die gängigen Formate unterstützen bzw. frei skalierbar sein.

    Die Karte sollte vom LowProfile-Format sein. PCI oder PCI Express. Ansonsten auch USB 2.0.

    Gruß,

    Moeki.

  5. Moin.

    Im Juni kommt mein zweiter Sohn zur Welt. Ich darf dann neben dem Studium ca. 1300 EUR dazuverdienen, ohne das mein BAFÖG gekürzt wird.

    Gibt es solche Regelungen auch beim Kindergeld oder muss ich da warten, bis ich mit 26 Jahren und 10 Monaten keins mehr kriege? 26 Jahre, weil ich genau in die Ausnahmeregelung falle + 10 Monate für den Wehrdienst.

    Gruß,

    Marko.

  6. Moin, ich brauche dringend eure Hilfe.

    Ich habe gestern versucht, von Windows XP auf Vista 64 bit zu wechseln und daher alle wichtige Daten auf F: gespeichert. Nach der Neuinstallation habe ich Laufwerksbuchstaben anpassen müssen, was zur Folge hatte, dass meine F: Partition verschwunden ist und die Partitionstabelleneinträge fehlerhaft sind.

    Mit "testdisk" sehe ich die Partition, kann sie aber nicht wieder herstellen. Partition Magic startet erst gar nicht (Fehlermeldung "Partition Fehlerhaft").

    Mit dem Windows Datenträger Snap In wird mir der entsprechende Speicherbereich als "frei" gekennzeichnet. Habe mit ptedit dann mal NTFS draus gemacht und mit testdisk nach Empfehlung einen Wert von 240 auf 250 geändert, nun wird mit das ganze als RAW gekennzeichnet, bringt also nix.

    Vorher:

    c:\ 30 GB NTFS

    d:\ 50 GB NTFS

    e:\ 35 GB NTFS

    f:\ 120 GB (vorher NTFS, jetzt keine Ahnung was)

    Rest 15 GB, zur Zeit ungenutzte Linux Partition

    Jetzt:

    c:\ 30 GB NTFS

    d:\ 50 GB NTFS

    e:\ 35 GB NTFS

    irgendwas 107 GB + 40 GB bzw. 120 GB + 15 GB (unterschiedlich je nach Programm)

    Welche Tools könnt ihr mir empfehlen. Ich brauche unbedingt die Daten (Studium, E-Mail, Banking, Eigene Dateien), die Struktur ist mir egal. An der Partition und den entsprechenden Daten an sich habe ich nichts geändert, die 1 und 0 sind also noch da.

    Danke,

    Moeki.

  7. 1. Während meines Studiums komme ich mit Bafög, Kindergeld und geringfügiger Beschäftigung auf 1000 € im Monat. Mehr als während meiner Ausbildung. Ohne Bafög, mit gutem Nebenjob und Unterstützung der Eltern kannst du auf das Gleiche oder mehr kommen. 1 Tag Arbeit in der Woche ist immer drin.

    2. Wenn ich mir deine Noten angucke, bist du mit dem Studium wirklich besser dran. In der Ausbildung wäre wichtig, viel viel du dir darüber hinaus aneignest. Im Studium, wie sehr du dich in den angeboten Stoff einarbeitest, es vertiefst und anwendest.

    3. Die Berufschancen mit Studium sind auf absehbare Zeit wesentlich besser. Das Gehalt ebenso. Du kriegst ein breites Basiswissen und kannst dich dazu noch spezialisieren.

    4. Das Studentenleben hat seine Vorteile. Du kannst in ganz Deutschland studieren, zwischenzeitlich die Uni wechseln oder sogar ein Auslandssemester machen, was bei Arbeitgebern gut ankommt.

  8. Ich betreue das Heimnetzwerk meiner Schwiegereltern samt 5 Clients und Peripherie (viel Remote) ... für einen Tritt in den ***** und ohne Anerkennung. Wenn ich denen eine angemessene Rechnung präsentieren würde, würden sie meine Arbeit wohl mehr wertschätzen. Dafür haben sie uns aber schon oft beim Umzug geholfen. Ansonsten telefonischer Support für Freunde und Bekannte bei kleineren Anliegen.

    Da man dafür kein Geld nehmen sollte bzw. die "Kunden" es zum Teil als selbstverständlich ansehen und in der Regel wenig achten, versuche nicht nur ich, sondern auch ein Großteil meiner Kollegen und Bekannten, privaten Tätigkeiten auf den engsten Verwandtenkreis zu begrenzen.

  9. Hat sich erledigt :-)

    Nun habe ich mein Programme, dass bestimmte Prozeduren aufruft, Tabellen und Typen erstellt und eine Ausgabe in eine Tabelle schreibt. Alles das möchte ich nun anderen in Form einer Prozedur oder eines Packages zur Verfügung stellen.

    Geht das hier überhaupt?

    Welches wäre die bessere Strategie?

    Gruß,

    Moeki.

    
    SET SERVEROUTPUT ON;
    
    EXEC DBMS_OUTPUT.ENABLE(200000);
    
    
    DROP TABLE besucht_post PURGE;
    
    DROP TABLE result PURGE;
    
    DROP TYPE con_type FORCE;
    
    
    CREATE OR REPLACE TYPE con_type IS TABLE OF number(12);
    
    /
    
    
    CREATE TABLE result (preord number(12), inord number(12), postord number(12), levelord number(12));
    
    CREATE TABLE besucht_post(lfd number(2), links number(2), rechts number(2));
    
    
    -------------------------------------
    
    
    DECLARE
    
    
    con_pre		con_type := con_type();
    
    con_in		con_type := con_type();
    
    con_post	con_type := con_type();
    
    con_level	con_type := con_type();
    
    
    TYPE mein_typ IS RECORD(lfd number(12));
    
    TYPE my_queue IS TABLE  OF mein_typ INDEX BY BINARY_INTEGER;    
    
    queue my_queue; 
    
    
    TYPE  my_type IS TABLE  OF number(12) INDEX BY BINARY_INTEGER;
    
    stack my_type;
    
    
    -- Get Funktion definiert auf Queue vom Typ my_type
    
    FUNCTION get  RETURN mein_typ IS 
    
    merk mein_typ;
    
    BEGIN
    
    	merk := queue(queue.first);
    
    	queue.delete(queue.first);
    
    	return merk;
    
    END;
    
    
    -- Put Procedur definiert auf Queue vom Typ my_type
    
    PROCEDURE put(lfd IN number) is 
    
    BEGIN
    
    	IF (queue.exists(queue.last)) THEN 
    
    		queue(queue.last+1).lfd := lfd;
    
    	ELSE 
    
    		queue(1).lfd := lfd; 
    
    	END IF;
    
    END;
    
    
    --Push Procedur definiert auf Stack vom Typ my_type
    
    PROCEDURE push(in_stack IN number) is 
    
    BEGIN
    
    	IF (stack.exists(stack.last)) 
    
    	THEN
    
    		stack(stack.last+1) := in_stack;
    
    	ELSE
    
    		stack(1) := in_stack;
    
    	END IF;
    
    END;
    
    
    --Pop Funktion definiert auf Stack vom Typ my_type
    
    FUNCTION pop  RETURN number IS 
    
    merk number(12);
    
    BEGIN
    
    	merk := stack(stack.last);
    
    	stack.delete(stack.last);
    
    	return merk;
    
    END;
    
    
    --Topstack Funktion definiert auf Stack vom Typ my_type
    
    FUNCTION topstack  RETURN number IS 
    
    BEGIN
    
    	return stack(stack.last);
    
    END;
    
    
    --IsEmpty Funktion definiert auf Stack vom Typ my_type
    
    FUNCTION is_empty RETURN boolean IS
    
    empty 	boolean;
    
    BEGIN
    
    	IF stack.exists(stack.last) THEN 
    
    		empty:=FALSE;
    
    	ELSE 
    
    		empty:=TRUE; 
    
    	END IF;
    
    	return empty;
    
    END;
    
    
    --Preorder Traversierung
    
    PROCEDURE preorder (akt IN number) IS
    
    li 	number(12);
    
    re 	number(12);
    
    cur	number(12);
    
    
    CURSOR c1(aktuell IN NUMBER) IS 
    
    SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    BEGIN
    
    
    dbms_output.put_line('PREORDER');
    
    
    	IF (akt IS NOT NULL) THEN push(akt); END IF;
    
    
    	WHILE NOT is_empty LOOP
    
    		cur:=pop();
    
    		dbms_output.put_line(cur);
    
    		OPEN c1(cur);
    
    		FETCH c1 INTO li,re;
    
    		CLOSE c1;
    
    
    		IF (con_pre.exists(con_pre.last)) THEN
    
    			BEGIN con_pre.extend; con_pre(con_pre.last) := cur; END;
    
    		ELSE
    
    			BEGIN con_pre.extend; con_pre(1) := cur; END;
    
    		END IF;
    
    		IF (re IS NOT NULL) THEN push(re); END IF;
    
    		IF (li IS NOT NULL) THEN push(li); END IF;
    
    	END LOOP;
    
    END;
    
    
    --Inorder Traversierung
    
    PROCEDURE inorder (akt IN number) IS
    
    done	boolean:=false;
    
    li 		number(12);
    
    re 		number(12);
    
    cur		number(12);
    
    
    CURSOR c1(aktuell IN NUMBER) IS 
    
    SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    BEGIN
    
    	cur:=akt;
    
    	IF (cur IS NOT NULL) THEN push(cur); END IF;
    
    	dbms_output.put_line('INORDER');
    
    
    	WHILE (cur IS NOT NULL) AND NOT is_empty LOOP		
    
    		LOOP
    
    			OPEN c1(cur);
    
    			FETCH c1 INTO li,re;
    
    			CLOSE c1;
    
    			push(cur);
    
    			cur:=li;
    
    			EXIT WHEN (cur IS NULL);
    
    		END LOOP;
    
    
    		cur:=pop();
    
    		dbms_output.put_line(cur);
    
    
    		IF (con_in.exists(con_in.last)) THEN
    
    			BEGIN con_in.extend; con_in(con_in.last) := cur; END;
    
    		ELSE
    
    			BEGIN con_in.extend; con_in(1) := cur; END;
    
    		END IF;
    
    
    		IF (topstack() IS NOT NULL) AND (done=false) THEN
    
    			BEGIN
    
    				cur:=pop();
    
    				IF (cur=akt) THEN done:=true; END IF;
    
    				dbms_output.put_line(cur);
    
    				con_in.extend; con_in(con_in.last) := cur;
    
    			END;
    
    		END IF;
    
    
    		OPEN c1(cur);
    
    		FETCH c1 INTO li,re;
    
    		CLOSE c1;
    
    		cur:=re;
    
    	END LOOP;
    
    END;
    
    
    --Postorder Traversierung
    
    PROCEDURE postorder (akt IN number) IS
    
    li 		number(12);
    
    re 		number(12);
    
    cur		number(12);
    
    lt		number(12);
    
    rt		number(12);
    
    temp	number(12);
    
    done	boolean:=false;
    
    
    CURSOR c1(aktuell IN NUMBER) IS 
    
    SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    CURSOR c2(aktuell IN NUMBER) IS
    
    SELECT links, rechts FROM besucht_post WHERE (aktuell= lfd);
    
    
    BEGIN
    
    	dbms_output.put_line('Postorder');
    
    	cur:=akt;
    
    	IF (cur IS NOT NULL) THEN 
    
    		BEGIN
    
    			OPEN c1(cur);
    
    			FETCH c1 INTO li,re;
    
    			CLOSE c1;
    
    			INSERT INTO besucht_post VALUES (cur,li,re);
    
    			push(cur);
    
    		END;
    
    	END IF;
    
    
    	WHILE (cur IS NOT NULL) AND NOT is_empty AND NOT (done=true) LOOP
    
    		LOOP
    
    			OPEN c1(cur);
    
    			FETCH c1 INTO li,re;
    
    			CLOSE c1;
    
    
    			OPEN c2(cur);
    
    			FETCH c2 INTO lt,rt;
    
    			IF (lt != li) OR (rt != re) OR (c2%NOTFOUND) THEN
    
    				BEGIN
    
    					push(cur);
    
    					INSERT INTO besucht_post VALUES (cur,li,re);
    
    				END;
    
    			END IF;
    
    			CLOSE c2;
    
    			cur:=li;
    
    			IF (li is NULL) AND (re IS NOT NULL) THEN cur:=re; END IF;
    
    			EXIT WHEN (cur IS NULL);
    
    		END LOOP;
    
    
    		cur:=pop();
    
    		dbms_output.put_line(cur);
    
    
    		IF (con_post.exists(con_post.last)) THEN
    
    			BEGIN con_post.extend; con_post(con_post.last) := cur; END;
    
    		ELSE
    
    			BEGIN con_post.extend; con_post(1) := cur; END;
    
    		END IF;
    
    
    		IF (cur=akt) THEN done:=true; END IF;
    
    
    		cur:=topstack(); 
    
    		OPEN c1(cur);
    
    		FETCH c1 INTO li,re;
    
    		CLOSE c1;
    
    		cur:=re;
    
    	END LOOP;
    
    END;
    
    
    --Levelorder Traversierung
    
    PROCEDURE levelorder(akt IN number) IS
    
    k1  	mein_typ;
    
    li 	number(12);
    
    re 	number(12);
    
    cur	number(12);
    
    
    CURSOR c1(aktuell IN number) IS SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    BEGIN
    
    put(akt);
    
    con_level.extend; con_level(1) := akt;
    
    
    dbms_output.put_line('Levelorder');
    
    
    WHILE (queue.exists(queue.first)) LOOP
    
    		k1 := get();
    
    		dbms_output.put_line(k1.lfd);
    
    		OPEN c1(k1.lfd);
    
    		FETCH c1 INTO li, re;
    
    		CLOSE c1;
    
    		IF (li IS NOT NULL) THEN 
    
    			BEGIN
    
    			con_level.extend; con_level(con_level.last) := li;
    
    			put(li);
    
    			END; 
    
    		END IF;
    
    		IF (re IS NOT NULL) THEN
    
    			BEGIN
    
    			con_level.extend; con_level(con_level.last) := re;
    
    			put(re);
    
    			END;
    
    		END IF;
    
    END LOOP;
    
    
    END; 
    
    
    
    -- main
    
    BEGIN
    
    
    preorder(13);
    
    inorder(13);
    
    postorder(13);
    
    levelorder(13);
    
    
    FORALL i IN indices OF con_in
    
    INSERT INTO RESULT VALUES(con_pre(I),con_in(I),con_post(I),con_level(I));
    
    
    END;
    
    
    /
    
    
    GRANT SELECT ON result TO PUBLIC;
    
    select * from result;
    
    

  10. Hallo.

    Ich möchte für einen bestimmten User ein Programm einmalig starten. Dazu möchte ich unter Autostart ein Skript ablegen, welches folgendesmaßen funktionieren soll:

    Ist der angemeldete User "%Computername%L" und die Variable LAccount ist mit 0 belegt, dann:

    Führe ein bestimmtes Programm aus. Bsp.: C:\Programme\XYZ\xyz.exe

    Setze die Variable LAccount auf 1. (ggf. lösche das Skript aus dem Autostart)

    sonst: Ende.

    Per Batch kriege ich das nicht hin und andere Sprachen kann ich net :-). Wie lässt sich mein Anliegen also am Besten realisieren?

    Gruß,

    Moeki.

  11. Moin Moin.

    Im Rahmen eines Aufgabe an der Uni, stoße ich langsam aber sicher an meine Grenzen. Die Aufgabe ist, einen in einer Tabelle gespeicherten binbären Baum in PREORDER, INORDER, POSTORDER und LEVELORDER Reihenfolge auszugeben und die Werte in eine Tabelle zu speichern. Die Proceduren sollen iterativ sein. Um, die Werte in eine Tabelle zu speichern brauche ich Container.

    Ich habe diverse Varianten probiert, scheitere jetzt aber an Compilierungsfehler bei der Typdeklaration.

    Warning: Type created with compilation errors.
    Wie kann ich die ausmerzen, "show" funktioniert leider nicht.

    Bzw. vielleicht findet ihr bei beim Überfliegen den Fehler. Ich weiß, dass die unterschiedlichen Typen für Stack und Queue nicht unbedingt ideal sind, kann das aber nicht anders im Moment.

    
    SET SERVEROUTPUT ON;
    
    EXEC DBMS_OUTPUT.ENABLE(200000);
    
    
    DROP TABLE RESULT PURGE;
    
    
    CREATE TABLE result (preord number(12), inord number(12), postord number(12), levelord number(12));
    
    
    CREATE OR REPLACE TYPE con_type IS TABLE OF number(12);
    
    -------------------------------------
    
    
    DECLARE
    
    
    con_pre		con_type := con_type();
    
    con_in		con_type := con_type();
    
    con_post	con_type := con_type();
    
    con_level	con_type := con_type();
    
    
    TYPE mein_typ IS RECORD(lfd	number(12));
    
    TYPE my_queue IS TABLE  OF mein_typ INDEX BY BINARY_INTEGER;    
    
    
    queue my_queue; 
    
    
    TYPE  my_type IS TABLE  OF number(12) INDEX BY BINARY_INTEGER;
    
    
    stack my_type;
    
    
    
    -- Get Funktion definiert auf Queue vom Typ my_type
    
    FUNCTION get RETURN mein_typ IS 
    
    merk mein_typ;
    
    BEGIN
    
    merk := queue(queue.first);
    
    queue.delete(queue.first);
    
    return merk;
    
    END;
    
    
    -- Put Procedur definiert auf Queue vom Typ my_type
    
    PROCEDURE put(lfd IN number) is 
    
    BEGIN
    
    	IF (queue.exists(queue.last)) THEN 
    
    		queue(queue.last+1).lfd := lfd;
    
    	ELSE queue(1).lfd := lfd; 
    
    	END IF;
    
    END;
    
    
    --Push Procedur definiert auf Stack vom Typ my_type
    
    PROCEDURE push(in_stack IN number) is 
    
    BEGIN
    
    	IF (stack.exists(stack.last)) 
    
    	THEN
    
    		stack(stack.last+1) := in_stack;
    
    	ELSE
    
    		stack(1) := in_stack;
    
    	END IF;
    
    END;
    
    
    --Pop Funktion definiert auf Stack vom Typ my_type
    
    FUNCTION pop  RETURN number IS 
    
    merk number(12);
    
    BEGIN
    
    	merk := stack(stack.last);
    
    	stack.delete(stack.last);
    
    	return merk;
    
    END;
    
    
    --Topstack Funktion definiert auf Stack vom Typ my_type
    
    FUNCTION topstack  RETURN number IS 
    
    BEGIN
    
    	return stack(stack.last);
    
    END;
    
    
    --Preorder Traversierung
    
    PROCEDURE preorder (akt IN number) IS
    
    li 	number(12);
    
    re 	number(12);
    
    cur	number(12);
    
    
    CURSOR c1(aktuell IN NUMBER) IS 
    
    SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    BEGIN
    
    
    	push(akt);
    
    	WHILE (topstack() IS NOT NULL) LOOP
    
    		cur:=pop();
    
    		OPEN c1(cur);
    
    		FETCH c1 INTO li,re;
    
    		CLOSE c1;
    
    
    		IF (cur IS NOT NULL) THEN 
    
    			BEGIN
    
    				IF (con_pre.exists(con_pre.last)) 
    
    				THEN
    
    					BEGIN con_pre.extend; con_pre(con_pre.last) := cur; END;
    
    				ELSE
    
    					BEGIN con_pre.extend; con_pre(1) := cur;END;
    
    				END IF;
    
    			END;
    
    		END IF;
    
    		push(re);
    
    		push(li);
    
    	END LOOP;
    
    END;
    
    
    --Inorder Traversierung
    
    PROCEDURE inorder (akt IN number) IS
    
    li 	number(12);
    
    re 	number(12);
    
    cur	number(12);
    
    
    CURSOR c1(aktuell IN NUMBER) IS 
    
    SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    BEGIN
    
    	OPEN c1(akt);
    
    	FETCH c1 INTO li,re;
    
    	CLOSE c1;
    
    
    	push(li);
    
    	WHILE (topstack() IS NOT NULL) LOOP
    
    		cur:=pop();
    
    		OPEN c1(cur);
    
    		FETCH c1 INTO li,re;
    
    		CLOSE c1;
    
    
    		IF (cur IS NOT NULL) THEN 
    
    			BEGIN
    
    				IF (con_in.exists(con_in.last)) 
    
    				THEN
    
    					BEGIN con_in.extend; con_in(con_in.last) := cur; END;
    
    				ELSE
    
    					BEGIN con_in.extend; con_in(1) := cur;END;
    
    				END IF;
    
    			END;
    
    		END IF;
    
    		push(re);
    
    		push(cur);
    
    	END LOOP;
    
    END;
    
    
    --Postorder Traversierung
    
    PROCEDURE postorder (akt IN number) IS
    
    li 	number(12);
    
    re 	number(12);
    
    cur	number(12);
    
    
    CURSOR c1(aktuell IN NUMBER) IS 
    
    SELECT links, rechts FROM verbindung WHERE (aktuell = lfd);
    
    
    BEGIN
    
    	OPEN c1(akt);
    
    	FETCH c1 INTO li,re;
    
    	CLOSE c1;
    
    
    	push(li);
    
    	WHILE (topstack() IS NOT NULL) LOOP
    
    		cur:=pop();
    
    		OPEN c1(cur);
    
    		FETCH c1 INTO li,re;
    
    		CLOSE c1;
    
    
    		IF (cur IS NOT NULL) THEN 
    
    			BEGIN
    
    				IF (con_post.exists(con_post.last)) 
    
    				THEN
    
    					BEGIN con_post.extend; con_post(con_post.last) := cur; END;
    
    				ELSE
    
    					BEGIN con_post.extend; con_post(1) := cur;END;
    
    				END IF;
    
    			END;
    
    		END IF;
    
    		push(cur);
    
    		push(re);
    
    	END LOOP;
    
    END;
    
    
    --Levelorder Traversierung
    
    PROCEDURE levelorder(akt IN number) IS
    
    k1  mein_typ;
    
    li 	number(12);
    
    re 	number(12);
    
    cur	number(12);
    
    
    CURSOR c1(akt IN number) IS SELECT links, rechts FROM verbindung WHERE (akt = lfd);
    
    
    BEGIN
    
    put(akt);
    
    con_level.extend; con_level(1) := akt;
    
    
    WHILE (queue.exists(queue.first)) LOOP
    
    		k1 := get();
    
    		dbms_output.put_line(k1.lfd);
    
    		OPEN c1(k1.lfd);
    
    		FETCH c1 INTO li, re;
    
    		CLOSE c1;
    
    		IF (li IS NOT NULL) THEN 
    
    			BEGIN
    
    			con_level.extend; con_level(con_level.last) := li;
    
    			put(li);
    
    			END; 
    
    		END IF;
    
    		IF (re IS NOT NULL) THEN
    
    			BEGIN
    
    			con_level.extend; con_level(con_level.last) := re;
    
    			put(re);
    
    			END;
    
    		END IF;
    
    END LOOP;
    
    
    END; 
    
    
    
    -- main
    
    BEGIN
    
    inorder(13);
    
    preorder(13);
    
    postorder(13);
    
    levelorder(13);
    
    
    forall i in indices of con_pre
    
    insert into result values(con_pre(I),con_in(I),con_post(I),con_level(I));
    
    
    END;
    
    
    /
    
    
    select * from result;
    
    

    Gruß,

    Moeki.

    Kopie von traversierung_3.sql.txt

  12. Sowas habe ich mir auch schon gedacht, aber dann müsste ich die Firmennamen ja irgendwie in eine numerische, vergleichbare Skala übertragen? Oder wie sollte man sonst "Lücken" erkennen?

    Für Buchstaben geht das sicher, aber nicht für Wörter?

    Oder ich addiere jeweils die ord(Substring, 1(2,3,4,5)) der Wörter und vergleiche mit dem nächsten?

    Dann weiß ich zwar, dass ne Lücke ist, aber keinen entsprechenden freien Namen.

    Bezüglich Linked/Indexed Trie: Das ist doch nicht mehr mit konstantem Speicherbedarf verbunden.

  13. Gegeben sei ein sequentielles File, in dem N≤10.000.000 Firmennamen mit je max. fünf Buchstaben gespeichert sind. Ich möchte einen Algrithmus entwerfen, der in linearer Zeit und mit konstantem Speicher einen nicht vorhandenen Firmennamen findet.

    Zunächst lasse ich beginnend von der kleinsten Kombinationsmöglichkeit einen Firmennamen erstellen. Dann öffne ich das File und mache solange get(f), bis (1) das Ende des Files erreicht ist bzw. (2) der Firmenname gefunden wurde. Bei (1) habe ich einen nicht genutzten Firmennamen gefunden. Bei (2) muss ich den nächstmöglichen Firmennamen erstellen und das File erneut durchsuchen.

    Konstant sollte das sein, weil am File nichts geändert wird. Aber doch nicht linear oder?

    Gruß,

    Moeki.

  14. Moin Moin.

    Im Rahmen eines Seminars an der Uni sollen wir die Vor- und Nachteile von Triple Play und damit zusammenhängende QoS Anforderungen demonstrieren. Dazu möchten wir Daten, Bewegtbild und Telefon über das Internet übertragen. Zu diesem Zweck teste ich zu Hause zwei Varianten.

    1) VLC Stream, Input Device USB-Webcam

    2) Input USB-Webcam -> Real Producer -> Helix Server

    Aufgrund von Besonderheiten des Uni-Netzes möchte ich, dass von außen auf meinen Server zugegriffen wird, ich also nicht an eine IP über einen bestimmten Port den Stream schicke.

    Variante 1 funktioniert zurzeit insofern nicht, als das ich von außen nicht auf http://meineip:8080 zugreifen kann. Hier müsste ich die Ports noch testen bzw. kann ich in VLC den Port ändern.

    Variante 2 funktioniert nicht, weil ich nicht weiß, wie ich von außen per Realplayer auf den Stream zugreifen kann. Der Realproducer encodiert jedenfalls fleißig und schickt es an meinen Helix-Server.

    Kennt ihr HowTo's, die etwas Klarheit in die von mir gewählten Szenarien bringen? Skype und FTP Übertragung ist mir zu Mau.

    Gruß,

    Marko.

  15. Hallo.

    Bisher nutzen wir zur Änderung der Auflösung nach der Neuinstallation der Clients per Softwareverteilung das Tool Reschange von 12noon.com. Die Parameter hängen wir mit Hilfe einer Variable ran und rufen das Tool silent auf.

    Leider werden offenbar keine Dual-Head Arbeitsplätze unterstützt. 2560*1024 zum Beispiel.

    Kennt jemand von euch eine passende Tools?

    Gruß,

    Moeki.

  16. 
    set serveroutput on
    
    
    DECLARE
    
    
    cursor  pkz_cursor is
    
    select pkz from auto where substr(pkz,1,3) = 'LOS';
    
    
    wort            varchar2(30);
    
    akt_zustand     varchar2(10):= 'korrekt';
    
    n               number;
    
    
    BEGIN
    
    
    OPEN pkz_cursor;
    
    <<auessere_Schleife>>
    
    LOOP
    
            FETCH pkz_cursor INTO wort;
    
            EXIT auessere_Schleife WHEN pkz_cursor%NOTFOUND;
    
            dbms_output.put_line(wort);
    
    
            IF (ascii(substr(wort, 4, 1)) = 32) THEN
    
                    akt_zustand := 'korrekt';
    
            ELSE
    
                    akt_zustand := 'falsch';
    
            END IF;
    
    
            FOR n IN REVERSE 6..length(wort) LOOP
    
            EXIT WHEN akt_zustand = 'falsch';
    
            IF (((ascii(substr(wort, n , 1)) >=65) AND (ascii(substr(wort, n , 1)) <=90)) AND ((ascii(substr(wort, n-1 , 1)) >=48) AND (ascii(substr(wort, n-1 ,
    
    1)) <=57))) THEN
    
                    akt_zustand := 'falsch';
    
            END IF;
    
            END LOOP;
    
    
            IF (akt_zustand = 'korrekt') THEN
    
                    dbms_output.put_line('Kennzeichen ist korrekt!');
    
            ELSE
    
                    dbms_output.put_line('Kennzeichen ist falsch!');
    
            END IF;
    
    END LOOP auessere_schleife;
    
    
    CLOSE pkz_cursor;
    
    
    END;
    
    
    /
    
    

    :)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...