#!/bin/sh
### example: mtable.sh "8 8 8 8 8" > table8x5.html
### joker : *
###
### tables
### l-2.dat : 1 - 10^7
### l-3.dat : 10^7 - 2.10^7
MODEL="$1"
DATAS="l-2.dat l-3.dat"
MAXI="2×107" ## HTML format
AWK=gawk
cat $DATAS | $AWK -v maxi="$MAXI" -v p="$MODEL" '
function writetable1( j) {
print "
"
print ""
for(j=0; j"
if(current< totalelements)
writetable2()
print ""
}
print "
"
}
function tetetable() {
print "rg | n | P(n) |
"
}
function writetable2( k) {
print ""
if(current< totalelements) tetetable();
for(k=0; k" (current+1) " | " tabrang[current] " | " table[current] " | "
print "" (current+1) " | " tabrang[current] " | " table[current] " |
"
current++
}
print "
"
}
function entete() {
print ""
print ""
print " "
print " Table de n-uples de nombres pratiques. Différences : " model ""
print " "
print " "
print " "
print " "
print " "
print " "
print " "
print " "
print " "
print ""
print "n-uples de nombres pratiques
"
print "
"
print ""
print "Modèle (différences entre nombres pratiques consécutifs) : " model
print "
"
print "Chaque ligne donne dans trois colonnes adjacentes le rang du n-uple, le rang du plus petit élément du n-uple puis cet élément"
print "
Les nombres pratiques sont extraits de la table de 1 à " maxi
print "
"
}
BEGIN {
n=0; k=1; lignes=0;
pattern=0;
tcols= 4
tlignes=16
}
(pattern==0) {
gsub(/[\t ]+$/,"",p);
gsub(/^[\t ]+/,"",p);
np = split(p, pa, /[\t ]+/);
pattern=1;
}
(NF==2 && pattern==1) {
lignes++;
tab[np+1] = $2;
test=1
for(i=1;i<=np && test==1;i++) {
if( tab[i+1]-tab[i]!=pa[i]) test=0;
}
if(test==1) {
table[n]=tab[1]
tabrang[n] = $1-np
n++
}
for(i=1;i<=np;i++) tab[i]=tab[i+1];
}
END {
model = p
totalelements = n
nelttable = tcols*tlignes
u=n%nelttable
ntables = (n-u)/nelttable;
if(u !=0) ntables += 1;
current=0;
entete()
for(it=0;it
"
print " | Accueil | Nombres pratiques | Bloc notes | Graphes | Jeux | Arithmétique | Divers | Lycée | Liens"
print "
"
print "Jean-Paul Davalan 2002"
print "
"
print"\n"
}'