Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1163 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Suivante
Auteur Sujet :

vérifierr stppp uune boucle d'étoile croissante

n°2058189
esox_ch
Posté le 20-02-2011 à 15:31:14  profilanswer
 

Reprise du message précédent :
Non c'est juste que je viens de commencer un bouquin sur JUnit et comme toujours ça commence avec les bons principes TDD&co et je me suis dit "C'est étrange que personne n'y ait pensé".  
Pas le prendre mal hein :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 20-02-2011 à 15:31:14  profilanswer
 

n°2058191
gilou
Modérateur
Modzilla
Posté le 20-02-2011 à 15:52:20  profilanswer
 

Disons qu'un unitest sur quelque chose qui a des effets de bords (ici l'écriture à l'écran), c'est pas terrible, sauf logiciel de comparaison de capture écran... :)

 

Notes qu'en langage D, tu as directement dans le langage la notion de bloc unittest {...} [:vapeur_cochonne]  le plus souvent rempli avec des asserts et testé à la compilation avec l'option -unittest

 

A+,


Message édité par gilou le 20-02-2011 à 15:53:02

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2058192
esox_ch
Posté le 20-02-2011 à 16:02:28  profilanswer
 

Bah c'est pas compliqué de faire un assert_equal fonction_5_etoiles_inc, "*
**
***
****
*****"
 
:bounce:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2058197
gilou
Modérateur
Modzilla
Posté le 20-02-2011 à 17:01:17  profilanswer
 

Sauf que la tu supposes que ton code envoie une seule grande chaine en sortie, et non 10 chaines successives. ça doit en général être faisable, mais dans certains cas, en sed par exemple, ou en forth, ça doit considérablement compliquer le programme, et ça, c'est pas le but d'un unittest.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2058218
esox_ch
Posté le 20-02-2011 à 19:49:22  profilanswer
 

Point taken.
Mais dans ces langages là t'as pas moyen de définir le STD output? De manière à lui faire rediriger tous ses flux vers un output contrôlé par ton test et ensuite lancer l'assert?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2058226
gilou
Modérateur
Modzilla
Posté le 20-02-2011 à 21:07:41  profilanswer
 

Dans le cas du Forth, le programme donné utilise un EMIT, et ça, c'est censé n'aller que sur la console système.
(la définition de la console (et donc sa redirection) est explicitement en dehors de ce qui est couvert par le standard ANSI Forth.)
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2058234
Un Program​meur
Posté le 20-02-2011 à 21:35:04  profilanswer
 

Pour ce genre de chose, un test en dehors du programme est possible (au moins sur les plateformes permettant de rediriger la sortie standard).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2058243
gilou
Modérateur
Modzilla
Posté le 20-02-2011 à 23:29:34  profilanswer
 

C'est pour ça que j'ai parlé de logiciel de comparaison de capture écran.
C'était entre autres ce qu'utilisait, de manière automatisée, mes équipes de tests, pour vérifier la non régression des logiciels que mon équipe développait (des éditeurs de documents industriels), pour vérifier au pixel près, l'identité du rendering d'un même document, entre la version de test et la version étalon.
A+,

Message cité 1 fois
Message édité par gilou le 20-02-2011 à 23:31:16

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2058260
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 21-02-2011 à 05:53:08  profilanswer
 

gilou a écrit :

C'est pour ça que j'ai parlé de logiciel de comparaison de capture écran.
C'était entre autres ce qu'utilisait, de manière automatisée, mes équipes de tests, pour vérifier la non régression des logiciels que mon équipe développait (des éditeurs de documents industriels), pour vérifier au pixel près, l'identité du rendering d'un même document, entre la version de test et la version étalon.
A+,


Ouais, puis c'est plus élégant que de se contenter de comparer les chaîne de caractères envoyées sur la sortie standard.


Message édité par hephaestos le 21-02-2011 à 13:55:14
n°2058365
gilou
Modérateur
Modzilla
Posté le 21-02-2011 à 13:52:09  profilanswer
 

