Рубрики

Программа для печати последовательности ДНК

Дано значение n, т. Е. Количество лепестков. Распечатайте структуру двойной спирали дезоксирибонуклеиновой кислоты (ДНК).

Input: n = 8
Output:
   AT
  T--A
 A----T
T------A
T------A
 G----C
  T--A
   GC
   CG
  C--G
 A----T
A------T
T------A
 A----T
  A--T
   GC
   AT
  C--G
 T----A
C------G
C------G
 T----A
  G--C
   AT
   AT
  T--A
 A----T
T------A
T------A
 G----C
  T--A
   GC

Пояснение:
ДНК в основном состоит из 4 углеводородов: цитозин [C], гуанин [G], аденин [A], тимин [T].
Основания ДНК спариваются друг с другом, A с T и C с G, чтобы сформировать единицы, называемые парами оснований.

Ниже приведена реализация для печати последовательности ДНК двойной спирали:

CPP

// Программа CPP для печати
// 'n' лепестки ДНК
#include <bits/stdc++.h>

using namespace std;

  
// Функция для печати верхней половины
// ДНК или верхней доли

void printUpperHalf(string str)

{

    char first, second;

    int pos = 0;

      

    // Каждая половина ДНК состоит из

    // комбинация двух соединений

    for (int i = 1; i <= 4; i++) {

  

        // Взять два углерода

        // соединения из строки

        first = str[pos];

        second = str[pos + 1];

        pos += 2;

          

        for (int j = 4 - i; j >= 1; j--)

            cout << " ";

        cout << first;

        for (int j = 1; j < i; j++)

            cout << "--";

        cout << second << endl;

    }

}

  
// Функция для печати нижней половины
// ДНК или нижней доли

void printLowerHalf(string str)

{

    char first, second;

    int pos = 0;

    for (int i = 1; i <= 4; i++) {

  

        first = str[pos];

        second = str[pos + 1];

        pos += 2;

          

        for (int j = 1; j < i; j++)

            cout << " ";

        cout << first;

        for (int j = 4 - i; j >= 1; j--)

            cout << "--";

        cout << second << endl;

    }

}

  
// Функция для печати 'n' частей ДНК

void printDNA(string str[], int n)

{

    for (int i = 0; i < n; i++) {

  

        int x = i % 6;

          

        // Вызываем верхнюю половину

        if (x % 2 == 0)

            printUpperHalf(str[x]);

        else

          

            // Призыв к нижней половине

            printLowerHalf(str[x]);

    }

}

  
// Функция драйвера

int main()

{

  

    int n = 8;

      

    // комбинации хранятся в массиве

    string DNA[] = { "ATTAATTA", "TAGCTAGC", "CGCGATAT",

                   "TAATATGC", "ATCGTACG", "CGTAGCAT" };

    printDNA(DNA, n);

      

    return 0;

}

Джава

// Java-программа для печати
// 'n' лепестки ДНК

  

import java.io.*;

  

class GFG {

  
// Функция для печати верхней половины
// ДНК или верхней доли

static void printUpperHalf(String str)

{

    char first, second;

    int pos = 0;

       

    // Каждая половина ДНК состоит из

    // комбинация двух соединений

    for (int i = 1; i <= 4; i++) {

   

        // Взять два углерода

        // соединения из строки

        first = str.charAt(pos);

        second = str.charAt(pos+1);

        pos += 2;

           

        for (int j = 4 - i; j >= 1; j--)

            System.out.print(" ");

        System.out.print(first);

        for (int j = 1; j < i; j++)

            System.out.print("--");

        System.out.println(second);

    }

}

   
// Функция для печати нижней половины
// ДНК или нижней доли

static void printLowerHalf(String str)

{

    char first, second;

    int pos = 0;

    for (int i = 1; i <= 4; i++) {

   

        first = str.charAt(pos);

        second = str.charAt(pos+1);

        pos += 2;

           

        for (int j = 1; j < i; j++)

            System.out.print(" ");

        System.out.print(first);

        for (int j = 4 - i; j >= 1; j--)

            System.out.print("--");

        System.out.println(second);

    }

}

   
// Функция для печати 'n' частей ДНК

static void printDNA(String str[], int n)

{

    for (int i = 0; i < n; i++) {

   

        int x = i % 6;

           

        // Вызываем верхнюю половину

        if (x % 2 == 0)

            printUpperHalf(str[x]);

        else

           

            // Призыв к нижней половине

            printLowerHalf(str[x]);

    }

}

public static void main (String[] args) {

    int n = 8;

       

    // комбинации хранятся в массиве

    String DNA[] = { "ATTAATTA", "TAGCTAGC", "CGCGATAT",

                   "TAATATGC", "ATCGTACG", "CGTAGCAT" };

    printDNA(DNA, n);

             

    }

}

  
// Этот код предоставлен Gitanjali

python3

# Программа Python для печати
# 'n' лепестки ДНК

import math

  
# Функция для печати верхней половины
# ДНК или верхней доли

def printUpperHalf(str):

  

    first=0

    second=0

    pos = 0

      

    # Каждая половина ДНК состоит из

    # комбинация двух соединений

    for i in range(1,5):

   

        # Принимая два углерода

        # соединения из строки

        first = str[pos]

        second = str[pos+1]

        pos += 2

           

        for  j in range ( 4 - i, 0,-1):

            print(" ",end="")

        print(first,end="")

        for  j in range (1, i):

            print("--",end="")

        print(second)

      

  

   
