Mkd (Extracteur de documents)/Exercices/Autres formats de fichiers
Les styles de commentaires en informatique sont souvent semblables. Pour s'en convaincre on lira avec intérêt les Commentaires informatiques sur wikipedia.
Les fichiers ci-dessous, sont à votre disposition pour effectuer des essais. Vous pouvez les remplacer et/ou ajouter de nouveaux fichiers du même style, par exemple le php est du même style que le c++.
- Copiez le contenu des cadres ci-dessous dans votre éditeur de texte et faites une sauvegarde dans un fichier correspondant à la source:
- Surlignez le contenu du cadre ci-dessous.
- Appuyez simultanément sur les touches CTRL et C,
- Ensuite faites la même chose avec CTRL et V dans votre éditeur afin d'y coller ce texte.
- Enfin sauvegardez votre fichier avec le nom correspondant
- Remarques:
- Dans certains fichier les tabulations habituelles peuvent avoir été remplacées par 3 espaces pour faciliter la lecture.
- Les tabulations peuvent jouer de mauvais tours à l'édition.
- Prendre connaissance des bugs.
Style Assembler
modifierHGRAPHIC.ASM (MS-DOS) pour exercices. Encodage ASCII.
HGRAPHIC.ASM
PAGE 65,132
;----------------------------------
NAME HGRAPHIC ; DATE: 10/03/88
;----------------------------------
CGROUP GROUP CODE
DGROUP GROUP CONST,DATA
SGROUP GROUP STACK
;----------------------------------
ASSUME CS:CGROUP,DS:DGROUP,SS:SGROUP
; Programme RESIDENT QUI IMPRIME L'ECRAN GRAPHIQUE HERCULE.....
;----------------------------------
DATA SEGMENT PUBLIC 'DATA'
;----------------------------------
BUFFER DB 8 DUP (?) ; BUFFER DE 8 OCTETS POUR RÉORDONNER
ADR_PAGE DW ? ; ADRESSE ORIGINE DU BUFFER ÉCRAN
FLAG_ERR DB 0
;----------------------------------
;----------------------------------
DATA ENDS
;----------------------------------
CONST SEGMENT PUBLIC 'CONST'
;----------------------------------
; INTERRUPT CONST
XXDATA EQU 050H ; 50H ADR BIOS PRINT SCREEN STATUS FLAG voir 2-8
STATUS_BYTE EQU DS:BYTE PTR 0 ; DU BIOS
NB_PARAGR EQU 020H ; PLACE POUR RÉSIDENT À DÉTERMINER 32=0512 OCTETS
;----------------------------------
; DISPLAY BUFFER CONST
PAGE_0 EQU 0B000H ; 32KB B000:0000
PAGE_1 EQU 0B800H ; 32KB B800:0000
;----------------------------------
; INPUT OUTPUT PORTS CONST
MODE_CONT EQU 03B8H ; DISPLAY CONTROLE MODE ;BIT7=1 PAGE1 ;=0 PAGE0
PRNT_STAT EQU 03BDH ; PRINTER STATUS
CONFIG EQU 03BFH ; BIT 0 =TEXT MODE; =1 GRAPHICS MODE
;----------------------------------
; FORMAT D'ECRAN CONST
X_DOT EQU 0720 ; WWW a redefinir NB PIX/LINE
X_BYTE EQU 0720/8 ; X_DOT/8 HERCULE
Y_DOT EQU 0348 ; WWW NB PIX/COL
Y_BYTE EQU 0344/8 ; 43,5 * 8 = 348 lignes d’écran
;----------------------------------
; MODE D'IMPRESSION LPT CONST
PRT_MODE EQU 059H ; QUADRULE DENSITE=5AH
; DOUBLE=4CH &DOUBLE SPEED=59H
; SIMPLE=4BH
; CRT= PLOT=
LINE_SPA EQU 031H ; 7/72 line spacing
;----------------------------------
;---------------------------------
CONST ENDS
;----------------------------------
CODE SEGMENT PUBLIC 'CODE'
;----------------------------------
ADR_PS_BIOS DD HERC_PS_GRA
;----------------------------------
INI EQU $
;O INITIALISER LE DEROUTEMENT INT 5
XOR SI,SI
MOV ES,SI
MOV AX,CS: WORD PTR ADR_PS_BIOS ;IP ECHANGE DES ADRESSES
XCHG AX,ES:[SI]+5*4
MOV CS: WORD PTR ADR_PS_BIOS,AX
MOV AX,CS: WORD PTR ADR_PS_BIOS +2 ;CS ECHANGE DES ADRESSES
XCHG AX,ES:[SI]+5*4+2
MOV CS: WORD PTR ADR_PS_BIOS +2,AX
;----------------------------------
;O RETOUR AU DOS
MOV AX,3100H ; FONCTION 31 ERR=0 DE INT 21H
MOV DX,16+NB_PARAGR ; 16*16=256+ESPACE POUR CODES
INT 21H
;----------------------------------
;O*********************************
HERC_PS_GRA EQU $
;O SI L'ECRAN EST EN CONFIGURATION TEXTE
MOV DX,CONFIG ; DE LA CARTE HERCULE
IN AL,DX
TEST AL,01H ; TESTE LE BITS 0 = 1 SI GRAPHIQUE
JNZ SINON
;O ALORS ALLER A INT 5 DU BIOS
JMP ADR_PS_BIOS ; ON QUITTE DEFINITIVEMENT....
;----------------------------------
;O SINON (EXECUTER PRT SCR GRAPHIQUE POUR CARTE HERCULE (INT 5))
SINON EQU $
;O SI PRINT SCREEN EST EN COURS D'EXECUTION
MOV AX,XXDATA ; PRINT SCREEN STATUS FLAG
MOV DS,AX
CMP STATUS_BYTE,0 ; VOIR SI P_S PAS EN EXECUTION
JZ S
;O ALORS NE RIEN FAIRE
JMP FS ; FIN DU SI
;O SINON IMPRIMER L'ECRAN GRAPHIQUE
S EQU $
;**********************************
;O DEBUT_GR POSITIONNER FLAG STATUS BYTE Prn Scr
1
MOV STATUS_BYTE,1 ; POSITIONNER LE FLAG
;O AUTORISER LES INTERRUPTIONS
STI ; INTRERRUPTS ENABLED
;----------------------------------
;O INITIALISER DATA SEGMENT
MOV AX,DGROUP
MOV DS,AX ; INI DS
;O INI FLAG ERREUR
MOV FLAG_ERR,0
;O INI ADR PAGE GRAPHIQUE
MOV DX,MODE_CONT
IN AL,DX
;O * SI BIT 7 = 0 DE MODE CONT
AND AL,80H ; TEST BIT 7 DISP MOD CONT PORT
JZ PAGE1 ; WWW JNZ ici JZ pour essais
;O * ALORS INI ADR PAGE AVEC PAGE 0
MOV AX,PAGE_0
MOV ADR_PAGE,AX
JMP SHORT F_INI_PAG
;O * SINON INI AVEC PAGE 1
PAGE1 EQU $
MOV AX,PAGE_1
MOV ADR_PAGE,AX
F_INI_PAG EQU $
;O RESET IMPRIMANTE
XOR DX,DX ; LPT1
MOV AH,01H ; RESET LPT
INT 17H
;O SI ERREUR DE L'IMPRIMANTE AU RETOUR
TEST AH,25H ; =0 si tout OK
JZ S_S
;O ALORS 255 DANS FLAG ERREUR (ET FIN DU SI)
MOV FLAG_ERR,255 ; =ERREUR IMPRIMANTE
JMP FS_S ; SORTIR (SANS MODIF ECRAN)
S_S EQU $
;O SINON
;----------------------------------
;O ENVOYER LINE SPACING A L'IMPRIMANTE (ESC L_S)
;O * ENVOYER ESC
MOV AL,1BH ; ESC
XOR AH,AH ; CHAR DANS AL
XOR DX,DX ; LPT1
INT 17H
;O * SI ERREUR A L'IMPRIMANTE
TEST AH,25H
JZ S_S_S
;O * ALORS 255 DANS FLAG ERREUR
MOV FLAG_ERR,255
S_S_S EQU $
;O * SI FLAG ERR NZ
CMP FLAG_ERR,0
JZ S_S_S2
* ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP SHORT FS_S_S2
* SINON ENVOYER LINE SPAC
S_S_S2 EQU $
MOV AL,LINE_SPA
XOR AH,AH
XOR DX,DX
INT 17H
* SI ERR AU RETOUR
TEST AH,25H
JZ S_S_S2_S
* ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
S_S_S2_S EQU $
FS_S_S2
;----------------------------------
;O INI COMPTEUR DE LIGNE A Y_BYTE
MOV CL,Y_BYTE ; INI DL POUR 344/8 OCTETS
XOR SI,SI ; INI VECTEUR ORIGINE A 0
;O TANT QUE Nb lignes > 0 ET PAS FLAG ERREUR
T_S LABEL NEAR
DEC CL
JNZ $+5
JMP FT_S
CMP FLAG_ERR,0
JZ $+5
JMP FT_S
;O REPETER L'IMPRESSION D'UNE LIGNE DE 8 PIXTELS VERT / ECRAN
PUSH CX ;1 ; SAUVER COMPTEUR Y
PUSH SI ;2 ; SAUVER INDEX ORIGINE LIGNE
;----------------------------------
;O INITIALISER L'IMPRIMANTE POUR X_DOT / LIGNE
;O * ENVOYER ESC
MOV AL,1BH ; ESC
XOR AH,AH ; INDIQUE CHAR DANS AL
XOR DX,DX
INT 17H ; ENVOI A L'IMPRIMANTE
; * SI ERR AU RETOUR
TEST AH,25H ; STATUS RETOUR D'IMPRIMANTE
JZ S_T ; SANS MODIF ECRAN
* ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP FS_T
; * SINON ENVOI MODE IMPRESSION
S_T EQU $
MOV AL,PRT_MODE ; SIMP DOUB QUAD DENSITE...
XOR AH,AH
XOR DX,DX
INT 17H
;O * SI ERR AU RETOUR
TEST AH,25H
JZ S_S_T
;O * ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP SHORT FS_S_T
;O * SINON ENVOYER n1
S_S_T EQU $
MOV AL,X_DOT -512 ; www SI NB PIX < 768=256*3
XOR AH,AH
XOR DX,DX
INT 17H
;O * SI ERR AU RETOUR
TEST AH,25H
JZ S_S_S_T
ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP SHORT FS_S_S_T
;O * SINON ENVOYER n2
S_S_S_T EQU $
MOV AL,2 ; www 512 DOTS = 256*2
XOR AH,AH
XOR DX,DX
INT 17H
;O * SI ERR AU RETOUR
TEST AH,25H
JZ FS_S_S_S_T
;O * ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
FS_S_S_S_T EQU $
FS_S_S_T EQU $
FS_S_T EQU $
FS_T EQU $
;----------------------------------
;O INI LE NB DE FOIS QU'IL FAUT ENVOYER 8 OCTETS/LIGNE
MOV CL,BYTE PTR X_BYTE +1 ; POUR X_BYTE*8 OCTETS=720
XOR SI,SI ; ORIGINE=0
;----------------------------------
;O TANT QUE NbCol > 0 ET PAS FLAG ERREUR
T_T EQU $
DEC CL
JZ FT_T
CMP FLAG_ERR,0
JZ $+5
JMP FT_T_S
;O REPETER L'IMPRESSION DE 8x8 PIXTELS D'ECRAN
;----------------------------------
PUSH CX ;3 ; COMPTEUR X
PUSH SI ;4 ; INDEX COLONNE MODULO 8
; **FORMER 8 OCTETS DANS BUFFER**
; INITIALISER LES SEGMENTS SOURCE
MOV AX,ADR_PAGE ; ORG PAGE
MOV ES,AX
;O SHIFTER LES BITS DANS BUFFER
MOV CX,2
SHIFT EQU $
PUSH CX ; 5
PUSH SI ; 6
MOV CX,4 ; 4 BITS ROTATIONS
SHIFT1 EQU $
MOV AL,ES:[SI]
RCL AL,1 ; BIT DANS CARRY
RCL BUFFER,1 ; CARRY DANS BUFFER
RCL AL,1
RCL BUFFER +1,1
RCL AL,1
RCL BUFFER +2,1
RCL AL,1
RCL BUFFER +3,1
RCL AL,1
RCL BUFFER +4,1
RCL AL,1
RCL BUFFER +5,1
RCL AL,1
RCL BUFFER +6,1
RCL AL,1
RCL BUFFER +7,1
ADD SI,2000H
LOOP SHIFT1
POP SI ; 6
ADD SI,X_BYTE ; +90 OCTETS POUR HERCULE
POP CX ; 5
LOOP SHIFT ; CX-1
;O JUSQU'A 8 OCTETS
MOV CX,8 ; COMPTEUR = 8
XOR SI,SI ; INDEX = 0
;O ET TANT QUE PAS FLAG ERREUR
T_T_T_S EQU $
CMP FLAG_ERR,0
JNZ FT_T_T_S
;O REPETER L'ENVOI D'UN OCTET A L'IMPRIMANTE
MOV AL,BUFFER[SI]
XOR AH,AH
XOR DX,DX
INT 17H
;O SI ERREUR
TEST AH,25H ; DIRECT AU RETOUR
JZ CONTINUER
;O ALORS 255 DANS FLAG ERREUR
MOV FLAG_ERR,255
CONTINUER EQU $
LOOP T_T_T_S
FT_T_T_S EQU $
; FIN DE L'IMPRESSION DE 8x8 PIXTELS D'ECRAN
;----------------------------------
POP SI ;-4 ; INDEX COLONNE MODULO 8
INC SI ; 8*8 PIXTELS SUIVANTS / LIGNE
POP CX ;-3 ; DU T Q PAS FIN 720/8 COLONNES
JMP T_T_S
FT_T_S EQU $
;----------------------------------
;O ENVOYER LINE FEED
MOV AL,0DH
XOR AH,AH
XOR DX,DX
INT 17H
;O SI ERR AU RETOUR
TEST AH,25H
JZ NLINE
; ALORS ERR=255
MOV FLAG_ERR,255
NLINE EQU $
POP SI ;-2 ; RECUPERE INDEX DE 1ere COLONNE
ADD SI,90*8 ; 8 'TRAMES' SUIVANTES
POP CX ;-1 ; DU T Q PAS FIN 344/8 LIGNES
JMP T_S
FT_S LABEL NEAR
;----------------------------------
;O SI PAS D'ERREUR:
CMP FLAG_ERR,0
JNZ FS_S
;O IMPRIMER LA DEMI LIGNE DU BAS WWW A FAIRE
;
;WWWFS_S LABEL NEAR
;----------------------------------
;O FS_S TRANSFERER FLAG ERREUR DANS STATUS_BYTE (VOIR BIOS)
FS_S LABEL NEAR
MOV AL,FLAG_ERR ; 0=OK FINI PS 255=ERREUR
MOV BX,XXDATA ; S'IL N'Y A PAS EU D'ERREUR = 0
MOV DS,BX ; S'IL Y A EU ERREUR = 255
MOV STATUS_BYTE,AL
;**********************************
;O EXIT (FIN DE L'INTERRUPTION)
FS LABEL NEAR
IRET ; FIN
;----------------------------------
CODE ENDS
;----------------------------------
STACK SEGMENT STACK 'STACK'
DW 64 DUP(?)
STACK_BASE LABEL WORD
STACK ENDS
;----------------------------------
END INI
Style Basic
modifierStyles C
modifier- /* , C, C++, C#, PHP, Java, Javascript, CSS */
- // C++, C#, PHP, Java, Javascript
Fichiers de tests unitaires de la fonction cpp_() dans mkd
Style Fortran
modifierFichier STATS.FOR Encodage ASCII, Fortran 77, pour mkd 2013 avec Code de sélection en 3ème colonne.
Voir aussi fichiers pour Fortran 90 et ultérieurs avec option -l
STATS.FOR
C O********************************************************************
C
C O STATS.FOR
C
C O Calculates simple statistics (minimum, maximum, mean, median,
C O variance, and standard deviation) of up to 50 values.
C
C O Reads one value at a time from unit 5. Echoes values and
C O writes results to unit 6.
C
C O All calculations are done in single precision.
C
C
C O*********************************************************************
DIMENSION DAT(50)
OPEN(5,FILE=' ')
N=0
DO 10 I=1,50
READ(5,99999,END=20) DAT(I)
N=I
10 CONTINUE
C O Too many values. Write error message and die.
WRITE(6,99998) N
STOP
C O Test to see if there's more than one value. We don't want to divide
C O by zero.
20 IF(N.LE.1) THEN
C O Too few values. Print message and die.
WRITE(6,99997)
ELSE
C O Echo input values to output.
WRITE(6,99996)
WRITE(6,99995) (DAT(I),I=1,N)
C O Calculate mean, standard deviation, and median.
CALL MEAN (DAT,N,DMEAN)
CALL STDEV (DAT,N,DMEAN,DSTDEV,DSTVAR)
CALL MEDIAN (DAT,N,DMEDN,DMIN,DMAX)
WRITE(6,99994) N,DMEAN,DMIN,DMAX,DMEDN,DSTVAR,DSTDEV
ENDIF
STOP
99999 FORMAT(E14.6)
99998 FORMAT('0 ********STAT: TOO MANY VALUES-- ',I5)
99997 FORMAT('0 ********STAT: TOO FEW VALUES (1 OR LESS) ')
99996 FORMAT(//,10X,
+' ******************SAMPLE DATA VALUES*****************'//)
99995 FORMAT(5(1X,1PE14.6))
99994 FORMAT(///,10X,
+' ******************SAMPLE STATISTICS******************',//,
+15X,' Sample size = ',I5,/,
+15X,' Mean = ',1PE14.6,/,
+15X,' Minimum = ',E14.6,/,
+15X,' Maximum = ',E14.6,/
+15X,' Median = ',E14.6,/
+15X,' Variance = ',E14.6,/
+15X,' St deviation= ',E14.6////)
END
C O Calculate the mean (XMEAN) of the N values in array X.
SUBROUTINE MEAN (X,N,XMEAN)
DIMENSION X(N)
SUM=0.0
DO 10 I=1,N
SUM=SUM+X(I)
10 CONTINUE
XMEAN=SUM/FLOAT(N)
RETURN
END
C O Calculate the standard deviation (XSTDEV) and variance (XVAR)
C O of the N values in X using the mean (XMEAN).
C O This divides by zero when N = 1.
SUBROUTINE STDEV (X,N,XMEAN,XSTDEV,XVAR)
DIMENSION X(N)
SUMSQ=0.0
DO 10 I=1,N
XDIFF=X(I)-XMEAN
SUMSQ=SUMSQ+XDIFF*XDIFF
10 CONTINUE
XVAR=SUMSQ/FLOAT(N-1)
XSTDEV=SQRT(XVAR)
RETURN
END
C O Calculate the median (XMEDN), minimum (XMIN), and maximum (XMAX) of
C O the N values in X.
C O MEDIAN sorts the array and then calculates the median value.
SUBROUTINE MEDIAN (X,N,XMEDN,XMIN,XMAX)
DIMENSION X(N)
CALL SORT (X,N)
IF(MOD(N,2).EQ.0) THEN
K=N/2
XMEDN=(X(K)+X(K+1))/2.0
ELSE
K=(N+1)/2
XMEDN=X(K)
ENDIF
XMIN=X(1)
XMAX=X(N)
END
C O Sort the N values in array X. SORT uses a bubble sort
C O that quits when no values were exchanged on the last pass.
C O Each pass goes from the first element to where the last
C O exchange occurred on the previous pass.
SUBROUTINE SORT (X,N)
DIMENSION X(N)
IBND=N
20 IXCH=0
DO 100 J=1,IBND-1
IF(X(J).GT.X(J+1))THEN
TEMP=X(J)
X(J)=X(J+1)
X(J+1)=TEMP
IXCH=J
ENDIF
100 CONTINUE
IF (IXCH.EQ.0) RETURN
IBND=IXCH
GO TO 20
END
Style Pascal
modifierFichier TRINOMS.PAS Encodage
TRINOMS.PAS
.
(*D
**************************************************************************
* *
* PROJET: Tri de noms *
* *
* Titre : Trinoms Prefixe global: .... *
* *
* Programme de tri de trois noms par ordre alphabetique. *
* Mises a
Jour du Module: *
* 26/11/90 par JPL *
* *
**************************************************************************
* PROGRAMMATION : *
* *
* Dossier de conception : cours de Monsieur Jean BARRIER *
* Environnement : DOS 3.3, Turbo Pascal 5 *
* Sauvegarde : B:\PF\TRINOMS.PAS *
* *
**************************************************************************
* *
* VERSION : Date Auteur Commentaire *
* ---------------------------------------------------------------------- *
* 1.0 26/11/90 JPL Version d'essai et d'evaluation de turbo 5 *
**************************************************************************
* STRUCTURE DU MODULE : *
* *
* 1: Environnement : *
* 1.1 : Variables Publiques. *
* 1.2 : Variables Globales Privees. *
* *
* 2: Programme principal: test du module *
* *
**************************************************************************
*)
{D
**************************************************************************
* *
* 1.1 : Variables Publiques. *
* *
**************************************************************************
}
USES Crt; {D}
{H
**************************************************************************
* *
* 1.2 : Variables Globales Privees. *
* *
**************************************************************************
}
VAR {H}
Nom1 : STRING; {H}
Nom2 : STRING; {H}
Nom3 : STRING; {H}
(*O
**************************************************************************
* * 2: Programme principal: test du module *
* * Fonction : *
* * Lire 3 noms commencant par des lettres differentes frappees *
* * au clavier, puis les afficher
l'ecran, dans l'ordre *
* * alphabetique *
* * Entrez : 3 noms au clavier. *
* * Sortie : affichage
l'ecran, dans l'ordre alphabetique *
**************************************************************************
}
(*O Trinoms *)
BEGIN {S Trinoms }
(*O afficher "entrer un nom : " *)
Write( 'entrer un nom : ' );
(*O lire Nom1 *)
ReadLn( Nom1 );
(*O afficher "encore un : " *)
Write( 'encore un : ' );
(*O lire Nom2 *)
ReadLn( Nom2 );
(*O afficher "un dernier : " *)
Write( 'un dernier : ' );
(*O lire Nom3 *)
ReadLn( Nom3 );
(*O SI Nom1 < Nom2 et Nom1 < Nom3 *)
IF ( Nom1 < Nom2 ) AND ( Nom1 < Nom3 )
(*O ALORS : (Nom1 est le premier) *)
THEN
BEGIN {S}
(*O afficher Nom1 *)
Write( Nom1, ' ' );
(*P * * Variante 1 du SI ALORS SINON
utiliser avec moderation : *)
(*O SI Nom2 < Nom3 ALORS afficher Nom2 puis Nom3 SINON afficher Nom3 puis Nom2 *)
IF ( Nom2 < Nom3 ) THEN Writeln( Nom2, ' ', Nom3 ) ELSE Writeln( Nom3, ' ', Nom2 );
END {S}
(*O SINON : (Nom1 n'est pas le premier....) *)
ELSE
BEGIN {S}
(*O SI Nom2 < Nom3 *)
IF ( Nom2 < Nom3 )
(*O ALORS : *)
THEN
BEGIN {S then Nom2 < Nom3 }
(*O afficher Nom2 *)
Write( Nom2, ' ' );
(*P * * Variante 2 du SI ALORS SINON
a eviter : *)
(*O SI Nom1 < Nom3 *)
IF ( Nom1 < Nom3 )
(*O ALORS afficher Nom1 puis Nom3 *)
THEN Writeln( Nom1 , ' ', Nom3)
(*O SINON afficher Nom3 puis Nom1 *)
ELSE Writeln( Nom3, ' ', Nom1 )
(*O FinSI *)
; {www Notez la position du ; }
END {S then Nom2 < Nom3 }
(*O SINON : *)
ELSE
BEGIN {S else Nom2 < Nom3 }
(*O afficher Nom3 *)
Write( Nom3, ' ' );
(*P * * Variante 3 du SI ALORS SINON
utiliser de preference : *)
(*O SI Nom1 < Nom2 *)
IF ( Nom1 < Nom2 )
(*O ALORS afficher Nom1 puis Nom2 *)
THEN
BEGIN {S}
writeln( Nom1, ' ', Nom2 );
END {S}
(*O SINON afficher Nom2 puis Nom1 *)
ELSE
BEGIN {S}
Writeln( Nom2, ' ', Nom1 );
(*O FinSI *)
END; {S}
(*O FinSI Nom2 < Nom3 *)
END; {S else Nom2 < Nom3 }
(*O FinSI (Nom1 est le premier) *)
END; {S}
(*O Fin Trinoms *)
END. {S Trinoms }
Style Shell
modifierFichier de test shell ESSAI.SH
ESSAI.SH
#T ceci est un essai pour visualiser l'utilisation de mkdoc avec option S \
echo le doublet 'antislatch NL' ne prolonge pas le commentaire #
# ceci est un commentaire
\# ceci n'est pas un commentaire. #
EN VOICI LA PREUVE: par 'mkd -sta ** essais.sh' #