Sujet d'info..

Où l'on discute de tout ce qui touche à l'utilisation de l'informatique en C.P.G.E. : logiciels de calcul formel, de modélisation pour les sciences de l'ingénieur, pour la chimie et la physique, etc... Trucs et astuces, questions/réponses : bienvenue !

Modérateur: Xklr_65

Sujet d'info..

Messagede Xklr_65 » Ven 23 Mai, 2008 12:08 am

Je me suis amusé (je sais c'est pas normal...) sur ce sujet là.
X-Info-MP PC 2008
Alors je pensais qu'il serait bien de tenter de le faire ici, en espérant que vous aurez des idées. J'avoue qu'au niveau de Vigenère ça se corse un peu mais il y a toujours une aide disponible.

Allez j'espère que vous trouverez quelque chose (enfin pas juste les réponses à faire à la main sans imaginer de procédure).
J'attends des réponses, des propositions :!:
Étudier sans réfléchir est une occupation vaine ; réfléchir sans étudier est dangereux. Confucius
Julien TANGUY
2006/2007 PCSI A
2007/2008 PC

2008/2011 Centrale Nantes
Avatar de l’utilisateur
Xklr_65
 
Messages: 388
Inscription: Mer 08 Nov, 2006 6:47 pm
Localisation: Carhaix-Plouguer

Messagede Marcel » Ven 23 Mai, 2008 1:49 pm

j'arrive à faire la première question !
Eric B
2004-2005: PCSI A
2005-2007: PC
2007-2010 : Centrale Lille - Génie Mécanique Avancée
2009-2010 : Lille 1 - Master 2 Recherche Mécanique
Avatar de l’utilisateur
Marcel
 
Messages: 120
Inscription: Mar 07 Nov, 2006 2:15 pm
Localisation: Villeneuve d'Ascq

Messagede jolas » Ven 23 Mai, 2008 7:30 pm

moi auss!!!!!!!
i'm a genius!!!
Jolas Cécile
2004-2005:pcsi B
2005- 2007pc
2007-2009: Polytech' marseille: 2a génie civil
jolas
 
Messages: 225
Inscription: Mar 07 Nov, 2006 2:05 pm
Localisation: place castellane

Messagede Xklr_65 » Ven 23 Mai, 2008 8:27 pm

Tout le monde a trouvé la première question.
La deuxième maintenant?

Allez les sups, ça vous concerne aussi.
Étudier sans réfléchir est une occupation vaine ; réfléchir sans étudier est dangereux. Confucius
Julien TANGUY
2006/2007 PCSI A
2007/2008 PC

2008/2011 Centrale Nantes
Avatar de l’utilisateur
Xklr_65
 
Messages: 388
Inscription: Mer 08 Nov, 2006 6:47 pm
Localisation: Carhaix-Plouguer

Messagede erd » Dim 25 Mai, 2008 3:40 pm

Xklr_65 a écrit:Tout le monde a trouvé la première question.


Oui ! En tout cas, j'ai trouvé !:D

Je ne dirai rien, c'est promis...;)

La deuxième maintenant?


Je suis.

Allez les sups, ça vous concerne aussi.


Mrs Jaouen, Kiki, RedM, The Mao, par exemple. Melle Lucile et j'en passe... Je crois qu'on vous appelle...
Emmanuel Riboulet-Deyris
Professeur de mathématiques en classe préparatoire
erd
 
Messages: 1154
Inscription: Mar 31 Oct, 2006 2:46 pm

Messagede musyk » Dim 25 Mai, 2008 5:38 pm

Peux t-on poster directement nos réponses , ou doit-on les envoyer en mp ?
Mélody Laurent - Procrastinatrice

Envisager que tout est possible et que c'est une question de temps ... le temps de comprendre comment c'est possible. Marc Levy

2006-2007 : PCSI A / / L2* Maths-Info
Avatar de l’utilisateur
musyk
 
Messages: 628
Inscription: Sam 11 Nov, 2006 3:31 pm
Localisation: druper sur un dolmen

Messagede erd » Dim 25 Mai, 2008 6:04 pm

musyk a écrit:Peux t-on poster directement nos réponses , ou doit-on les envoyer en mp ?


Postez !
Emmanuel Riboulet-Deyris
Professeur de mathématiques en classe préparatoire
erd
 
Messages: 1154
Inscription: Mar 31 Oct, 2006 2:46 pm

Messagede musyk » Dim 25 Mai, 2008 6:50 pm

Tête de la copie : Langage C


Question 1 : hudomzxjmwzup

Question 2 :
Code: Tout sélectionner
#include <stdio>
#include <string>

char * codageCesar(char * t, int n, int d);


int main()
{
    char t[]="ave cesar";
    char * t2;
    int n=strlen( t);
    int d=25;
    t2=codageCesar(t, n, d);
    printf("%s\n%s", t, t2);
    return 0;
}



char * codageCesar(char * t, int n, int d){
    char t2[255];
    int i;

    for (i = 0 ; i < n ; i++){
        if (t[i]!=' '){
            if (t[i]+d<='z'){
                t2[i]=t[i]+d;
            }
            else{
                t2[i]=t[i]+d-26;
            }
        }
        else{
            t2[i]=' ';
        }
    }
    t2[n]="\0";
    return t2;
}




Pour ceux qui n'ont pas Linux et qui veulent voir ce que ça donne, voici un compilateur :
http://www.codeblocks.org/

Une fois dans le programme :
- créer un nouveau projet
- console d'application
- choisir C
- donner le nom
- ensuite cliquer sur le "+" devant "sources" et double cliquez sur "main"
- et là : y a plus qu'à écrire le programme

Image

- une fois le programme fini : cliquer sur le bouton avec la petite fleche rouge (appeler : build and run)
- il exécutera "ave cesar" en "zud bdrzq", et si vous souhaitez traduire autre chose : il suffit de le changer dans la source, tout comme "d" ... (sinon il aurait fallu utiliser "printf" et "scanf" ....... :angel: )

Image


Déchiffrement :

Code: Tout sélectionner
char * codageCesar(char * t, int n, int d);


int main()
{
    char t[]="zud bdrzq";
    char * t2;
    int n=strlen( t);
    int d=25;
    t2=decodageCesar(t, n, d);
    printf("%s\n%s", t, t2);
    return 0;
}



char * decodageCesar(char * t, int n, int d){
    char t2[255];
    int i;

    for (i = 0 ; i < n ; i++){
        if (t[i]!=' '){
            if (t[i]-d<'a'){
                t2[i]=t[i]-d+26;
            }
            else{
                t2[i]=t[i]-d;
            }
        }
        else{
            t2[i]=' ';
        }
    }
    t2[n]="\0";
    return t2;
}

Dernière édition par musyk le Mar 27 Mai, 2008 11:23 am, édité 4 fois.
Mélody Laurent - Procrastinatrice

Envisager que tout est possible et que c'est une question de temps ... le temps de comprendre comment c'est possible. Marc Levy

2006-2007 : PCSI A / / L2* Maths-Info
Avatar de l’utilisateur
musyk
 
Messages: 628
Inscription: Sam 11 Nov, 2006 3:31 pm
Localisation: druper sur un dolmen

Messagede musyk » Dim 25 Mai, 2008 9:34 pm

En tête de la copie : Langage C

Question 8 :

Code: Tout sélectionner
#include <stdio>
int main()

int pgcd(int a, int b);

{
   
   int r;
      while (r==0);
    {
        r = a/b;
        a=b;
        b=r;
     }
    return 0;
}
Mélody Laurent - Procrastinatrice

Envisager que tout est possible et que c'est une question de temps ... le temps de comprendre comment c'est possible. Marc Levy

2006-2007 : PCSI A / / L2* Maths-Info
Avatar de l’utilisateur
musyk
 
Messages: 628
Inscription: Sam 11 Nov, 2006 3:31 pm
Localisation: druper sur un dolmen

Messagede Flyingkiki » Dim 25 Mai, 2008 10:12 pm

J'aimerais pouvoir en faire autant... :roll:
J'ai déjà beaucoup de soucis à écrire une procédure Maple simple... :lol:

J'arrive la question 1... et la question 6 ! :mrgreen:

Mine de rien, ce côté de l'informatique est intéressant, pour qui tente de s'y lancer...
Killian Mouden
PCSI A (2007-2008)
PC (2008-2010)
Image
Avatar de l’utilisateur
Flyingkiki
 
Messages: 172
Inscription: Mar 06 Mar, 2007 10:13 pm

Messagede Xklr_65 » Dim 25 Mai, 2008 10:43 pm

musyk a écrit:Question 8 :
Code: Tout sélectionner
#include <stdio>
int main()

int pgcd(int a, int b);

{
   
   int r;
      while (r==0);
    {
        r = a/b;
        a=b;
        b=r;
     }
    return 0;
}


Cette réponse n'est pas tout à fait bonne, car la question stipule bien que l'on doit opérer des soustractions successives.
Il faut faire une procédure qui prend deux nombres, qui en fait la soustraction, et qui recommence avec le reste et le plus petit, et ainsi de suite. Tant que le reste est non nul, on continue.
Étudier sans réfléchir est une occupation vaine ; réfléchir sans étudier est dangereux. Confucius
Julien TANGUY
2006/2007 PCSI A
2007/2008 PC

2008/2011 Centrale Nantes
Avatar de l’utilisateur
Xklr_65
 
Messages: 388
Inscription: Mer 08 Nov, 2006 6:47 pm
Localisation: Carhaix-Plouguer

Messagede Xklr_65 » Dim 25 Mai, 2008 10:53 pm

Pour les Maple-isants:
Je ne sais pas si on demandait de partir de la phrase et de ressortir la phrase cryptée, j'ai supposé qu'on travaillait à partir d'un tableau de chiffres (une seule ligne) et que l'on ressortait un autre tableau de chiffres.
La première question étant brillamment réalisée par Musyk (je vérifie pas mais ça m'a l'air vrai), je vous propose une procédure Maple:
Code: Tout sélectionner
codageCesar:=proc(t,n,d)
local res;
res:=t;
for i from 1 to n do
  if t[i] < (26 -d) then res[i]:=t[i] + d;
  else res[i]:=t[i] + d - 25;
fi; od;
RETURN(res)
end;
Étudier sans réfléchir est une occupation vaine ; réfléchir sans étudier est dangereux. Confucius
Julien TANGUY
2006/2007 PCSI A
2007/2008 PC

2008/2011 Centrale Nantes
Avatar de l’utilisateur
Xklr_65
 
Messages: 388
Inscription: Mer 08 Nov, 2006 6:47 pm
Localisation: Carhaix-Plouguer

Messagede musyk » Dim 25 Mai, 2008 11:16 pm

Xklr_65 a écrit:
musyk a écrit:Question 8 :
Code: Tout sélectionner
#include <stdio>
int main()

int pgcd(int a, int b);

{
   
   int r;
      while (r==0);
    {
        r = a/b;
        a=b;
        b=r;
     }
    return 0;
}


Cette réponse n'est pas tout à fait bonne, car la question stipule bien que l'on doit opérer des soustractions successives.
Il faut faire une procédure qui prend deux nombres, qui en fait la soustraction, et qui recommence avec le reste et le plus petit, et ainsi de suite. Tant que le reste est non nul, on continue.


Ok ok, j'avais un peu lu l'énoncé comme je le voulais ... Il y a en effet deux méthodes pour le pgcd : avec l'algorithme d'Euclide (ce que j'ai fait) et la méthode par soustraction (ce qui était demandé :roll: ).

Il n'y a en fait pas grand chose qui change.

Il faut déterminer quel est le plus grand entre a et b ( ça sent le If ...), et remplacer la division par une soustraction !!!

Vili vili !



EDIT : Walko nous a donné <a href="http://www.cpge-brizeux.fr/kariye-forum/second-concours-de-programmation-t837.html">ici</a> la réponse à la Question 8 en langage C .... ! :D
Mélody Laurent - Procrastinatrice

Envisager que tout est possible et que c'est une question de temps ... le temps de comprendre comment c'est possible. Marc Levy

2006-2007 : PCSI A / / L2* Maths-Info
Avatar de l’utilisateur
musyk
 
Messages: 628
Inscription: Sam 11 Nov, 2006 3:31 pm
Localisation: druper sur un dolmen

Messagede margaud » Lun 26 Mai, 2008 9:14 pm

je demanderai juste par respect pour ceux qui l'ont passé avec fracas de ne pas tout corriger tout de suite... il y en a qui ont quand meme l'espoir de ne pas tout avoir faux, et qui ne s'y sont pas du tout amusés.... :evil: :evil:
Margaud Lécuyer
2005/2006: PCSI B
2006-2008: PC
Depuis : ESPCI ParisTech
Actuellement : en stage chez Bolloré
Avatar de l’utilisateur
margaud
 
Messages: 73
Inscription: Dim 03 Déc, 2006 7:54 pm
Localisation: Paris

Messagede Marcel » Mar 27 Mai, 2008 12:51 pm

je te soutiens Margaud, moi aussi j'éprouve un amour sans limite pour l'informatique et la programmation et je m'amuse comme un fou pendant ces 40 heures de TP de language C. p***** d'école généraliste
Eric B
2004-2005: PCSI A
2005-2007: PC
2007-2010 : Centrale Lille - Génie Mécanique Avancée
2009-2010 : Lille 1 - Master 2 Recherche Mécanique
Avatar de l’utilisateur
Marcel
 
Messages: 120
Inscription: Mar 07 Nov, 2006 2:15 pm
Localisation: Villeneuve d'Ascq


Retourner vers L'informatique en C.P.G.E.

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron