Дистанционная олимпиада по программированию для 10x

advertisement
Дистанционная олимпиада по программированию для
10-11 классов/2015-2016 уч.г. (1 тур)
Выполнил: Ракипов Динаф Рауфович
Образовательное учреждение: МОБУ СОШ №2 с.Буздяк МР Буздякский
район
Задание №1
Текст задания: Разработать программу, случайным
перемешивающую дни недели (повторы дней не допускаются).
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
образом
const
n = 7;
var
m: array [1..n] of integer;
i, k,a,b,c,d,e,f,j: integer;
t: text;
time:real;
begin
writeln ('Нажмите ENTER что бы запустить рандомизацию...');
//Диалог с пользователем
readln;
time:=milliseconds; // Начало подсчета времени работы программы
randomize; // Начало рандомизации от 1 до 7 т.к в одной недели 7
дней
i := 0;
while i < n do
begin
i := i + 1;
m[i] := random(1,7);
for k := 1 to i - 1 do //Цикл для исключения дублей
if m[k] = m[i] then
begin
i := i - 1;
break;
end;
end;
assign (t,'saverandom.txt'); //Объявляем файл для сохранении
рандомных не повторяющихся цифр в промежутке от 1 до 7
rewrite (t); //Открыть файл на перезапись
for i := 1 to n do
begin
writeln(t,m[i]:3); //Записываем цифры
end;
close (t); // Закрываем файл, конец рандомизации
assign (t,'saverandom.txt'); // Открываем созданный нами файл
saverandom.txt
reset (t);
readln (t,a); // К каждому числу присваиваем переменную
readln (t,b); // 7 переменных 7 дней
readln (t,c);
readln (t,d);
readln (t,e);
readln (t,f);
readln (t,j);
close (t);//Закрываем файл
writeln ('Рандомный вывод:'); //Вывод названия дня недели в
зависимости каким числом является переменная
writeln;
case a of
1: writeln ('Пн'); //Если 1 то Пн, если 2 то Вт и т.д
2: writeln ('Вт');
3: writeln ('Ср');
4: writeln ('Чт');
5: writeln ('Пт');
6: writeln ('Сб');
7: writeln ('Вс');
end;
case b of
1: writeln
2: writeln
3: writeln
4: writeln
5: writeln
6: writeln
7: writeln
end;
case c of
1: writeln
2: writeln
3: writeln
4: writeln
5: writeln
6: writeln
7: writeln
end;
//Так поступаем с каждой переменной
('Пн');
('Вт');
('Ср');
('Чт');
('Пт');
('Сб');
('Вс');
('Пн');
('Вт');
('Ср');
('Чт');
('Пт');
('Сб');
('Вс');
case d of
1: writeln
2: writeln
3: writeln
4: writeln
5: writeln
6: writeln
7: writeln
end;
('Пн');
('Вт');
('Ср');
('Чт');
('Пт');
('Сб');
('Вс');
case e of
1: writeln
2: writeln
3: writeln
4: writeln
5: writeln
6: writeln
7: writeln
end;
('Пн');
('Вт');
('Ср');
('Чт');
('Пт');
('Сб');
('Вс');
case f of
1: writeln
2: writeln
3: writeln
4: writeln
5: writeln
6: writeln
7: writeln
end;
('Пн');
('Вт');
('Ср');
('Чт');
('Пт');
('Сб');
('Вс');
case j of
1: writeln ('Пн');
2: writeln ('Вт');
3: writeln ('Ср');
4: writeln ('Чт');
5: writeln ('Пт');
6: writeln ('Сб');
7: writeln ('Вс');
end;
writeln;
time:=(milliseconds-time)/1000; //Конец подсчета времени
writeln ('Программа проработала ',time,' сек.'); //Вывод
затраченного времени
readln;
end.
Комментарии к решению: В программе используем метод
рандомизации цифр, используя цикл для исключения дублей. Используется
файл saverandom.txt для сохранения цифр и их дальнейшего присвоения к
переменным. Каждая цифра — это день недели 1 это Пн. 2, Это Вт. и т.д. Так
же для интереса добавил функцию подсчета времени выполнения программы
в сек. Программа работает исправно, сбоев не происходило.
«Рандомизированные» дни выходят на экране пользователя. Комментарии
присутствуют и в самом программном коде, если что-то не понятно
обращаться туда.
Скриншоты:
Задание №2
Текст задания: Разработать интерактивную программу для игры
«Камень-Ножницы-Бумага-Ящерица-Спок» пользователя с компьютером.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
Uses Crt;
Var
z,x,c,a:Integer;
begin
writeln ('Камень-Ножницы-Бумага-Ящерица-Спок - это расширенный
вариант игры «Камень, ножницы, бумага»'); //Диалог с пользователем
writeln;
writeln ('Правила:'); //Диалог с пользователем
writeln ('Ножницы режут бумагу. Бумага заворачивает камень. Камень
давит ящерицу, а ящерица травит Спока, в то время как Спок ломает
ножницы, которые, в свою очередь, отрезают голову ящерице, которая
ест бумагу, на которой улики против Спока. Спок испаряет камень, а
камень, разумеется, затупляет ножницы.'); //Диалог с пользователем
repeat //Цикл повтора игры
writeln;
Writeln('Выберите один из вариантов'); //Диалог с пользователем
Writeln('Камень - 0');
Writeln('Ножницы - 1');
Writeln('Бумага - 2');
Writeln('Ящерица - 3');
Writeln('Спок - 4');
readln(z);
x:=random(0,4); //Компьютер выбирает рандомное число от 0 до 4 ,
каждому числу соответствует Камень,Ножница,Бумага,Ящерица или Спок
If // Условие ничьи
(z=0) and (x=0)
or (z=1) and (x=1)
or (z=2) and (x=2)
or (z=3) and (x=3)
or (z=4) and (x=4)
then
begin
writeln;
write('Ничья т.к. вы выбраали');
case z of
0: write (' Камень');
1: write (' Ножницы');
2: write (' Бумагу');
3: write (' Ящерицу');
4: write (' Спок');
end;
write (' и компьютер выбрал');
case x of
0: write (' Камень');
1: write (' Ножницы');
2: write (' Бумагу');
3: write (' Ящерицу');
4: write (' Спок');
end;
writeln;
end
else
If //Условие выигрыша
(z=0) and (x=1) or
(z=1) and (x=2) or
(z=2) and (x=0) or
(z=3) and (x=4) or
(z=4) and (x=1) or
(z=1) and (x=3) or
(z=3) and (x=2) or
(z=2) and (x=4) or
(z=4) and (x=0)
then
begin
writeln;
write(' Вы выиграли т.к. вы выбраали');
case z of
0: write (' Камень');
1: write (' Ножницы');
2: write (' Бумагу');
3: write (' Ящерицу');
4: write (' Спок');
end;
write (' а компьютер выбрал');
case x of
0: write (' Камень');
1: write (' Ножницы');
2: write (' Бумагу');
3: write (' Ящерицу');
4: write (' Спок');
end;
writeln;
end
else //В остальных случаях пользователь проигрывает
begin
writeln;
Write ('Вы проиграли т.к. вы выбраали');
case z of
0: write (' Камень');
1: write (' Ножницы');
2: write (' Бумагу');
3: write (' Ящерицу');
4: write (' Спок');
end;
write(' а компьютер выбрал');
case x of
0: write (' Камень');
1: write (' Ножницы');
2: write (' Бумагу');
3: write (' Ящерицу');
4: write (' Спок');
end;
writeln;
end;
writeln;
writeln ('Сыграть еще раз ? ДА-0 Нет-1'); //Предложение сыграть еще
раз
readln (a);
until a = 1; //Если не 1 , то выполнить снова
End.
Комментарии к решению: В программе снова как и в первой задачи
используется рандомные цифры в промежутке. Далее дело оставалось за
малым записать условия ничьи, выигрыша и проигрыша. Дополнительные
фалы использованы не были. Все результаты выходят на экране пользователя.
Комментарии так же присутствуют в программном коде.
Скриншоты:
Задание №3
Текст задания: Разработать программу, которая выводит на экран все
простые числа в диапазоне от 1 до 1000.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var i,j,max: integer;
f:boolean;
begin
max:=1000; // до тысячи
writeln ('Нажми ENTER для вывода всех простых чисел от 1 до
1000'); //Диалог с пользователем
readln;
writeln;
writeln('Все простые числа:');
writeln;
for i:=1 to max do //Цикл от 1 до 1000
begin
f:=true; // Сначала же любое число True
for j:=2 to i-1 do
if i mod j =0 then //Но если оно на цело делится на числа от 2
до -1 нее, исключаем само число и единицу, тем самым если число не
соответствует данному условию, то оно остается True
begin
f:=false; // То это число становиться False
break;
end;
if f then write (i,', '); //Если True вывести это число
end;
writeln;
end.
Комментарии к решению: Все комментарии к программе в исходном
коде. Все данные выводятся на экран пользователя.
Скриншоты:
Задание №4
Текст задания: Разработать программу «Угадай число», которая с
помощью генератора случайных чисел загадывает и проверяет угадывание
числа. В программе используется интервал от 1 до 100 и дается пять попыток
угадывания.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var a,b,c:integer;
begin
writeln ('Привет, я робот. Давай сыграем в игру "Угадай число".
Я загадаю, а ты одгадывай.');//Диалог с пользователем
repeat //Цикл сыграть заново
writeln;
writeln ('Итак, я загадываю число от 1 до 100... '); //Диалог с
пользователем
writeln ('Дам тебе 5 попыток'); //Диалог с пользователем
a:=random(1,100); // Робот выберает случайное число от 1 до ста
writeln;
//Первый раз
write ('И твое число: '); //Диалог с пользователем
read (b); //Считывает число введенное пользователем
writeln;
if b=a then //Условия совпадения случайногоисла и числа которое
ввел пользователь
begin
writeln ('Спервого раза!? Да ты везучий!'); //Диалог с
пользователем
writeln;
writeln ('Игра окончена, ты угадал число');
exit //При победе конец программы
end
else
writeln ('Первый блин комом, у тебя осталось 4 попытки.');
writeln;
//Первый раз
//Далле таких еще 4 условий
//Второй раз
write ('И твое число: ');
read (b);
writeln;
if b=a then
begin
writeln ('Со второго раза!? Превосходно!');
writeln;
writeln ('Игра окончена, ты угадал число');
exit
end
else
writeln ('Эхх... еще чуть-чуть , у тебя осталось 3 попытки.');
writeln;
//Второй раз
//Третий раз
write ('И твое число: ');
read (b);
writeln;
if b=a then
begin
writeln ('Превосходно! Ты угадал мое число!');
writeln;
writeln ('Игра окончена, ты угадал число');
exit
end
else
writeln ('Ты в шаге от победы , у тебя осталось 2 попытки.');
writeln;
//Третий раз
//Четвертый раз
write ('И твое число: ');
read (b);
writeln;
if b=a then
begin
writeln ('Вот! С четвертого раза! Молодец!');
writeln;
writeln ('Игра окончена, ты угадал число');
exit
end
else
writeln ('Оу... , у тебя осталось 1 попытка.');
writeln;
//Четвертый раз
//Пятый раз
write ('И твое число: ');
read (b);
writeln;
if b=a then
begin
writeln ('Ну ты и везунчик! С последней попытки!');
writeln;
writeln ('Игра окончена, ты угадал число');
exit
end
else
begin
writeln ('Ты не угадал число попробуем снова ? ДА-0 Нет-1'); //
Если пользователь не угадал число 5 раз подряд , ему предлагается
сыграть еще раз до тех пор пока он не угадает число.
readln (c);
writeln;
end;
//Пятый раз
until c = 1; //Цикл сыграть заново
end.
Комментарии к решению: Робот загадывает число, после чего пять раз
проверяет его на соответствие с числами, которые ввел пользователь. Все
комментарии к программе в исходном коде. Все данные выводятся на экран
пользователя.
Скриншоты:
Задание №5
Текст задания: Разработать программу подсчета количество пар любых
двух целых чисел диапазоне от 1 до 10000 для которых справедливо
утверждение: Сумма квадратов любых двух целых чисел равно кубу одного из
этих чисел. Если такие пары чисел существуют, подсчитать среди них
количество нечетных чисел. Если такие пары чисел существуют, вывести
построчно значения этих чисел.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var i,d,j,a,b,c,max,cx,bx: integer;
f,t:boolean;
r: text;
begin
max:=10000; //Максимум 10000
writeln ('Нажмите ENTER что бы найти пары чисел в промежутке от 1
до 10000, которые соответствуют условиям задачи:'); //Диалог с
пользователем
readln;
for i:=1 to max do //Двойной цикл первой число пары
for j:=1 to max do //Второе число пары. Будем проверять
соответсвуют ли они условиям задачи
begin
a:=(i*i)+(j*j);// Условие задачи первое : " Сумма квадратов
любых двух целых чисел "
b:=(i*i*i); // Условие задачи второе :" кубу одного из этих
чисел "
if (a=b) then // Если условие выполняется :" Сумма квадратов
любых двух целых чисел равно кубу одного из этих чисел. "
begin
f:=true; // Присваеваем True
end
else
begin
f:=false; // Если нет False
end;
if f then // Работаем с числами если True
begin
if i mod 2 <> 0 // Проверяем нечетность первого числа
then
cx+=1
else
if j mod 2 <> 0 // Проверяем нечетность второго числа
then
bx+=1; // Если соответсвует условию то добавляем 1
end;
if f then // Если правда выводим пары чисел
writeln (i,' ', j);
end; //Конец двойного цикла
writeln ;
writeln ('Кол-во нечетных чисел в парах: ',cx+bx ); //Выводим сумму
нечетных чисел
writeln;
end.
Комментарии к решению: Используется двойной цикл, компьютер
проверяет числа на соответствие условиям задачи. Дополнительные
комментарии в исходном коде. Все данные выводятся на экран пользователя.
Скриншоты:
Задание №6
Текст задания: Какое число меньше миллиона имеет больше всего
делителей? Разработать программу, которая выводит такое число, делители
числа и их количество.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var j1,n,i,j,k,max,maxn:longint;
time:real;
begin
max:=1; //Начальное значение
maxn:=1; //Начальное значение
time:=milliseconds; //Начало подсчета времени
writeln ('Просчет числа ...');//Диалог с пользователем
for i:=2 to 1000000 do //Цикл от 2 до 1 000 000
begin
k:=2;//1 и само
for j:=2 to trunc(sqrt(i)) do //считаем делители до корня из
числа и умножаем на 2
if i mod j = 0 then inc(k,2);
if frac(sqrt(i))=0 then dec(k);//если число полный квадрат, то
минус 1
if k>max then
begin
max:=k; //Подсчитывает максимальное число делителей
maxn:=i; //Подсчитываем максимальное число от 1 до 1 000 000
end;
end;
writeln;
writeln ('Просчет делителей ...'); // Диалог с пользователем
for j:=1 to maxn do //Цикл от 1 до самого числа
begin
if maxn mod j = 0 then
write (j,' ,');//Выводим делители
end;
time:=(milliseconds-time)/1000; //Конец подсчета времени
writeln;
writeln ('Это число: ',maxn); //вывод числа
writeln ('Кол-во делителей: ',max); //вывод кол-во делителей
writeln ('Затрачено время: ',time,' сек.'); //вывод затраченного
времени
writeln;
end.
Комментарии к решению: Просчитываем числа через цикл выявляя
максимальное кол-во делителей и максимальное значение числа. Для того что
бы программа не уходила в глубокий цикл просчитываем делители до корня
из искомого числа. Дополнительные комментарии в исходном коде. Все
данные выводятся на экран пользователя. Реализован подсчет времени из-за
долгого процесса подсчета чисел.
Скриншоты:
Задание №7
Текст задания: Каждая страница книги содержит 64 строки. В каждой
строке содержится 32 символа. Разработать программу, которая подсчитывает
число страниц в книге, если известно, что текст книги занял 512 Кбайт памяти.
Для кодирования каждого символа использовалась кодировка Unicode.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
const
stroki=64; // число строк
s=32; //число символов в строке
V=512; //Кбайт
ones=2; //2 байт занимает 1 символ
var a: integer;
Vpage,pages: real;
в Unicoode
begin
writeln ('Нажмите ENTER для подсчета страниц...');//Диалог с
пользователем
readln;
a:=stroki*s; //Подсчет символов на одной странице
Vpage:=a*ones; //Объем страницы в байтах
Vpage:=Vpage/1024; //Объем страницы в Кбайтах
pages:=V/Vpage; //Подсчет кол-ва страниц
writeln ('В книге ',pages,' стр. ');
writeln;
end.
Комментарии
к
решению:
Просто
все
подсчитывается.
Дополнительные комментарии в исходном коде. Все данные выводятся на
экран пользователя.
Скриншоты:
Задание №8
Текст задания: Разработать программу подсчета количества единиц,
используемых при записи целых положительных чисел в двоичной и
восьмеричной системах счисления. В программе используются числа, которые
не больше числа 65 в десятичной системе счисления,
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var a,b,c,d,i: integer;
begin
d:=4; // так в двоичной системе при переводе из десятичной у
еденицы 1,у двойки 10 ,у тройки 11, всего 4 еденицы , поэтому d=4
for a:=4 to 65 do // цикл от 4 до 65 , так как для первых 3 цифр
кол-во едениц мы уже завели
begin //все наверное знает как переводить числа из десятичной в
двоичную , главной целью является подсчитать кол-во едениц поэтому
без разницы как считать цифры 0,1
b:= a mod 2 ; //вычисляем остаток от деления
write (b);
c:= a div 2; //вычисляем целую часть деления
if b=1 then //если это еденица то добаляем к d еденицу
d:=d+1;
repeat //цикл повтора
b:= c mod 2; //снова вычесляем остаток от деления
write (b);
if b=1 then //если это еденица то добаляем к d еденицу
d:=d+1;
c:= c div 2; //вычисляем целую часть деления
until c<2; //цикл повтора
write(c);
if c=1 then //если в конце всех вычислений и с = 1 то добаляем к d
еденицу
d:=d+1;
writeln;
end;
writeln ;
writeln ('Число едениц в двоичной системе : ',d); // вывод кол-ва
едениц
writeln;
i:=1; //в восмеричной системе исчисления от 1 до 3 , только одна
еденица
for a:=4 to 65 do // все остальне в принцепе так же , просто в
место 2 ставим 8 и все , комп вычеслит все сам
begin
b:= a mod 8 ;
write (b);
c:= a div 8;
if b=1 then
i:=i+1;
repeat
b:= c mod 8;
write (b);
if b=1 then
i:=i+1;
c:= c div 8;
until c<8;
write(c);
if c=1 then
i:=i+1;
writeln;
end;
writeln;
writeln ('Число едениц в восмертчной системе : ',i); // вывод колва едениц в восмеричной системе исчисления
writeln;
writeln ('Общее кол-во едениц : ',d+i); //сумма всех едениц
end.
Комментарии к решению: Комментарии в исходном коде. Все данные
выводятся на экран пользователя.
Скриншоты:
Задание №9
Текст задания: Определите аминокислотную последовательность
первого белка (в информационной РНК кодирующая последовательность
расположена между триплетами AUG), закодированную в правой половинке
ДНК.
Разработать программу, которая определяет аминокислотную
последовательность первого белка в указанной последовательности.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var
i,j:integer;
s,a:string;
c:char;
f:text;
begin
assign (f,'in.txt'); // Объявляем файл с содержанием кода правой
половинке ДНК
reset (f);
readln(f,s);//считываем строку
close (f);//закрываем строку
For i:=1 to length(s) do begin //Начинаем переделовать правую
половинку в левую , как в условии
If s[i] = 'T' then // Темин на Аденини , Аденин на Темин
s[i]:='A'
else
if s[i] = 'A' then
s[i]:='T';
If s[i] = 'G' then // Гуанин на цетазин
s[i]:='C'
else
if s[i] = 'C' then // Цетазин на гуанин
s[i]:='G';
end;
//Переделали правуб половинку в левую
assign (f,'out.txt'); //Объявляем файл для дальнейшей инверсии
rewrite (f); // На перезапись
for i:=length(s) downto 1 do
begin
write (f,s[ i]); // Записываем строку в перевернутом виде
end;
close (f); //Закрываем файл
assign (f,'out.txt'); //Снова откроем
reset (f); //Для чтения
readln(f,s);
close (f);// Закрываем
//Инверсия окончена...
For i:=1 to length(s) do begin
If s[i] = 'T' then //Заменяем Темин на Гуанин
s[i]:='U'
end;
//Начало белка
i := Pos('AUG', s); // Приравниваем к позитции AUG
if i > 0 then begin
Delete(s, i, 3); //удаляем 3 символа
Insert('***', s, i); //в место них записываем ***
end;
//Конец белка
i := Pos('AUG', s);
if i > 0 then begin
Delete(s, i, 1000); //Удаляем AUG и все после нее так это часть
РНК нам не нужно
end;
i := Pos('***', s); // Приравниваем к позитции ***
j := 1;
if i > 0 then begin
Delete(s, j, i+2); // Удаляем *** и все до нее
end;
//Остается та часть которая нужна для определения
аминокислотной последовательности первого белка
j:= length(s) div 3; //Приравниваем к целому значению, деления
на 3 . Т.к один триплет 3 буквы
for i:=1 to j do //начинам определние аминокислотной
последовательности
begin
a:= copy (s, 1 , 3); //Копируем первые 3 символа
case a
совпадение
//По U
'UUU':
'UUC':
'UUA':
'UUG':
of //Сравниваем с таблицей генетических кодов, при
выводим
write
write
write
write
('Phe,
('Phe,
('Leu,
('Leu,
');
');
');
');
'UCU':
'UCC':
'UCA':
'UCG':
write
write
write
write
('Ser,
('Ser,
('Ser,
('Ser,
');
');
');
');
'UAU':
'UAC':
'UAA':
'UAG':
write
write
write
write
('Uyr, ');
('Uyr, ');
('Stop, ');
('Stop, ');
'UGU':
'UGC':
'UGA':
'UGG':
write
write
write
write
('Cys, ');
('Cys, ');
('Stop, ');
('Trp, ');
//По C
'CUU':
'CUC':
'CUA':
'CUG':
write
write
write
write
('Leu,
('Leu,
('Leu,
('Leu,
');
');
');
');
'CCU':
'CCC':
'CCA':
'CCG':
write
write
write
write
('Pro,
('Pro,
('Pro,
('Pro,
');
');
');
');
'CAU': write ('His, ');
'CAC': write ('His, ');
'CAA': write ('Gin, ');
'CAG': write ('Gin, ');
'CGU':
'CGC':
'CGA':
'CGG':
write
write
write
write
('Arg,
('Arg,
('Arg,
('Arg,
');
');
');
');
//По A
'AUU':
'AUC':
'AUA':
'AUG':
write
write
write
write
('IIe,
('IIe,
('IIe,
('Met,
');
');
');
');
'ACU':
'ACC':
'ACA':
'ACG':
write
write
write
write
('Thr,
('Thr,
('Thr,
('Thr,
');
');
');
');
'AAU':
'AAC':
'AAA':
'AAG':
write
write
write
write
('Asn,
('Asn,
('Lys,
('Lys,
');
');
');
');
'AGU':
'AGC':
'AGA':
'AGG':
write
write
write
write
('Ser,
('Ser,
('Arg,
('Arg,
');
');
');
');
//По G
'GUU':
'GUC':
'GUA':
'GUG':
write
write
write
write
('Val,
('Val,
('Val,
('Val,
');
');
');
');
'GCU':
'GCC':
'GCA':
'GCG':
write
write
write
write
('Ala,
('Ala,
('Ala,
('Ala,
');
');
');
');
'GAU':
'GAC':
'GAA':
'GAG':
write
write
write
write
('Asp,
('Asp,
('Glu,
('Glu,
');
');
');
');
'GGU':
'GGC':
'GGA':
'GGG':
write
write
write
write
('Gly,
('Gly,
('Gly,
('Gly,
');
');
');
');
end;
delete (s, 1, 3); //Удаляем эти три буквы, т.к в дальнейшем они
уже не нужны
end; // Конец цикла
end.
Комментарии к решению: Все комментарии в исходном коде. Все
данные выводятся на экран пользователя. Есть дополнительные файлы in.txt
и out.txt их предназначение описано в коде программы.
Скриншоты:
Задание №10
Текст задания: Сколько в ней генов AGAA?
Определить индексы этих генов.
Разработать программу, которая определяет количество и индексы этих
генов.
Язык программирования: PascalABC.Net
Версия: 3.0 Сборка 1073
Исходный код программы:
var
b,i,j:integer;
s,a:string;
c:char;
f:text;
q: real;
begin
assign (f,'in.txt'); //считываем строку s
reset (f);
readln(f,s);
close (f);
for b:=1 to length(s) div 4 do //саздаем цикл
begin
i := Pos('AGAA', s); // находим AGGA
if i > 0 then begin // если больше нуля ,то добавляем к
количеству еденицу
j:=j+1;
end;
Delete(s, i, 4); // удаляем, для раюоты он больше не
понадобиться
end;
writeln ('Кол-во AGAA : ',j); //Выводим кол-во
end.
Комментарии к решению: Все комментарии в исходном коде. Все
данные выводятся на экран пользователя.
Скриншоты:
\
Download