Васильев Игорь Сергеевич МОБУ гимназия № 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. Для того, чтобы построить информационную РНК нужно сделать инверсию левой половинки ДНК: TTAACCGGGGCCAATT и заменить тимин на урацил: 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