DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦86a1ddec6⟧

    Length: 3744 (0xea0)
    Notes: Mikados TextFile, Mikados_K
    Names: »SPARSE«

Derivation

└─⟦d110b5765⟧ Bits:30005308 Eksamensopgave i dynamiske systemer med FFT
    └─ ⟦this⟧ »SPARSE« 

Text

PROGRAM SPARSE;
CONST N=40;
TYPE
    NBLPIL=^NBL;
    KNLPIL=^KNL;
     NBL= RECORD
              NB: INTEGER;
              NEXTNB:NBLPIL;
           END;
    KNL= RECORD
          AN,KN:INTEGER;
          NAP: NBLPIL;
          NEXTKN:KNLPIL;
         END;
     OUT=PACKED ARRAY (.1..20.) OF CHAR;
VAR P2,NXNB,NAP,FINA: NBLPIL;
   I,S,K,J,TEST:INTEGER;
    P1,NXKN,FIRST,VH,PIL,HH,PP,HP,VP: KNLPIL;
                   
BEGIN
 
 WRITELN(CHR(27),CHR(70),CHR(48),CHR(9));
I:=1; K:=1;FIRST:=NIL;
  WHILE (I<=N) AND (K>0) DO
  BEGIN
    WRITELN('KNUDENR ',I:2,'=?','OG ANTAL NABOER?');
  READ(K,S); NEW(P1);
    WITH P1^ DO
      BEGIN
      NEXTKN:=FIRST;
      AN:=S;
      KN:=K;
      END; (* WITH P1^ *)
    FIRST:=P1; FINA:=NIL;
    FOR J:=1 TO S DO
    BEGIN
         WRITELN('INDTAST NR. PAA NABO NR ',J:2);
         READ(K); NEW(P2);
          WITH P2^ DO
          BEGIN
          NEXTNB:=FINA;
          NB:=K;
          END; (* WITH P2^ *)
      FINA:=P2;
    END;
    P1^.NAP:=FINA;
 
    I:=I+1;
  END;
WRITELN('INDLAESNINGEN SLUT GOD NAT ');
READLN;
 
FIRST:=FIRST^.NEXTKN;
VH:=FIRST;PIL:=FIRST^.NEXTKN;
HH:=PIL^.NEXTKN; TEST:=PIL^.AN;
(*ORDNING EFTER VOKSENDE GRAD*)
WHILE (PIL<>NIL) DO
  BEGIN
    WRITELN('PIL',PIL^.KN:4,'PP',PP^.KN:4);
    P1:=FIRST;
    WHILE (P1^.NEXTKN<>NIL) DO BEGIN   WRITELN(P1^.KN:4);
                                       P1:=P1^.NEXTKN;
                               END;
     PP:=FIRST; HP:=FIRST^.NEXTKN;
     WHILE (PP<>PIL) DO
       BEGIN
         IF (TEST>PP^.AN) THEN
          BEGIN
            VP:=PP; PP:=HP; HP:=PP^.NEXTKN;
          END
         ELSE
          BEGIN
           IF (PP=FIRST) THEN
           BEGIN
            PIL^.NEXTKN:=FIRST;
            FIRST:=PIL;
            VH^.NEXTKN:=HH;
                    
 
           END
 
         ELSE
          BEGIN
           VH^.NEXTKN:=HH;
           PIL^.NEXTKN:=PP;
           VP^.NEXTKN:=PIL;
          END;
         PIL:=VH;
         PP:=PIL;
       END;
     END;
     VH:=PIL;
     PIL:=HH;
     HH:=PIL^.NEXTKN;
     TEST:=PIL^.AN;
     P1:=FIRST;WRITE('NY ORDNING');
WHILE (P1<>NIL) DO BEGIN
                         WRITELN(P1^.KN);P1:=P1^.NEXTKN;
                   END;
    END;
WRITELN(LIST,'KNUDENR    NABOER');
P1:=FIRST;
WHILE (P1<>NIL) DO
  BEGIN
           
    READLN;
  WITH P1^ DO
    BEGIN
      WRITELN(LIST,KN:2,'          ');
      P2:=NAP;
      FOR S:=1 TO AN DO
      BEGIN
        WITH P2^ DO
        WRITE(LIST,NB:2,' , ');
        P2:=P2^.NEXTNB;
      END
    END;
             
    WRITELN;
    P1:=P1^.NEXTKN;
  END
 END.