Au départ, on parlait de tests unitaires réalisés directement dans le langage et non pas via des moyens externes.
Et j'ai alors indiqué qu'il y a des cas ou ce n'est pas faisable, soit parce que le test implique la modification du code de la procédure à tester, ce que ne doit pas faire un test, soit parce que la procédure à tester a des effets de bord, comme l'écriture sur console, qu'il n'est pas possible de rediriger depuis le langage.
Bien sur que si tu développes pour un programme dont les i/o sont des flux de caractères, tu peux tester de manière externe les chaines de caractère. Mais ce n'est pas toujours le cas, si tu développes pour un GUI.
Par exemple quand tu développes un éditeur WYSIWYG, qui gère complètement l'affichage, le kerning, l'interlignage, l'hyphénation etc etc, tu n'as pas 50 moyen de tester la non régression sinon l'emploi de logiciels de comparaison de capture écran. Je présentais juste ce cas, peut être pas courant pour une majorité de devs, mais qui a été mon pain quotidien pendant des années (et pour la non régression pour les impression pdf ou pcl, c'est encore plus joyeux..., surtout si le point fort de ton logiciel est l'assurance d'une impression identique, quelque soit la plate forme sur lequel le logiciel tourne)
A+,


Message édité par gilou le 21-02-2011 à 13:56:35

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 21-02-2011 à 13:52:09  profilanswer
 

n°2058367
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 21-02-2011 à 13:56:14  profilanswer
 

Alors toi tu as le droit de troller, et moi non ? C4EST 9A ??? §§§ /FOU/

n°2058374
gilou
Modérateur
Modzilla
Posté le 21-02-2011 à 14:05:57  profilanswer
 

C'est vrai qu'on peut s'attendre à tout de la part de quelqu'un dont la signature montre qu'il ne fait pas la distinction entre un pingouin et un manchot :p
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2058382
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 21-02-2011 à 14:26:30  profilanswer
 

gilou a écrit :

C'est vrai qu'on peut s'attendre à tout de la part de quelqu'un dont la signature montre qu'il ne fait pas la distinction entre un pingouin et un manchot :p
A+,


Pingouin : http://hfr-rehost.net/1.bp.blogspot.com/_7B3xgq0pZks/TU22iy4i9iI/AAAAAAAABLY/_ER8z3lQXug/s1600/penguin.jpg
 
Manchot : http://hfr-rehost.net/3.bp.blogspot.com/_NyVkecuiyv4/TI35eU-GLLI/AAAAAAAAABk/BVmvuHw_-us/s1600/nick-vujicic-un-homme-sans-bras-ni-jambes.jpg

n°2058417
esox_ch
Posté le 21-02-2011 à 15:25:26  profilanswer
 

C'est pas parce qu'en anglais, on ne fait pas la différence entre pingouin et manchot, que c'est pareil en français ( http://fr.wikipedia.org/wiki/Manchot VS  http://fr.wikipedia.org/wiki/Pingouin ) :o

Message cité 1 fois
Message édité par esox_ch le 21-02-2011 à 15:25:34

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2058418
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 21-02-2011 à 15:26:36  profilanswer
 

C'est pas parce qu'on a toujours fait n'importe quoi qu'il faut continuer.

n°2058424
drasche
Posté le 21-02-2011 à 15:46:31  profilanswer
 

Ca dérive :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°2058433
gilou
Modérateur
Modzilla
Posté le 21-02-2011 à 16:01:36  profilanswer
 

esox_ch a écrit :

C'est pas parce qu'en anglais, on ne fait pas la différence entre pingouin et manchot, que c'est pareil en français ( http://fr.wikipedia.org/wiki/Manchot VS  http://fr.wikipedia.org/wiki/Pingouin ) :o

Mais on la fait aussi en anglais, quand on a une certaine éducation:
Auk = pingouin (et bestioles apparentées)
Penguin = manchot.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2177150
scuzi
Waging war with conviction
Posté le 22-02-2013 à 19:32:17  profilanswer
 

Salut tout le monde,
je remonte ce sujet au lieu d'en ouvrir un autre car je pense pas que ma question le nécessite, d'autant qu'elle porte sur ce triangle fait avec des étoiles en C.
 
J'étudie le C avec le livre "Le C en 20h" mais je bloque sur cet exercice... J'ai la solution mais j'aimerai la comprendre.
 
Donc la partie principale de mon problème c'est ici :
 

