Для школьного праздника группа учащихся решила поставить танец, в котором иллюстрировалась бы работа алгоритма сортировки пузырьком. В этом танце учащиеся становятся в одну линию, после этого некоторые стоящие рядом танцоры могут меняться местами. Одновременные обмены запрещены, то есть пока одна пара танцоров меняется местами, другие остаются на своих местах. В конце танца все девочки должны стоять в ряду слева, а все мальчики — справа. По данному первоначальному расположению мальчиков и девочек в ряду определите, какое минимальное число обменов им необходимо совершить, чтобы встать нужным образом.
Например, пусть первоначальная расстановка танцоров такая (буква «Д» обозначает девочку, буква «М» обозначает мальчика):
МДДМД
Тогда им необходимо выполнить 4 обмена. Запишем расстановку после каждого обмена, выделив жирным шрифтом пару, которая поменялась местами.
ДМДМД
ДМДДМ
ДДМДМ
ДДДММ
В этой задаче вам необходимо определить минимальное число обменов для следующих пяти первоначальных расстановок:
МДММДМД
Во второй расстановке сначала стоит 7 мальчиков, потом 8 девочек.
В третьей расстановке стоит 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек. Всего 60 танцоров.
В четвёртой расстановке 1 мальчик, 1 девочка, 2 мальчика, 2 девочки, 3 мальчика, 3 девочки, 4 мальчика, 4 девочки, 5 мальчиков, 5 девочек, 6 мальчиков, 6 девочек. Всего 42 танцора.
В пятой расстановке мальчики и девочки чередуются, всего 80 танцоров.
ответом на эту задачу является пять целых чисел, записанных в пяти отдельных строках, по одному числу в строке. ответы на расстановки должны быть записаны в том же порядке, в котором они приведены в условии. Если вы не можете найти ответ для какой-то расстановки, напишите в качестве ответа любое число.
Для выполнения вычислений вы можете пользоваться компьютером (калькулятором, электронной таблицей, средой программирования).
вариантами разных циклов (например, с заранее заданным
количеством повторений, с предусловиями, с постусловиями, с
меткой и разветвлением).
В массиве из 15 элементов (ввод переменных – на ваше усмотрение)
подсчитать количество положительных (четных) и сумму
отрицательных элементов по информатике, Реализовать программу следующего задания не менее чем двумя
вариантами разных циклов (например, с заранее заданным
количеством повторений, с предусловиями, с постусловиями, с
меткой и разветвлением).
В массиве из 15 элементов (ввод переменных – на ваше усмотрение)
подсчитать количество положительных (четных) и сумму
отрицательных элементов.
Объяснение:
1)
var i,n:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do write(a[ i]:8); writeln;
for i:=n downto 1 do write(a[i]:8); writeln;
writeln('Для выхода нажмите Enter'); readln
end.
2)
var i,n:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[ i]); readln;
for i:=1 to n do if a[i]<0 then write(i:2,a[i]:8); writeln;
writeln('Для выхода нажмите Enter'); readln
end.
3)
var i,n:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do if not odd(i) then write(a[i]:8); writeln;
writeln('Для выхода нажмите Enter'); readln
end.
4)
var i,n,s:integer; a:array[1..100]of integer;
begin
write('Введите размер массива: '); readln(n);
writeln('Введите значения элементов массива, разделяя их пробелами');
for i:=1 to n do read(a[i]); readln;
for i:=1 to n do write(a[i]:8); writeln;
s:=0; for i:=1 to n do s:=s+a[i]; writeln('Sum=',s); ;
writeln('Для выхода нажмите Enter'); readln
end.
Объяснение: