#1 Le 14/11/2008, à 20:54
- Marzikill
Un chtit script pour embêter ma prof d'SVT
Bonjour à tous !
Ma prof d'SVT m'a donné un travail profondément débile, et je souhaiterai créer un script pour le faire à ma place...
Mais je débute, et j'ai quelques menus problèmes :
#!/bin/bash
# Version Alpha Bêta Omega Delta, bref un truc qui ressemble à rien
for i in $*
do
case "$i" in
`echo A` ) echo -n T;;
`echo U` ) echo -n A;;
`echo G` ) echo -n C;;
`echo C` ) echo -n G;;
esac
done
echo ""
En fait, je voudrais que le script recherche dans les arguments les "U" pour les transformer en "A", les "A" en "T", les "G" en "C", les "C" en "G".
Mais je souhaiterai pouvoir entrer ma mes varibles sans laisser d'espaces, entre.
Comment faire ?
C'est clair ?
Amicalement
Marzikill.
Dernière modification par Marzikill (Le 14/11/2008, à 20:55)
Hors ligne
#2 Le 14/11/2008, à 21:01
- Chiuchu
Re : Un chtit script pour embêter ma prof d'SVT
Salut,
Je ne pourrai pas t'aider, mais pourquoi t'obliges-tu à le faire en shell ? Essaye un langage plus facile pour le traitement de chaines ...
Par contre, je trouve qu'on peut te décerner la palme du geek en herbe.
++
Hors ligne
#3 Le 14/11/2008, à 21:23
- obiwankennedy
Re : Un chtit script pour embêter ma prof d'SVT
public class SvtTranslator {
/**
* @param args
*/
public static void main(String[] args)
{
String argument = args[0];
String traduit = new String();
for(int i = 0; i<argument.length();i++)
{
if(argument.charAt(i)=='A')
traduit+='T';
else if (argument.charAt(i)=='U')
traduit+='A';
else if (argument.charAt(i)=='G')
traduit+='C';
else if (argument.charAt(i)=='C')
traduit+='G';
}
System.out.println(traduit);
}
}
Code vite fait en java.
Donc le copier/coller dans un fichier nommer SvtTranslator.java
javac SvtTranslator.java
java SvtTranslator UAU
ATA
Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam
Hors ligne
#4 Le 14/11/2008, à 21:48
- qqun
Re : Un chtit script pour embêter ma prof d'SVT
ben bash c'est bien aussi
VAR=$1
SIZ=${#VAR}
for ((i=0;i<SIZ;i++))
do
CAR=${VAR:$i:1}
case "$CAR" in
A ) echo -n T;;
U ) echo -n A;;
G ) echo -n C;;
C ) echo -n G;;
esac
done
echo ;echo
#5 Le 14/11/2008, à 22:55
- Marzikill
Re : Un chtit script pour embêter ma prof d'SVT
Oui, j'avais pensé le faire en C (ce qui je pense aurait pas trop posé de difficulté) mais comme j'essaie d'apprendre le Bash, j'ai trouvé que ce serai un bon exercice d'application !
Merci qqn, ça marche du tonnerre ! Je vais faire encore sûrement quelques modifications, pour avoir un affichage sous forme de triplets (trois lettres par trois lettres).
Amicalement
Marzikill.
Hors ligne
#6 Le 14/11/2008, à 22:59
- Lonewolf
Re : Un chtit script pour embêter ma prof d'SVT
J'ai l'impression d'avoir 20 ans de moins et de replancher sur les chaînes ADN-ARN
Et comme a dit Chiuchu, tu décroches la palme du geek
Hors ligne
#7 Le 14/11/2008, à 23:20
- Kanor
Re : Un chtit script pour embêter ma prof d'SVT
Allez un petit essai en python
dict = {"U":"A","A":"T","G":"C", "C":"G"}
i = 'UAGCUUCGAUC'
print "".join([dict[k] for k in list(i)])
Hors ligne
#8 Le 15/11/2008, à 00:35
- alexduf
Re : Un chtit script pour embêter ma prof d'SVT
Pfou !, je suis en train d'apprendre python en ce moment, et quand je vois la simplicité avec laquelle on réalise certaine tâches... c'est bluffant.
Faut vraiment que j'oublie tout ce que j'ai pu apprendre en java.
Hors ligne
#9 Le 15/11/2008, à 03:52
- nicolas66
Re : Un chtit script pour embêter ma prof d'SVT
Et comme a dit Chiuchu, tu décroches la palme du geek
Le comble ça serait de l'écrire en brainf*ck
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#10 Le 15/11/2008, à 11:33
- Kanor
Re : Un chtit script pour embêter ma prof d'SVT
alexduf je te conseil ce tuto
http://python.developpez.com/cours/DiveIntoPython/php/frdiveintopython/toc/index.php
Je pense que c'est la seul doc qui utilise vraiment le style de programmation python
Hors ligne
#11 Le 16/11/2008, à 00:45
- obiwankennedy
Re : Un chtit script pour embêter ma prof d'SVT
en perl
perl -e '$parle = "ATA";$parle =~ tr/[AUGC]/[TACG]/;print "$parle\n";'
Remplacez ATA par la vrai chaine.
Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam
Hors ligne