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

Паскаль из отсортированного массива удалить несколько чисел( числа для удаления нужно ввести с клавиатуры)

👇
Ответ:
Песатель
Песатель
16.03.2021
// PascalABC.NET 3.2, сборка 1374 от 10.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=SeqRandom(ReadInteger('n='),10,99).Sorted.ToArray;
  a.Println;
  var k:=ReadInteger('Сколько значений удалить?');
  if k>=a.Length then Writeln('Задание не имеет смысла')
  else begin
    var s:=ReadArrInteger('Вводите значения через пробел:',k);
    a:=a.Where(x->not (x in s)).ToArray;
    a.Println
    end
end.

Пример
n= 17
12 14 17 30 31 34 40 41 45 46 67 76 76 78 86 87 93
Сколько значений удалить? 4
Вводите значения через пробел: 30 76 40 93
12 14 17 31 34 41 45 46 67 78 86 87
4,8(6 оценок)
Открыть все ответы
Ответ:
Littlefaife555
Littlefaife555
16.03.2021

1)

const N = 10;

var A: array [1..N, 1..N] of integer;

i, j, maxMain, maxSecond: integer;

begin

       writeln('A: ');

       for i:= 1 to N do

       begin

               for j:= 1 to N do

               begin

                       A[i, j]:= random(-30, 30);

                       write(A[i, j]:4);

               end;

               writeln();

       end;

   

       for i:=1 to N do

       begin

               for j:= 1 to N do

               begin

                       if (i = j) and (maxMain < A[i, j]) then

                               maxMain := A[i, j];

                       if (i + j = N + 1) and (maxSecond < A[i, j]) then

                               maxSecond := A[i, j];

               end;

       end;

       writeln('Макс. на глав. диагонали: ' + maxMain);

       writeln('Макс. на побочной. диагонали: ' + maxSecond);

end.

2)

const N = 10;

var A: array [1..N] of real;

B, C: array of real;

i: integer;

begin

       write('A: ');

       for i:= 1 to N do

       begin

               A[i]:=random(-10, 10);

               write(A[i] + ' ');

       end;

       writeln();

   

       for i:=1 to N do

       begin

               if (a[i] > 0) then

               begin

                       SetLength(B, Length(B) + 1);

                       B[High(B)]:=a[i];

               end;

               if (a[i] < 0) then

               begin

                       SetLength(C, Length(C) + 1);

                       C[High(C)]:=a[i];

               end;

       end;

   

       write('B: ');

       for i:= 0 to Length(B) - 1 do

               write(B[i] + ' ');

       writeln();

   

       write('C: ');

       for i:= 0 to Length(C) - 1 do

               write(C[i] + ' ');

       writeln();

end.

4,4(54 оценок)
Ответ:
prisheplub
prisheplub
16.03.2021
Давай попробуем рассуждать логически.
Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.

Поэтому ответ: 1 * 2 * 2 * 2 * ... (десять двоек умножаются) = 2^10 = 1024 варианта садов. 

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