М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dimasik4325
dimasik4325
24.12.2021 20:13 •  Информатика

Составьте программу для pascal abc, решающую следующую . у продавца имеются гири весом 1, 2, 5 кг. наберите минимальное кол-во гирь для взвешивания n кг.

👇
Ответ:
Nail20041
Nail20041
24.12.2021
Program z1;
        var n:integer;
        s1,s2,s5:integer;
begin
        write('n=');readln(n);
        s5:=n div 5;n:=n mod 5;
        s2:=n div 2;s1:=n mod 2;
        writeln('5 kg-',s5,';   2 kg-',s2,';   1 kg-',s1);
        readln
end.
4,6(32 оценок)
Открыть все ответы
Ответ:
malaya20061
malaya20061
24.12.2021

Номер 1

использовать Робот

алг

нач

нц пока сверху свободно

вверх

кц

нц пока сверху стена

закрасить

влево

кц

нц пока сверху не стена

влево

кц

нц пока сверху стена

закрасить

влево

кц

вверх

вправо

нц пока снизу стена

закрасить

вправо

кц

нц пока снизу не стена

вправо

кц

нц пока снизу стена

закрасить

вправо

кц

кон

Номер 2

использовать Робот

алг

нач

нц пока сверху стена

закрасить

влево

кц

вправо

нц пока сверху стена

если справа не свободно то

вправо

все

если справа свободно то

вправо

если сверху стена то

закрасить

все

все

кц

влево

нц пока снизу не стена

вниз

кц

нц пока слева не стена и снизу стена

закрасить

влево

кц

кон

4,5(68 оценок)
Ответ:
zhanik2017
zhanik2017
24.12.2021

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

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.

4,5(50 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