Васильев Игорь Сергеевич МОБУ гимназия № 1, город Мелеуз. Задача 1.

advertisement
Васильев Игорь Сергеевич
МОБУ гимназия № 1, город Мелеуз.
Задача 1.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 1
Разработать программу, случайным образом перемешивающую дни недели (повторы дней не
допускаются).
program z1;
var i,b,c: byte;
a: array [1..7] of byte;{массив для каждой ячейки которого будет присвоен
день недели}
begin
for i:=1 to 7 do{ каждому значению массива присваивается одинаковое значение}
a[i]:=0;
while (a[1]=a[2]) or (a[1]=a[3])
or(a[1]=a[4])or(a[1]=a[5])or(a[1]=a[6])or(a[1]=a[7])or(a[2]=a[3])or(a[2]=a[4]
)or(a[2]=a[5])or(a[2]=a[6])or(a[2]=a[7])or(a[3]=a[4])or(a[3]=a[5])or(a[3]=a[6
])or(a[3]=a[7])or(a[4]=a[5])or(a[4]=a[6])or(a[4]=a[7])or(a[5]=a[6])or(a[5]=a[
7])or(a[6]=a[7]) do {проверка массива на наличие повтора,если есть повтор, то
каждому элементу массива будет присваиваться новое значение, пока не исчезнут
повторы}
for i:=1 to 7 do begin
a[i]:=random(7)+1;{элементу массива присваивается значение от 1 до 7}
end;
for i:=1 to 7 do
case a[i] of {исходя из присвоенных значений происходит выбор действия
которые компьютер выполнит далее}
1: writeln('понедельник');
2: writeln('вторник');
3: writeln('среда');
4: writeln('четверг');
5: writeln('пятница');
6: writeln('суббота');
7: writeln('воскреснье');
end;
end.
Первый запуск программы.
Входные данные
Выходные данные
понедельник
пятница
суббота
воскреснье
вторник
четверг
среда
Второй запуск программы:
Входные данные
Выходные данные
вторник
среда
пятница
четверг
воскреснье
суббота
понедельник
Задание 2.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 2
Разработать интерактивную программу для игры «Камень-Ножницы-Бумага-Ящерица-Спок»
пользователя с компьютером.
var
chel: string; {строка 'chel' считывает ход игорка}
c,m,d,n: byte;
begin
d:=0;
randomize;
c:=random(5)+1;{переменной 'с' присваивается значение от 1 до 5, с помощью
нее компьютер будет совершать свой ход}
while d=0 do begin
write('Сделайте ход, введите то, что вы выбираете:
Камень,Ножницы,Бумага,Ящерица или Спок: ');
readln(chel);{Считывание хода человека}
while (chel
<>'Камень')and(chel<>'Ножницы')and(chel<>'Бумага')and(chel<>'Ящерица')and(che
l<>'Спок') do begin{проверка хода человека на наличие нем ошибок}
writeln('нет такого хода');{предупреждение об ошибке}
readln(chel);{считывание хода до тех пор пока в нем не будет ни одной ошибки}
end;
if chel='Камень' then m:=1;{присваивание переменной m значение хода
человека,если камень,то m=1}
if chel='Ножницы' then m:=2;{присваивание переменной m значение хода
человека,если ножницы,то m=2}
if chel='Бумага' then m:=3;{присваивание переменной m значение хода
человека,если бумага,то m=3}
if chel='Ящерица' then m:=4;{присваивание переменной m значение хода
человека,если ящерица,то m=4}
if chel='Спок' then m:=5;{присваивание переменной m значение хода
человека,если спок,то m=5}
writeln('ход компьютера:');{предупреждение о том, что далее будет выведен ход
компьютера}
case c of
1: writeln('Камень');{вывод хода компьютера в зависимости от переменной с}
2: writeln('Ножницы');{вывод хода компьютера в зависимости от переменной с}
3: writeln('Бумага');{вывод хода компьютера в зависимости от переменной с}
4: writeln('Ящерица');{вывод хода компьютера в зависимости от переменной с}
5: writeln('Спок');{вывод хода компьютера в зависимости от переменной с}
end;
n:=0;
{далее идет проверка на проигрыш или выйгрыш в соответствии с правилами игры}
if ((c=1)and(m=1))or ((c=2)and(m=2)) or ((c=3)and(m=3)) or ((c=4)and(m=4))
or ((c=5)and(m=5)) then begin
writeln ('Ничья');
d:=1;
end
else
N:=n+1;
if ((m=1)and (c=2))or((m=1)and(c=4)) then begin writeln ('Вы выйграли');
d:=1;
end
else
n:=n+1;
if ((m=2)and(c=4))or((m=2) and (c=3)) then begin writeln('Вы выйграли');
d:=1;
end
else
n:=n+1;
if ((m=3)and(c=1)) or ((m=3)and(c=5)) then begin writeln('Вы выйграли');
d:=1;
end
else
n:=n+1;
if ((m=4)and(c=5)) or ((m=4)and(c=3)) then begin writeln('Вы выйграли');
d:=1;
end
else
n:=n+1;
if ((m=5)and(c=1)) or ((m=5)and(c=2)) then begin writeln('Вы выйграли');
d:=1;
end
else
n:=n+1;
if n=6 then writeln('вы проиграли');
d:=1;
end;
end.
Входные данные
Камень
Ящерица
Выходные данные
ход компьютера:
Спок
вы проиграли
ход компьютера:
Ящерица
Ничья
Задание 3.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 3
Разработать программу, которая выводит на экран все простые числа в диапазоне от 1 до 1000.
var
i,x,z,a: integer;{i- предполагаемое число,x-делитель,z-счетчик количества
делителей при которых остаток от деления = 0}
begin
z:=0;{изначальное количество делителей у числа i}
for i:=1 to 1000 do begin{перебор чисел i от 1 до 1000}
z:=0;{счетчик делителей числа i обнуляется}
for x:=2 to 1000 do begin{проверяет делится ли число i на другие числа из
диапазона от 2 до 1000}
a:=i mod x;{находит остаток от деления числа на другие числа из диапазона от
2 до 1000}
if a = 0 then z:=z+1;{проверяет равен ли остаток от деления 0, если равен, то
к счетчику делителей прибавляется 1}
end;
if z=1 then write(i,' ');]{если счетчик количества делителей равен 1, то
вывести число i, потому что оно простое}
end;
Выходные данные
2 3 5 7
103 107
199 211
313 317
433 439
563 569
673 677
811 821
941 947
end.
11 13 17 19
109 113 127
223 227 229
331 337 347
443 449 457
571 577 587
683 691 701
823 827 829
953 967 971
23 29 31 37
131 137 139
233 239 241
349 353 359
461 463 467
593 599 601
709 719 727
839 853 857
977 983 991
41 43 47 53
149 151 157
251 257 263
367 373 379
479 487 491
607 613 617
733 739 743
859 863 877
997
59 61 67 71
163 167 173
269 271 277
383 389 397
499 503 509
619 631 641
751 757 761
881 883 887
73 79 83 89
179 181 191
281 283 293
401 409 419
521 523 541
643 647 653
769 773 787
907 911 919
97 101
193 197
307 311
421 431
547 557
659 661
797 809
929 937
Задание 4.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 4
Разработать программу «Угадай число», которая с помощью генератора случайных чисел
загадывает и проверяет угадывание числа. В программе используется интервал от 1 до 100 и
дается пять попыток угадывания.
var
i,z,c: integer;
begin
randomize;
c:=random(100)+1;{загадывание компьютером числа с из диапазона от 1 до 100}
writeln('Компьютер загадал число: ',c);{вывод загаданного числа}
for i:=1 to 5 do {запуск 5 попыток отгадывания}
begin
z:=random(100)+1;{попытка угадывания, присваивание переменной z случайного
числа из диапазона от 1 до 100}
writeln(i,')Попытка отгадывания: ',z);{вывод попытки угадывания}
if (c=z) then begin writeln('Угадал');{сравнивание переменной z и с если они
равны,то прекратить угадывание (прервать цикл), вывсти надпись угадал}
break
end;
if (i=5) and (c<>z) then begin{сравнивание переменной z и с если они не
равны,то продолжить угадывание (не прервать цикл),если попытки угадывания
кончились(закончился цикл),то вывести надпись не угадал}
writeln('Не угадал');
end;
end;
end.
Выходные данные
Компьютер загадал число: 67
1)Попытка отгадывания: 50
2)Попытка отгадывания: 2
3)Попытка отгадывания: 55
4)Попытка отгадывания: 20
5)Попытка отгадывания: 100
Не угадал
Задание 5.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 5
Разработать программу подсчета количество пар любых двух целых чисел диапазоне от 1 до
10000 для которых справедливо утверждение: Сумма квадратов любых двух целых чисел равно
кубу одного из этих чисел. Если такие пары чисел существуют, подсчитать среди них количество
нечетных чисел. Если такие пары чисел существуют, вывести построчно значения этих чисел.
var
a,b,k: integer;{a - первое число в паре, b - второе число в паре, k - счетчик
нечетных чисел в парах удовлетворяющих условию}
begin
k:=0;{обнуляем счетчик}
for a:=1 to 10000 do {запуск цикла для перебора разных сочитаний сисел a и b
в диапазоне от 1 до 10000}
for b:=1 to 10000 do {запуск цикла для перебора разных сочитаний сисел a и b
в диапазоне от 1 до 10000}
if (sqr(a)+sqr(b)=a*a*a) or (sqr(a)+sqr(b)=b*b*b){проверка условия "Сумма
квадратов любых двух целых чисел взятых из диапазона от 1 до 10000 равно кубу
одного из этих чисел"} then {если условие выполняется,то выводим эту пару
чисел} begin
writeln(a,' ',b);
if a mod 2 = 1 then k:=k+1;{если первое число в паре нечетное, то прибавляем
к счетчику нечетных чисел 1}
if b mod 2 = 1 then k:=k+1;{если второе число в паре нечетное, то прибавляем
к счетчику нечетных чисел 1}
end;
writeln ('количество нечетных чисел в парах ',k );{вывод количества нечетных
чисел в парах удовлетворяющих условию "Сумма квадратов любых двух целых чисел
взятых из диапазона от 1 до 10000 равно кубу одного из этих чисел"}
end.
Выходные данные
2 2
5 10
10 5
10 30
17 68
26 130
30 10
37 222
50 350
65 520
68 17
82 738
101 1010
122 1342
130 26
145 1740
170 2210
197 2758
222 37
226 3390
257 4112
290 4930
325 5850
350 50
362 6878
401 8020
442 9282
520 65
738 82
1010 101
1342 122
1740 145
2210 170
2758 197
3390 226
4112 257
4930 290
5850 325
6878 362
8020 401
9282 442
количество нечетных чисел в парах 20
Задание 7.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 7
Каждая страница книги содержит 64 строки. В каждой строке содержится 32 символа. Разработать
программу, котораяподсчитывает число страниц в книге, если известно, что текст книги занял 512
Кбайт памяти. Для кодирования каждого символа использовалась кодировка Unicode.
var
a,b,c,d: real;{a-число страниц,b- число символовбв,d- количество занимаемой
памяти в килобайтах}
begin
a:=64;{присвоим переменной a количество строк}
b:=32;{присвоим переменной b количество символов}
c:=512;{присвоим переменной c количество памяти в килобайтах}
d:=(c*1024)/((a*b)*2);{переведем количество занимаемой памяти в байты и
поделим его на вес 1 страницы( произведение количества строк и символов
которое мы удвоили(удвоили из-за того,что 1 символ в кодировке Unicode
занимает 2 байта )), получим ответ}
writeln(d);{вывод ответа}
end.
Выходные данные
128
Задание 8.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 8
Разработать программу подсчета количества единиц, используемых
при записи целых положительных чисел в двоичной и восьмеричной
системах счисления. В программе используются числа, которые не больше
числа 65 в десятичной системе счисления.
var
s, i, j, k, n: integer;
a: array [1..99999] of integer;
begin
i := 1;
k := 1;
j:=0;{бнуляется счетчик количества единиц}
writeln('введите ту систему счисления в которую вы хотите перевести число,
если в двоичную введите цифру - 2');
writeln('если в восьмиричную введите цифру - 8 ');
readln(n);{считывание системы счисления в которую будет осуществляться
перевод числа}
writeln('ведите число для перевода');
if n=2 then begin
readln(s);{считывание десятичного числа количество единиц которого в
двоичной системе нужно подсчитать}
if s>65 then {если число больше 65, то считываем другое число}
while s>65 do begin{пока больше 65, то считываем другое число}
writeln('ведите другое число');
readln(s);{считывание другого числа s}
end;
while s <> 1 do {пока при делении введеного числа s на 2 целая часть не
станет равной 1 повторяем следующие действия}
begin
a[i] := s mod 2;{ в массив вносится остаток от деления на 2}
s := s div 2;{значению s рисваивается целое число от деления на 2}
i := i + 1;{меняется ячейка массива}
k := k + 1;{k принимает значение равное i}
end;
a[i] := 1;{присваивает последнему элементу массива 1, так как остаток от
деления в последнем шаге цикла будет равен 1 }
for i := k downto 1 do {выводим масив в обратном порядке и проверяем его на
наличие единиц}
begin
write(a[i]);{вывод двоичного числа}
if a[i]=1 then j:=j+1;{j- счетчик количества единиц}
end;
end;
if n=8 then begin
readln(s);{считывание десятичного числа количество единиц которого в
восьмиричной системе нужно подсчитать}
if s>65 then begin {если число больше 65, то считываем другое число}
while s>65 do begin{пока больше 65, то считываем другое число}
writeln('ведите другое число');
readln(s);{считывание другого числа s}
end;
end;
while (s > 8) or (s = 8 ) do{пока при делении введеного числа s на 8 целая
часть не станет меньше 8 или равной 8 повторяем следующие действия}
begin
a[i] := s mod 8;{ в массив вносится остаток от деления на 8}
s := s div 8;{значению s рисваивается целое число от деления на 2}
i := i + 1;{меняется ячейка массива}
k := k + 1;{k принимает значение равное i}
end;
a[i] := s;{присваивает последнему элементу массива последнее значение s,
так как остаток от деления в последнем шаге цикла будет равен s }
for i := k downto 1 do {выводим масив в обратном порядке и проверяем его на
наличие единиц}
begin
write(a[i]);{вывод восьмиричного числа}
if a[i]=1 then j:=j+1;{j- счетчик количества единиц}
end;
end;
writeln;
writeln('количество единиц в числе=',j);{выводит количество единиц в
числе}
end.
Входные данные
2
65
8
64
Выходные данные
1000001
количество единиц в числе=2
100
количество единиц в числе=1
Задание 10.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 10
Определение генов.
Имеется следующая последовательность нуклеотидов:
CTGTGTGGTCCTTGTTTTATTCGTTGGGTGAGCGATGTAACAACTTCCAACAAGACCATTGCGGAATCAATCATAT
GTACCCATGATGGTGGAACATCTGGTGTTCAACAACTTACGACGTCGCTGACACTTTGCTATATTGAGCAATCACG
CGTACTGGAATTTTAGAAGACCGCTTGAGAATTCGATGACAGCTGCAAGCCTGGATGTCAGTTGATTATACAAGG
GAGGTGCGACAAACAAGGATCGCATTGTGTTAACCGTTATTCTTACATCTATGACTTAGAATTGCAACTCAGGTGT
TGTTATCGAATAGACTTACTGGGGGTGATACCGTGCGGCTAATCTAGTCGCGGAGCCCAAACTCAGGCTCGACCG
CATGCGTATGTAAATTTGTTTCCAACTAGTGAACCAGTACGTGTATATTTCGTTTAATATTCCGGTCCCGTTACGCTA
ACCTGCCACTTAGGTAAGAGCTAACGCAAATGGTTACCTAGTCCCTCGTTGTCGTAACATGAATATGGGCTTCGTT
ATGCTCTAGCCGCCGGGATTGCATTATAAGACAATTTGGTAGAGTTCCTGGGTATATTTTCATTATAGGGAAATAT
ATGATTTTAAGGTAGCCAGGAAACGCGCGCGGATTTGGGGGAATTGCTTTCGCCTTTCATAAACTCCTGAGCCTAG
CATAACCTACGGAACCTCCCAAGCATGGCACGACAACTATACGGCATATGCAGACGCTGCACATCAGCACCGAGA
GGGCGGGGGTTGGGAGTTGTGTATACGGAGACTTCGATACAGAGAGGAGATACCCCCCCCGCTAGTTATCGGAC
CCCGAGCGTCATCGCACCCCCACCGTCGTAATACGGCGTTGGTTGAATATCATAGTGGGAAACCTGGAGTATTAGC
TCTGTGCACTGACGAGACACC
Сколько в ней генов AGAA?
Определить индексы этих генов.
Разработать программу, которая определяет количество и индексы этих
генов.
var
a: string;
z,k,i: longint;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
Z:=0;{изначальное количество генов равно 0}
read(a);{считывание строки}
k:=length(a);{вычисление количества её символов}
writeln('индексы генов');
for i:=1 to k do BEGIN
if (a[i]='A')AND (A[I+1]='G')AND(A[I+2]='A')AND(A[I+3]='A') THEN{проверка
введенной строки генов на наличие гена AGAA}
BEGIN
WRITELN(I,' ',I+1,' ',I+2,' ',I+3);{если ген есть то вывести значения его
индексов в строке}
Z:=Z+1;{если ген есть то к счетчику генов прибавляется 1}
END;
END;
WRITELN('количество генов AGAA = ',Z);{вывод количества генов AGAA}
END.
Входные данные в файле 'input.txt'
Выходные данные в файле 'output.txt'
CTGTGTGGTCCTTGTTTTATTCGTTGGGTGAGCGATGT
AACAACTTCCAACAAGACCATTGCGGAATCAATCATAT
GTACCCATGATGGTGGAACATCTGGTGTTCAACAACTT
ACGACGTCGCTGACACTTTGCTATATTGAGCAATCACG
CGTACTGGAATTTTAGAAGACCGCTTGAGAATTCGATG
ACAGCTGCAAGCCTGGATGTCAGTTGATTATACAAGG
GAGGTGCGACAAACAAGGATCGCATTGTGTTAACCGT
TATTCTTACATCTATGACTTAGAATTGCAACTCAGGTGT
TGTTATCGAATAGACTTACTGGGGGTGATACCGTGCGG
CTAATCTAGTCGCGGAGCCCAAACTCAGGCTCGACCGC
ATGCGTATGTAAATTTGTTTCCAACTAGTGAACCAGTA
CGTGTATATTTCGTTTAATATTCCGGTCCCGTTACGCTA
ACCTGCCACTTAGGTAAGAGCTAACGCAAATGGTTACC
TAGTCCCTCGTTGTCGTAACATGAATATGGGCTTCGTTA
TGCTCTAGCCGCCGGGATTGCATTATAAGACAATTTGG
TAGAGTTCCTGGGTATATTTTCATTATAGGGAAATATAT
GATTTTAAGGTAGCCAGGAAACGCGCGCGGATTTGGG
GGAATTGCTTTCGCCTTTCATAAACTCCTGAGCCTAGCA
TAACCTACGGAACCTCCCAAGCATGGCACGACAACTAT
ACGGCATATGCAGACGCTGCACATCAGCACCGAGAGG
GCGGGGGTTGGGAGTTGTGTATACGGAGACTTCGATA
CAGAGAGGAGATACCCCCCCCGCTAGTTATCGGACCCC
GAGCGTCATCGCACCCCCACCGTCGTAATACGGCGTTG
GTTGAATATCATAGTGGGAAACCTGGAGTATTAGCTCT
GTGCACTGACGAGACACC
индексы генов
167 168 169 170
180 181 182 183
285 286 287 288
количество генов AGAA = 3
Задание 9.
Язык PascalABC.NET версия 3.0 сборка 1043 (30.09.2015)
Задание 9
Биосинтез белка происходит в ходе двух процессов: транскрипции и
трансляции. При транскрипции информация с ДНК переносится на
информационную РНК, при трансляции информация считывается с
информационной РНК и синтезируется белок – последовательность
аминокислот.
Транскрипция
ДНК можно представить в виде строки, в которой используются четыре
буквы (A,T,Gи C). Молекула ДНК состоит из двух цепочек, соединенных по
принципу комплиментарности: аденину (A)соответствует тимин (T), гуанину
(G)–цитозин (C). Если у нас есть правая половинка ДНК AATTGGCC, ей
будет соответствовать левая половика TTAACCGG. Для того, чтобы
построить информационную РНК нужно сделать инверсию левой половинки
ДНК: TTAACCGGGGCCAATT и заменить тимин на урацил: GGCCAAUU.
Трансляция
Триплеты (совокупности трех нуклеотидов) кодируют аминокислоты.
Считывание триплетов начинается со стартовой последовательности AUG.
…GGAGCAUGCCU…
То есть, первым триплетом будет CCU. Для определения аминокислот,
кодируемых триплетами нуклеотидов используется генетический код:
Так, нуклеотиду CCU соответствует аминокислота пролин (Pro).
Определите аминокислотную последовательностьпервого белка (в
информационной РНК кодирующая последовательность расположена между
триплетами AUG), закодированную в правой половинке ДНК:
CTCGCTCCCGAGTGAGGCCAGCGGAGATTCGGTGGGCCCCGTCG
AGGGACGTTTGTGTGAGACCGCCTTCGCTCGGAAATCCTGTCGGACTCG
TTTAGACTGATCCAGCAGAACCACATGGCCGACCCATAAGTTGCAAGG
TGGGACTGATGTGCAGACAAACGGACGGCCAGTGTCTGGACTCCGAGG
GATGCTCGGAAGGTCTGGCTGCCAAAGAATATGAGGCACCGGTCTTCA
GAGAATGCCTTAATATCCGAATGACCCACTCTACTGAAGCCCCCGGGG
GATTGCCACCCTGCATCTCCTAGGTAATGTTCTATAGCCCTATGCTCCG
TGGAGGAAAGTATTTATTTTGAGTATGCACTGACAGGGACAGACCCAG
AGTCTGGTCATTTAGAATATTTCGCGCAGCAGGGCAGGCGCGCTATTTG
GTCTGATTATGTTGCATAAGTTTAATTCCAAGTTTGCAGGTTGCGACAG
GAACGTCTCCCGGAGTTGGTGTTCCCCATTGGCGAGCGCTTCGCTCGAC
CCTACCCTCCTAAGCACCTAAACTCTGCATTCATTCCCGGAGTGTTGCG
TAGCTAGGATTGGCGCGTGTGCATAAAGTATCCTAAGGTGGACTCTCGC
AGCTCGGTAAAAAAGGGTCGCGAACCCTTACGGTACCTTTTCGCTCTCG
CTCGGAGAATCAGTCTCCCTTTAATGTTGGGTGTAACACAGTCTTGTAC
GGATTCTGGACTTCTCAAGCAACAATTTGGATCGGGCCGCGACGATGC
ATCAGATCAACCAGACCGGAGGGCTTCAAGTAACGCGGGATACATACT
ACAAGCTACAAACAGTACCAGGTGTTATTTCGATGGGCCTAGTACCGCT
CTCAGCTCCGTAAGGGAGACGGGGACACAAGGGGAAGCAAGACAATT
T
Разработать программу, которая определяет аминокислотную
последовательностьпервого белка в указанной последовательности.
var
a,c: string;
i,z,K: integer;
begin
{присваивается последовательность }
a:='CTCGCTCCCGAGTGAGGCCAGCGGAGATTCGGTGGGCCCCGTCGAGGGACGTTTGTGTGAGACCGCCTTCGCT
CGGAAATCCTGTCGGACTCGTTTAGACTGATCCAGCAGAACCACATGGCCGACCCATAAGTTGCAAGGTGGGACTGA
TGTGCAGACAAACGGACGGCCAGTGTCTGGACTCCGAGGGATGCTCGGAAGGTCTGGCTGCCAAAGAATATGAGGCA
CCGGTCTTCAGAGAATGCCTTAATATCCGAATGACCCACTCTACTGAAGCCCCCGGGGGATTGCCACCCTGCATCTC
CTAGGTAATGTTCTATAGCCCTATGCTCCGTGGAGGAAAGTATTTATTTTGAGTATGCACTGACAGGGACAGACCCA
GAGTCTGGTCATTTAGAATATTTCGCGCAGCAGGGCAGGCGCGCTATTTGGTCTGATTATGTTGCATAAGTTTAATT
CCAAGTTTGCAGGTTGCGACAGGAACGTCTCCCGGAGTTGGTGTTCCCCATTGGCGAGCGCTTCGCTCGACCCTACC
CTCCTAAGCACCTAAACTCTGCATTCATTCCCGGAGTGTTGCGTAGCTAGGATTGGCGCGTGTGCATAAAGTATCCT
AAGGTGGACTCTCGCAGCTCGGTAAAAAAGGGTCGCGAACCCTTACGGTACCTTTTCGCTCTCGCTCGGAGAATCAG
TCTCCCTTTAATGTTGGGTGTAACACAGTCTTGTACGGATTCTGGACTTCTCAAGCAACAATTTGGATCGGGCCGCG
ACGATGCATCAGATCAACCAGACCGGAGGGCTTCAAGTAACGCGGGATACATACTACAAGCTACAAACAGTACCAGG
TGTTATTTCGATGGGCCTAGTACCGCTCTCAGCTCCGTAAGGGAGACGGGGACACAAGGGGAAGCAAGACAATTT';
z:=length(a);{вывисляется длина строки}
for i:= z downto 1 do begin
if a[i]='T' then a[i]:='U';{тимин меняется на урацил}
end;
K:=POS('AUG',A);{поиск триплета AUG}
C:=COPY(A,K+3,3) ;{В строку с вносятся нуклеотид идущий после AUG}
WRITE(C);{вывод нуклеотида}
end.
Выходные данные: GCC
Download