// JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LISTER PROGRAMME SOURCE *E/S(IMPRIMANTE) 'DEBUT' 'E'I,J,K,L., 'ENTIER''PROCEDURE'RKRS(N,P2,P3,FACT)., 'ENTIER'N,P2,P3,FACT., 'DEBUT' 'SI'N'SUP'1'ALORS''ALLERA'A., P2.=2.,P3.=3.,FACT.=1. , 'ALLER A'B., A.. RKRS(N-1,P2,P3,FACT)., P2.=2*P2.,P3.=3*P3.,FACT.=N*FACT., B.. 'FIN'., 'ENTIER' S., S.=1., 'COMMENT' IMP 1132., SYSACT(S,2,50)., SORCH(S,'('ICI FLEURIT ALGOL')')., SYSACT(S,14,2)., 'POUR'I.=1'PAS'1'A'120'FAIRE'SORCH(S,'('*')').,SYSACT(S,14,2)., SYSACT(S,2,10).,SORCH(S,'('NOMBRE')')., SYSACT(S,2,30).,SORCH(S,'('PUISSANCE DE 2')')., SYSACT(S,2,50).,SORCH(S,'('PUISSANCE DE 3')')., SYSACT(S,2,70).,SORCH(S,'('FACTORIELLE')')., SYSACT(S,14,2)., 'POUR'I.=1'PAS'1'A'120'FAIRE'SORCH(S,'('*')').,SYSACT(S,14,2) ., L.=1., I.=0., 'POUR'I.=I+1'TANT QUE'L'INF'4000'FAIRE' 'DEBUT'RKRS(I,J,K,L)., SYSACT(S,2,12).,SOREN(S,I)., SYSACT(S,2,32).,SOREN(S,J)., SYSACT(S,2,52).,SOREN(S,K)., SYSACT(S,2,72).,SOREN(S,L)., SYSACT(S,14,2)., 'FIN'., 'POUR'I.=1'PAS'1'A'120'FAIRE'SORCH(S,'('*')').,SYSACT(S,14,2) ., 'FIN' // FAL // XEQ 0 // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LISTER PROGRAMME SOURCE *E/S(1132PRINTER) *IOCS(1442READER) 'DEBUT''ENTIER' S., S.=1., 'COMMENT' IMP. 1132., 'DEBU''E'I.,E..ENTEN(0,I).,'SI'I=0'ALOR''ALLE'F., SYSAC(S,2,I).,SORCH(S,'('*')').,'ALLE'E.,F..SYSAC(S,14,10)'FIN' 'FIN' // FAL // XEQ 0 50,48,52,60,62,64,46,54,60,64,44,56,60,64,42,58,60,64,40,60,64,38,62,64,36,64,34 66,32,68,30,70,30,70,30,70,30,46,48,50,52,54,70,30,46,54,70,30,46,54,70,30,46,48 50,52,54,70,30,70,30,70,30,70,30,46,48,50,52,54,70,30,46,54,70,30,46,54,70,30,46 ,54,70,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,0,0,0,0,0, // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LISTER PROGRAMME SOURCE *E/S(IMPRIMANTE) // * 'DEBUT' 'COMMENT' FIBONACCI ., 'ENTIER' A, B, C., 'ENTIER' I., I.=1., 'COMMENT' IMP. 1132., SYSACT(I,14,5)., SORCHAINE(I,'('S E R I E D E F I B O N A C C I')')., SYSACT(I,14,5)., 'POUR' C.=A+B 'TANT QUE' B 'ING' 16384 'FAIRE' A.=0., B.=1., SOREN(I,A)., 'DEBUT' A.=B., B.=C., SOREN(I,C) 'FIN' ., SYSACT(I,2,1) 'FIN' // FAL // XEQ 0 // JOB 0C00 ALGOL-CH // XEQ ECIAL **RESOLUTION D'UN SYSTEME LINEAIRE PAR LA METHODE DES ROTATIONS *LISTER PROGRAMME SOURCE *E/S(LECTEUR 1442) *E/S(IMPRIMANTE) 'DEBUT' 'PROCEDURE' ROTATION (A,B,N); 'VALEUR' N; 'ENTIER' N; 'TABLEAU' A,B; 'DEBUT' 'E' I,J,K; 'R' O,C,D,E,F; 'POUR' I:= 1 'PAS' 1 'A' N 'FAIRE' 'POUR' J.= I+1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' 'SI' ABS(A(/I,I/)) > '-10 & ABS(A(/J,I/)) > '-10 'ALORS' 'ALLERA' DOR1 'SINON' 'SI' ABS(A(/I,I/)) < '-10 'ALORS' 'ALLERA' DOR2 'SINON' 'ALLERA' DOR3; DOR1: O:= ARCTAN(-A(/J,I/)/A(/I,I/)); 'POUR' K:= 1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' C:= A(/I,K/)*COS(O)-A(/J,K/)*SIN(O); D:= A(/I,K/)*SIN(O)+A(/J,K/)*COS(O); A(/I,K/):=C; A(/J,K/):= D 'FIN'; E:= B(/I/)*COS(O)-B(/J/)*SIN(O); F:= B(/I/)*SIN(O)+B(/J/)*COS(O); 'ALLERA' EXIT; DOR2: 'POUR' K:= 1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' C:= -A(/J,K/); A(/J,K/):= A(/I,K/); A(/I,K/):= C 'FIN'; E:= -B(/J/); F:= B(/I/); EXIT: B(/I/):= E; B(/J/):= F; DOR3: A(/J,I/):= .0 'FIN' 'FIN' ROTATION; 'PROCEDURE' RESOLSYSTRI(A,B,X,N); 'VALEUR' N; 'ENTIER' N; 'TABLEAU' A,B,X; 'DEBUT' 'ENTIER' I,J; 'REEL' T; 'POUR' I:= N'PAS'-1'A'1'FAIRE' 'DEBUT' T:=.0; 'POUR' J:= I+1 'PAS' 1 'A' N 'FAIRE' T:= T-A(/I,J/)*X(/J/); X(/I/):= (B(/I/)+T)/A(/I,I/) 'FIN' 'FIN' RESOLSYSTRI; 'E' N,I,J; 'E' K., K.=1., 'COMMENT' IMP. 1132., SYSACT(0,12,1); ENTENTIER(0,N); 'DEBUT' 'TABLEAU' A(/1..N,1..N/),B,X(/1..N/); 'POUR' I:= 1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' 'POUR' J:= 1 'PAS' 1 'A' N 'FAIRE' A(/I,J/):= 'SI' J=I 'ALORS' 2.0 'SINON' 'SI' J=I+1 | J=I-1 'ALORS' -1.0 'SINON' .0; B(/I/):= .0 'FIN'; B(/1/):=1.0; SYSACT(K,12,1); SYSACT(K,15,3); SORCHAINE(K,'('RESOLUTION D'UN SYSTEME LINEAIRE PAR LA ME THODE DES ROTATIONS.')'); SYSACT(K,14,3); SYSACT(K,2,15); SORCHAINE(K,'('MATRICE DE DEPART:')'); SYSACT(K,2,89); SORCHAINE(K,'('SECOND MEMBRE:')'); SYSACT(K,14,3); 'POUR' I:= 1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' SORCHAINE(K,'('LIGNE NUMERO ')'); SORENTIER(K,I); SYSACT(K,2,90); SORREEL(K,B(/I/)); SYSACT(K,2,1); 'POUR' J:= 1 'PAS' 1 'A' N 'FAIRE' SORREEL (K,A(/I,J/)); SYSACT(K,2,1) 'FIN'; ROTATION(A,B,N); SYSACT(K,15,3); SYSACT(K,2,15); SORCHAINE(K,'('MATRICE TRANSFORMEE:')'); SYSACT(K,2,89); SORCHAINE(K,'('SECOND MEMBRE:')'); SYSACT(K,14,3); 'POUR' I:= 1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' SORCHAINE(K,'('LIGNE NUMERO ')'); SORENTIER(K,I); SYSACT(K,2,90); SORREEL(K,B(/I/)); SYSACT(K,2,1); 'POUR' J:= 1 'PAS' 1 'A' N 'FAIRE' SORREEL(K,A(/I,J/)); SYSACT(K,2,1) 'FIN'; RESOLSYSTRI(A,B,X,N); SYSACT (K,15,3); SORCHAINE(K,'('VECTEUR SOLUTION:')'); SYSACT(K,14,3); 'POUR' I:= 1 'PAS' 1 'A' N 'FAIRE' 'DEBUT' SYSACT(K,2,15); SORREEL(K,X(/I/)) 'FIN'; SYSACT(K,14,3); SORCHAINE(K,'('PROGRAMME TERMINE.')'); SYSACT(K,15,1) 'FIN' 'FIN' DU PROGRAMME // FAL // * IL PEUT ETRE NECESSAIRE DE METTRE DES *LOCAL ... // XEQ 0 20 // * // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LIST SOURCE PROGRAM *IOCS(1132PRINTER) ** PROBLEME DE LA TOUR DE HANOI 'DEBUT' 'ENTIER' MAX, IMPRI., IMPRI.=1., MAX .= 5., 'DEBUT' 'ENTIER''TABLEAU' PILE(/1..3,1..MAX/), HAUT(/1..3/)., 'ENTIER' I., 'PROCEDURE' EMPIL (N, X)., 'VALEUR' N, X., 'ENTIER' N, X., 'DEBUT' HAUT(/N/) .= HAUT(/N/)+1., PILE (/N, HAUT(/N/)/) .= X 'FIN'., 'ENTIER''PROCEDURE' DEPIL (N)., 'VALEUR' N., 'ENTIER' N., 'DEBUT' 'SI' HAUT(/N/) 'ING' 0 'ALORS' 'DEBUT' SORCH (IMPRI, '('PILE')')., SOREN (IMPRI, N)., SORCH (IMPRI, '('VIDE')')., 'ALLER A' TILT 'FIN'., DEPIL .= PILE(/N, HAUT(/N/)/)., HAUT(/N/) .= HAUT(/N/)-1 'FIN'., 'PROCEDURE' ETAT., 'DEBUT' 'ENTIER' N, M., 'POUR' N.=MAX 'PAS' -1 'A' 1 'FAIRE' 'POUR' M.=1, 2, 3 'FAIRE' 'SI' HAUT(/M/) 'SUG' N 'ALORS' 'DEBUT' SYSACT (IMPRI, 2, 10*M)., SOREN (IMPRI, PILE(/M, N/)) 'FIN'., SYSACT (IMPRI, 14, 2) 'FIN'., 'PROCEDURE' MOUVE (X, Y)., 'VALEUR' X, Y., 'ENTIER' X, Y., 'DEBUT' EMPIL (Y, DEPIL(X))., SOREN (IMPRI, PILE(/Y,HAUT(/Y/)/))., SORCH (IMPRI, '('VA DE')')., SOREN (IMPRI, X)., SORCH (IMPRI, '('A')')., SOREN (IMPRI, Y)., 'SI' HAUT(/Y/) 'SUP' 1 'ALORS' 'DEBUT' 'SI' PILE(/Y,HAUT(/Y/)/) 'SUG' PILE(/Y,HAUT(/Y/)-1/) 'ALORS' 'DEBUT' SORCH (IMPRI, '('TILT')')., 'ALLER A' TILT 'FIN' 'FIN'., SYSACT (IMPRI, 14, 2) 'FIN'., 'PROCEDURE' HANOI (N, X, Y, Z)., 'VALEUR' N, X, Y, Z., 'ENTIER' N, X, Y, Z., 'SI' N=0 'ALORS' ETAT 'SINON' 'DEBUT' HANOI (N-1, X, Z, Y)., MOUVE (X, Y)., HANOI (N-1, Z, Y, X) 'FIN'., 'POUR' I.=1 'PAS' 1 'A' MAX 'FAIRE' PILE(/1,I/) .= MAX-I+1., HAUT(/1/) .= MAX., HAUT(/2/) .= HAUT(/3/) .= 0., SYSACT (IMPRI, 15, 1)., HANOI (MAX, 1, 2, 3)., TILT .. SYSACT (IMPRI, 14, 2) 'FIN' 'FIN' // FAL // XEQ 0 // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LIST SOURCE PROGRAM *E/S(IMPRIMANTE) ** ESSAI DE LA PROCEDURE SYSACT POUR L'IMPRIMANTE 'DEBUT' 'PROCEDURE' S(A,B)., 'VALEUR' A,B., 'ENTIER' A,B., SYSACT(I,A,B)., 'ENTIER''PROCEDURE' F(A)., 'VALEUR' A., 'ENTIER' A., 'DEBUT' 'ENTIER' X., SYSACT (I,A,X)., F.=X 'FIN'., 'ENTIER' A., 'ENTIER' I., I.=1., S(8,60)., S(15,1)., 'POUR' A.=A 'TANTQUE' F(7)'SUP' 1 'FAIRE' 'DEBUT' 'POUR' A.=A 'TANTQUE' F(3)'INF'F(7),A 'FAIRE' 'DEBUT' 'POUR' A.=A 'TANTQUE' F(1)'ING'F(5),A 'FAIRE' SORCHAINE(I,'('L')')., S(6,F(5)-1) 'FIN'., S(8,F(7)'/'2) 'FIN''FIN' // FAL // XEQ 0 // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LISTER PROGRAMME SOURCE *E/S(MACHINE A ECRIRE) 'DEBU''E'I;'FOR'I:=1'PAS'1'A'92'DO'SORCH(5,'(' 0 +')'); SORCH(5,'(' V I V E A L G O L !')'); SORCH(5,'(' V I V E A L G O L !')'); SYSAC(5,14,2)'FIN' // FAL // XEQ // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LISTER PROGRAMME SOURCE *E/S(PUPITRE) 'DEBUT' 'ENTIER' I,J,K,L., SYSAC(5,14,2); SORCH(5,'('TAPEZ UNE PHRASE QUELCONQUE, TERMINEE PAR UN POINT.')'); SYSAC(5,2,1); I:=J:=K:=L:=0; 'POUR'I:=I+1 'TANT' K¬=8 'FAIRE' 'DEBUT' ENTSY(4,'('AEIOUY .')',K); 'SI' K 'SUP' 0 'ET' K 'ING' 6 'ALORS' 'DEBUT' SORCH(5,'('*')'); J:=J+1 'FIN' 'SINON' SORCH(5,'(' ')'); 'SI' K=7 'ALORS' L:= L+1 'FIN'; SYSAC(5,2,1);SORCH(5,'('CETTE PHRASE CONTIENT')'); SOREN(5,I); SORCH(5,'(' CARACTERES, DONT')'); SOREN(5,J); SORCH(5,'(' VOYELLES ET')'); SOREN(5,L); SORCH(5,'(' ESPACES.')'); SYSAC(5,14,2) 'FIN' // FAL // XEQ 0 // JOB 0C00 ALGOL-CH // XEQ ECIAL 0 *LISTER PROGRAMME SOURCE *E/S(PUPITRE, TRACEUR) 'DEBUT' PEANO1-4 'PROCEDURE' PEANO (X,Y, TAILLE,CODE,RANG)., 'VALEUR' X,Y, TAILLE,RANG,CODE., 'REEL' X,Y, TAILLE., 'ENTIER' RANG,CODE., 'DEBUT' 'ENTIER' KOD,KK,SK., PEANO008 'SI' RANG=0 'ALORS' PEANO009 'DEBUT' TRACE(PLUME,X,Y)., PLUME:=0 PEANO011 'FIN' 'SINON' PEANO012 'DEBUT' KOD:=ABS(CODE)., PEANO013 SK:=SIGNE(CODE)., PEANO014 TAILLE .= TAILLE/2.0., RANG:=RANG-1., PEANO016 'POUR' KK:=K1(/CODE/),CODE,CODE,K2(/CODE/) 'FAIRE' PEANO017 'DEBUT' PEANO(X+SX(/KOD/)*SK* TAILLE, Y+SX(/KOD+1/)* TAILLE, TAILLE , KK, RANG)., KOD:=KOD+1 PEANO020 'FIN' PEANO021 'FIN' PEANO022 'FIN'., PEANO023 'BOOLEEN' TU VEUX., PEANO024 'ENTIER''TABLEAU' K1,K2(/-4..4/), SX(/1..8/)., PEANO025 'ENTIER' PLUME,N,I,J,K., PEANO026 J:=1., PEANO027 'POUR' I:=-1,-1,1,1,-1,-1,1,1 'FAIRE' PEANO028 'DEBUT' SX(/J/):=I., PEANO029 J:=J+1 PEANO030 'FIN'., PEANO031 I:=-4., PEANO032 J:=1., PEANO033 'POUR' K:=3,4,1,2 'FAIRE' PEANO034 'DEBUT' K1(/I/):=J., PEANO035 K2(/I/):=K., PEANO036 I:=I+1., PEANO037 J:=J+1 PEANO038 'FIN'., PEANO039 I:=1., PEANO040 J:=-4., PEANO041 'POUR' K:=-2,-1,-4,-3 'FAIRE' PEANO042 'DEBUT' K1(/I/):=J., PEANO043 K2(/I/):=K., PEANO044 I:=I+1., PEANO045 J:=J+1 PEANO046 'FIN'., PEANO047 SYSACT(7,10,1)., SYSACT(5,14,1)., SORCHAINE(5,'('COURBES DE PEANO - HILBERT')')., SYSACT(5,2,1)., CADRE.. ECHELLE(5.0,5.0,-1.0,-1.1)., SORCHAINE(7,'(' PEANO - HILBERT NO')')., 'POUR' I:=1 'PAS' 1 'A' 4 'FAIRE' TRACE(-2,SX(/I/),SX(/I+1/))., TRACE(-1,-1.0,-1.0)., PIANO.. SORCHAINE(5,'('COURBE NO ... ? ( <8 )')')., SYSACT(5,2,1)., PEANO054 ENTENTIER(4,N)., PEANO055 PLUME .=-2., SORENTIER (7,N)., PEANO(.0,.0,1.0,1,N)., PEANO058 TRACE(1,1.0,-1.0)., SORCHAINE(5,'('ENCORE UNE COURBE SUR LE MEME DESSIN, VRAI OU FAUX ?')') .,SYSACT(5,2,1)., ENTBOOLEEN(4,TUVEUX)., PEANO062 'SI' TU VEUX 'ALORS' 'DEBUT' SORCHAINE(7,'(',')')., 'ALLER A' PIANO 'FIN'., SYSACT(7,1,N)., CARAC (1.1,1.0,10.0/N,.5,-1.5708)., TRACE(1,1.5,-1.1)., SORCHAINE(5,'('ENCORE UN DESSIN, VRAI OU FAUX ?')')., SYSACT (5,2,1)., ENTBOLEEN(4, TUVEUX)., 'SI' TU VEUX 'ALORS' 'ALLER A' CADRE 'FIN' PEANO065 // FAL // XEQ 0 1---5----0----5----0----5----0----5----0----5----0----5----0----5----0--3++++++0 Anzahl Karten: 377