#include<stdio.h> #include<string.h> #include<stdlib.h> #define PROTEINSAYISI 5 #define AMINOASAYISI 10 void DNAParcasiAl(char*); void proteinAra(char *, char *[], char*[]); void proteinleriAl(char *[],char *[]); void nukleotideCevir(char *[], char * [], char * [],char * [] ); void main() { int evetHayir; char *DNAParcasi; char *proteinIcerik[PROTEINSAYISI]; char *proteinIsmi[PROTEINSAYISI]; char *aminoAcitler[AMINOASAYISI]={"aag","tta", "gct"}; char *aminoAsitIsmi[AMINOASAYISI]={"A01", "A02", "A03"}; while (1) { DNAParcasiAl(DNAParcasi); while(1) { proteinleriAl(proteinIcerik, proteinIsmi); proteinAra(DNAParcasi, proteinIcerik, proteinIsmi);//**** printf("\n ayni DNA parcasinda baska protein aramak istermisiniz(1/0)"); scanf("%d",&evetHayir); if(!evetHayir) break; } printf("\n yeni bir DNA parcasi girmek ister misiniz?(1/0) "); scanf("%d", evetHayir); if(!evetHayir) break; } } void DNAParcasiAl(char * DNAParcasiD) { int uzunluk; printf("\n DNA Parcasi kac nukleotid icermekte : "); scanf("%d", &uzunluk); DNAParcasiD=(char *)malloc(uzunluk * sizeof(char)); scanf("%s", DNAParcasiD); } void proteinleriAl(char* proteinlerIcerikD[], char * proteinIsmiD[]) { int aminoAsitSayisi; // proteinler alinir. for(int i=0; i<PROTEINSAYISI; i++) { printf("\n protein kac amino Asit icerecek "); scanf("%d", &aminoAsitSayisi); proteinlerIcerikD[i]=(char *)malloc(aminoAsitSayisi *3* sizeof(char)); printf("\n proteinin icerigini girin :"); scanf("%s", proteinlerIcerikD[i]); proteinIsmiD[i]=(char *)malloc(15*sizeof(char)); printf("proteinleri ismini girin: "); scanf("%s", proteinIsmiD[i]); } } void proteinAra(char * DNAParcasiD, char * proteinIcerikD[], char * proteinIsmiD[],char * aminoAsitlerD[], char * aminoAsitIsmiD[]) { char *proteinNukleotidli[PROTEINSAYISI]; int konum; nukleotideCevir(proteinIcerikD, aminoAsitlerD, aminoAsitIsmiD, proteinNukleotidli); for(int i=0; i<PROTEINSAYISI; i++) { konum=proteinBul(proteinNukleotidli[i], DNAParcasiD); if(konum==-1) printf("%s, DNA parcasinda bulunmadi", proteinIsmiD[i]); else goster(DNAParcasiD, konum, strlen(proteinNukleotidli[i])); } } void nukleotideCevir(char *proteinIcerikDD[], char * aminoAsitlerDD[], char * aminoAsitIsmiDD[],char * proteinNukleitidliDD[] ) { char aminoAsit[3]; for(int i=0; i<PROTEINSAYISI; i++) { for(int j=0; j<strlen(proteinIcerikDD[i]); j+=3) { //proteinleri olusan her bir amono asit ismi arastirmak // aminoAsit[] dizisine atanir. for(int k=0, m=0; k<j+3; k++, m++) aminoAsit[m]=*(proteinIcerikDD[i]+k); for(int l=0;l<AMINOASAYISI;l++) if(strcmpi(aminoAsit,aminoAsitIsmiDD[l])==0) break; for(int b=j,a=0;b<j+3;b++,a++) *(proteinNukleitidliDD[i]+b) = *(aminoAsitlerDD[l]+a); } } }