CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Les spécifications

benirho
benirho
Niveau 10
07 octobre 2013 à 14:18:35

Bonjour,

Je suis en première informatique, et j'ai un peut de mal avec l'algorithmie. Nous avons un très bon "professeurs" mais étrangement, pas vraiment un bon pédagogue ... Bref !

Quelqu'un saurait 'expliquer, ou me redirigé vers un site qui explique comment procédé (je n'ai pas trouvé sur google).

Merci

[notch]
[notch]
Niveau 10
07 octobre 2013 à 14:32:01

La methode la plus simple (que mon prof nous demande que l'on fasse), c'est:
Entrée(s) : Descriptions des entrées et préciser les valeurs qu'elle doivent avoir/ne pas avoir (genre dans le cas d'une fonction qui prend en entrées deux variables a et b et qui renvoie la valeur a/b, il faut préciser que b ne doit pas être égal à 0).

Sortie(s) : Descriptions des sorties de ta fonction/procedure.

Effet(s) de bord : Les effets de bord que fait ta fonction/procedure (par exemple, un affichage à l'ecran)

Exemple de spécification :

Fonction in
Entrées: un element elem et une liste l.
Sortie: Vrai si elem est dans l, Faux sinon.

En gros, quelqu'un qui lit ta specification pour une fonction/procedure, il devrait tout de suite comprendre comment l'utiliser :ok:

benirho
benirho
Niveau 10
07 octobre 2013 à 14:36:00

Merci,

Notre prof nous demande de faire comme ca.

Données : Input (valeur et type) Output (Valeur et type)

Précondition : ( je ne comprends pas vraiment ce que c'est)

Postcondition : (idem :/)

Saisie:

Affichage:

J'ai du mal avec les post et préconditions ... Mais je ne trouve rien sur le net :(

benirho
benirho
Niveau 10
07 octobre 2013 à 15:10:53

personne ? :/

[notch]
[notch]
Niveau 10
07 octobre 2013 à 15:15:25

Précondition, ca doit être les conditions nécessaire pour que ta fonction puisse se derouler sans probleme (en gros dans le cas d'une fonction division qui prend deux entiers a et b en entrée et qui renvoie a/b en sortie, la précondition est que b soit different de 0 sinon ca ne marche pas )

Postcondition, surement ce que tu es censé avoir comme resultat dans le cas ou l'on utilise ta fonction.

J'ai trouvé ca sur wikipedia : http://fr.wikipedia.org/wwiki/Programmation_par_contrat (si ca peut mieux t'aider à comprendre) mais le mieux reste de demander à ton prof ce qu'il veut :noel:

benirho
benirho
Niveau 10
07 octobre 2013 à 15:18:33

Merci pour ces précisions, j'ai un teste formatif ce soir.

Je reviendrai te dire comment cela s'est déroulé :)

Encore Merci !

benirho
benirho
Niveau 10
07 octobre 2013 à 20:38:32

je reviens du cours, j'ai rien pigé :S

et le prof explique vrmt pas bien ...

Pourtant, je suis sûr que cela n'est pas compliqué !

benirho
benirho
Niveau 10
08 octobre 2013 à 09:17:26

Personne ne s'y connait là-dedans ??

suis désespéré :(

Silvermo
Silvermo
Niveau 26
08 octobre 2013 à 11:48:28

Les spécifications sont utilisées pour faciliter l'utilisation de fonctions dans un contexte où les fonctions peuvent être utilisées par d'autres personnes que toi, bref dans un contexte de travail en équipe, de réutilisation de code, de création d'interfaces, API, etc.

En gros pour faire simple il s'agit de documentation qu'on ajoute aux fonctions, ça n'est pas destiné forcément à être exécuté (quoi que dans certains cas, voir plus bas). Cette documentation qui précède la fonction/procédure/etc doit être suffisante pour comprendre ce que fait le code de la dite-fonction/procédure/autre sans lire le code. Bref il s'agit de documentation de façon formelle (notations mathématiques éventuellement) ce que fait la fonction, et dans quels cas la fonction peut être utilisée, dans quels cas elle va planter, quels sont les cas qui sont couverts.
D'où usage de :
:d) Préconditions : décrire le contexte dans lequel la fonction garantit de fournir des résultats.
:d) Postconditions : décrire ce qui se passe quand l'exécution est terminée

Tu peux aussi les retrouver sous d'autres formes [Lis2000] avec les clauses suivantes :
:d) REQUIRES (Préconditions sur le type, la présence de données, les valeurs des données ou du contexte...)
:d) MODIFIES (les données impactées)
:d) EFFECTS (effets de bord)

Il y a aussi ce qu'on appelle L'invariant de représentation et d'autres types d'invariants assez divers, qui peuvent aussi s'ajouter à la documentation

Pour plus d'information, tu peux te renseigner sur la programmation par contrat, il y a également des outils pour :d) automatiser la vérification de ces pré et post conditions (durant l'exécution par exemple) :g)

[Lis2000] = Program Development in Java: Abstraction, Specification, and Object-Oriented Design - publié en 2000 par Barbara Liskov

benirho
benirho
Niveau 10
08 octobre 2013 à 11:52:21

Un grand MErci !! :)

j'y vois déjà plus clair :)

Silvermo
Silvermo
Niveau 26
08 octobre 2013 à 12:24:40

Tant mieux :) , bon j'ai survolé le sujet et on pourrait t'en parler en long et en large ;) évidemment.

Pseudo supprimé
Pseudo supprimé 08 octobre 2013 à 17:44:13

Surtout n'hésite pas à poser des questions à ton prof (si c'est pas déjà fait), peut-être qu'il passe un peu vite sur les choses car il pense que tout le monde a compris.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment