Wybierz plik:




  • Opis programu "geny":

    Brak opisu



    #include <iostream>
    #include <fstream>
    #include <iomanip>
    using namespace std;
    int sprawdz=0;
    int ile_mutacji=0;
    int ile_g=0,ile_gatunkow=0;
    int najw_dl_genu=0;
    string ktory1,ktory2;
    int odpo_silnie=0, odporny=0;
    void odpo_2(string gatunek)
    {
    int poczatek = 0;
    int koniec = 0;
    int zmienna = 0;
    string pom="";
    for(int i=0;i<=gatunek.length()-3;i++)
    {

    if(gatunek[i]=='A' && gatunek[i+1]=='A')
    {
    poczatek=i;
    for(int j=poczatek+2;j<=gatunek.length()-1;j++,i++)
    {

    if(gatunek[j]=='B' && gatunek[j+1]=='B')
    {
    koniec = j+1;
    i=j+1;
    pom = gatunek.substr(poczatek+2,(koniec-2)-(poczatek+1));
    //cout<<gatunek<<" "<<pom<<" "<<poczatek<<" "<<koniec<<endl;
    for(int x=0;x<=pom.length()/2;x++)
    {

    if(pom[x]!=pom[pom.length()-1-x])
    {
    zmienna=1;
    break;
    }
    }

    if(zmienna==1)
    {
    zmienna=0;
    }
    else odporny++;
    }
    break;
    }
    }
    }
    }
    bool odpornosc(string gatunek)
    {
    for(int i=0; i<=gatunek.length()/2; i++)
    {

    if(gatunek[i]!=gatunek[gatunek.length()-i-1])
    {
    odpo_2(gatunek);
    //cout<<gatunek[i]<<" "<<gatunek[gatunek.length()-i-1]<<endl;
    return 0;
    }
    }
    odpo_silnie++;
    }
    void ile_genow(string y)
    {
    int ile_w_jednym=0;
    int dlugosc_genu=4;
    for(int i=0; i<y.length(); i++)
    {

    if(y[i]=='A' && y[i+1]=='A')
    {
    i=i+2;
    while(i<y.length())
    {

    if(y[i]=='B' && y[i+1]=='B')
    {
    ile_w_jednym++;
    i=i+2;
    break;
    }
    dlugosc_genu++;
    i++;
    }
    }
    }

    if(ile_w_jednym>ile_g)
    {
    ile_g=ile_w_jednym;
    ktory1=y;
    }

    if(najw_dl_genu<dlugosc_genu)
    {
    najw_dl_genu=dlugosc_genu;
    ktory2=y;
    }
    }
    void mutacja(string x)
    {
    string fragment = "BCDDC";

    if(x.find(fragment)<501)
    {

    if(x.find("AA") < x.find(fragment) && x.find(fragment)<x.find("BB"))
    {
    ile_mutacji++;
    //cout<<x<<endl;
    }
    }
    }
    int main()
    {
    fstream napis;
    string gatunek;
    int t[501]= {0},najw=0;
    napis.open("dane_geny.txt",ios::in);
    //napis.open("kek.txt",ios::in);
    while(!napis.eof())
    {
    napis>>gatunek;
    t[gatunek.length()]++;
    mutacja(gatunek);
    ile_genow(gatunek);
    odpornosc(gatunek);
    }
    for(int i=1; i<=500; i++)
    {

    if(t[i]>0)
    {
    ile_gatunkow++;
    sprawdz+=t[i];
    //ile_g+=t[i];

    if(najw<t[i])
    {
    najw=t[i];
    }
    // cout<<i<<" "<<t[i]<<endl;
    //cout<<ile_gatunkow<<endl;
    }
    }
    cout<<"Ile gatonkow "<<ile_gatunkow<<endl;
    cout<<"Najwieksza ilosc w gatunku "<<najw<<endl;
    cout<<"Ilosc zmutowanych osobnikow "<<ile_mutacji<<endl;
    cout<<"najw ilosc w jednym "<<ile_g<<endl;
    cout<<"najw dlugosc genu "<<najw_dl_genu<<endl;
    cout<<"silnie odporne gatunki "<<odpo_silnie<<endl;
    cout<<"odporne gatunki "<<odporny<<endl;
    cout<<sprawdz<<endl;
    //cout<<ktory1<<endl;
    napis.close();
    //wynik.close();
    return 0;
    }