# Функция для печати нижней половины
# ДНК или нижней доли

def printLowerHalf(str):

  

    first=0

    second=0

    pos = 0

    for i in range(1,5):

   

        first = str[pos]

        second = str[pos+1]

        pos += 2

           

        for  j in range(1,i):

            print(" ",end="")

        print(first,end="")

        for  j in range (4 - i, 0,-1):

            print("--",end="")

        print(second)

  

   
# Функция для печати 'n' частей ДНК

def printDNA( str,  n):

  

    for i in range(0,n):

   

        x = i % 6

           

        # Призывая верхнюю половину

        if (x % 2 == 0):

            printUpperHalf(str[x])

        else:

           

            # Призыв к нижней половине

            printLowerHalf(str[x])

      
# код водителя

n = 8

  
# комбинаций, хранящихся в массиве

DNA = [ "ATTAATTA", "TAGCTAGC", "CGCGATAT",

      "TAATATGC", "ATCGTACG", "CGTAGCAT" ]

  
printDNA(DNA, n)

  
# Этот код предоставлен Gitanjali.

C #

// C # Программа для печати 'n' лепестков
// ДНК

using System;

  

class GFG {

  

    // Функция для печати верхней половины

    // ДНК или верхней доли

    static void printUpperHalf(string str)

    {

          

        char first, second;

        int pos = 0;

          

        // Каждая половина ДНК состоит из

        // комбинация двух соединений

        for (int i = 1; i <= 4; i++) {

      

            // Взять два углерода

            // соединения из строки

            first = str[pos];

            second = str[pos+1];

            pos += 2;

              

            for (int j = 4 - i; j >= 1; j--)

                Console.Write(" ");

          

            Console.Write(first);

              

            for (int j = 1; j < i; j++)

                Console.Write("--");

                  

            Console.WriteLine(second);

        }

    }

  

    // Функция для печати нижней половины

    // ДНК или нижней доли

    static void printLowerHalf(string str)

    {

        char first, second;

        int pos = 0;

          

        for (int i = 1; i <= 4; i++) {

      

            first = str[pos];

            second = str[pos+1];

            pos += 2;

              

            for (int j = 1; j < i; j++)

                Console.Write(" ");

                  

            Console.Write(first);

              

            for (int j = 4 - i; j >= 1; j--)

                Console.Write("--");

                  

            Console.WriteLine(second);

        }

    }

  

    // Функция для печати 'n' частей ДНК

    static void printDNA(string []str, int n)

    {

        for (int i = 0; i < n; i++) {

      

            int x = i % 6;

              

            // Вызываем верхнюю половину

            if (x % 2 == 0)

                printUpperHalf(str[x]);

            else

              

                // Призыв к нижней половине

                printLowerHalf(str[x]);

        }

    }

  

    public static void Main () {

      

    int n = 8;

      

    // комбинации хранятся в массиве

    string []DNA = { "ATTAATTA", "TAGCTAGC"

                     "CGCGATAT", "TAATATGC",

                     "ATCGTACG", "CGTAGCAT" };

                       

    printDNA(DNA, n);

    }

}

  
// Этот код предоставлен vt_m.

PHP

<?php
// Реализация PHP для печати
// 'n' лепестки ДНК

  
// Функция для печати верхней половины
// ДНК или верхней доли

function printUpperHalf($str)

{

    $pos = 0;

      

    // Каждая половина ДНК состоит из

    // комбинация двух соединений

    for($i = 1; $i <= 4; $i++) 

    {

  

        // Взять два углерода

        // соединения из строки

        $first = $str[$pos];

        $second = $str[$pos + 1];

        $pos += 2;

          

        for ($j = 4 - $i; $j >= 1; $j--)

            echo " ";

        echo $first;

        for ($j = 1; $j < $i; $j++)

            echo "--";

        echo $second."\n";

    }

}

  
// Функция для печати нижней половины
// ДНК или нижней доли

function printLowerHalf($str)

{

    $pos = 0;

    for ($i = 1; $i <= 4; $i++) 

    {

        $first = $str[$pos];

        $second = $str[$pos + 1];

        $pos += 2;

          

        for ($j = 1; $j < $i; $j++)

            echo " ";

        echo $first;

        for ($j = 4 - $i; $j >= 1; $j--)

            echo"--";

        echo $second."\n";

    }

}

  
// Функция для печати 'n' частей ДНК

function printDNA($str, $n)

{

    for ($i = 0; $i < $n; $i++)

    {

  

        $x = $i % 6;

          

        // Вызываем верхнюю половину

        if ($x % 2 == 0)

            printUpperHalf($str[$x]);

        else

          

            // Призыв к нижней половине

            printLowerHalf($str[$x]);

    }

}

  
// Код драйвера

$n = 8;

$DNA = array( "ATTAATTA", "TAGCTAGC"

              "CGCGATAT", "TAATATGC"

              "ATCGTACG", "CGTAGCAT" );

printDNA($DNA, $n);

  
// Этот код предоставлен mits.
?>


Выход :

   AT
  T--A
 A----T
T------A
T------A
 G----C
  T--A
   GC
   CG
  C--G
 A----T
A------T
T------A
 A----T
  A--T
   GC
   AT
  C--G
 T----A
C------G
C------G
 T----A
  G--C
   AT
   AT
  T--A
 A----T
T------A
T------A
 G----C
  T--A
   GC

Рекомендуемые посты:

Программа для печати последовательности ДНК

0.00 (0%) 0 votes