Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 27/01/2010, à 10:47

jofab

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Kanor a écrit :

Oh utiliser des ; dans python quel idée ?!!

lol ca faisait longtemps que je n'avais plus ecrit de code python... Merci de l'avoir souligné

Hors ligne

#27 Le 28/01/2010, à 01:36

c_r_x

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

c'est une merveille ce python :

# -*- coding:Utf-8 -*-
n = input('Entrez le nombre de lignes du pyramide : ')
I= range(1,n+1)
K=" "
def espace(n,K):
	if (n==0):
		return K
	else :
		return espace(n-1, K) + " "

J="*"
for i in I:
	print espace(n-i,K),J
	J="*"+J+"*"
	i=i+1

Avec C et C++ c'est un peu plus de lignes !

Dernière modification par c_r_x (Le 28/01/2010, à 01:48)

#28 Le 28/01/2010, à 02:13

tshirtman

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

je suis fan de python, mais je suis pas persuadé que ce soit le meilleur exemple... je viens d'écrire ça en C...

#include <stdio.h>
int main(int argc, char* argv){
    int n, i, j;
    printf("Entrez le nombre de lignes de la pyramide : ");
    scanf("%d", &n);
    for (i=0; i<n; i++){
        for(j=0; j<n-i+1; j++)
            printf(" ");
        for (j=0; j<2*i+1; j++)
            printf("*");
        printf("\n");
    }
}
gaby@queen [~]./test2
Entrez le nombre de lignes de la pyramide : 6
       *
      ***
     *****
    *******
   *********
  ***********
gaby@queen [~]python test2.py
Entrez le nombre de lignes du pyramide : 6
       *
      ***
     *****
    *******
   *********
  ***********
gaby@queen [~]wc -l test2.*
 13 test2.c
 15 test2.py

Hors ligne

#29 Le 28/01/2010, à 05:01

sputnick

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

En perl j'ai implementé ça à ma sauce, c'est pas optimum ( les algo matheux c'est pas mon fort ^^ )

#!/usr/bin/env perl

print 'Nombre de lignes a afficher en pyramide : ';
$v=<>; $cs = $v;

for (0..$v) {
    $s = chr(040) x $cs; $e = chr(052) x $ce;

    if ($_ == 0) {
        $v++;
        printf "%${v}s\n", "*";
    }
    else {
        $_ == 1 ? next : printf "%5s\n", "$s$e*";
    }

    $cs--; $ce+=2;
}

De là, une version "obfuscated" en uni-ligne, attention, ça pique les yeux big_smile

perl -e 'print "Nombre de lignes a afficher en pyramide : ";$v=<>;$cs=$v;for(0..$v){$s=chr(040)x$cs;$e=chr(052)x$ce;if($_==0){$v++;printf"%${v}s\n","*";}else{$_==1?next:printf"%5s\n","$s$e*";}$cs--;$ce+=2;}

@tshirtman, merci pour ton code, je me suis largement inspiré de ton algo, je l'implémente en perl  pour faire plus propre et concis que precedement :

print "Entrez le nombre de lignes de la pyramide : ";
( $n=<> ) --;                                   # <-- j'ai improvisé ça et ca marche pour décrementer, faut du perl pour avoir cette souplesse :þ
for (0..$n) {
    $v1 = $n-$_; print ' ' for (0..$v1);
    $v2 = 2*$_; print '*' for (0..$v2);
    print $/;
}

Et un petit dernier en bash pour la forme ^^

read -p "Nbre ? " n
for ((i=0; i<n; i++)); do
    for ((j=0; j<$((n-i+1)); j++)); do echo -n ' '; done
    for ((j=0; j<$((2*i+1)); j++)); do echo -n '*'; done
    echo
done

~


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#30 Le 28/01/2010, à 06:30

tshirtman

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

enfin bon, en python en fait c'est mieux lol

gaby@queen [~]./test3.py
Entrez le nombre de lignes de la pyramide :6
       *
      ***
     *****
    *******
   *********
  ***********
gaby@queen [~]cat test3.py 
#!/usr/bin/env python
n = input("Entrez le nombre de lignes de la pyramide :")
for i in range(n):
    print " "*(n-i+1)+"*"*(2*i+1)

Hors ligne

#31 Le 28/01/2010, à 10:22

c_r_x

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Bravo tshirtman, vous avez "shorté" lol le script. en 3 lignes

# -*- coding:Utf-8 -*-
n = input("Entrez le nombre de lignes de la pyramide :")
for i in range(n):  print " "*(n-i+1)+"*"*(2*i+1)

@sputnick en perl ~180 caractères, en python  ~80 caractères, ça pique les yeux

Dernière modification par c_r_x (Le 28/01/2010, à 11:35)

#32 Le 28/01/2010, à 10:46

Le Farfadet Spatial

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Salut à tous !

   Un langage ne peut en aucune manière être jugé à l'aune du nombre de lignes avec lequel on produit du code. Faire du code illisible (et impossible à maintenir) c'est rigolo lorsque l'on code dans son coin, mais d'une part cela signifie que l'on sera incapable de revenir sur le code trois mois plus tard, d'autre part cela rend impossible toute collaboration.

   De toute façon, il n'y a pas de plus meilleur langage du monde parfait pour tout et ta femme revient dans les deux jours. Chaque langage a ses qualités et ses défauts et, surtout, son domaine d'application. Il importe d'en être conscient pour choisir celui qui est le plus adapté au problème que l'on entend résoudre.

   À bientôt.

                                                                                                                                     Le Farfadet Spatial

Hors ligne

#33 Le 28/01/2010, à 10:52

freaxmind

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Je vous propose la version ruby 1 ligne:

n=ARGV[0].to_i;for i in 0..n do puts ' '*(n-i)+'*'*(1+2*i) end

~/tmp$ ruby pyramide.rb 5
     *
    ***
   *****
  *******
*********
***********

Pour que cela soit plus claire

n = ARGV[0].to_i
for i in 0..n
    puts ' '*(n-i)+'*'*(1+2*i)
end

Ce qui nous fait:

/tmp$ wc pyramide.rb
1 11 65 pyramide.rb

Mais je pense que tester le nombre de ligne n'est pas un argument. Il ne faut pas sacrifier la clarté pour ces détails.
Il y aurait eu plusieurs facon de faire en ruby, la encore j'ai privilégié celle qui me semblait la plus belle

Hors ligne

#34 Le 28/01/2010, à 11:52

c_r_x

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Ils permettent tous d'atteindre le sommet...

Gérard Swinnen :"Le langage dominant y est sans conteste C/C++. Ce langage s'impose comme une référence absolue, et tout informaticien sérieux doit s'y frotter tôt ou tard. Il est malheureusement très rébarbatif et compliqué, trop proche de la machine. Sa syntaxe est peu lisible et fort contraignante. La mise au point d'un gros logiciel écrit en C/C++ est longue et pénible. (Les mêmes remarques valent aussi dans une large mesure pour le langage Java).

#35 Le 28/01/2010, à 12:13

Karl_le_rouge

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Un des raisons pour laquelle je déconseille le Swinnen pour toute personne ayant atteint l'âge de majorité ===> beaucoup de raccourcis du même style [1], enseigne un style de programmation pas très pythonnique.

C'est un super bouquin pour initier un ado à la programmation mais pas pour apprendre Python.

[1] le langage C/C++ n'existe pas, ce sont deux langages différents. Un code C parfaitement valide n'est pas forcément valide en C++,  et le sous-ensemble C du C++ est beaucoup plus robuste.

Hors ligne

#36 Le 28/01/2010, à 12:14

tshirtman

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

@u Farfadet Spacial: je suis entièrement d'accords, à une nuance près, quand on ne lui sacrifie pas la lisibilité, un faible nombre de lignes participe à la clareté du code smile (je répète, quand on lui sacrifie pas la lisibilité wink).

Enfin bon il faut être claire, la qualité du code dépends bien plus du programmeur que du language wink.

@Karl_Le_Rouge: le C/C++ est un pseudo language très répandus... c'est l'horreur qui consiste à coder en C dans un compilateur C++, en utilisant une partie des nouvelles syntaxes disponibles...

>_<

Sinon j'ai pas été fan du Swinnen non plus, c'est pas franchement ce "think like a computer scientist" que je voudrait voir plus répandus...

Dernière modification par tshirtman (Le 28/01/2010, à 12:18)

Hors ligne

#37 Le 28/01/2010, à 14:31

dwan

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Karl_le_rouge a écrit :

Un des raisons pour laquelle je déconseille le Swinnen pour toute personne ayant atteint l'âge de majorité ===> beaucoup de raccourcis du même style [1], enseigne un style de programmation pas très pythonnique.

C'est un super bouquin pour initier un ado à la programmation mais pas pour apprendre Python.

[1] le langage C/C++ n'existe pas, ce sont deux langages différents. Un code C parfaitement valide n'est pas forcément valide en C++,  et le sous-ensemble C du C++ est beaucoup plus robuste.

Bonjour

J'ai toujours ce pdf sous la main, c'est assez synthétique pour me permettre de reprendre facilement Python après une longue période sans coder.
Tu conseillerais quel ouvrage à la place, sachant que je suis majeur depuis bien longtemps ? tongue
J'ai un peu de mal à coder objet pour le moment, mais je suis un codeur du dimanche...

Dernière modification par dwan (Le 28/01/2010, à 14:36)


Auto-hébergé !
HP dv6164ea

Hors ligne

#38 Le 28/01/2010, à 15:17

Karl_le_rouge

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Pour les ouvrages papiers:
1) ceux que j'ai toujours à portée de main ==> "Programmation Python" et "Expert Python Programming" de Tarek Ziadé. Le premier est une introduction au langage et permet d'acquérir des bases solides (exercices et conseils d'un développeur Python de première classe inclus). Le second est clairement destiné aux développeurs expérimentés
2) "Learning Python" et "Programming Python" aux éditions O'reilly, le premier est destiné aux débutants, le second aux plus avancés, ce sont des références
3) "Core Python" couvre Python 2.5 et la plupart des modules, ça aurait été un bon compromis au niveau budget si Pearson n'avait pas eu l'idée stupide de vendre la traduction en deux volumes.
4) "Programming in Python 3" de Mark Summerfield, excellente introduction à Python 3 (il a également écrit un bouquin sur PyQt4 avec une introduction sur le langage)

Pour la documentation sur le web
* Bytes of python : très bon ouvrage pour débuter, une traduction française est disponible
http://www.swaroopch.com/notes/Python
* Building Python Skills de S. Lott, un tutoriel avancé sur le langage, une bonne référence.
http://homepage.mac.com/s_lott/books/python.html
* How to Think Like a Computer Scientist  qui a inspiré le swinnen mais qui est plus rigoureux (le public visé n'est pas le même)
http://www.greenteapress.com/thinkpython/
* Initiation Python de Xavier Dupré (également publié chez Ellipse)
http://www.xavierdupre.fr/mywiki/InitiationPython

Dernière modification par Karl_le_rouge (Le 28/01/2010, à 15:18)

Hors ligne

#39 Le 28/01/2010, à 16:01

c_r_x

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Une riche Biblio ^^^ qui rendra majeurs tous les ados. lol

Merci .
-----------------------
A part ça  : En C, si on veut bien voir matriciellement les choses :

#include <stdio.h>

int main(int argc, char* argv){
    int n, i, j;
    printf("Entrez le nombre de lignes de la pyramide : ");
    scanf("%d", &n);
    for (i=1; i<n+1; i++){
        for(j=1; j<n-i+1; j++)
            printf(" ");

        for( j=n-i+1;j<n+i; j++){
            printf("*");
        }
//      for( j=n+i;j<2*n; j++){      /* on peut commenter ce bloc */
//            printf("");
//      }
    printf("\n");

    }
}

Dernière modification par c_r_x (Le 28/01/2010, à 22:46)

#40 Le 28/01/2010, à 16:59

dwan

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Merci, me voilà paré smile


Auto-hébergé !
HP dv6164ea

Hors ligne

#41 Le 29/01/2010, à 16:39

LeCh@t

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

brainfuck powaaaa


OpenGL : l'avenir
90% of teens today would die if Facebook was completely destroyed. If you are one of the 10% that would be laughing, copy and paste this to your signature.

Hors ligne

#42 Le 05/02/2010, à 18:51

c_r_x

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

tshirtman a écrit :

je suis fan de python, mais je suis pas persuadé que ce soit le meilleur exemple... je viens d'écrire ça en C...

#include <stdio.h>
int main(int argc, char* argv){
    int n, i, j;
    printf("Entrez le nombre de lignes de la pyramide : ");
    scanf("%d", &n);
    for (i=0; i<n; i++){
        for(j=0; j<n-i+1; j++)
            printf(" ");
        for (j=0; j<2*i+1; j++)
            printf("*");
        printf("\n");
    }
}

@tshirtman :  je voudrais savoir si chez vous, le terminal sous gvim :! marche avec scanf :code ci-dessus. en utilisant le pavé numérique du clavier.

voir http://forum.ubuntu-fr.org/viewtopic.php?id=367162

Merci d'avance

Dernière modification par c_r_x (Le 05/02/2010, à 19:09)

#43 Le 05/02/2010, à 19:07

tshirtman

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

non en effet, et ça me fait une raison de plus pour ne pas toucher ce truc, et rester sous mon vim tout propre sans éruptions de boutons acnéeux juvénils... smile

Hors ligne

#44 Le 05/02/2010, à 19:14

tshirtman

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

@freaxmind: python aussi a "more than one way to do it" c'est juste qu'il y a une seule BONNE façon de faire, et c'est bien sur la plus élégante... wink

des exemples d'implémentations de fact() qui me disent que j'ai encore beaucoup a apprendre...
http://gist.github.com/289467

Dernière modification par tshirtman (Le 05/02/2010, à 19:15)

Hors ligne

#45 Le 07/02/2010, à 23:16

Kanor

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Très bon ton lien tshirtman

Hors ligne

#46 Le 07/02/2010, à 23:22

tshirtman

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

oui, y'as les bases wink mais je pense que quelques uns ne sont pas par défaut (ctrl-t par exemple) sinon j'aurais pas pris la peine de les définir dans mon vimrc ^^

edit: c_r_x a supprimé son post et kanor a posté pendant ce temps... /me est confus..

Dernière modification par tshirtman (Le 07/02/2010, à 23:25)

Hors ligne

#47 Le 07/02/2010, à 23:25

Kanor

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Je parlais de ce lien
http://gist.github.com/289467
j'ai l'impression qui manque un post roll

Sinon pour vim je suis tombé sur ce lien très bien fournie
http://rayninfo.co.uk/vimtips.html

Dernière modification par Kanor (Le 07/02/2010, à 23:26)

Hors ligne

#48 Le 08/02/2010, à 00:54

Karl_le_rouge

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

L'absence de celle-ci me surprends

import operator as op
def fact(x):
     return reduce(op.mul, xrange(1, x+1), 1)

Hors ligne

#49 Le 08/02/2010, à 00:56

Shrat

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

@tshirtman : Vraiment génial ton lien. Merci! Je me suis un peu reconnu (honteusement il faut dire) dans le unix programmer. Le Enterprise est vraiment génial et tellement vrai.

Hors ligne

#50 Le 21/12/2014, à 17:48

dva2tlse

Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?

Bonjour et bon UP,
mon je fais partie du 1/10 000° de gens qui codent en fortran, ARF.
David


xubuntu 22.04 dans un PC assemblé
PS: Dis toto, pourquoi l'univers existe-t'il ?
Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se contacter auparavant.

Hors ligne