Premier concours de programation

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

Premier concours de programation

Messagede lord.osiris » Ven 14 Sep, 2007 12:27 pm

Bon, on va lancer le premier concours de programation. Bien sûr, c'est surtout un entraînement pour vous tous, petits taupins! Le principe est simple : on pose un problème (pas forcément des maths) et le but est de créer la procédure correspondante dans le langage que vous voulez! Messieurs les professeurs, merci de faire passer le message dans vos classes. Je trouve que c'est bien plus sympa d'apprendre la programmation avec des recherches de procédure, plutôt qu'en recopiant ce que le ou la prof indique sur le tableau (mais c'est un avis perso).

NOTE : Vous pouvez même proposer une solution en algorithmique si vous ne savez pas coder.

NOTE de Xklr_65: Suite à une déviation du but premier de ce topic, je l'ai scindé en gardant "le plus simple" ici. Pour voir ce qui a été déplacé, voir le topic "Programmation niveau supérieur"


EXPLICATION : Qu'est ce que l'algorithmique? Bon, normalement, vous allez le voir avec vos profs. En gros, c'est écrire dans la langue de Shakespeare (oui, l'anglais) ce que l'ordi doit faire. Hey, prends pas cette mine dégoutée, c'es vraiment tout bête. Je ferai un autre post cet aprem pour expliquer rapidement comment écrire en algorithmique.

COMMENT CA MARCHE : Simple : vous donnez votre solution, ou vous écrivez juste vos idées (comment on pourrait faire, etc...)

INTERET : Progresser en informatique! Et peut être vous découvrir une passion... Qui sait... Mais en tout cas, cela permet, sur certains concours, d'avoir une meilleure approche lors des tests d'info.


Le premier test : On va commencer par quelque chose de facile. Vraiment. Je veux une procédure qui additionne les deux nombres qu'on lui rentre.


Exemple : je rentre 4 et 5, le "programme" me ressort 9. Oui, on peut le faire sous excel, mais là n'est pas vraiment l'intérêt (mais vous pouvez poster la réponse pour excel quand meme).

Si je vois que personne ne répond à ce premier concours, j'abandonne l'idée. Par contre, si j'ai des réponses, je passe à des recherches plus sympatiques!
Should a Devil be blamed for having loved an Angel ?

Thibaud Rohmer PSI
lord.osiris
 
Messages: 125
Inscription: Sam 18 Nov, 2006 10:39 pm

Messagede Xklr_65 » Ven 14 Sep, 2007 1:05 pm

Je vais suivre avec attention ce topic.
C'est vari qu'une procédure expliquée permet de comprendre et de pouvoir après réutiliser les outils (boucles for, if, while, etc...).

Faisons vivre ce topic !
É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 lord.osiris » Ven 14 Sep, 2007 1:36 pm

Yep mon gars. Mais je ne vois pas de proposition pour autant... Tu veux tenter ta chance? Tu peux écrire en algorithmique si maple te déplait...
Should a Devil be blamed for having loved an Angel ?

Thibaud Rohmer PSI
lord.osiris
 
Messages: 125
Inscription: Sam 18 Nov, 2006 10:39 pm

Messagede JNO » Ven 14 Sep, 2007 4:47 pm

Hi hi je vais enfin peut être comprendre maple !!!!!!!
JN. Briffaut Prof Phys PC

Image

Pour échapper à l'absurdité de la condition humaine, nous nommons parfois volonté l'humeur qui nous gouverne. Seul l'amour, pourtant fugace, nous permet de ne pas céder au désespoir.
Avatar de l’utilisateur
JNO
Administrateur site et/ou forum
 
Messages: 1234
Inscription: Lun 06 Nov, 2006 9:38 pm
Localisation: Jean-Noël Briffaut

Messagede Vega_Lyra » Ven 14 Sep, 2007 9:21 pm

Yep ! Je proposerai une réponse mais demain seulement parce que là j'ai ds de maths demain... (quelle idée aussi !)
Autrement super idée que ce topic ! Il est vrai que le créneau (merci formose) informatique en cpge est un peu restreint
Dernière édition par Vega_Lyra le Sam 15 Sep, 2007 7:43 pm, édité 1 fois.
"Je suis athée, Dieu merci !" Stendhal

Oriane Le Pocher

PCSI A : 2006-2007
PSI : 2007-2008
Mines de Douai en fonctionnaire 2008-2011
Avatar de l’utilisateur
Vega_Lyra
 
Messages: 101
Inscription: Ven 10 Nov, 2006 3:44 pm
Localisation: Drupe un tumulus

Messagede lord.osiris » Ven 14 Sep, 2007 9:26 pm

DS de maths demain? Les DS ont déjà commencé? Ah la la... Moi je vais me faire une soirée One Piece... Bon courage les gens! Et n'ayez pas peur, les profs ne mordent pas tant que vous ne passez pas en dessous de la barre des 5/20 :D (euh, en dessous, fuyez.... c'est votre seule chance!)

Bon, cessons de tergiverser, j'attends avec impatience une réponse à ce concours : le vrai début de concours est déjà prêt, et il ne s'agira pas d'additionner bêtement des nombres!
Should a Devil be blamed for having loved an Angel ?

Thibaud Rohmer PSI
lord.osiris
 
Messages: 125
Inscription: Sam 18 Nov, 2006 10:39 pm

Messagede Xklr_65 » Dim 16 Sep, 2007 3:45 pm

En maple
Code: Tout sélectionner
somme:= proc(a,b)
local s;
s:=a+b;
RETURN(s);
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 lord.osiris » Mar 18 Sep, 2007 12:55 pm

Bien vu! Et joliment écrit.
Pour aller encore plus vite (mais c'est une astuce), sache que maple te retourne toujours, dans une procédure, le résultat de la dernière ligne. Ainsi, pas besoin de rentrer le calcul dans la variable s. Mais c'est un détail. Le code deviendrait alors :

Code: Tout sélectionner
somme:= proc(a,b)
a+b;
end;


Cependant, il est bien plus "propre" de l'écrire comme tu l'as fait :D .

Maintenant, il va peut-être falloir expliquer cette "procédure" ligne par ligne aux néophytes...

EXPLICATIONS

Code: Tout sélectionner
somme := proc(a,b)


Ici, on définit notre "procédure". Elle prend en entrée les paramètres a et b. En clair, on va demander à l'utilisateur de nous donner les valeurs de a et b. Le nom de la procédure est "somme".

Code: Tout sélectionner
local s;


Cette ligne permet de définir nos "variables locales". Non, ce n'est pas des monstres, c'est juste les valeurs qui vont apparaître dans notre procédure. Si vous oubliez cette ligne, pas de souci, maple le fait en général pour vous.

Code: Tout sélectionner
s:=a+b;


Ici, on définit la valeur de s. Imaginons que s vaut, au début, 15. Cette valeur est maintenant effacée, et remplacée par la valeur de a+b. Donc si a vaut 1 et b vaut 2, s vaudra.... 3. Bravo, t'as compris...

Code: Tout sélectionner
RETURN(s);


Bon, c'est bien beau tout ça, mais pour l'instant, seul l'ordinateur connaît la valeur de s. Il faut donc lui demander de nous la donner...
C'est pourquoi on met cette commande RETURN, qui va nous donner la valeur de s.

Code: Tout sélectionner
end;


On a fini notre procédure, on marque donc un joli "end;" à la fin, pour boucler le tout. Attention à ne pas l'oublier, maple n'aime pas...

Et après, hop, on valide, et maple nous réecrit notre procédure sur une ligne pour nous montrer qu'il a bien compris (bravoooo!)

Pour utiliser cette procédure, une fois codée, il faudra ensuite l'appeller par son nom (comme avec les élèves) et lui donner les consignes : les valeurs de a et b.
Ca donne alors ceci, pour faire la somme de 1 et 2 :
Code: Tout sélectionner
somme(1,2);


Et, si tout marche bien, vous avez bien la valeur "3" qui sort.
Should a Devil be blamed for having loved an Angel ?

Thibaud Rohmer PSI
lord.osiris
 
Messages: 125
Inscription: Sam 18 Nov, 2006 10:39 pm

Messagede tore » Mar 18 Sep, 2007 1:40 pm

Est-ce que
Code: Tout sélectionner
somme:=proc(a,b)
  RETURN(a+b);
end;
ne conviendrait pas?
T0(2r)e M@til1
PCSI A 2006/2007
L1 Physique 2007/2008
L2 Informatique 2008/2009

La parade de Bugs Bunny... un choix tout à fait loufoque pour une bande d'ivrognes.
Avatar de l’utilisateur
tore
 
Messages: 65
Inscription: Lun 13 Nov, 2006 2:04 pm
Localisation: Fac de Rennes

Messagede !ce#M@n » Mar 18 Sep, 2007 6:12 pm

Est ce que ça marche en C?
Dans ce cas ça pourrait donner :

long resultat = 0, nombre1 = 0, nombre2=0;

printf("Entrez un nombre1 : ");
scanf("%ld", &nombre1);
printf("Entrez un nombre2 : ");
scanf("%ld", &nombre2);

resultat = nombre1 + nombre2;

printf("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
Pierre Boucher
2007/2008 : PCSIB
2008/2009 : PSI
2009/2010 : PSI

"Connais l'adversaire et surtout connais toi toi-même et tu seras invincible."
!ce#M@n
 
Messages: 21
Inscription: Dim 09 Sep, 2007 5:01 pm
Localisation: Partout à la fois

Messagede Anne » Mer 19 Sep, 2007 7:33 pm

Aller en java ça devrait donner qqch du type

public static int somme (int a, int b ) {
int somme=0;
somme = a+b;
return somme;
}

Enfin qqc du style, j'ai tjs du mal ds les déclarations au début ... static ou pas ... ^^
Anne LE COZ
2005-2006 : PCSIA
Promo 2006-2010 de l'EMN (Ecole des Mines de Nantes)
Avatar de l’utilisateur
Anne
 
Messages: 157
Inscription: Sam 11 Nov, 2006 4:46 pm
Localisation: Pays Bigouden ^^ Enfin plus Nantes ces temps çi ...

Messagede Xklr_65 » Mar 02 Oct, 2007 1:07 pm

Bon continuons ce concours:
Je rentre un nombre complexe, a, sous forme cartésienne et un entier n. Je veux résoudre z^n=a.

J'ai donc trois nombres en entrée: x=\Re{(a)} , y=\Im{(a)},   n et je veux les solutions sous forme cartesienne
É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


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