E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java

publicité
E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java
vendredi 30 décembre 2011 20:46
*=====================================================================================================*
/*================================================================================================
Universite de Djibouti
Theoreme des restes chinois
( Projet Technique Numerique )
Cree par:
Ibrahim Abdallah Ali
Licence Math/Fond 2011/2012
Dini Ahmed Mohamed
************* Langage Java **********
===============================================================================================*/
*=====================================================================================================*
import javax.swing.*;
public class chinois {
private
int
int
int
int
N,T,x,j,p,h,PGCD,f, i,nb1,nb2,ind1,ind2,l;
rep1,rep4,rep6;
cpt1,cpt4;
[]r,m,Y,M;
public void nomequation(){
cpt1=0;cpt4=0; x=0; rep1=0;rep4=0;rep6=0;
JOptionPane.showMessageDialog(null,"CE PROGRAMME RESOUDRE UN SYSTEME DE CONGRUENCE D'ORDRE N",
"Theoreme des Restes Chinois",JOptionPane.INFORMATION_MESSAGE);
do {
N=Integer.parseInt(JOptionPane.showInputDialog(null,"Precisez les nombres d'equation
Souhaitez vous? ","Resolution du systemes congruence",JOptionPane.INFORMATION_MESSAGE));
if (N<1){
JOptionPane.showMessageDialog(null,"Error du dimension? Veuillez reassir svp? ",
"Resolution du systemes congruence",JOptionPane.INFORMATION_MESSAGE);}}
while (N<1);
r=new
m=new
Y=new
M=new
}
int
int
int
int
[N];
[N];
[N];
[N];
public void liremodulo(){
JOptionPane.showMessageDialog(null,"saisissez l'element de l'equation ?","Saisir",JOptionPane.
INFORMATION_MESSAGE);
for( i=0; i<N; i++){
do{
JTextField mod = new JTextField();
JTextField res = new JTextField();
JOptionPane.showOptionDialog(null,
new Object[] {"Votre module :m["+(i+1)+"]=", mod, "votre reste : a["+(i+
1)+"]=", res},"saissiez les elements",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, null, null, null);
m[i] = Integer.parseInt(mod.getText());
r[i]= Integer.parseInt(res.getText());
if (m[i]<2){
rep6=JOptionPane.showConfirmDialog(null," vous venez de saisi un module: m["+(i+1)+"]="
+m[i]+"<2 !!!
veuillez resaisir SVP ?"," Theoreme de Reste Chinois ",JOptionPane.
OK_CANCEL_OPTION);}}
while (m[i]<2 & rep6==JOptionPane.OK_OPTION);
if (rep6!=JOptionPane.OK_OPTION){cpt1++;break;}
}
}
public void soultion(){
String[] Question = {"Particulier", "Generale", "sortir"};
if ( cpt1==0){
for(j=0; j<N; j++){
for(i=0; i<N; i++){
-1-
E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java
vendredi 30 décembre 2011 20:46
if ( j!=i){
PGCD=m[j];
f=m[i];
while ( PGCD != f ) {
if ( PGCD< f )
f = f - PGCD;
else
PGCD = PGCD - f;
}
if ( PGCD!=1) {
cpt4++; nb1=m[j];
nb2=m[i];
}}}
if (cpt4==0){
T=m[0];
ind1=i; ind2=j;break;}
for (i=1;i<N;i++){
T=T*m[i];}
for ( i=0;i<N;i++){
M[i]=T/m[i];}
for (i=0;i<N;i++){
Y[i]=1;
do {
if ((M[i]*Y[i]-1)%m[i]!=0){
Y[i]++ ;}
}
while ((M[i]*Y[i]-1)%m[i]!=0); }
for (i=0;i<N;i++){
x=((r[i]*M[i]*Y[i])+x);}
int b=x;
x=x%T;
if ( x<0){
x=x+T;}
if (T<=x ){
x=x%T;
}
do {
int rang = JOptionPane.showOptionDialog(null, "Preciser type solution !","Les solution
!",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,Question,Question[
2]);
if (rang==0){
h=Integer.parseInt(JOptionPane.showInputDialog(null,"Veuillez saisi un valeur
initial","Saisir",JOptionPane.INFORMATION_MESSAGE));
p=x+(T*h);
JOptionPane.showMessageDialog(null,"la solution particulier est: x"+h+"="+p ,
"Solution",JOptionPane.INFORMATION_MESSAGE);}
else if (rang==1){
JOptionPane.showMessageDialog(null,"les solution est x="+b+"["+T+"]
ou
x="+x+"["+T+"]", "les solutions du system",JOptionPane.INFORMATION_MESSAGE);}
rep4=JOptionPane.showConfirmDialog(null," Voulez vous trouvez d'autres solution ou
Solution Generale ","continue",JOptionPane.OK_CANCEL_OPTION);}
while (rep4==JOptionPane.OK_OPTION);
}
else {JOptionPane.showMessageDialog(null," les modulo m["+(ind1+1)+"]="+nb2+" et m["+(ind2+1
)+"]="+nb1+" ne sont pas premiers entre eux"," desole",JOptionPane.ERROR_MESSAGE); }
}
else if (cpt1!=0) {JOptionPane.showMessageDialog(null," Desole, vous n'avez pas voulu reassir
votre module. Donc votre modulo est inferieur à 2"," desole",JOptionPane.ERROR_MESSAGE); }}
public static void main(String[] args){
chinois Theormechinois= new chinois();
int rep1;
do {
Theormechinois.nomequation();
Theormechinois.liremodulo();
Theormechinois.soultion();
rep1=JOptionPane.showConfirmDialog(null,"voulez vous revenir au programmer"," Theoreme de
Reste Chinois ",JOptionPane.OK_CANCEL_OPTION);}
while (rep1==JOptionPane.OK_OPTION);
}
}
-2-
E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java
vendredi 30 décembre 2011 20:46
*=====================================================================================================*
/*================================================================================================
Universite de Djibouti
Theoreme des restes chinois
( Projet Technique Numerique )
Cree par:
Ibrahim Abdallah Ali
Licence Math/Fond 2011/2012
Dini Ahmed Mohamed
************* Langage Java Script **********
===============================================================================================*/
*====================================================================================================*
<HTML>
<HEAD> <TITLE> Theoreme des reste chinois</TITLE> <HEAD>
<SCRIPT LANGUAGE="JavaScript">
do {
var
var
var
var
var
var
var
var
N=prompt("veuillez saisi la dimension N="," ");
A=new Array(N)
m=new Array(N)
Y=new Array(N)
M=new Array(N)
a=new Array(N)
cpt1=0;
cpt4=0;
for (var i =0;i<N;i++){
do{
m[i]=parseInt(prompt( " m["+i+"]="," "));
if (m[i]<2){
var reponse1 = confirm("veuillez reassisir svp")
if (reponse1){ reponse1="true";}
else{
cpt1++;break;}
} }
while(m[i]<2 & reponse1=="true");
A[i]=parseInt(prompt( " a["+i+"]="," "));
}
if ( cpt1==0 ){
for(j=0; j<N; j++){
for(i=0; i<N; i++){
if ( j!=i){
PGCD=m[j];
f=m[i];
if ( PGCD> 0 && f > 0 ) {
while ( PGCD != f ) {
if ( PGCD< f )
f = f - PGCD;
else
PGCD = PGCD - f;
}
if ( PGCD!=1) {
cpt4++; var nb1=m[j];
}
}
}
}
if (cpt4==0){
var nb2=m[i];
var T=m[0];
for (var i=1;i<N;i++){
T=T*m[i];}
for ( var i=0;i<N;i++){
M[i]=T/m[i];}
for (var i=0;i<N;i++){
var q=1;
do {
if ((M[i]*q-1)%m[i]==0){ Y[i]=q ;}
q++;}
while (((M[i]*Y[i]-1)%m[i]!=0));}
var x=0;
for (var i=0;i<N;i++){
-3-
var ind1=i; var ind2=j;break;}
E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java
vendredi 30 décembre 2011 20:46
x=(A[i]*M[i]*Y[i])+x;}
var b=x;
x=x%T;
if ( x<0){
x=x+T;}
if (T<=x ){
x=x%T;}
alert("les solution sont x="+b+"["+T+"] ou x="+x+"["+T+"]");}
else alert("les modulo m["+(ind1+1)+"]="+nb2+" et m["+(ind2+1)+"]="+nb1+" ne sont pas premiers
entre eux")
}
else if (cpt1!=0) {alert(" Desole, vous n'avez pas voulu reassir votre module. Donc votre modulo
est inferieur à 2")}
var reponse4=confirm(" voulez vous revenir au programme ", "Theoreme de reste chinois")
if (reponse4){ reponse4="true";}
else { break;}
}
while(reponse4="true");
</SCRIPT>
</BODY>
</HTML>
-4-
E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java
vendredi 30 décembre 2011 20:46
*=====================================================================================================*
/*================================================================================================
Universite de Djibouti
Theoreme des restes chinois
( Projet Technique Numerique )
Cree par:
Ibrahim Abdallah Ali
Licence Math/Fond 2011/2012
Dini Ahmed Mohamed
************* Langage C++ **********
===============================================================================================*/
*====================================================================================================*
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int N,T,x,j,p,h,PGCD,f, i,Z;
int rep1,rep2,rep3,rep4,rep5,rep6;
int cpt1,cpt4;
int nb1;
int nb2; int ind1; int ind2;
do {
cpt4=0; x=0;Z=2;
cout << " bienvenue au programme theoreme de reste chinois
\n";
cout<< " veuillez saisi les nombre d'equation souhaitez-vous \n" << "N= ";
cin>> N;
int A [N];
int m[N];
int Y[N];
int M[N];
int w[N][Z];
cout<< " veuillez saisi les elements du equation \n";
for ( i =0;i<N;i++){
do{
cout << "m["<<(i+1)<<"]= ";
cin>> m[i];
if ( m[i]<2){ cout<< " vous venez de saisir un module < 2 \n";
cout << "veuillez resaissi votre nombre \n";
}}
while (m[i]<2);
cout << "a["<<(i+1)<<"]= ";
cin>> A[i];
cout<< " \n";
} cout<< " \n";
cout<< " \n";
for(j=0; j<N; j++){
for(i=0; i<N; i++){
if ( j!=i){
PGCD=m[j];
f=m[i];
if ( PGCD> 0 && f > 0 ) {
while ( PGCD != f ) {
if ( PGCD< f )
f = f - PGCD;
else
PGCD = PGCD - f;
}
if ( PGCD!=1) {cpt4++; nb1=m[j];
nb2=m[i];
if (cpt4==0){
T=m[0];
for (i=1;i<N;i++){
T=T*m[i];}
for ( i=0;i<N;i++){
M[i]=T/m[i];}
for (i=0;i<N;i++){
int q=1;
-5-
ind1=i; ind2=j;
break;}}}}}
E:\Projet 2012\Langage\Trois langage Java, JavaScprit et C++.java
vendredi 30 décembre 2011 20:46
do {
if ((M[i]*q-1)%m[i]==0){ Y[i]=q ;}
q++;}
while (((M[i]*Y[i]-1)%m[i]!=0));}
for (i=0;i<N;i++){
x=((A[i]*M[i]*Y[i])+x);
}
int b=x;
x=x%T;
if ( x<0){
x=x+T;}
if (T<=x ){
x=x%T;
}
for(i=0; i<N; i++){
for(j=0;j<Z;j++){
if (j==0){
w[i][j]=A[i];}
else if (j==1) {
w[i][j]=m[i];}}}
cout<< " votre systeme de congruence est: \n";
for(i=0; i<N; i++){
for(j=0; j<2; j++){
if (j==0)
cout<< "
x= "<<w[i][j];
else
cout << "["<< w[i][j]<<"]";
} cout << " \n";}
cout <<"\n";
cout << " les solutions de votre systeme de congruence est \n " << "x="<< b<<"["<<T<<"]
ou
x="<< x<<"["<<T<<"] \n";
}
else {
cout << " desole,les module m["<<(ind1+1)<<"]="<<nb2<<" et m["<<(ind2+1)<<"]="<<nb1<<" ne
sont pas premier entre eux \n";
}
cout<<" \n"<< " \n";
cout<< " voulez vous revenir au programmer\n";
cout << " taper 1 pour revenir rep=";
cin>> rep6;}
while(rep6==1);
system("PAUSE");
}
-6-
Téléchargement