begin process at 2010 03 18 04:21:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > [DEVC++]CHERCHE LE COMPLEMENTAIRE DE LA BASE AZOTÉE (ADN)

[DEVC++]CHERCHE LE COMPLEMENTAIRE DE LA BASE AZOTÉE (ADN)


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :22/12/2002 Date de mise à jour :23/12/2002 11:11:08 Vu :2 255

Auteur : Xs

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

correction :
===========
j'ai pris en compte les diffenrentes remarques postées.
merci.


j'avais envie de voir si je savais toujours coder sous C++ "pur" c-a-d sans VCL, MFC, etc... derriere.

pas mal non plus pour apprendre les pointeurs/allocations.

Source

  • #include <iostream.h>
  • #include <string.h>
  • #include <stdlib.h>
  • int main()
  • {
  • char *seq,*seqcpl; //pointeurs, quoique le pointeur seq pourrait ne pas etre un pointeur.
  • bool badCharactersArePresents = false;
  • seq = new char[1024]; //allocation directe. C'est pour celau que 'seq' peut ne pas etre un pointeur
  • cout << "Entrez la sequence d'ADN :\n";
  • cin >> seq;
  • seqcpl = (char*)malloc(sizeof(seq)+1); //allocation dynamique du second pointeur
  • if (seqcpl!=NULL) //teste.
  • {
  • cout << "\n\nVariable \"Seqcpl\" allou\202e dynamiquement avec succ\202s\n\n";
  • }
  • else
  • {
  • cout << "\n\nErreur d'allocation ! M\202moire probablement insuffisante\n\n";
  • }
  • for (int i = 0;i <strlen(seq);i++)
  • {
  • switch(seq[i])
  • {
  • case 'A' : strcat(seqcpl,"T"); break;
  • case 'T' : strcat(seqcpl,"A");break;
  • case 'G' : strcat(seqcpl,"C");break;
  • case 'C' : strcat(seqcpl,"G");break;
  • default : badCharactersArePresents = true; break;
  • }
  • }
  • /*
  • ci-dessus, c'est la partie principale du code mais la plus simple a comprendre.
  • */
  • if (badCharactersArePresents)
  • {
  • cout << "Des carat\202res diff\202rents de A,T,C,G \202taient pr\202sents." ;
  • }
  • cout << "\n\nLa chaine complementaire d'ADN est : " << seqcpl << endl<<endl<<endl;
  • free(seq);
  • free(seqcpl);
  • system("PAUSE");
  • return 0;
  • }
#include <iostream.h>
#include <string.h>
#include <stdlib.h>

int main()
{
char *seq,*seqcpl; //pointeurs, quoique le pointeur seq pourrait ne pas etre un pointeur.
bool badCharactersArePresents = false;

seq = new char[1024];   //allocation directe. C'est pour celau que 'seq' peut ne pas etre un pointeur

cout << "Entrez la sequence d'ADN :\n";
cin >> seq;

seqcpl = (char*)malloc(sizeof(seq)+1); //allocation dynamique du second pointeur

if (seqcpl!=NULL) //teste.
{
cout << "\n\nVariable \"Seqcpl\" allou\202e dynamiquement avec succ\202s\n\n";
}
else
{
cout << "\n\nErreur d'allocation ! M\202moire probablement insuffisante\n\n";
}

for (int i = 0;i <strlen(seq);i++)
{

     switch(seq[i])
     {
    case 'A' : strcat(seqcpl,"T"); break;
    case 'T' : strcat(seqcpl,"A");break;
    case 'G' : strcat(seqcpl,"C");break;
    case 'C' : strcat(seqcpl,"G");break;

    default : badCharactersArePresents = true; break;
     }
}
/*
ci-dessus, c'est la partie principale du code mais la plus simple a comprendre.
*/



if (badCharactersArePresents)
{
cout << "Des carat\202res diff\202rents de A,T,C,G \202taient pr\202sents." ;
}

cout << "\n\nLa chaine complementaire d'ADN est : " << seqcpl << endl<<endl<<endl;

free(seq);
free(seqcpl);

        system("PAUSE");
        return 0;
}

 Conclusion

je cherche la relation ADN/ARN pour faire un transcripteur, enfin, implementer un transcripteur dans le prog.


 Sources du même auteur

Source avec Zip PACKAGE MANAGER
Source avec Zip [API WIN32] CLASSE D'ACCÈS ET DE GESTION DU REGISTRE (RÉEL E...
Source avec Zip [DX 9.0] SCENES EN WINDOWED : SIMPLES ET MULTIPLES AVEC SWAP...
Source avec Zip Source avec une capture [DX 9.0] WATERBALL - JEU COMPLET EN DX9 (STYLE ARKANOÏD)
Source avec Zip [CBX] CALCULETTE DYNAMIQUE

 Sources de la même categorie

Source avec une capture POWER MATH: TESTE DE VITESSE ENTIERS VS REELS , CLASS VS STR... par dedalusman
Source avec Zip PARSER XML par MagnumPP
[C BZLIB] LIRE ET ÉCRIRE UN FICHIER COMPRESSÉ par Zestyr
Source avec Zip Source avec une capture BOT DE CLIC (SIMULATION DE CLIC PARAMÈTRABLE) par jojo930
Source avec Zip Source avec une capture [C++] GENERATEUR DE PSEUDO par Miwik

Commentaires et avis

Commentaire de Kaid le 23/12/2002 10:53:54

Pourquoi mélanger les allocations mémoires C et C++ ?

  1- Quand il n'y a plus de mémoire disponible, malloc() retourne NULL.

  2- On libére de la mémoire allouée par malloc() avec free().

  3- Les deux sizeof() que tu utilises sont mals utilisés car ils retournent toujours la taille du pointeur (ici 4 octets). De tout façon, sizeof() ne peut pas être utilisé pour déterminer la taille d'un tableau dynamique.

Commentaire de jcecchi le 23/12/2002 16:33:41

Salut,

Pour les includes, utilise plutot ceux du c++ :
#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;cstdlib&gt;

Commentaire de Xs le 24/12/2002 12:04:48

oki

Commentaire de BaFM le 27/12/2002 12:07:34

tu devrai soit utiliser que malloc/free (C), soit que new/delete (C++)
Version avec malloc/free :

//...
seq = (char*)malloc(1024);    //...
//...
seqcpl = (char*)malloc(strlen(seq)+1); //allocation dynamique du second pointeur //utilisation de strlen pour connaitre la taille exacte de la chaîne !
//...
free(seq);
free(seqcpl);
//...

Version avec new/delete :

//...
seq = new char [1024];    //...
//...
seqcpl = new char [strlen(seq)+1]; //allocation dynamique du second pointeur //utilisation de strlen pour connaitre la taille exacte de la chaîne !
//...
delete [] seq;    il faut les [] lorsque l'on a allouer un tableau et non un unique élément !
delete [] seqcpl;
//...

NB : Il faudrait faire : seqcpl[0]=0 : à cause de l'utilisation de strcat, de plus ca rend le code un peu plus lisible et compréhensible

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales