-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAlgorithme.cmd
116 lines (101 loc) · 4 KB
/
Algorithme.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
@echo off
title Algorithme de Dantzig
setlocal EnableDelayedExpansion
:choixZ
cls
echo ******************************************************************************
echo * ALGORITHME DE DANTZIG *
echo * *
echo * FABIEN ROUSSEAU YANIS IZEROUIL ANASS TAMSOURI *
echo ******************************************************************************
SET ZY=0
SET ZX=0
echo.
SET /P ZX=Entrez la valeur X de la fonction Z ( exemple : 3 ou -3 ) :
SET /P Zcoeff=Entrez le signe math‚matique de la fonction Z (exemple : + ou - ) :
SET /P ZY=Entrez la valeur Y de la fonction Z ( exemple : 3 ou -3 ) :
echo.
echo Voici la formule Z : %ZX%x %Zcoeff% %ZY%y
echo.
SET /P confirmationZ= Est-ce bien cela ? ( 1 - Oui // 2 - Non) :
if %confirmationZ%==1 ( goto ApresZ ) else if %confirmationZ%==2 ( goto choixZ ) else ( echo choix incorrect, retour vers choixZ && timeout -t 4 > nul && goto choixZ )
:ApresZ
echo.
SET /P nbContraintes=Entrez le nombre de contraintes ( exemple 2 ) :
echo.
set /a "v=0"
:NbContraintes
if %v% LSS %nbContraintes% (
set /a "v = v + 1"
echo.
SET /P VariableContrainteX%v%=Entrez la valeur de X de la contrainte %v% :
SET /P VariableContrainteCoeff%v%=Entrez la valeur du coefficient de la contrainte %v% :
SET /P VariableContrainteY%v%=Entrez la valeur de Y de la contrainte %v% :
SET /P VariableContraintePartieDeDroite%v%=Entrez le resultat de la contrainte %v% :
goto NbContraintes )
set /a "v=0"
:AffichageFormesCanonique
if %v% LSS %nbContraintes% (
set /a "v = v + 1"
echo.
echo la contrainte %v% est : !VariableContrainteX%v%!x !VariableContrainteCoeff%v%! !VariableContrainteY%v%!y = !VariableContraintePartieDeDroite%v%!
goto AffichageFormesCanonique )
set /a "v=0"
goto CalculFormesStandard
:CalculFormesStandard
if %v% LSS %nbContraintes% (
set /a "v = v + 1"
set z%v% = !VariableContraintePartieDeDroite%v%!
goto CalculFormesStandard )
set /a "v=0"
:AffichageFormesStandard
if %v% LSS %nbContraintes% (
set /a "v = v + 1"
echo.
echo !VariableContrainteX%v%!x !VariableContrainteCoeff%v%! !VariableContrainteY%v%!y + z%v% = !VariableContraintePartieDeDroite%v%! soit z%v% = !VariableContraintePartieDeDroite%v%!
echo.
goto AffichageFormesStandard )
:ChoixZ2
echo.
SET /P confirmationZ= Est-ce bien cela ? ( 1 - Oui // 2 - Non) :
if %confirmationZ%==1 ( goto CalculVariableEntrante ) else if %confirmationZ%==2 ( goto ApresZ ) else ( echo choix incorrect, retour vers choixZ2 && timeout -t 4 > nul && goto choixZ2 )
:CalculVariableEntrante
echo.
SET MAXZ=0
if %ZX% == %ZY% ( set /a MAXZ = ZX ) else if %ZX% LSS %ZY% ( set /a MAXZ = ZY ) else ( set /a MAXZ = ZX )
if %ZX% == %ZY% ( echo Le maximum de Z est : X,Y = %MAXZ% ) else if %ZX% LSS %ZY% ( echo Le maximum de Z est : Y = %MAXZ% ) else ( echo Le maximum de Z est : X = %MAXZ% )
echo.
:DeterminationCalculRatio
set /a "v=0"
if %MAXZ% == %ZX% ( goto CalculRatioX ) else ( goto CalculRatioY )
:CalculRatioX
if %v% LSS %nbContraintes% (
set /a "v = v + 1"
set /a "r%v% = !VariableContraintePartieDeDroite%v%! / !VariableContrainteX%v%!"
echo R%v% = !r%v%!
goto CalculRatioX)
goto AvantCalculRatio
:CalculRatioY
if %v% LSS %nbContraintes% (
set /a "v = v + 1"
set /a "r%v% = !VariableContraintePartieDeDroite%v%! / !VariableContrainteY%v%!"
echo R%v% = !r%v%!
goto CalculRatioY)
:AvantCalculRatio
set /a "v=0"
set /a "candidat=%r0%"
pause
:CalculMinimumRatio
if %v% LSS %nbContraintes% (
if !r%v%! LSS %candidat% ( set /a candidat = !r%v%! )
set /a "v = v + 1"
goto CalculMinimumRatio)
echo la plus petite valeur de R est : %candidat%
pause
set /a "v=0"
:EquationEchange
if %v% LSS %nbContraintes% (
if !r%v%! == %candidat% ( echo la contrainte qui a RX le plus bas est la contrainte %v% : !VariableContrainteX%v%!x !VariableContrainteCoeff%v%! !VariableContrainteY%v%!y + z%v% = !VariableContraintePartieDeDroite%v%! )
set /a "v = v + 1"
goto EquationEchange)
pause