css-le-botlan/Y/Ada-S2/Programmes/exos-preparatoires/mission2.html
Mythrann d6ed37ab47 lol
2021-02-04 20:11:33 +01:00

95 rindas
No EOL
13 KiB
HTML

<!DOCTYPE html>
<!-- Page generated by OCaml with Ocsigen.
See http://ocsigen.org/ and http://caml.inria.fr/ for information -->
<html class="ada2" lang="fr" id="h" xmlns="http://www.w3.org/1999/xhtml"><head><title>mission2.adb</title><meta content="text/html; charset=utf-8" http-equiv="content-type"/><link media="all" href="../../../ystyle.css" rel="stylesheet"/><script src="../../../Scripts/yfold.js"></script></head><body><div class="header" id="header"><h1 id="title">mission2.adb</h1></div><main><code class="page block"><span class="kw">with</span> <span class="ident">Gada.Text_IO</span> ;<span class="eols">
</span><span class="kw">procedure</span> <span class="fname">Mission2</span> <span class="kw">is</span><span class="eols">
</span> <span class="kw">package</span> <span class="fname">Txt</span> <span class="kw">renames</span> <span class="ident">Gada.Text_IO</span> ;<span class="eols">
</span> <span class="kw">type</span> <span class="type">T_Intervalle</span> <span class="kw">is</span> <span class="kw">record</span>
<span class="ident">Inf</span> : <span class="type">Float</span> ;
<span class="ident">Sup</span> : <span class="type">Float</span> ;
<span class="kw">end</span> <span class="kw">record</span> ;
<span class="kw">function</span> <span class="fname">Intervalle_Image</span>(<span class="ident">A</span> : <span class="type">T_Intervalle</span>) <span class="kw">return</span> <span class="type">String</span> <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">return</span> <span class="string">&quot;[&quot;</span> &amp; <span class="ident">Integer</span>'<span class="ident">Image</span>(<span class="ident">Integer</span>(<span class="ident">A.Inf</span>)) &amp; <span class="string">&quot;,&quot;</span> &amp; <span class="ident">Integer</span>'<span class="ident">Image</span>(<span class="ident">Integer</span>(<span class="ident">A.Sup</span>)) &amp; <span class="string">&quot;]&quot;</span> ;
<span class="kw">end</span> <span class="fname">Intervalle_Image</span> ;<span class="eols">
</span> <span class="comment">-- A est inclus dans B &lt;=&gt; les bornes de A sont comprises entre les bornes de B.
</span> <span class="kw">function</span> <span class="fname">Est_Inclus</span> (<span class="ident">A</span> : <span class="type">T_Intervalle</span> ; <span class="ident">B</span> : <span class="type">T_Intervalle</span>) <span class="kw">return</span> <span class="type">Boolean</span> <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">return</span> <span class="ident">A.Inf</span> &gt;= <span class="ident">B.Inf</span> <span class="kw">and</span> <span class="ident">A.Sup</span> &lt;= <span class="ident">B.Sup</span> ;
<span class="kw">end</span> <span class="fname">Est_Inclus</span> ;<span class="eols">
</span> <span class="comment">-- A et B disjoints &lt;=&gt; A est situé avant B ou A est situé après B.
</span> <span class="kw">function</span> <span class="fname">Disjoints</span> (<span class="ident">A</span> : <span class="type">T_Intervalle</span> ; <span class="ident">B</span> : <span class="type">T_Intervalle</span>) <span class="kw">return</span> <span class="type">Boolean</span> <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">return</span> <span class="ident">A.Sup</span> &lt; <span class="ident">B.Inf</span> <span class="kw">or</span> <span class="ident">A.Inf</span> &gt; <span class="ident">B.Sup</span> ;
<span class="kw">end</span> <span class="fname">Disjoints</span> ;<span class="eols">
</span> <span class="kw">procedure</span> <span class="fname">Afficher_Relation</span> (<span class="ident">A</span> : <span class="type">T_Intervalle</span> ; <span class="ident">B</span> : <span class="type">T_Intervalle</span>) <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">if</span> <span class="ident">Est_Inclus</span>(<span class="ident">A</span>, <span class="ident">B</span>) <span class="kw">then</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Intervalle_Image</span>(<span class="ident">A</span>) &amp; <span class="string">&quot; est inclus dans &quot;</span> &amp; <span class="ident">Intervalle_Image</span>(<span class="ident">B</span>)) ;
<span class="kw">elsif</span> <span class="ident">Est_Inclus</span>(<span class="ident">B</span>,<span class="ident">A</span>) <span class="kw">then</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Intervalle_Image</span>(<span class="ident">B</span>) &amp; <span class="string">&quot; est inclus dans &quot;</span> &amp; <span class="ident">Intervalle_Image</span>(<span class="ident">A</span>)) ;
<span class="kw">elsif</span> <span class="ident">Disjoints</span>(<span class="ident">A</span>,<span class="ident">B</span>) <span class="kw">then</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Intervalle_Image</span>(<span class="ident">A</span>) &amp; <span class="string">&quot; et &quot;</span> &amp; <span class="ident">Intervalle_Image</span>(<span class="ident">B</span>) &amp; <span class="string">&quot; sont disjoints.&quot;</span>) ;
<span class="kw">else</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Intervalle_Image</span>(<span class="ident">A</span>) &amp; <span class="string">&quot; et &quot;</span> &amp; <span class="ident">Intervalle_Image</span>(<span class="ident">B</span>) &amp; <span class="string">&quot; ne sont pas disjoints.&quot;</span>) ;
<span class="kw">end</span> <span class="kw">if</span> ;
<span class="kw">end</span> <span class="fname">Afficher_Relation</span> ;<span class="eols">
</span> <span class="kw">type</span> <span class="type">T_Prod</span> <span class="kw">is</span> <span class="kw">record</span>
<span class="ident">Gauche</span> : <span class="type">T_Intervalle</span> ;
<span class="ident">Droite</span> : <span class="type">T_Intervalle</span> ;
<span class="kw">end</span> <span class="kw">record</span> ;
<span class="kw">function</span> <span class="fname">Prod_Image</span>(<span class="ident">A</span> : <span class="type">T_Prod</span>) <span class="kw">return</span> <span class="type">String</span> <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">return</span> <span class="ident">Intervalle_Image</span>(<span class="ident">A.Gauche</span>) &amp; <span class="string">&quot; x &quot;</span> &amp; <span class="ident">Intervalle_Image</span>(<span class="ident">A.Droite</span>) ;
<span class="kw">end</span> <span class="fname">Prod_Image</span> ;
<span class="comment">-- A1xA2 est inclus dans B1xB2 &lt;=&gt; A1 inclus dans B1 et A2 inclus dans B2
</span> <span class="kw">function</span> <span class="fname">Prod_Est_Inclus</span> (<span class="ident">A</span> : <span class="type">T_Prod</span> ; <span class="ident">B</span> : <span class="type">T_Prod</span>) <span class="kw">return</span> <span class="type">Boolean</span> <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">return</span> <span class="ident">Est_Inclus</span> (<span class="ident">A.Gauche</span>, <span class="ident">B.Gauche</span>) <span class="kw">and</span> <span class="ident">Est_Inclus</span>(<span class="ident">A.Droite</span>, <span class="ident">B.Droite</span>) ;
<span class="kw">end</span> <span class="fname">Prod_Est_Inclus</span> ;<span class="eols">
</span> <span class="comment">-- A1xA2 disjoint de B1xB2 &lt;=&gt; A1 disjoint de B1 ou A2 disjoint de B2
</span> <span class="kw">function</span> <span class="fname">Prod_Disjoints</span> (<span class="ident">A</span> : <span class="type">T_Prod</span> ; <span class="ident">B</span> : <span class="type">T_Prod</span>) <span class="kw">return</span> <span class="type">Boolean</span> <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">return</span> <span class="ident">Disjoints</span>(<span class="ident">A.Gauche</span>, <span class="ident">B.Gauche</span>) <span class="kw">or</span> <span class="ident">Disjoints</span>(<span class="ident">A.Droite</span>, <span class="ident">B.Droite</span>) ;
<span class="kw">end</span> <span class="fname">Prod_Disjoints</span> ;<span class="eols">
</span> <span class="kw">procedure</span> <span class="fname">Prod_Afficher_Relation</span> (<span class="ident">A</span> : <span class="type">T_Prod</span> ; <span class="ident">B</span> : <span class="type">T_Prod</span>) <span class="kw">is</span>
<span class="kw">begin</span>
<span class="kw">if</span> <span class="ident">Prod_Est_Inclus</span>(<span class="ident">A</span>, <span class="ident">B</span>) <span class="kw">then</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Prod_Image</span>(<span class="ident">A</span>) &amp; <span class="string">&quot; est inclus dans &quot;</span> &amp; <span class="ident">Prod_Image</span>(<span class="ident">B</span>)) ;
<span class="kw">elsif</span> <span class="ident">Prod_Est_Inclus</span>(<span class="ident">B</span>,<span class="ident">A</span>) <span class="kw">then</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Prod_Image</span>(<span class="ident">B</span>) &amp; <span class="string">&quot; est inclus dans &quot;</span> &amp; <span class="ident">Prod_Image</span>(<span class="ident">A</span>)) ;
<span class="kw">elsif</span> <span class="ident">Prod_Disjoints</span>(<span class="ident">A</span>,<span class="ident">B</span>) <span class="kw">then</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Prod_Image</span>(<span class="ident">A</span>) &amp; <span class="string">&quot; et &quot;</span> &amp; <span class="ident">Prod_Image</span>(<span class="ident">B</span>) &amp; <span class="string">&quot; sont disjoints.&quot;</span>) ;
<span class="kw">else</span>
<span class="ident">Txt.Put_Line</span>(<span class="ident">Prod_Image</span>(<span class="ident">A</span>) &amp; <span class="string">&quot; et &quot;</span> &amp; <span class="ident">Prod_Image</span>(<span class="ident">B</span>) &amp; <span class="string">&quot; ne sont pas disjoints.&quot;</span>) ;
<span class="kw">end</span> <span class="kw">if</span> ;
<span class="kw">end</span> <span class="fname">Prod_Afficher_Relation</span> ;<span class="eols">
</span> <span class="ident">C</span> : <span class="kw">constant</span> <span class="type">T_Intervalle</span> := (<span class="number">5.0</span>, <span class="number">10.0</span>) ;
<span class="ident">D</span> : <span class="kw">constant</span> <span class="type">T_Intervalle</span> := (<span class="number">7.0</span>, <span class="number">8.0</span>) ;
<span class="ident">E</span> : <span class="kw">constant</span> <span class="type">T_Intervalle</span> := (<span class="number">4.0</span>, <span class="number">6.0</span>) ;<span class="eols">
</span><span class="kw">begin</span>
<span class="ident">Afficher_Relation</span>(<span class="ident">C</span>,<span class="ident">D</span>) ;
<span class="ident">Afficher_Relation</span>(<span class="ident">D</span>,<span class="ident">C</span>) ;
<span class="ident">Afficher_Relation</span>(<span class="ident">C</span>,<span class="ident">E</span>) ;
<span class="ident">Afficher_Relation</span>(<span class="ident">D</span>,<span class="ident">E</span>) ;<span class="eols">
</span> <span class="ident">Prod_Afficher_Relation</span>((<span class="ident">C</span>, <span class="ident">C</span>), (<span class="ident">D</span>, <span class="ident">D</span>)) ;
<span class="ident">Prod_Afficher_Relation</span>((<span class="ident">C</span>, <span class="ident">D</span>), (<span class="ident">D</span>, <span class="ident">C</span>)) ;
<span class="ident">Prod_Afficher_Relation</span>((<span class="ident">D</span>, <span class="ident">C</span>), (<span class="ident">E</span>, <span class="ident">C</span>)) ;
<span class="kw">end</span> <span class="fname">Mission2</span> ;
</code></main><footer><small class="pcom"><a class="caml_c" href="../../../yversion.html" data-eliom-c-onclick="VZGVzPPo79iK">Version information</a></small><a target="_blank" href="http://www.insa-toulouse.fr"><img title="INSA Toulouse" style="width:73px;height:28px;" alt="INSA logo" src="../../../Images/logo-insa-light.jpg"/></a><a target="_blank" href="http://jigsaw.w3.org/css-validator/check/referer"><img title="Validate css stylesheet" style="width:28px;height:32px;" alt="CSS3 logo" src="../../../Images/css3.png"/></a><a target="_blank" href="http://validator.w3.org/check/referer"><img title="Validate html5 content" style="width:32px;height:32px;" alt="HTML5 logo" src="../../../Images/html5.png"/></a></footer></body></html>