Vous pouvez copier (copy & paste) les algos en Language Machine et les faire fonctioner dans l'Applet Java du simulateur de LMC donne sur la page Web du cours; soit celle de Petter Higginson ou soit celle de 101computing. Dans les deux applets il faut remplacer: IN par INP BR par BRA BZ par BRZ BP par BRP STO par STA ATTENTION : l'instruction STA telle qu'ell a ete definie dans le cours n'EXISTE PAS dans ces deux applets (ni les instructions MUL ET DIV) ! L'instruction STA, dans ces deux applets, est l'instruction STO vu en cours. ================= Final IFT1215 H09 ================= ------------ Question I.1 ------------ INP STA inta INP STA intb loop LDA inta BRZ end SUB intb STA inta BRP cont end LDA res OUT HLT cont LDA res ADD one STA res BRA loop inta DAT 0 intb DAT 0 res DAT 0 one DAT 1 ------------ Question I.2 ------------ INP STA na INP STA nb SUB na BRZ end loop LDA na STA rst SUB nb BRP l1 BRA end l1 STA na BRP loop end LDA rst OUT HLT rst DAT 0 nb DAT 0 na DAT 0 ------------ Question I.3 ------------ On ne peut simuler ce programme machine a cause de l'instruction STA que l'on ajoute au jeux d'instruction du LMC ded base et que l'on a definit en cours et qui n'a pas ete implemente dans les Applets de Petter Higginson ou soit celle de 101computing telle qu'il a ete presente en cours. INP STA srcdeb INP STO srcend INP STO desdeb INP STO desend loop LDA srcdeb STA read LDA desdeb STA writ read LDA nul writ STO nul LDA srcdeb ADD one STO srcdeb LDA desdeb ADD one STO desdeb LDA srcend SUB srcdeb BRZ end BRA loop end HLT srcdeb DAT 0 srcend DAT 0 desdeb DAT 0 desend DAT 0 one DAT 1 nul DAT 0 ------------- Question II.1 ------------- #! /bin/bash # ChgtNameSrcDest.sh script for NameImg in *${1}.pgm do ImgWhitoutExt=${NameImg%_*} if [ ! -f ${ImgWhitoutExt}_${2}.pgm ]; then mv $NameImg ${ImgWhitoutExt}_${2}.pgm fi done #! /bin/bash # ChgtNameSrcDest2.sh script for NameImg in *${1}.pgm ; do [ ! -f ${NameImg%_*}_${2}.pgm ] && mv $NameImg ${NameImg%_*}_${2}.pgm; done ------------- Question II.2 ------------- #! /bin/bash # FindBadScore.sh script #Parametres BelowVal=`echo ${2}*100 | bc -l | cut -d "." -f 1` #Nettoyage if [ -f tmp1.dat ] then rm tmp1.dat fi #Boucle cat ${1} | while read line do val=`echo $line | cut -d " " -f 1` newval=`echo $val*100 | bc -l | cut -d "." -f 1` if [ $newval -lt $BelowVal ] then echo $line >> tmp1.dat fi done #Afichage sort tmp1.dat ------------- Question II.2 ------------- #! /bin/bash # FindBadScore2.sh script cat ${1} | sort | while read line; do val=`echo $line | cut -d " " -f 1` if [ `echo $val \< ${2} | bc` -gt 0 ]; then echo $line; fi; done