Salut,
je suis debutante dans la programmation shell et j ai essaye de creer un fichier qui pourra etre lu par un autre programme(smodels, dlv en programmation logique). En faite avec mon script j´ essaye de generer des nombres aleatoires que je sauvegarde dans le fichier "db.lp". Le script contient contient a peu pres ceci:
echo "Geben Sie bitte die Anzahl, die zu Ziehenden Fragen"
echo -n "Anzahl Fragen: "
read anz_f
if [ $anz_f == 0 ] || [ -z $anz_f ];
then
echo "Sie haben keine gültige Nummer eingegeben"
else
echo "% ANFORDERUNG 1: Anzahl der zu ziehenden Fragen:" >> db.lp
echo "#const anz_gez = $anz_f" >> db.lp
echo "" >> db.lp
fi
while [ `cat tmp | wc -l` -lt $MAX_FRAGEN_THEMA ]; do
for i in $(seq 0 $MAX_FRAGEN_THEMA ); do
echo -n "fragen(${fragen[$((RANDOM%num_fragen))]}, " >> tmp
echo -n "${themen[$((RANDOM%num_themen))]}, " >> tmp
echo "${grad[$((RANDOM%num_grad))]})." >> tmp
i=$[ $i + 1 ];
done
sort tmp | uniq > tmp
done
cat tmp | sort -n >> db.lp
fragen, themen, grad sont des champs que genere avant. En ce qui concerne le code je suis debutante surement il y a des meilleures solutions.
Le fichier "db.lp" contient:
% ANFORDERUNG 1: Anzahl der zu ziehenden Fragen:
#const anz_gez = 5
thema(thA).
fragen(f1, thB, schwer).
fragen(f10, thA, mittle).
fragen(f10, thC, leicht).
J ecris en allemand, mais la n est pas le probleme. Donc j essaye de generer un certain nombre aleatoire de question, par exemple "f1", ayant pour theme "thB" et pour difficulte "difficile".
Pour etre lu j ecris la commande "lparse db.lp fichier.lp | smodels". Mais malheureusement le parser ne reconnait pas #const, lorsque j ecrit a la main il n y a pas de probleme.
Est ce qu´il serait possible que #const generer par le script soit different?
Merci d avance pour vos aides.
jony
# heu
Posté par fabien . Évalué à 5.
ben pour ceux qui n'y comprennent rien comme moi, si, c'est une partie du probleme.
et encore t'as le la change j'ai deviné ce que veux dire "themen" et je subodore que "fragen" veux dire phrase ... parceque les nom de variable en allemend c'est sympas :)
si tu ne vois pas de quoi je veux parler, imagine ton script avec tu chinois...
bon, moi je laisse la main à qqun de plus motivé, ou qui connais la langue allemande...
[^] # heum
Posté par jony . Évalué à 1.
[^] # Re: heu
Posté par Obsidian . Évalué à 2.
# code Traduit
Posté par jony . Évalué à 1.
echo "Donnez un chiffre"
echo -n "nombre de question: "
read nombre_de_question
if [ $nombre_de_question == 0 ] || [ -z $nombre_de_question ];
then
echo "Erreur, donner un chiffre"
else
echo "Nombre de question a choisir" >> db.lp
echo "#const nombre_question_a_choisir = $nombre_de_question " >> db.lp
echo "" >> db.lp
fi
while [ `cat tmp | wc -l` -lt $MAX_QUESTION_THEME ]; do
for i in $(seq 0 $MAX_MAX_QUESTION_THEME ); do
echo -n "question(${question[$((RANDOM%nombre_de_question))]}, " >> tmp
echo -n "${theme[$((RANDOM%nombre_de_theme))]}, " >> tmp
echo "${difficulte[$((RANDOM%nombre_de_difficulte))]})." >> tmp
i=$[ $i + 1 ];
done
sort tmp | uniq > tmp
done
cat tmp | sort -n >> db.lp
Le fichier "db.lp" contient:
% nombre de question::
#const nombre_question_a_choisir = 5
theme(thA).
question(f1, thB, difficile).
question(f10, thA, moin_difficile).
question(f10, thC, facile).
question, theme, difficulte sont des champs comme je l ai deja ecrit representant les questions, les themes et les difficulte. Je n ai pas donne tout le code, mais si c est important pas de probleme.
[^] # Re: code Traduit
Posté par jony . Évalué à 1.
Merci pour vos reactions
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.