Bonjour,
Voilà je viens de terminer mon Dm de maths avec l'enoncé ci dessous. J'aurais voulu s'avoir si quelqu'un trouverait un moyen plus rapide de le faire par exemple sur XCAS ou sur un autre logiciel car je l'ai fait à la main et c'est galère.
http:/**lien supprimé**
Merci d'avance
Alexandre
Voici l'énoncé pour ceux qui ne veulent pas le télécharger:
Le but est de trouver l'ordre d'arrivée de la course du tiercé ainsi que le nombre de chevaux au départ. (il y en avait moins de 40). En introduisant le n° de chaque cheval, puis en suivant les instructions de l'ordinogramme, tu sauras s'il figure au tiercé et à quelle place. Par contre s'il y avait un cheval en plus dans la course, l'ordinogramme désignerait deux chevaux pour une même place (ce qui est impossible)
a oui pardon alors:
Le cheval
4 est 1er
11 est 2eme
25 est 3eme
oui les chevaux sont numérotés de 1 à 40 mais sa sarrete a 33 car le cheval 34 est aussi deuxieme.
Alors c'est:
B=(P²+K²)/5 si c'est pas possible alors le cheval n'est pas dans le tiercé
B - 1 est il divisible par 3 ? si non il n'est pas dans le tiercé
K alors le cheval est classé K - 1
Je suis très étonné par les conditions données dans ton algorithme
une fois qu'on a passé tous les tests, le rang est donné par les conditions suivantes :
Si K3, A est au rang K-1
Si K=0, A est premier, donc au rang 1, je suppose
donc il reste
Si K=1 ou 2, A est au rang K
Le résultat est bien
4 au rang 1 (K=1)
11 au rang 2 (K=2)
25 au rang 3 (K=4)
Programme en java
-----------------
/*
* Calcul du classement des premiers nombres entiers (à partir de 1) selon un certain algorithme, jusqu'à ce que
* les entiers classés aux trois premières positions aient été déterminés.
*/
private static void calculeTierce() {
int A, N, K, P, B;
boolean b1, b2, b3;
b1=false;
b2=false;
b3=false;
A=1;
for(;!b1 || !b2 || !b3; A++) {
for(N=A+3,K=0;(N % 5)!=0; N +=3, K++) ;
P= N/5;
if((P+K) % 3 != 0) continue;
if((P*P+K*K) % 5 != 0) continue;
B=(P*P+K*K)/5;
if((B-1) % 3 != 0) continue;
if(K>=3) {
System.out.println("" + A + " au rang " + (K-1) + " (K=" + K + ")");
if(K-1==3) b3=true;
}
else if(K==0) {
System.out.println("" + A + " au rang 1" + " (K=" + K + ")");
b1 = true;
}
else {
System.out.println("" + A + " au rang " + K + " (K=" + K + ")");
if(K==1) b1 = true;
else if(K==2) b2 = true;
else if(K==3) b3 = true;
}
}
}
Aïe, l'indentation n'a pas été conservée par la mise en page du forum
ça va être un peu plus dur à lire.
Je ne connais pas xcas
un moyen plus rapide de le faire par exemple sur XCAS ou sur un autre logiciel
Java est un langage de programmation disponible en général sous Windows comme sous Linux, sinon il est téléchargeable gratuitement.
Mais puisque tu as trouvé la réponse, même si c'est à la main, tu n'a plus besoin de le programmer;
Moi, je n'ai fait que te confirmer grâce à l'algorithme programmé que tu ne t'étais pas planté dans tes calculs.
Soit dit en passant, si tu as effectivement obtenu le résultat manuellement, chapeau.
Effectivement je l'est fait à la main!! et j'ai bien passé une demis heure et a chaque fois décu quand cela ne fonctionnait pas ^^
Bah en fait le prof nous a dit qu'on pouvait le faire sur xcas mais en cherchant et personne a trouvé et moi non plus donc on l'a fait à la main du coup.
Comment on lance le programme ? je sais pas me servir de java
Et au fait si je l'avais pas fait j'aurais pas le classement des chevaux et a quelle moment sa se termine
Et au fait si je l'avais pas fait j'aurais pas le classement des chevaux et a quelle moment sa se termine
erreur de logique (pour un programmeur, c'est fatal)
si je l'avais pas fait un autre aurait pu le faire pour toi.
Ouf, tu fais dans le lourd, là.
copie/colle ce qui suit dans un fichier que tu appelles tmp.java
//-------------------------------------------------------------
public class tmp {
public static void main(String argv[]) {
int A, N, K, P, B;
boolean b1, b2, b3;
b1=false;
b2=false;
b3=false;
A=1;
for(;!b1 || !b2 || !b3; A++) {
for(N=A+3,K=0;(N % 5)!=0; N +=3, K++) ;
P= N/5;
if((P+K) % 3 != 0) continue;
if((P*P+K*K) % 5 != 0) continue;
B=(P*P+K*K)/5;
if((B-1) % 3 != 0) continue;
if(K>=3) {
System.out.println("" + A + " au rang " + (K-1) + " (K=" + K + ")");
if(K-1==3) b3=true;
}
else if(K==0) {
System.out.println("" + A + " au rang 1" + " (K=" + K + ")");
b1 = true;
}
else {
System.out.println("" + A + " au rang " + K + " (K=" + K + ")");
if(K==1) b1 = true;
else if(K==2) b2 = true;
else if(K==3) b3 = true;
}
}
}
}
//-------------------------------------------------------------
ensuite, ouvre un terminal (tu es sous Windows ou sous Linux ?)
place-toi dans le répertoire du fichier tmp.java
exécute les deux commandes :
javac tmp.java
java tmp
tu verras le résultat que je t'ai collé dans un de mes messages précédents s'afficher dans la fenêtre de la console "terminal".
re,
bon j'ai créer un fichier txt ou j'ai collé tout le truc puis je l'est renommer en .java
j'ai ensuite lancer invit de commande( je suis sous window vista)
mais après je comprends pa dsl
mais tu es vraiment obligé d'aller jusqu'au bout ?
remarque que je ne veux pas te décourager, hein
bon, supposons que tu as ouvert le bloc-notes, copié-collé le code java que je t'ai donné et sauvegardé ce fichier dans un répertoire C:\tmp, sous le nom tmp.java (attention pas tmp.java.txt, hein !)
tu ouvres un terminal et tu te places dans le répertoire C:\tmp
$> c:
$> cd \tmp
maintenant, tu entres la commande javac avec un 'c' à la fin, qui veut dire 'compiler'
$> javac tmp.java
si tout se passe bien, tu vois réapparaitre le prompt $>
et un nouveau fichier a été généré, qui s'appelle tmp.class
maintenant, tu passes la commande
$> java tmp
et tu verras s'afficher le résultat dans la fenêtre de commande.
re
dsl mais c'est la première fois que je fais sa c pour sa
Sa me met que la commande n'est pas reconnu :/
Tu peut pas me faire un tuto avec des images stp si sa te derange pas ? ou me le faire par teamviewer ?
Merci
Alex
non, je n'offre pas mes services jusque là
si tu as l'erreur "commande inconnue", c'est que tu n'as pas installé l'environnement Eclipse correctement. Tu n'as pas installé ce qu'on appelle le JDK, pourtant fourni avec les packagings de base de Eclipse.
si tu veux l'installer :
Fais bien attention aux options que tu choisis (Windows, 32 ou 64 bits) en fonction de ta machine.
Merci pour ton travail .
je n'arrive pas à le faire fonctionner car main class exit files ; c'est pas grave faut que je trouve qqun qui sait le faire sur xcas
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :