entrainement informatique 2019 pseudo code

Préparation au concours
Fiche métier et concours
alphaone
Messages : 2
Inscription : 09 juin 2020 19:54

entrainement informatique 2019 pseudo code

Message par alphaone »

Bonjour à vous,

J'ai passé le concours cette année. Malheureusement, non admissible. J'ai loupé l'épreuve d'informatique (un point dans le sujet m'a posée problème et j'y ai passé trop de temps à essayer de le résoudre), en dessous de 10.

Du coup, je souhaiterais vous soumettre ma proposition sur le sujet de 2019 (pseudo code) afin d'avoir des avis et pouvoir m'améliorer (syntaxe).
--------------------------------------------------------------------------------------
Variables
score_final / Score final de la partie (comprend le score du joueur plus les points obtenus à partir du classement) /INT

FONCTION renseignerResultatpartie idjoueur

DEBUT
# ajouter ou modifier le score d’un joueur
LIRE idjoueur, idpartie
SELECT score,points FROM RenseignerPartie where idjoueur=idjoueur and idpartie=idpartie
FAIRE score_final=score+points
LIRE score_final

#calculer le score de l’ensemble des joueurs d’une partie afin de déterminer un classement
//On considère que tous les scores finaux de chaque joueur est connu grâce à aux lignes précédentes sont stockés dans un tableau
Lire idpartie
SELECT score FROM RenseignerPartie ORDER BY DESC WHERE idpartie=idpartie
#calcul du nombre de points
TANT QUE ?? (lire 1 à 1 les scores, et associer à chaque score le point)
FAIRE score_final = score+points
LIRE score_final
FIN
--------------------------------------------------------------------------------------

Je travaille depuis quelques temps sur ce concours (un an environ), autodidacte (reconversion).
Ce site m'a bien aidée pour me préparer (cadrage général) mais des interrogations demeurent (je ne trouve pas toujours les énoncés très clairs en informatique surtout les deux derniers en date ) et sans un regard extérieur sur mon travail je ne pourrais pas progresser.

J'ai une question également : Peut-on mettre du sql dans du pseudo -code ? Peut-on rajouter des variables comme score_final, un tableau intermédiaire en le justifiant ?

En vous remerciant par avance,
Bonne soirée à vous,
jonashbt
Messages : 14
Inscription : 07 mai 2020 18:40

Re: entrainement informatique 2019 pseudo code

Message par jonashbt »

Je ne suis pas vraiment un expert et j'ai fait ça un petit peu au "feeling" mais étant admissible je peux te dire ce que j'ai fait pour la partie pseudo-code

Personnellement je suis allé au plus simple et ai suivi " simplement " par étape ce qui devait être fait en Français, comme une recette de cuisine, j'ai vraiment fait simple et ai mis pas mal de commentaires expliquant mon raisonnement

( ensuite la tu mélanges Français et Anglais, pas sûr que ce soit une super bonne idée )

Après je pense que des personnes ici seront bien plus qualifié que moi pour t’aiguiller

Bon courage pour la suite
eugne
Modérateur
Messages : 372
Inscription : 19 mai 2006 10:34

Re: entrainement informatique 2019 pseudo code

Message par eugne »

Salut,
Je réponds dans le désordre, parce que tes questions finales conditionnent mes remarques sur ta proposition de réponse

alphaone a écrit : 09 juin 2020 20:36 J'ai une question également : Peut-on mettre du sql dans du pseudo -code ? Peut-on rajouter des variables comme score_final, un tableau intermédiaire en le justifiant ?
Dans un pseudo-code, il ne doit RIEN figurer qui ressemble à du code, ce qui signifie syntaxe liée à AUCUN langage, qu'il s'agisse de programmation (php, java, cobol, etc) ou de requêtage (sql, dli, etc)
Tes "SELECT" => poubelle

Rien n'interdit de rajouter des variables au milieu (d'autant plus qu'on ne s'en prive pas quand on pond un programme)
Toutefois, comme on est dans un cadre théorique et uniquement sur papier, on se doute que tu as fait un brouillon et que tu es en capacité de refaire plusieurs passes avant d'écrire au propre.
Dans le cadre de l'exercice ou du concours, on appréciera mieux de voir toutes les variables au début

alphaone a écrit : 09 juin 2020 20:36 Variables
score_final / Score final de la partie (comprend le score du joueur plus les points obtenus à partir du classement) /INT

FONCTION renseignerResultatpartie idjoueur

DEBUT
# ajouter ou modifier le score d’un joueur
LIRE idjoueur, idpartie
SELECT score,points FROM RenseignerPartie where idjoueur=idjoueur and idpartie=idpartie
FAIRE score_final=score+points
LIRE score_final
Je ne reviens pas sur le "select"
Il y a 2 choses :
  • ton pseudo-code n'est pas cohérent avec le commentaire : tu ne fais que cumuler les scores ("ajouter"), mais tu ne modifies pas
  • le plus important : tu fais une confusion entre le score (dixit l'énoncé : "obtenu par le joueur lors de la partie") et le nombre de points (toujours dixit l'énoncé : "obtenus par le joueur en fonction de son classement dans la partie associée").
    Pour une partie donnée, un joueur donné réalise un certain score, ce qui lui octroie des points. Tu ne peux pas cumuler deux nombres qui n'ont pas la même fonction !
alphaone a écrit : 09 juin 2020 20:36 #calculer le score de l’ensemble des joueurs d’une partie afin de déterminer un classement
//On considère que tous les scores finaux de chaque joueur est connu grâce à aux lignes précédentes sont stockés dans un tableau
Lire idpartie
SELECT score FROM RenseignerPartie ORDER BY DESC WHERE idpartie=idpartie
#calcul du nombre de points
TANT QUE ?? (lire 1 à 1 les scores, et associer à chaque score le point)
FAIRE score_final = score+points
LIRE score_final
FIN
Attention à ce que ta réponse corresponde à ce qui est demandé !
Pour rappel :
Cette fonction doit également calculer le nombre de points obtenus par les joueurs afin de pouvoir établir un classement lorsque tous les scores sont renseignés. Le calcul du nombre de points devra donc être déclenché lors de la saisie du dernier score de la partie.
Il doit donc y avoir un contrôle pour répondre à la question "est-ce qu'il reste des scores à saisir après '# ajouter ou modifier le score d’un joueur' ?" entre le bloc de pseudo-code "# ajouter ou modifier le score d’un joueur" et "#calculer le score de l’ensemble des joueurs d’une partie"

La règle de calcul des points est donnée juste avant la description de la table ResultatPartie
Chaque joueur fait gagner à son équipe un certain nombre de points en fonction du classement défini lorsque tous les joueurs d’une partie ont terminé celle-ci :
  • 20 points pour la première place,
  • 19 points pour la seconde place,
  • 1 point pour la dernière place lorsque 20 équipes jouent. Dans le cas de figure ne comprenant que 10 équipes en lice, le dernier de la partie aura 11 points
On s'attend donc à voir :
  • un contrôle pour savoir combien d'équipes ont joué
  • un tri des joueurs par ordre de score
  • une boucle parcourant cette liste triée pour attribution des points

Ma conclusion : je pense que tu as interprété trop rapidement la question pour entrer dans le (pseudo-)code
Tu dois prendre le temps de bien comprendre l'énoncé (si nécessaire, faire des aller-retours entre la question et les éléments de l'énoncé qui s'y rapportent)
Stochastique
Modérateur
Messages : 256
Inscription : 19 avr. 2013 20:39

Re: entrainement informatique 2019 pseudo code

Message par Stochastique »

Je n'ai pas étudié le problème, ni lu l'ensemble de la réponse d'Eugne qui, j'en suis sûr, est très pertinante. Je ne répondrai donc as sur le fond.