Code :
  1. for (i = 1; i < 5; i++) { // je pense que là on règle le nombre de lignes qu'on aura
  2.         for (j = 1; j  <= i; j++) { // et là on règle les étoiles
  3.                printf("*" );
  4.         printf("\n" );


 
Pourquoi j se base sur i ? (j <= i)
De plus, vu que j s'incrémente à chaque boucle, quand j vaudra 2 il y aura donc 2 printf("*" ) qui se feront, et ainsi de suite ?
 
Merci d'avance pour vos réponses !
(j'étais membre avant et les réponses étaient super donc j'espère retrouver la même chose  :) )

n°2177176
h3bus
Troll Inside
Posté le 23-02-2013 à 00:07:20  profilanswer
 

Première ligne une étoile
Deuxième deux étoiles et ainsi de suite.
 
Autant d'étoile que le numéro de ligne ce qui donne ça:
 

Code :
  1. *
  2. **
  3. ***
  4. ****


---------------
sheep++
n°2177260
scuzi
Waging war with conviction
Posté le 24-02-2013 à 15:41:42  profilanswer
 

Et c'est juste ce que j'ai écris en commentaire sur le code ? i = ligne, j = étoiles ?
Du coup, pour les problèmes de ce style, où il faut écrire sur chaque lignes, on passe par cette réflexion de double boucle ?

n°2177306
hephaestos
Sanctis Recorda, Sanctis deus.
Posté le 24-02-2013 à 22:49:07  profilanswer
 

Pour comprendre ce genre de problème je pense que la plupart des gens normaux ont la même approche, au moins au début : tu déroules les boucles comme si tu étais l'ordinateur qui exécute le programme.  
1: i=0,j=0. une étoile
2: i=0,j=1 (je sors de la boucle j et je passe à la ligne)
3: i=1, j=0. une étoile
4. i=1, j=1. une étoile
etc.
 
Tu ne t'arrêtes que lorsque tu es certain d'avoir compris ce que fait le programme (en général avant la fin, mais si tu préfères faire les 5 ligne fais les).

n°2177307
scuzi
Waging war with conviction
Posté le 24-02-2013 à 23:20:51  profilanswer
 

C'est là où l'algorithmique prend tout son sens finalement.
On veut aller (trop) vite des fois, coder, coder, coder... qu'on oublie de comprendre avant. Enfin, en ce qui me concerne.
 
Je vais prendre le temps de la réflexion en me mettant à la place de l'ordinateur comme tu dis, c'est une bonne façon.
Merci pour l'explication, je vais la mettre en pratique !

n°2177313
ptitchep
Posté le 25-02-2013 à 02:24:53  profilanswer
 

scuzi a écrit :

Je vais prendre le temps de la réflexion en me mettant à la place de l'ordinateur comme tu dis, c'est une bonne façon.
Merci pour l'explication, je vais la mettre en pratique !

Faire du pas à pas avec un debugger peut t'aider pour cette étape.


---------------
deluser --remove-home ptitchep
n°2177682
Profil sup​primé
Posté le 27-02-2013 à 01:26:48  answer
 

merci pour le up qui m'a fait découvrir ce thread [:rofl]

n°2182220
art_dupond
je suis neuneu... oui oui !!
Posté le 25-03-2013 à 13:44:54  profilanswer
 

En haskell après mon premier mini cours :)
 

Code :
  1. $ ghci
  2. GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
  3. Prelude> let n = 5 :: Int
  4. Prelude> mapM_ putStrLn [ take (n-x) (repeat ' ') ++ take x (repeat '*') | x <- [n,n-1..1] ]



---------------
oui oui
n°2182224
Joel F
Real men use unique_ptr
Posté le 25-03-2013 à 13:54:26  profilanswer
 

on pourrais plutot faire une monade ?

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
boucle for pythonProbleme : Tableau perd ses valeurs une fois sortie de la boucle
Besoin d'aide sur une boucle "if else if else"Batch : Compteur dans une boucle for
Scan d'un dossier image, lecture des images une par une en boucleGreasemonkey Boucle executée une seule fois
Quitter prématurément une boucle for-each ?Boucle for
un objet de formulaire en boucle [résolu]Lenteur d'exécution (grande boucle accédant à une dll)
Plus de sujets relatifs à : vérifierr stppp uune boucle d'étoile croissante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR