Août 2009 de programmation Challenge: Donnez-lui un bash!

  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Juillet 29th, 2009, 1:24 am

Bonjour mesdames et messieurs. Hier je suis tombé sur un morceau vraiment méchant de code et avait de la réécrire dans une langue différente (VBScript -> C #) Et obtenir le même résultat. J'ai eu beaucoup de plaisir à le faire et je suis assez certain que vous aussi! Je pensais commencer par un défi relativement petits pour évaluer l'intérêt. Si l'intérêt est grand alors nous pouvons essayer de faire des défis de l'équipe ou les défis de collaboration que je figure peut être agréable et paisible, pour tenter de représenter comment d'autres personnes penser et à résoudre les problèmes.

Ok ici, c'est le deal.

Le problème:
Compte tenu de la chaîne (GUID / UUID):
8cdb2408-81e3-4b8c-9ba2-916c14927946

Le convertir à la chaîne suivante:
LPQOFHDL-LERG-Hölp-M. Dainville-MEJPEHMFKMHJ

La fonction originelle était comme ça:
Code: [ Select ]
 
Dim x, y, abfrom, abto
Encode = "" : abfrom = ""
 
For x = 0 To 25 : abfrom = abfrom & Chr(65 + x) : Next
For x = 0 To 25 : abfrom = abfrom & Chr(97 + x) : Next
For x = 0 To 9 : abfrom = abfrom & CStr(x) : Next
 
abto = Mid(abfrom, 14, Len(abfrom) - 13) & Left(abfrom, 13)
For x = 1 To Len(sIn) : y = InStr(abfrom, Mid(sIn, x, 1))
  If y = 0 Then
    Encode = Encode & Mid(sIn, x, 1)
  Else
    Encode = Encode & Mid(abto, y, 1)
  End If
Next
 
  1.  
  2. Dim x, y, abfrom, abto
  3. Encode = "" : abfrom = ""
  4.  
  5. For x = 0 To 25 : abfrom = abfrom & Chr(65 + x) : Next
  6. For x = 0 To 25 : abfrom = abfrom & Chr(97 + x) : Next
  7. For x = 0 To 9 : abfrom = abfrom & CStr(x) : Next
  8.  
  9. abto = Mid(abfrom, 14, Len(abfrom) - 13) & Left(abfrom, 13)
  10. For x = 1 To Len(sIn) : y = InStr(abfrom, Mid(sIn, x, 1))
  11.   If y = 0 Then
  12.     Encode = Encode & Mid(sIn, x, 1)
  13.   Else
  14.     Encode = Encode & Mid(abto, y, 1)
  15.   End If
  16. Next
  17.  


Votre défi:
Réécrire ce dans toute autre langue (je devais le faire en C #et cela m'a pris environ 30/45 minutes).

Format pour la soumission et Réglements
Car cela pourrait sans doute être enveloppé dans une seule méthode / fonction, envoyer vos solutions dans cette rubrique. Une fois que quelqu'un a posté une solution dans une langue spécifique, vous mai ne pas rediffuser les algorithim même dans cette langue. S'il s'agit d'une variante de l'algorithme il fait beau

En guise de conclusion
Il n'est pas difficile mais il est cool quand vous obteniez la bonne! Bonne chasse et ce défi se termine fin août 2009 ou lorsque tout le monde s'ennuie avec elle :)
Watch me grow
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 29th, 2009, 1:24 am

  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juillet 29th, 2009, 6:12 am

Quel est le format pour la soumission? Voulez-vous voir le code ici, ou préférez-vous les liens externes pointant vers les dossiers de projet?

EDIT: En outre, votre solution ne correspond pas à la fonction d'origine. Ill h à conserver l'affichage de vidéos.
I'd love to change the world, but they won't give me the source code.
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Juillet 29th, 2009, 6:17 am

Oups désolé, j'ai pensé que c'était un défi de façon relativement faible permet d'aller avec la présentation du code ici. Va mettre à jour mon post :)
Watch me grow
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Juillet 29th, 2009, 6:33 am

UPSGuy a écrit:
Quel est le format pour la soumission? Voulez-vous voir le code ici, ou préférez-vous les liens externes pointant vers les dossiers de projet?

EDIT: En outre, votre solution ne correspond pas à la fonction d'origine. Ill h à conserver l'affichage de vidéos.


Ma solution ne correspond pas au format original? Il n'est pas censé :) Vous êtes supposé de créer la nouvelle chaîne de la vieille chaîne de caractères (UUID)
Watch me grow
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juillet 29th, 2009, 6:36 am

EDIT: OK, je comprends via PM maintenant. Note pour les autres: Le code donné n'est pas une solution pleinement opérationnelle. Just a heads up. ;)
I'd love to change the world, but they won't give me the source code.
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Sep 22, 2003
  • Messages: 6128
  • Loc: Seattle, WA
  • Status: Offline

Message Juillet 29th, 2009, 8:24 am

Python:

PYTHON Code: [ Select ]
def guidToStr(str):
 retval = ""
 for i in range(len(str)):
   retval += '-' if str[i] == '-' else chr(int(str[i], 16) + 68)
 return retval
  1. def guidToStr(str):
  2.  retval = ""
  3.  for i in range(len(str)):
  4.    retval += '-' if str[i] == '-' else chr(int(str[i], 16) + 68)
  5.  return retval
The Beer Monocle. Classy.
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juillet 29th, 2009, 8:33 am

Nice solution, Spork. Je ne pense pas que l'utilisation de radix. Je pense avoir un mauvais swing perl à une solution.
I'd love to change the world, but they won't give me the source code.
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Mai 21, 2004
  • Messages: 3229
  • Loc: South Africa
  • Status: Offline

Message Juillet 29th, 2009, 8:53 am

C'est super impressionnant! Nice work Spork! Les joies du scripting lanuages :)
Watch me grow
  • George L.
  • Bronze Member
  • Bronze Member
  • No Avatar
  • Inscription: Nov 05, 2007
  • Messages: 2206
  • Loc: Malaysia
  • Status: Offline

Message Juillet 29th, 2009, 8:56 am

Code: [ Select ]
retval += '-' if str[i] == '-' else chr(int(str[i], 16) + 68)


"si" est une syntaxe incorrecte?
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juillet 29th, 2009, 9:09 am

George - J'ai chargé et testé Sporks code. Elle gère et affiche le résultat escompté.
I'd love to change the world, but they won't give me the source code.
  • George L.
  • Bronze Member
  • Bronze Member
  • No Avatar
  • Inscription: Nov 05, 2007
  • Messages: 2206
  • Loc: Malaysia
  • Status: Offline

Message Juillet 29th, 2009, 9:14 am

Juste je ne pouvais pas passer cette charge

Code: [ Select ]
retval += '-' if str[i] == '-' else chr(int(str[i], 16) + 68)
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juillet 29th, 2009, 9:29 am

Le succès de la charge et l'exécution ici. Quel IDE utilisez-vous George?

Image
I'd love to change the world, but they won't give me the source code.
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Sep 22, 2003
  • Messages: 6128
  • Loc: Seattle, WA
  • Status: Offline

Message Juillet 29th, 2009, 9:49 am

Rabid Dog a écrit:
C'est super impressionnant! Travaux Spork Nice! Les joies du scripting lanuages :)

Haha, absolument. La capacité d'exprimer précisément quelque chose en seulement quelques lignes de code est ce qui les rend awesome. Im going to post une autre solution en Haskell à un certain moment, ne veulent pas quitter les langages fonctionnels dans le noir gif "alt =":)" title =" Smile ">

@ George, cette ligne est Pythons syntaxe ternaire. Ses l'équivalent de C-langages de style qui utilisent la condition "? Déclaration:" déclaration de syntaxe. Fondamentalement, il se lit comme ceci:

PYTHON Code: [ Select ]
var = this_value if this_condition_is_true else this_value


Ses disponible uniquement en Python> = 2,5, alors assurez-vous n'utilisez pas une version plus ancienne.
The Beer Monocle. Classy.
  • George L.
  • Bronze Member
  • Bronze Member
  • No Avatar
  • Inscription: Nov 05, 2007
  • Messages: 2206
  • Loc: Malaysia
  • Status: Offline

Message Juillet 29th, 2009, 9:54 am

Je vois maintenant, UPSGuy.

Salut Spork, (Jeff), je vois, je suis en effet en utilisant 2.4.3, une version plus ancienne. Pas étonnant. Désolé, à tout le monde pour faire un peu plus de posts inutiles ici.

Je suis en train de travailler sur quelque chose avant de dormir.

Merci beaucoup.

:thumbsup:
  • George L.
  • Bronze Member
  • Bronze Member
  • No Avatar
  • Inscription: Nov 05, 2007
  • Messages: 2206
  • Loc: Malaysia
  • Status: Offline

Message Juillet 29th, 2009, 9:59 am

UPSGuy, Oh .. je négliger votre question. Je me sers, je ne suis pas sûr que ce qui est. Il est juste que le feu Python.exe cette CMD-comme fond noir, texte blanc. J'ai téléchargé tout à fait il ya quelque temps, lorsque je l'oublie. Merci de votre sortie, UPSGuy.

:thumbsup:
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 29th, 2009, 9:59 am

Afficher de l'information

  • Total des messages de ce sujet: 50 messages
  • Utilisateurs parcourant ce forum: Zealous et 203 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC