Jump to content
theocrite

Le Bar de la programmation

Recommended Posts

Ouais ya de l'idée, mais c'est pas trop ça qu'il me faut... Si j'ai bien compris le prototype de strncmp:

int strncmp(const char *s1, const char *s2, size_t  maxlen);

Ca compare le premier paramètre au second à la manière d'strcmp et ça rajoute une condition pour être valide, ne pas dépasser le longueur du 3ème paramètre...

Si c'est bien ça, c'est pas trop ça dont j'ai besoin... Moi je veux juste regarder une chaine contenue dans une var, et voir si elle correspond à une autre chaine parmis plusieurs (ouch) ...

Enfin bref, je continu à chercher du côté des expressions régulières...

Share this post


Link to post
Share on other sites

Dans ce cas la condition à ralonge est moins "lourde" à mettre en place je pense, mais oui ça se tiens...

Share this post


Link to post
Share on other sites

Bah ça compare les 4 permiers caractères...

Sinon si tu as des chaines différentes, alors là boucle obligé.

Share this post


Link to post
Share on other sites

Non mes chaîne ne sont pas du tout identique, j'ai mis les "blox" a titre d'exemple...

Mais c'est pas grave, pour l'instant je vais garder mon if à ralonge, le temps de trouver autre chose de plus propre et de moins lourds qu'une boucle.

Share this post


Link to post
Share on other sites

CV mis à jour.

Bon ok ça n'intéresse personne lol :chinois:

Tiens d'ailleurs si certains cherchent du boulot sur Paris, je pourrais sans doute les pistonner auprès de ma boîte. Mais attention, réservé aux bons, je ferai passer des tests !

Share this post


Link to post
Share on other sites

Bah demande aux chercheurs de l'Inria quel est le langage le plus adapté pour réaliser des applications de traitement du signal, de modélisation de phénomènes de propagations de la lumière ou des ondes radio...regarde la taille du code en C/C++/Java/Ada/... et en OCAML...on en reparle après :chinois:

Share this post


Link to post
Share on other sites

Bah demande aux chercheurs de l'Inria quel est le langage le plus adapté pour réaliser des applications de traitement du signal, de modélisation de phénomènes de propagations de la lumière ou des ondes radio...regarde la taille du code en C/C++/Java/Ada/... et en OCAML...on en reparle après :francais:

Je fais la même :

Regarde l'efficacité d'un programme en assembleur ou dans un autre langage sur un PIC16F84. Conclusion, tous à l'assembleur... :craint::musique:

Share this post


Link to post
Share on other sites
Bah demande aux chercheurs de l'Inria [...] OCAML...on en reparle après :chinois:
Demande à Steve Jobs s'il aime les macs :smack:

Share this post


Link to post
Share on other sites

Jamais dit le contraire...n'empeche que niveau signification / ligne de code on ne peut pas vraiment faire beaucoup mieux :pleure:

Share this post


Link to post
Share on other sites

Bah demande aux chercheurs de l'Inria quel est le langage le plus adapté pour réaliser des applications de traitement du signal, de modélisation de phénomènes de propagations de la lumière ou des ondes radio...regarde la taille du code en C/C++/Java/Ada/... et en OCAML...on en reparle après :mdr:

Je sais tres bien :non:

Il me le dise assez souvent en Licence math-info :s

Mais j'avoue que je preferes d'autres langages --> je preferes carrement utiliser l'assembleur si je dois prendre autres chose que C, C++,java etc... :non:

Share this post


Link to post
Share on other sites

Ptite question ...

Pourquoi ça, ça fonctionne :

Scanner scanner = new Scanner(System.in);
System.out.println("chaine : ");
String tit = scanner.nextLine();

System.out.println("largeur : ");
int largeur = scanner.nextInt();		

mais pas ça :

Scanner scanner = new Scanner(System.in);
 System.out.println("largeur : ");
int largeur = scanner.nextInt();	

System.out.println("chaine : ");
 String tit = scanner.nextLine();   

Dans le premier cas j'peux rentrer ce qu'il faut ... ma chaine, mon int ...

Mais dans le second, je rentre l'int ... et paf, il termine le programme ...

Notez qu'avec scanner.next(); , il n'y a pas le problème ... Mais bon, j'peux lire qu'un mot alors :(

Merci

Share this post


Link to post
Share on other sites

Bah demande aux chercheurs de l'Inria quel est le langage le plus adapté pour réaliser des applications de traitement du signal, de modélisation de phénomènes de propagations de la lumière ou des ondes radio...regarde la taille du code en C/C++/Java/Ada/... et en OCAML...on en reparle après :love:

Salut les gars,

Perso dans mon labo, ils te répondront tous Matlab. :D

C'est impressionnant comment ce langage est optimisé.

Y a pas longtemps, j'ai fait un algo de résolution par force brute d'une grille de sudoku.

J'ai un pote qu'a utilisé la même technique codée en C++.

Mon algo possède une interface graphique et met moins d'une seconde à afficher toutes les solutions :byebye:

Le sien met 10 secondes pour toutes les trouver. sans interface graphique.. :-D

Et pourtant ce gars là était le meilleur de sa promo en programmation et a été embauché à France télécom avant sa sortie (pour dire que c'est po une quiche quand même :fumer: ).

Dommage que ca soit aussi cher comme plateforme de programmation

Share this post


Link to post
Share on other sites

C'est le comportement normal.

Dans le premier cas, tu entres une ligne avec une chaîne, elle est lue entièrement par le readLine() (jusqu'à la fin de la ligne), le buffer est donc vide. Ensuite, tu entres un int dans le buffer, que tu lis avec nextInt(). Aucun problème.

Maintenant, le deuxième cas est plus intéressant. Tu lui dis de lire un int, puis "tout le reste de la chaîne jusqu'à la fin de la ligne" (avec readLine()). Là, deux cas :

- soit tu as juste tapé "52" par exemple pour ton int, auquel cas il ne reste plus rien dans le buffer -> readLine lit une chaîne vide.

- soit tu as tapé "52 toto" par exemple, et là ta chaîne est bien récupérée et vaut "toto".

Jusque-là, on a le comportement normal, même si ça t'étonne.

Pour lire un entier puis une chaîne, tu peux donc :

- utiliser next() pour la chaîne (mais ça lira un seul mot délimité par les espaces),

- utiliser readLine() mais tout doit être entré sur la même ligne.

Comme d'habitude, tout est expliqué dans la javadoc :

http://java.sun.com/j2se/1.5.0/docs/api/ja...il/Scanner.html

Share this post


Link to post
Share on other sites
Perso dans mon labo, ils te répondront tous Matlab. :transpi:

C'est impressionnant comment ce langage est optimisé.

Oui enfin ton exemple est particulier...

Par ce que bon, matlab tout comme mathematica ou mapple, c'est vraiment pas les plus rapides... Encore moins comparé à du C, qui est la référence dans le domaine des langages pas trop bas niveau (ie sans compter l'assembleur et l'hexa) en matière de rapidité.

Et puis bon, comparer de l'interprété et du compilé...

Et ton pote qui mets 10s à trouver, il a beau être major de promo ou président de la république, il s'y est pris comme un pied. Suffit pas d'optimiser le codage, il faut aussi avoir un bon algorithme de base.

Essaye ce source là plutôt :

http://www.pcinpact.com/forum/index.php?sh...5entry1270675

Share this post


Link to post
Share on other sites

Et ton pote qui mets 10s à trouver, il a beau être major de promo ou président de la république, il s'y est pris comme un pied. Suffit pas d'optimiser le codage, il faut aussi avoir un bon algorithme de base.

+1000, tu pourra mettre tous les -03 que tu veux, la meilleure optimisation reste de faire un bon algo.

Au passage j'ai fait un chti programme de résolution de sodoku en C, et c'est pas en 10s qu'il trouve en général mais en baucoup moins, mais j'ai passé plus de temps sur les algos que sur le code et ca tu n'as pas besoin d'être major de promo pour le comprendre :byebye:

Sinon j'ai déjà programmé en matlab, je ne trouve pas que c'est si rapide que ca, c'est très orienté mathématiques soit, mais mieux vaut utiliser les fonctions de matlab car par exemple dès que tu "for" ca comence à prendre pas mal de cycles processeurs (ils le disent eux même dans la doc de programmation).

Ah oui un truc marrant aussi en Matlab: c'est objets..... oui.... c'est ça.... bah lorsque tu viens de Java et que tu vois comment il les traite les objets, bah tu pleures :zarb: mais bon en même temps tu ne lui demandes pas les même choses qu'à Java non plus.

(version R14 je sais plus quoi donc ça a peu être changé depuis :pleure: )

Share this post


Link to post
Share on other sites

Merci pour ta réponse Sentinel.

J'avais été voir dans la Javadoc mais je n'ai pas trouvé ... où alors je ne l'ai pas comprise ;-)

Mais je ne comprend toujours pas comment faire pour par exemple lire un int et ensuite une chaine (de plusieurs mots).

Je fais mon nextInt(); ... et ensuite ?

Merci :transpi:

Share this post


Link to post
Share on other sites

Facile, tu mets tout sur une seule ligne, et tu utilises nextInt() puis nextLine() pour lire la chaîne.

Share this post


Link to post
Share on other sites

D'accord, mais si je veux que le programme se déroule de cette façon :

Entrer un nombre :
200
Entrer une chaine :
Bonjour les amis

Comment je dois m'y prendre ? Je ne veux pas que l'utilisateur rentre tout sur une ligne :chinois:

Share this post


Link to post
Share on other sites
mieux vaut utiliser les fonctions de matlab car par exemple dès que tu "for" ca comence à prendre pas mal de cycles processeurs (ils le disent eux même dans la doc de programmation).
Ouais, en même temps, matlab, c'est pas fait pour faire des for, il faut éviter.

On utilise des vecteurs en général à la place :transpi:

Share this post


Link to post
Share on other sites

Une ptite question en langage C --> comment je peux faire pour lire les 10 dernieres lignes d'un fichier, c'est genre recoder un tail en gros !!!

J'arrive à un faire un programme qui prend en paramatre un fichier et qui m'affiche sont contenu mais la je bloque sur ce ptit detail qui ne doit pas etre dur a coder :p

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...