Je rejoins juste la première remarque d'Eugne. En pseudo-code tu ne dois pas avoir de code. L'idée est d'écrire, en français, les étapes de la résolution de ton problème. L'idée, c'est qu'un non informaticien puisse comprendre ton raisonnement. De la même manière, ton raisonnement doit pouvoir être "traduit" dans n'importe quel langage informatique par un informaticien. Par exemple, si un jour tu bosses en MOA et que tu écris un cas d'utilisation à destinations de développeurs, tu ne sauras pas forcément à l'avance quel langage sera utilisé et même si c'était le cas, tu ne le connaitras pas forcément. Donc il est important de fournir un pseudo-code neutre de toute syntaxe liée à un langage spécifique.

Par exemple parfois j'en ai vu écrire comme en objet du genre : objet.attribut -> affectation.
A moins d'avoir appris un langage avec ce type de synthaxe très spécifique, la personne qui te lira ne comprendra pas la signification des "." et "->". C'est totalement indigeste.

De la même manière, évite l'anglais dans le pseudo-code.

Concrètement, pour du SQL, tu peux très bien essayer de franciser le langage.
Par exemple pour ton : SELECT score,points FROM RenseignerPartie where idjoueur=idjoueur and idpartie=idpartie

Tu pourrais changer par :
SELECTIONNER attribut1
DANS tableA
OU idjoueur = xxx ET idpartie = yyy

Tu peux même remplacer "=" par du français là aussi "est égal à" ou" correspond à".

Le pseudo-code n'est pas un langage normalisé. Tu n'es donc pas obligé d'avoir une traduction strictement littérale et utiliser les mêmes contraintes. Tu peux même faire des phrases si cela t'inspire. Certains le font. L'important c'est que toutes les étapes de ton raisonnement soient claires.

En utilisant le même exemple cela donnerait : "Récupérer les attributs du champs 'attribut1' dans la table 'tableA' ou l'attribut 'idJoueur' corresponsant à l'attribut 'xxx'."

Là il est évident que tu pourrais le traduire en SQL, mais tu pourrais aussi l'utiliser avec un autre langage ou même avec un autre type de base de donnée (fichiers, NoSQL...).
alphaone
Messages : 2
Inscription : 09 juin 2020 19:54

Re: entrainement informatique 2019 pseudo code

Message par alphaone »

Merci pour vos réponses.
J'en prends note. Je vais mettre en pratique tout cela.
Bien à vous,
eugne
Modérateur
Messages : 372
Inscription : 19 mai 2006 10:34

Re: entrainement informatique 2019 pseudo code

Message par eugne »

Je serais intéressé par un 2e jet de réponse :wink:
Gael972
Messages : 3
Inscription : 02 nov. 2020 00:01

Re: entrainement informatique 2019 pseudo code

Message par Gael972 »

Bonjour à tous,

Pour le pseudo code , peut-on écrire la syntaxe suivante ? :

VARIABLES
prenom : chaine de caractère
nom : chaine de caractere
DEBUT
prenom <-- "jean"
nom <-- "pierre"

AFFICHER "mon nom est" ,nom, "mon prenom est" ,prenom

FIN

ou encore :

SI....ALORS
DEBUT SI
.....
FIN SI
SINON
DEBUT SINON
....
FIN SINON

etc.

Merci d'avance pour vos retours.
eugne
Modérateur
Messages : 372
Inscription : 19 mai 2006 10:34

Re: entrainement informatique 2019 pseudo code

Message par eugne »

Les 2 sont valables :)
Gael972
Messages : 3
Inscription : 02 nov. 2020 00:01

Re: entrainement informatique 2019 pseudo code

Message par Gael972 »

ok merci eugne
Répondre

Revenir à « Concours Contrôleur des finances publiques programmeur »

Préparation au concours
Fiche métier et concours