Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme simple

Posté par
alex95643210
24-03-11 à 16:58

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

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 17:09

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)

Algorithme simple

Posté par
dhalte
re : Algorithme simple 24-03-11 à 18:02

Et as-tu trouvé la solution ? le tiercé ?

donne au moins tes premiers résultats.

Posté par
dhalte
re : Algorithme simple 24-03-11 à 18:11

les chevaux sont-ils numérotés de 1 à 40 ?
Algorithme simple
et tu préciseras parce que c'est illisible pour moi

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 18:28

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

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 18:28

pour le dernier c'est K superieur ou egal à 3

Posté par
dhalte
re : Algorithme simple 24-03-11 à 18:45

ok, je regarde si je peux te le programmer.

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 19:04

merci si tu peut faire sa sa serait super car à la main quelle galère !!

Posté par
dhalte
re : Algorithme simple 24-03-11 à 19:30

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;
}
}
}

Posté par
dhalte
re : Algorithme simple 24-03-11 à 19:30

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.

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 19:50

Slt

je met sa dans xcas ??

Car je suis nul en math informatique ^^

Posté par
dhalte
re : Algorithme simple 24-03-11 à 20:00

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.

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 20:15

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 ^^

Posté par
dhalte
re : Algorithme simple 24-03-11 à 20:21



mais qu'est-ce qu'on fait, maintenant ?

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 20:27

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

Posté par
dhalte
re : Algorithme simple 24-03-11 à 20:37

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.

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 20:50

Je viens de telecharger eclipse mais j'arrive pas à lancer le programme

Posté par
dhalte
re : Algorithme simple 24-03-11 à 21:10

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".

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 21:56

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

Posté par
dhalte
re : Algorithme simple 24-03-11 à 22:21

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.

Posté par
alex95643210
re : Algorithme simple 24-03-11 à 22:47

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

Posté par
dhalte
re : Algorithme simple 24-03-11 à 23:06

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.

Posté par
alex95643210
re : Algorithme simple 25-03-11 à 09:34

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

Posté par
dhalte
re : Algorithme simple 25-03-11 à 11:46

Mais puisque tu as obtenu le résultat manuellement, pourquoi as-tu tellement besoin de faire tourner l'algorithme ?

"main class exit files" : si tu veux plus d'aide, il faudra m'en dire plus.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !