Zum tänzelnden Pony > Sonstiges

Hausaufgabenhilfe

<< < (48/198) > >>

Turin Turumbar:
Mal wieder ein Problem:
In einer Kaliumdichromatlösung befinden sich Dichromat-Ionen und Chrom(III)-Ionen im Verhältnis 10.000:1 (z.B. c(Dichromat-Ionen) = 1 mol/l und c(Chrom(III)-Ionen) = 10^-4 mol/l) Lassen sich mit dieser Lösung Chlorid-Ionen oxidieren, wenn man
a) in schwefelsaurem Medium (pH=0)
b) in essigsaurem Medium (pH=3) arbeitet?

Ich weiß, dass das ganze eigentlich nur bei pH=0 funktionieren müsste, leider so gut wie keine Ahnung, wie ich das per Rechnung beweisen soll. Man benötigt die NERNST-Gleichung, das weiß ich, jedoch nicht wie ich sie hier anwenden kann...

Sckar:
Ich frag mal nen Kumpel von mir, der ist zwar erst in der 11. aber macht nebenbei nen Chemiestudium an der Uni... vielleicht kann der dir weiterhelfen...

The Chaosnight:
Moin,
Ich sollte in Informatik mit Turbo Pascal ein Stammbaumprogramm mit Zeigern schreiben, wobei ich die Grundstruktur des Binärbaumes gleich zu Beginn erschaffen wollte, wobei der Linke Flügel von Links nach Rechts die Nummern 1-31 und der Rechte von Links nach Rechts die Nummern 32-62 tragen sollte. Diese sollten auch von Anfang an mit ??? gefüllt sein, sodass man bei vergessenen Familienmitgliedern etc. einfach nur eine Leerstelle anstelle eines fehlenden Gliedes hat.
Allerdings verfällt er bei diesem Block in eine Art Endlosschleife, bei der ich seit Tagen einfach nicht den Ursprung ausmachen kann.

Hier sind betreffende zwei Prozeduren (die zweite macht die Probleme):

--- Code: ---PROCEDURE BAUM_Vorbereitung; {Bestimmt die Richtung des Baumes ausgehend von der Elterngeneration ausgehend}
vAR x,i,y,fff,ccc:longint;
    sbin,s:string;
    timer :LONGINT;
BEGIN
  timer:=0;
  x    :=0;
  REPEAT
    i:=0;
    y:=0;
    sbin:='';
    s:='';
    timer:=timer+1;
    x:=timer;
    i:=2*x;
    repeat
      i:=trunc(int(i/2));
      y:=(i mod 2);
      str(y,s);
      sbin:=s+sbin;
    UNTIL int(i/2)<1;
    vater[timer]:=sbin;
    mutter[timer]:=vater[timer];
    fff:=1;
    ccc:=0;
    FOR fff:= 1 TO LENGTH(mutter[timer]) DO
    BEGIN
       ccc:=ccc+1;
       CASE   Mutter[timer][ccc] OF
         '1': Mutter[timer][ccc]:='0';
         '0': Mutter[timer][ccc]:='1';
       END;
    END;
  UNTIL timer=31;
END;

PROCEDURE PZeiger;  {Zeigerkram - funktioniert nicht :(}
VAR Zeiger_geschlechtm, Zeiger_geschlechtw       : STRING;
    Zeiger_zaehler,Zeiger_x                      : INTEGER;
BEGIN;
  Zeiger_zaehler:=0;
  Zeiger_x      :=1;
  REPEAT
    Zeiger_x:=1;
    Zeiger_zaehler:=Zeiger_zaehler+1;
    WHILE zeiger_zaehler<31 DO PA_ODER_MU:=1;
    WHILE zeiger_zaehler>32 DO PA_ODER_MU:=2;
   { Zeiger_x      :=0;}
    Zeiger_geschlechtm:=Vater[zeiger_zaehler];
    Zeiger_geschlechtw:=Mutter[Zeiger_zaehler];
    h   :=MASTER;
    hh  :=MASTER;
    hilf:=MASTER;
    b   :=MASTER;
    new(z);
    z^.name  :=Namen[Zeiger_zaehler];
    z^.geb   :=Geb  [Zeiger_zaehler];
    z^.tod   :=Tod  [Zeiger_zaehler];
    z^.links :=NIL;
    z^.rechts:=NIL;
    IF PA_ODER_MU = 1 THEN
    BEGIN
      h := MASTER;
      h := h^.links;
      hh:=hh^.links;
      REPEAT
        Zeiger_x:=zeiger_x+1;
        IF (Zeiger_geschlechtw[0+Zeiger_x] = '0') THEN
        BEGIN
          hh:=hh^.links;
          h := h^.links;
        END;       
        IF (Zeiger_geschlechtw[0+Zeiger_x] = '1') THEN
        BEGIN
          hh:=hh^.rechts;
          h := h^.rechts;
        END;
        hh:=z;
        hilf:=h;
      UNTIL NOT (Zeiger_geschlechtm[0+Zeiger_x]='0') XOR (Zeiger_geschlechtm[0+Zeiger_x]='1');
      END;

      IF PA_ODER_MU = 2 THEN
      BEGIN
        Zeiger_x:=0;
        h := MASTER;
        h := h^.rechts;
        hh:=hh^.rechts;
        REPEAT
          Zeiger_x:=zeiger_x+1;
          IF (Zeiger_geschlechtm[0+Zeiger_x] = '0') THEN
          BEGIN
            hh:=hh^.links;
            h := h^.links;
          END;
          IF (Zeiger_geschlechtm[0+Zeiger_x] = '1') THEN
          BEGIN
            hh:=hh^.rechts;
            h := h^.rechts;
          END;
          hh:=z;
          hilf:=h;
        UNTIL NOT (Zeiger_geschlechtm[0+Zeiger_x]='0') XOR (Zeiger_geschlechtm[0+Zeiger_x]='1');
      END;   
  UNTIL Zeiger_zaehler=62;
END;

--- Ende Code ---
Allgemeines zu den Prozeduren
Die erste Prozedur soll nur Mutter- und Vatergeneration trennen, sodass man beide Seiten und alle Äste des Baumes über eine vergleichsweise einfache Formel (Binärzahlen) erreichen kann und nicht für jede potentielle Generation dutzende Befehle dazupfeffern muss.

Die zweite Prozedur sollte dann die Zeigerkette bilden, die den Binärbaum darstellt (die in einer anderen Prozedur dann mit dem Inhalt ??? gefüllt wird um einen anonymen Grundstammbaum zu erreichen.



Und hier der Vollständigkeit halber das ganze Programm in jetziger Form:

--- Code: ---PROGRAM Stammbaum_Zeiger;
USES CRT;

TYPE Zeiger      =^Objekt;
Objekt           =RECORD
name, geb  ,tod  :STRING;
links ,rechts    :ZEIGER;
END;

VAR X,TIMER, PA_ODER_MU, wahl      : INTEGER;
    Stamm, Jan, JanG, JanT         : String;
    z, h, hh, MASTER, hilf, help,b : Zeiger;
   
    Namen       : ARRAY [1..62] OF STRING {Namen};
    Geb         : ARRAY [1..62] OF STRING {Geburtsdaten};
    Tod         : ARRAY [1..62] OF STRING {Todesdaten};
    vater       : Array [1..31] OF STRING;
    mutter      : Array [1..31] OF STRING;

PROCEDURE MENUE_Hinweise; {Setzt eine Begrenzung fuer das Hinweisfenster}
BEGIN;
  WINDOW (3,14,25,22);
END;

PROCEDURE MENUE_Hinweise_end; {Setzt die Begrenzungen wieder auf den Normalzustand}
BEGIN;
  WINDOW (1,1,80,25);
END;

PROCEDURE BAUM_Vorbereitung; {Bestimmt die Richtung des Baumes ausgehend von der Elterngeneration ausgehend}
vAR x,i,y,fff,ccc:longint;
    sbin,s:string;
    timer :LONGINT;
BEGIN
  timer:=0;
  x    :=0;
  REPEAT
    i:=0;
    y:=0;
    sbin:='';
    s:='';
    timer:=timer+1;
    x:=timer;
    i:=2*x;
    repeat
      i:=trunc(int(i/2));
      y:=(i mod 2);
      str(y,s);
      sbin:=s+sbin;
    UNTIL int(i/2)<1;
    vater[timer]:=sbin;
    mutter[timer]:=vater[timer];
    fff:=1;
    ccc:=0;
    FOR fff:= 1 TO LENGTH(mutter[timer]) DO
    BEGIN
       ccc:=ccc+1;
       CASE   Mutter[timer][ccc] OF
         '1': Mutter[timer][ccc]:='0';
         '0': Mutter[timer][ccc]:='1';
       END;
    END;
  UNTIL timer=31;
END;

PROCEDURE PZeiger;  {Zeigerkram - funktioniert nicht :(}
VAR Zeiger_geschlechtm, Zeiger_geschlechtw       : STRING;
    Zeiger_zaehler,Zeiger_x                      : INTEGER;
BEGIN;
  Zeiger_zaehler:=0;
  Zeiger_x      :=1;
  REPEAT
    Zeiger_x:=1;
    Zeiger_zaehler:=Zeiger_zaehler+1;
    WHILE zeiger_zaehler<31 DO PA_ODER_MU:=1;
    WHILE zeiger_zaehler>32 DO PA_ODER_MU:=2;
   { Zeiger_x      :=0;}
    Zeiger_geschlechtm:=Vater[zeiger_zaehler];
    Zeiger_geschlechtw:=Mutter[Zeiger_zaehler];
    h   :=MASTER;
    hh  :=MASTER;
    hilf:=MASTER;
    b   :=MASTER;
    new(z);
    z^.name  :=Namen[Zeiger_zaehler];
    z^.geb   :=Geb  [Zeiger_zaehler];
    z^.tod   :=Tod  [Zeiger_zaehler];
    z^.links :=NIL;
    z^.rechts:=NIL;
    IF PA_ODER_MU = 1 THEN
    BEGIN
      h := MASTER;
      h := h^.links;
      hh:=hh^.links;
      REPEAT
        Zeiger_x:=zeiger_x+1;
        IF (Zeiger_geschlechtw[0+Zeiger_x] = '0') THEN
        BEGIN
          hh:=hh^.links;
          h := h^.links;
        END;       
        IF (Zeiger_geschlechtw[0+Zeiger_x] = '1') THEN
        BEGIN
          hh:=hh^.rechts;
          h := h^.rechts;
        END;
        hh:=z;
        hilf:=h;
      UNTIL NOT (Zeiger_geschlechtm[0+Zeiger_x]='0') XOR (Zeiger_geschlechtm[0+Zeiger_x]='1');
      END;

      IF PA_ODER_MU = 2 THEN
      BEGIN
        Zeiger_x:=0;
        h := MASTER;
        h := h^.rechts;
        hh:=hh^.rechts;
        REPEAT
          Zeiger_x:=zeiger_x+1;
          IF (Zeiger_geschlechtm[0+Zeiger_x] = '0') THEN
          BEGIN
            hh:=hh^.links;
            h := h^.links;
          END;
          IF (Zeiger_geschlechtm[0+Zeiger_x] = '1') THEN
          BEGIN
            hh:=hh^.rechts;
            h := h^.rechts;
          END;
          hh:=z;
          hilf:=h;
        UNTIL NOT (Zeiger_geschlechtm[0+Zeiger_x]='0') XOR (Zeiger_geschlechtm[0+Zeiger_x]='1');
      END;   
  UNTIL Zeiger_zaehler=62;
END;

PROCEDURE FAnzeigen; {Standardanzeige}
BEGIN;
  WINDOW (27,3,57,22);
  CLRSCR;
  GOTOXY (15,1);  z:=MASTER  ; WRITE (Jan);
  GOTOXY (14,2);  WRITE ('/'); GOTOXY (13,3); WRITE ('/'); GOTOXY (12,4); WRITE ('/');
  GOTOXY (11,5);  WRITE ('/'); GOTOXY (10,6); WRITE ('/');
  GOTOXY (16,2);  WRITE ('\'); GOTOXY (17,3); WRITE ('\'); GOTOXY (18,4); WRITE ('\');
  GOTOXY (19,5);  WRITE ('\'); GOTOXY (20,6); WRITE ('\');
  WINDOW (1,1,80,25);
  GOTOXY (67,5) ;            WRITE (Jan);
  GOTOXY (68,6) ;            WRITELN(JanG);
  GOTOXY (65,7) ;            WRITELN('N/A');
  GOTOXY (68,9) ;            WRITELN('???');
  GOTOXY (67,10);            WRITELN('???');
  GOTOXY (71,12);            WRITELN('???');
  GOTOXY (70,13);            WRITELN('???');
  GOTOXY (71,14);            WRITELN('???');
  GOTOXY (70,15);            WRITELN('???');
  GOTOXY (69,17);            WRITELN('gestrichen');
  GOTOXY (66,18);            WRITELN('gestrichen');
  GOTOXY (67,19);            WRITELN('gestrichen');
END;

PROCEDURE RAHMEN; {Setzt den aeusseren Rahmen des Programmes}
BEGIN;
  CLRSCR;
  X:=0;
  TIMER:=0;
  REPEAT
  GOTOXY (1,X+1);  WRITELN('=');
  GOTOXY (2,X+1);  WRITELN('=');
  GOTOXY (78,X+1); WRITELN('=');
  GOTOXY (79,X+1); WRITELN('=');
  TIMER:=TIMER+1;
  X:=X+1;
  UNTIL TIMER=24;

  TIMER:=0;
  X:=0;
  REPEAT
  GOTOXY (X+1,1);   WRITELN('=');
  GOTOXY (X+1,2);   WRITELN('=');
  GOTOXY (X+1,23);  WRITELN('=');
  GOTOXY (X+1,24);  WRITELN('=');
  TIMER:=TIMER+1;
  X:=X+1;
  UNTIL TIMER=79;
END;

PROCEDURE Default; {Autoinhalt der Namen}
VAR Default_zaehler:INTEGER;
BEGIN;
  CLRSCR;
  Rahmen;
  Default_zaehler:=0;
  REPEAT
    Default_zaehler:=Default_zaehler+1;
    Namen[Default_zaehler]:='???';
    Geb  [Default_zaehler]:='N/A';
    Tod  [Default_zaehler]:='N/A';
  UNTIL Default_zaehler=62;
  GOTOXY (1,25); WRITE ('Anonymer Stammbaum erfolgreich simuliert!');
  READLN;
END;

PROCEDURE About; {weitere Hinweise}
BEGIN;
  Rahmen;
  WINDOW   (3,3,77,21);
  GOTOXY   (25,1); WRITELN ('STAMMBAUMSIMULATION - UEBER DAS PROGRAMM');
  WRITELN  ('Dieses Programm simuliert den Stammbaum des Benutzers,') ;
  WRITELN  ('zur Benutzung folgen Sie bitte den Anweisungen im Hinweis-Fenster.');
  WRITELN; WRITE ('Zwecks Uebersicht und Praevention eventueller Fehler wird ');
  WRITELN  ('gebeten keine Namen von einer Laenge ueber 8 Zeichen einzugeben.');
  WRITELN  ('Auf der Stammbaum-Kurzansicht werden jediglich zwei Generationen abwaerts ');
  WRITELN  ('der Stammperson angezeigt, fuer weitere Familienmitglieder setzen Sie bitte einen neuen Ausgangspunkt.');
  WRITELN; WRITELN ('Nach dem Schliessen diesen Fensters ist die Kurzansicht geloescht.');
  WRITELN  ('Zum Anzeigen druecken sie im Hauptfenster bitte die 2.');
  WINDOW   (1,1,80,25);
END;

PROCEDURE QQQ; {Beendet das Programm}
BEGIN;
  Exit;
END;

PROCEDURE ME_MYSELF_AND_I; {Eigene Daten/Grundaufbau}
VAR jzeiger, jhzeiger              : Zeiger;
BEGIN;
  Rahmen;
  GOTOXY (23,3); WRITELN ('EINGABE DER EIGENEN DATEN');
  GOTOXY (3,5) ; WRITELN ('Geben Sie nun bitte die Grundinformationen ueber sich ein um zum Haupt- ');
  GOTOXY (3,6) ; WRITELN ('programm gelangen zu koennen.');
  GOTOXY (3,8) ; WRITE ('Wie lautet euer Familienname? '); READLN (Stamm);
  GOTOXY (3,9) ; WRITE ('Geben sie nun ihren Vornamen ein: '); READLN (Jan);
  GOTOXY (1,25); WRITE ('Name: ',Jan,' - erfolgreich uebertragen!');
  GOTOXY (3,10); WRITE ('Geben sie nun ihr Geburtsjahr ein: '); READLN (JanG);
  GOTOXY (1,25); WRITE ('Geburtsjahr: ',JanG,' - erfolgreich uebertragen!');
  GOTOXY (3,11); WRITELN ('Als Benutzer sind Sie noch am Leben, daher startet nun das Hauptprogramm!');
  READLN;

  new(z);
  z^.name:=Jan;
  z^.geb:=JanG;
  z^.tod:=JanT;
  z^.links:=NIL;
  z^.rechts:=NIL;
  MASTER:=z;
  h   :=MASTER;
  hh  :=MASTER;
  help:=MASTER;
  jhzeiger:=MASTER;
  CLRSCR;
END;

PROCEDURE Aufbau;{Grundaufbau und Einteilung}
BEGIN;
  CLRSCR;
  Rahmen;
  X:=0;
  TIMER:=0;
  REPEAT
  GOTOXY (58,X+1);  WRITELN('=');
  GOTOXY (26,X+1);  WRITELN('=');
  TIMER:=TIMER+1;
  X:=X+1;
  UNTIL TIMER=24;

  X:=0;
  TIMER:=0;
  REPEAT
  GOTOXY (X+1,12);  WRITELN('=');
  TIMER:=TIMER+1;
  X:=X+1;
  UNTIL TIMER=26;

  X:=59;
  TIMER:=0;
  REPEAT
  GOTOXY (X+1,16);  WRITELN('-');
  TIMER:=TIMER+1;
  X:=X+1;
  UNTIL TIMER=18;
END;

PROCEDURE TEXT; {Jeglicher Standardtext}
BEGIN;
  GOTOXY (26,1);
  WRITELN('STAMMBAUM DER FAMILIE ',Stamm);
  GOTOXY (10,3);  WRITELN('MENUE');
  GOTOXY (4,5);   WRITELN('1. Personenmenue');
  GOTOXY (4,6);   WRITELN('2. Anzeigen Stammb');
  GOTOXY (4,7);   WRITELN('3. Kopf aendern');
  GOTOXY (4,8);   WRITELN('4. Person=anonym');
  TextBackground(7);
  Textcolor(0);
  GOTOXY (4,9);   WRITELN('41. Loeschen Person(k)');
  Textbackground(0);
  Textcolor(15);
  GOTOXY (16,10); WRITELN('5. About');
  GOTOXY (16,11); WRITELN('6. Exit');
  GOTOXY (10,13); WRITELN('HINWEISE');
  GOTOXY (39,3);  WRITELN('Stammbaum');
  GOTOXY (61,3);  WRITELN('Detailansicht');
  GOTOXY (60,5);  WRITELN('Name: ');
  GOTOXY (60,6);  WRITELN('Geburt: ');
  GOTOXY (60,7);  WRITELN('Tod: ');
  GOTOXY (60,9);  WRITELN('Mutter: ');
  GOTOXY (60,10); WRITELN('Vater: ');
  GOTOXY (60,12); WRITELN('Gmutter m: ');
  GOTOXY (60,13); WRITELN('Gvater m: ');
  GOTOXY (60,14); WRITELN('Gmutter v: ');
  GOTOXY (60,15); WRITELN('Gvater v: ');
  GOTOXY (60,17); WRITELN('Partner: ');
  GOTOXY (60,18); WRITELN('Kind: ');
  GOTOXY (60,19); WRITELN('Enkel: ');
END;

PROCEDURE MENUE_EINGABE_Hinweise; {Hinweise fuer das Grundmenue}
BEGIN;
  MENUE_Hinweise;
  GOTOXY (1,1);
  WRITELN ('Zur Wahl ihres Menue-');
  WRITELN ('punktes drucken sie diegewuenschte Zahl.');
  WRITELN;
  WRITELN ('Hilfen zum gewuenschtenOperator werden dann');
  WRITELN ('im Menue angezeigt!');
  MENUE_Hinweise_end;
END;

PROCEDURE hinzufuegen; {Neue Personen oder Editierung}
VAR pll,eing : INTEGER;
BEGIN;
  CLRSCR;
  Rahmen;
  WINDOW (3,3,77,22);
  REPEAT
    CLRSCR;
    GOTOXY (30,1); WRITELN ('NEUE PERSON');
    WRITE   ('Geben Sie zuerst die Indexzahl der gewunschten Person ein, um diese heraus-');
    WRITE   ('zufinden zaehlen sie fur Verwandte muetterlicherseits von rechts nach links');
    WRITELN ('mit dem Zahlenspektrum 1-31, ');
    WRITELN ('fuer Verwandte vaeterlicherseits tun Sie dies mit den Zahlen 32-62');
    WRITELN; WRITELN ('Von welchem Familienmitglied moechten sie die Daten veraendern?');
    WRITE ('Eingabe: '); READLN (pll);
    REPEAT
      CASE pll OF
        1..62:
        BEGIN
          CLRSCR;
          GOTOXY (30,1); WRITELN ('NEUE PERSON');
          WRITELN ('Die Aktuelle Person mit der Indexzahl ',pll,' hat folgende Daten: ');
          WRITELN ('Name: ',Namen[pll]);
          WRITELN ('Geburtsjahr: ',Geb[pll]);
          WRITELN('Todesjahr: ',Tod[pll]);
          WRITELN; WRITELN ('Geben Sie nun bitte die neuen Daten ein:');
          WRITE ('Name: '); READLN (Namen[pll]);
          WRITE ('Geburtsjahr: '); READLN (Geb[pll]);
          WRITE ('Todesjahr: '); READLN (Tod[pll]);
        END;
        ELSE
        BEGIN
          REPEAT
            CLRSCR;
            GOTOXY (30,1); WRITELN ('EINGABEFEHLER!');
            WRITE   ('Geben Sie zuerst die Indexzahl der gewunschten Person ein, um diese heraus-');
            WRITE   ('zufinden zaehlen sie fur Verwandte muetterlicherseits von rechts nach links');
            WRITELN ('mit dem Zahlenspektrum 1-31, ');
            WRITELN ('fuer Verwandte vaeterlicherseits tun Sie dies mit den Zahlen 32-62');
            WRITELN; WRITELN ('Von welchem Familienmitglied moechten sie die Daten veraendern?');
            WRITE ('Eingabe: '); READLN (pll);
          UNTIL (pll>0) AND (pll<63)
        END;
      END;
    UNTIL (pll>0) AND (pll<63);
    CLRSCR;
    WRITELN ('Weitere Aenderungen? (0=Nein, 1=Ja)');
    WRITE   ('Eingabe: '); READLN (eing);
  UNTIL eing=0;
  WINDOW (1,1,80,25);
END;

PROCEDURE KOPF; {Veraendert den Kopf des Stammbaumes}
VAR ein, ind, indz, default : INTEGER;
BEGIN
  CLRSCR;
  Rahmen;
  WINDOW (3,3,77,22);
  b:=MASTER;
  indz:=0;
  GOTOXY (30,1); WRITELN ('LINIENAUSWAHL');
  WRITELN ('Zuruecksetzen oder neuen Kopf auswaehlen? (0=Default/1=Wechsel)');
  WRITE   ('Eingabe: '); READLN  (Default);
 
  CASE DEFAULT OF
    0: b:=MASTER;
    1: BEGIN
         WRITELN (' Soll eine Person aus Ihrer muetterlichen oder vaeterlicher Linie Kopf werden? (0=m/1=v)');
         WRITE   ('Eingabe:'); READLN (ein);
         REPEAT
           CASE ein OF
             0: b:=b^.links;
             1: b:=b^.rechts;
             ELSE
             BEGIN
               REPEAT
                 GOTOXY (30,1); WRITELN ('FEHLER!');
                 WRITELN (' Soll eine Person aus Ihrer muetterlichen oder vaeterlichen Linie Kopf werden? (0=m/1=v)');
                 WRITE   ('Eingabe:'); READLN (ein);
               UNTIL (ein=0) XOR (ein=1)
             END;
           END;
         UNTIL (ein=0) XOR (ein=1);
       END;
  END;

       CASE ein OF
         0: BEGIN
              CLRSCR;
              GOTOXY (30,1); WRITELN ('Person Muetterlicher Linie');
              WRITE ('Geben Sie nun die Indexnummer der gewuenschten Person an: '); READLN (ind);
              READLN (Mutter[ind]);
              REPEAT
                indz:=indz+1;
                IF mutter[ind][indz] = '0' THEN
                   b := b^.links;
                IF mutter[ind][indz] = '1' THEN
                   b := b^.rechts;
              UNTIL NOT (mutter[ind][indz]='0') XOR (mutter[ind][indz]='1');
              help:=b;
            END;

          1: BEGIN
               CLRSCR;
               GOTOXY (30,1); WRITELN ('Person Vaeterlicher Linie');
               WRITE ('Geben Sie nun die Indexnummer der gewuenschten Person an: '); READLN (ind);
               READLN (Vater[ind]);
               indz:=0;
               REPEAT
                 indz:=indz+1;
                 IF Vater[ind][indz] = '0' THEN
                    b := b^.links;
                 IF Vater[ind][indz] = '1' THEN
                    b := b^.rechts;
               UNTIL NOT (Vater[ind][indz]='0') XOR (Vater[ind][indz]='1');
               help:=b;
             END;
       END;
    WINDOW (1,1,80,25);
  END;


PROCEDURE Anzeigen;
BEGIN
  WINDOW (27,3,57,22);
  CLRSCR;
  GOTOXY (15,1);  z:=help; WRITE (help^.name);
  GOTOXY (14,2);  WRITE ('/'); GOTOXY (13,3); WRITE ('/'); GOTOXY (12,4); WRITE ('/');
  GOTOXY (11,5);  WRITE ('/'); GOTOXY (10,6); WRITE ('/');
  GOTOXY (16,2);  WRITE ('\'); GOTOXY (17,3); WRITE ('\'); GOTOXY (18,4); WRITE ('\');
  GOTOXY (19,5);  WRITE ('\'); GOTOXY (20,6); WRITE ('\');
  GOTOXY (21,7);  z:=z^.rechts;         WRITE (z^.name);
  GOTOXY (5,7) ;  z:=help; z:=z^.links; WRITE (z^.name);

  WINDOW (1,1,80,25);
  GOTOXY (67,5) ;                        WRITE (z^.geb);
  GOTOXY (68,6) ;                        WRITELN(z^.tod);
  GOTOXY (65,7) ;                        WRITELN('z^.tod');
  GOTOXY (68,9) ;hilf:=z^.links;         WRITELN('hilf^.name');
  GOTOXY (67,10);hilf:=z^.rechts;        WRITELN('hilf^.name');
  GOTOXY (71,12);hilf:=z^.links^.links;  WRITELN('hilf^.name');
  GOTOXY (70,13);hilf:=z^.links^.rechts; WRITELN('hilf^.name');
  GOTOXY (71,14);hilf:=z^.rechts^.links; WRITELN('hilf^.name');
  GOTOXY (70,15);hilf:=z^.rechts^.rechts;WRITELN('hilf^.name');
  GOTOXY (69,17);                        WRITELN('gestrichen');
  GOTOXY (66,18);                        WRITELN('gestrichen');
  GOTOXY (67,19);                        WRITELN('gestrichen');
END;

PROCEDURE loeschen;
VAR qwerty,best,ask: Integer;
BEGIN;
  CLRSCR;
  Rahmen;
  WINDOW (3,3,77,22);
  REPEAT
    best:=0;
    ask:=1;
    CLRSCR;
    GOTOXY (30,1); WRITELN ('LOESCHVORGANG');
    WRITE   ('Geben Sie zuerst die Indexzahl der gewunschten Person ein, um diese heraus-');
    WRITE   ('zufinden zaehlen sie fur Verwandte muetterlicherseits von rechts nach links');
    WRITELN ('mit dem Zahlenspektrum 1-31, ');
    WRITELN ('fuer Verwandte vaeterlicherseits tun Sie dies mit den Zahlen 32-62');
    WRITELN; WRITELN ('Von welchem Familienmitglied moechten sie die Daten zuruecksetzen? ');
    WRITE ('Eingabe: '); READLN(qwerty);
    CASE QWERTY OF
      1..62:
      BEGIN
        WRITELN ('Soll ',Namen[qwerty],' geboren ',Geb[qwerty],' wirklich zurueckgesetzt werden?');
        WRITELN ('Folgende weitere Informationen wuerden ebenfalls verloren gehen: ');
        WRITELN ('1. Todesdatum ',Tod[qwerty]);
        WRITELN ('Bestaetigung loeschen (0=Nein,1=Ja): '); READLN (best);
      END;
      ELSE
      BEGIN
        REPEAT
        BEGIN
          WRITELN ('FEHLER! Ungueltige Eingabe');
          WRITELN ('Von welchem Familienmitglied moechten sie die Daten zuruecksetzen?');
          WRITE ('Eingabe: '); READLN(qwerty);
        END;
        UNTIL (qwerty>0) AND (qwerty<=62);
        WRITELN ('Soll ',Namen[qwerty],' geboren ',Geb[qwerty],' wirklich zurueckgesetzt werden?');
        WRITELN ('Folgende weitere Informationen wuerden ebenfalls verloren gehen: Todesdatum ',Tod[qwerty]);
        WRITELN ('Bestaetigung loeschen (0=Nein,1=Ja): '); READLN (best);
      END;
    END;
    IF best = 1 THEN
    BEGIN
     Namen[qwerty]:='???';
       Geb[qwerty]:='N/A';
       Tod[qwerty]:='N/A';
    END;
    WRITELN ('Andere Loeschung  (0=Nein,1=Ja)? '); Readln(ask);
  UNTIL ask=0;
  READLN;
  WINDOW (1,1,80,25);
END;

PROCEDURE Default_Baum;
BEGIN;
  Baum_Vorbereitung;
  Pzeiger;
END;

PROCEDURE EINGABE_MENUE; {Hauptmenue}
BEGIN;
  GOTOXY (1,25); WRITE ('Eingabe der Menuewahl: '); READLN(Wahl);
  CASE Wahl OF
    1: BEGIN
         hinzufuegen;
         Rahmen;
         Aufbau;
         Text;
         MENUE_EINGABE_Hinweise;
         EINGABE_MENUE;
       END;
    2: BEGIN
         Anzeigen;
         Rahmen;
         Aufbau;
         Text;
         MENUE_EINGABE_Hinweise;
         EINGABE_MENUE;
       END;
    3: BEGIN
         kopf;
         Rahmen;
         Aufbau;
         Text;
         MENUE_EINGABE_Hinweise;
         EINGABE_MENUE;
       END;
    4: BEGIN
         loeschen;
         Rahmen;
         Aufbau;
         Text;
         MENUE_EINGABE_Hinweise;
         EINGABE_MENUE;
       END;
  { 41: BEGIN}
    5: BEGIN
         CLRSCR;
         About;
         Readln;
         Rahmen;
         Aufbau;
         Text;
         MENUE_EINGABE_Hinweise;
         EINGABE_MENUE;
       END;
    6: qqq;
  END;
END;


BEGIN {Hauptprogramm}
  CLRSCR;
  Rahmen;
  Default;
  Default_Baum;  {Fehlerquelle}
  ME_MYSELF_AND_I;
  Aufbau;
  Text;
  FAnzeigen;
  MENUE_EINGABE_Hinweise;
  EINGABE_MENUE;
READLN;
END.
--- Ende Code ---

King of Kings:
Ihr seit ja richtige Mathecracks  :D Wie zum Himmel kann man bloß so rechnen können?
Jetzt zu meinem Problem: Ich habe einen ewiglangen lateinischen Text und müsste so ziemlich jedes Wort nachschlagen. Kann mir jemand helfen?
Mi frater,mi frater, tune id veritus es, ne ego iracundia aliqua adductus pueros ad te sine litteris miserim aut etiam ne te videre irasci? Scilicet, tu enim me afflixisti, tui me inimici,tua me invidia ac non ego te misere perdidi. Meus ille laudatus consulatus mihi te, liberos, patriam,fortunas eripuit...
Ego te videre noluerim? Immo vero me a te videre nolui; non enim vidisses fratrem tuum, non eum,quem reliqueras, non eum,quem noras, non eum, quem flens flentem dimiseras, ne vestigum quidem eius nec simulacrum, sed quandam effigiem spirantis mortui.
Atque utinam me mortuum vidisses aut audisses, utinam te non solum vitae, sed etiam dignitatis meae superstitem reliquissem!
Ego tamen, quamdiu tibi opus erit, si quid periculi subeundum videbis, vivam; diutius in hac vita esse non possum; neque enim tantum virium habet ulla prudentia, ut tantum dolorem possit sustinere.Mann, ich schaff's kaum so einen Text abzuschreiben. Wenn sich wirklich jemand die Mühe macht, das zu übersetzen, danke ich ihm schon im Vorraus.

King of Kings

Yilvina:
http://www.santones.de/Fundgrube/exilliteratur_und_exilkrankheit.htm#_Toc10966074

Ich habe mal ein bischen mit Google gesucht und diese Übersetzung gefunden

viele Grüße


Yilvina

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln