target=variable io if loop function vector1D vector2D file procedure_math procedure_calling procedure_loop procedure_simplest procedure

#if defined TARGET_variable
#define TARGET variable
#define TARGET_FR variables
#endif

#if defined TARGET_io
#define TARGET io
#define TARGET_FR Entr�es-Sorties
#endif

#if defined TARGET_if
#define TARGET if
#define TARGET_FR conditionnelles
#endif

#if defined TARGET_loop
#define TARGET loop
#define TARGET_FR boucles
#endif

#if defined TARGET_function
#define TARGET function
#define TARGET_FR fonctions
#endif

#if defined TARGET_vector2D
#define TARGET vector2D
#define TARGET_FR tableaux 2D
#endif

#if defined TARGET_file
#define TARGET file
#define TARGET_FR Fichiers et flux
#endif

#if defined TARGET_vector1D
#define TARGET vector1D
#define TARGET_FR tableaux
#endif

#if defined TARGET_procedure_math
#define TARGET procedure_math
#define TARGET_FR Proc�dures et op�rations math�matiques
#endif

#if defined TARGET_procedure_loop
#define TARGET procedure_loop
#define TARGET_FR Proc�dures et boucles
#endif

#if defined TARGET_procedure_calling
#define TARGET procedure_calling
#define TARGET_FR Proc�dures appelant une proc�dure
#endif

#if defined TARGET_procedure_simplest
#define TARGET procedure_simplest
#define TARGET_FR Proc�dures simples
#endif

#if defined TARGET_procedure
#define TARGET procedure
#define TARGET_FR Proc�dures
#endif


\title{Compr�hension de programmes C++ (TARGET_FR)}
\description{Compr�hension de programmes C++ (TARGET_FR)}
\language{fr}
\niveau{U1}
\author{Nicolas M. Thi�ry}
\email{Nicolas.Thiery@u-psud.fr}
\format{html}

\integer{static=0}

\if{\static == 0}{
    % Initialization of strings that will be randomly substituted
    \integer{CI1=random(1..3)}
    \integer{CI2=random(1..3)}

    \text{I=shuffle(i,j,k,n)}
    \text{I1=item(1,\I)}
    \text{I2=item(2,\I)}
    \text{I3=item(3,\I)}
    \text{I4=item(4,\I)}

    \text{D=shuffle(x,y,z)}
    \text{D1=item(1,\D)}
    \text{D2=item(2,\D)}
    \text{D3=item(3,\D)}

    \text{F1=f}
}

\text{module_data=modules/devel/nthiery/test~coding~readingCppPrograms.fr/data/}
\text{programs=wims(lookup TARGET in data/static/index)}
\text{program=randomitem(\programs)}

\if{\static == 1}{
    \text{code=wims(record 0 of data/static/\program)}
}{
    \text{code=wims(record 0 of data/\program)}
    \text{code=wims(replace CI1 by \CI1 in \code)}
    \text{code=wims(replace CI2 by \CI2 in \code)}
    \text{code=wims(replace I1 by \I1 in \code)}
    \text{code=wims(replace I2 by \I2 in \code)}
    \text{code=wims(replace I3 by \I3 in \code)}
    \text{code=wims(replace I4 by \I4 in \code)}
}

\integer{height=wims(linecnt \code)+3}
\integer{heightpixels=10*\height}

\if{_input.cpp isin \program}{
  \text{answerstyle=text}
  \text{answer=wims(lines2words wims(record 0 of data/static/\program.answer))}
}{
\text{answerstyle=symtext}
\if{\static == 1}{
  \text{answer=wims(lines2words wims(record 0 of data/static/\program.answer))}
}{
    \text{answer=wims(lines2words wims(exec secure_exec data/tmpdir compile_and_run))}
}
}

\css{
<script type="text/javascript" src="scripts/js/edit_area/edit_area_full.js"></script>
<script type="text/javascript">
                editAreaLoader.init({
                        id: "wims_show"
                        ,start_highlight: true
                        ,allow_toggle: false
			,allow_resize: true
                        ,language: "fr"
                        ,syntax: "cpp"
			,min_height: 200
                        ,min_width: 300
                        ,is_editable:false
                        ,toolbar: ""
                        ,show_line_colors: false
                });
        </script>
}

\statement{
\if{_input.cpp isin \program}{
<p>Quel nombre entre 0 et 99 devrait saisir l'utilisateur pour que le programme C++ suivant affiche 42?</p>
}{
<p>Quel affichage exact produit le programme C++ suivant?</p>
<p>Les espaces, tabulations et sauts de lignes dans la r�ponse sont consid�r�s comme �quivalents.</p>
}

<textarea id="wims_show" cols="80" rows="\height" name="wims_show" readonly="readonly">\special{tabs2lines \code}</textarea>
}

\answer{}{\answer}{type=\answerstyle}