В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Урок541
Урок541
30.08.2021 05:45 •  Информатика

Это оп программирование, с тестом

Показать ответ
Ответ:
fedarmo
fedarmo
05.06.2021 06:37

Ре­ше­ние.

15.1 Сле­ду­ю­щий ал­го­ритм вы­пол­нит тре­бу­е­мую за­да­чу.

нц

пока спра­ва сво­бод­но

за­кра­сить

впра­во

кц

нц

пока снизу сво­бод­но

за­кра­сить

вниз

кц

за­кра­сить

нц

пока не (снизу сво­бод­но)

влево

кц

вниз

нц

пока не (спра­ва сво­бод­но)

за­кра­сить

вниз

кц

за­кра­сить

впра­во

нц

пока не (свер­ху сво­бод­но)

за­кра­сить

впра­во

кц

15.2 Ре­ше­ние

var a, s: integer;

begin

s: = 0;

readln(a);

while a<>0 do begin

if (a mod 8=0) and (a mod 10 = 6) then

s : = s + a;

readln(a);

end;

writeln(s)

end.

Для про­вер­ки пра­виль­но­сти ра­бо­ты про­грам­мы не­об­хо­ди­мо ис­поль­зо­вать сле­ду­ю­щие тесты:

Вход­ные дан­ные Вы­ход­ные дан­ные

1

8

6

10

0

0

2

16

0

16

3

16

96

5

0

112

Спрятать критерии

Критерии проверки:

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­ния 15.

Ал­го­ритм пра­виль­но ра­бо­та­ет при всех до­пу­сти­мых ис­ход­ных дан­ных 2

При всех до­пу­сти­мых ис­ход­ных дан­ных верно сле­ду­ю­щее:

1) вы­пол­не­ние ал­го­рит­ма за­вер­ша­ет­ся, и при этом Робот не раз­би­ва­ет­ся;

2) за­кра­ше­но не более 10 лиш­них кле­ток;

3) оста­лись не­за­кра­шен­ны­ми не более 10 кле­ток из числа тех, ко­то­рые долж­ны были быть за­кра­ше­ны

1

За­да­ние вы­пол­не­но не­вер­но, т. е. не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 1 или 0

Мак­си­маль­ный 2

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­ния 15.

Пред­ло­же­но вер­ное ре­ше­ние. Про­грам­ма пра­виль­но ра­бо­та­ет на всех при­ведённых выше те­стах. Про­грам­ма может быть за­пи­са­на на любом языке про­грам­ми­ро­ва­ния 2

Про­грам­ма выдаёт не­вер­ный ответ на одном из те­стов, при­ведённых выше. На­при­мер, ре­ше­ние, в ко­то­ром не­вер­но за­да­но усло­вие от­бо­ра чисел: (a mod 8=0)or(a mod 10=6), вы­даст не­пра­виль­ный ответ на тесте № 1. 1

Про­грам­ма выдаёт на те­стах не­вер­ные от­ве­ты, от­лич­ные от опи­сан­ных в кри­те­рии на 0

Мак­си­маль­ный 2

0,0(0 оценок)
Ответ:
Неуч00
Неуч00
22.07.2020 04:37

//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками".

var

 a, b, c: array [1..100] of longint;

 i, min, n, j, t: longint;

begin

 //Читаем количество элементов в нашем массиве.

 readln(n);

 

 //Читаем массив.

 for i := 1 to n do read(a[i]);

 

 //Заполняем первую "половинку".

 for i := 1 to n div 2 do b[i] := a[i];

 

 //Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и

 //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце.

 for i := n div 2 + 1 to n do c[i - n div 2] := a[i];

 

 //Теперь отсортируем первую "половинку" методом выбора. Идея этого метода

 //основывается на том, что мы ищем минимальный среди неотсортированных элемент,

 //а затем аем его с тем, который стоит сразу после отсортированных.

 for i := 1 to (n - 1) div 2 do

 begin

   min := i;

   for j := i + 1 to n div 2 do

     if b[min] > b[j] then

       min := j;

   if min <> i then begin

     t := b[i];

     b[i] := b[min];

     b[min] := t;

   end;

 end;

 

 //Затем вторую точно также, только стоит обратить внимание на сравнения.

 //Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом

 //будет другим.

 for i := 1 to (n - 1) div 2 do

 begin

   min := i;

   for j := i + 1 to n div 2 do

     if c[min] < c[j] then

       min := j;

   if min <> i then begin

     t := c[i];

     c[i] := c[min];

     c[min] := t;

   end;

 end;

 

 //А теперь по очереди выводим готовые "половинки", не забывая ставить

 //пробел после вывода каждого элемента.

 for i := 1 to n div 2 do write(b[i], ' ');

 for i := 1 to n - n div 2 do write(c[i], ' ');

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота