95 rindas
No EOL
13 KiB
HTML
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">"["</span> & <span class="ident">Integer</span>'<span class="ident">Image</span>(<span class="ident">Integer</span>(<span class="ident">A.Inf</span>)) & <span class="string">","</span> & <span class="ident">Integer</span>'<span class="ident">Image</span>(<span class="ident">Integer</span>(<span class="ident">A.Sup</span>)) & <span class="string">"]"</span> ;
|
|
<span class="kw">end</span> <span class="fname">Intervalle_Image</span> ;<span class="eols">
|
|
|
|
</span> <span class="comment">-- A est inclus dans B <=> 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> >= <span class="ident">B.Inf</span> <span class="kw">and</span> <span class="ident">A.Sup</span> <= <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 <=> 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> < <span class="ident">B.Inf</span> <span class="kw">or</span> <span class="ident">A.Inf</span> > <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>) & <span class="string">" est inclus dans "</span> & <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>) & <span class="string">" est inclus dans "</span> & <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>) & <span class="string">" et "</span> & <span class="ident">Intervalle_Image</span>(<span class="ident">B</span>) & <span class="string">" sont disjoints."</span>) ;
|
|
<span class="kw">else</span>
|
|
<span class="ident">Txt.Put_Line</span>(<span class="ident">Intervalle_Image</span>(<span class="ident">A</span>) & <span class="string">" et "</span> & <span class="ident">Intervalle_Image</span>(<span class="ident">B</span>) & <span class="string">" ne sont pas disjoints."</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>) & <span class="string">" x "</span> & <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 <=> 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 <=> 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>) & <span class="string">" est inclus dans "</span> & <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>) & <span class="string">" est inclus dans "</span> & <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>) & <span class="string">" et "</span> & <span class="ident">Prod_Image</span>(<span class="ident">B</span>) & <span class="string">" sont disjoints."</span>) ;
|
|
<span class="kw">else</span>
|
|
<span class="ident">Txt.Put_Line</span>(<span class="ident">Prod_Image</span>(<span class="ident">A</span>) & <span class="string">" et "</span> & <span class="ident">Prod_Image</span>(<span class="ident">B</span>) & <span class="string">" ne sont pas disjoints."</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> |