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

⟦1f63f16d6⟧

    Length: 5056 (0x13c0)
    Notes: Mikados TextFile, Mikados_K
    Names: »PSPARSE«

Derivation

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

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..42.) OF CHAR;
     VR=ARRAY(.1..40.) OF INTEGER;
VAR P2,NXNB,NAP,FINA: NBLPIL;
    I,S,K,J,TEST:INTEGER;
    P1,NXKN,FIRST,VH,PIL,HH,PP,HP,VP: KNLPIL;
    v,h,m:char;
    NR:ARRAY(.1..40.) OF INTEGER;
    PK,pl:out;
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');
J:=1;
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;
      NR(J):=KN;
    END;
    J:=J+1;  
    WRITELN;
    P1:=P1^.NEXTKN;
 
  END;
  v:='Ø'; h:='-'; m:='*';
  pK:='                                          ';
  PL:=PK;
  pl(2):=h; pl(i+1):=h;
  writeln(pl);
  pl:=PK;
     pl(1):=V;  pl(i+2):=v;
     P1:=FIRST;
     WHILE (P1<>NIL) DO
     BEGIN
     WITH P1^ DO
     BEGIN
       P2:=NAP;
       FOR S:=1 TO AN DO
       BEGIN
         WITH P2^ DO
         PL(ORD(NB)):=M;
         P2:=P2^.NEXTNB;
       END;
       PL(ORD(KN)):=M;
       P1:=P1^.NEXTKN;
       WRITELN(PL);
     END;
     PL:=PK;
     END;
 
 
 
 
 END.