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

Задан одномерный массив x(n). вычислить сумму отрицательных элементов этого массива. записать ее модуль на место элемента, стоящего после максимального среди кратных трём. если такого элемента нет, то выдать сообщение (максимум на последнем месте, или в массиве нет кратных трём элементов). результат вывести на экран.

👇
Ответ:
marelmrub
marelmrub
19.12.2020
// PascalABC.NET 3.0, сборка 1144 от 16.01.2016
begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-50,50);
  Writeln('Исходный массив'); a.Println;
  var se:=a.Where(x->x mod 3=0);
  if se.Count=0 then
    Writeln('В массиве нет элементов, кратных трем')
  else begin
    var b:=se.Max;
    var i:=0;
    while a[i]<>b do Inc(i);
    if i=n-1 then Writeln('Максимальный элемент - последний')
    else begin
      Writeln('Результирующий массив');
      a[i+1]:=abs(a.Where(x->x<0).Sum); a.Println
      end
    end
end.

Тестовое решение:
n= 15
Исходный массив
-24 -38 15 -33 -40 -18 21 34 20 49 -19 29 29 38 -41
Результирующий массив
-24 -38 15 -33 -40 -18 21 213 20 49 -19 29 29 38 -41
4,4(70 оценок)
Открыть все ответы
Ответ:
livanatalya
livanatalya
19.12.2020
Var
    a: array[0..10] of integer;
    i, n, k: integer;
//    b: array[1..4, 1..4] of integer;

begin
    Println();
    Println(1);
    for i := 0 to 10 do
        A[i] := i + 1;
    PrintLn(a);
    Println();
    for i := 1 to 10 do
    begin
        A[i] := A[i - 1];
        PrintLn(a);
    end;
    
    Println();
    Println(2);
    for i := 0 to 10 do
        A[i] := i + 1;
    PrintLn(a);
    Println();
    for i := 10 downto 0 do
    begin
        A[i] := A[10 - i];
        PrintLn(a);
    end;
end.

Тут вывод трасировок последних циклов

1
[1,2,3,4,5,6,7,8,9,10,11]

[1,1,3,4,5,6,7,8,9,10,11]
[1,1,1,4,5,6,7,8,9,10,11]
[1,1,1,1,5,6,7,8,9,10,11]
[1,1,1,1,1,6,7,8,9,10,11]
[1,1,1,1,1,1,7,8,9,10,11]
[1,1,1,1,1,1,1,8,9,10,11]
[1,1,1,1,1,1,1,1,9,10,11]
[1,1,1,1,1,1,1,1,1,10,11]
[1,1,1,1,1,1,1,1,1,1,11]
[1,1,1,1,1,1,1,1,1,1,1]

2
[1,2,3,4,5,6,7,8,9,10,11]

[1,2,3,4,5,6,7,8,9,10,1]
[1,2,3,4,5,6,7,8,9,2,1]
[1,2,3,4,5,6,7,8,3,2,1]
[1,2,3,4,5,6,7,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
[1,2,3,4,5,6,5,4,3,2,1]
4,8(21 оценок)
Ответ:
Все элементы будут равны единице.
Сначала они будут заполнены значением, большим своего индекса на 1, а потом каждому элементу, начиная со второго (который А[1]) будет присвоено значение предыдущего элемента и 1 распространится везде.

Для проверки была написана программа с отладочной выдачей.

var
  a:array[0..10] of integer;
  i:integer;
begin
  for i:=0 to 10 do begin a[i]:=i+1; Write(a[i],' ') end;
  Writeln;
  Write(a[0],' ');
  for i:=1 to 10 do begin a[i]:=a[i-1]; Write(a[i],' ') end
end.

Результаты

1 2 3 4 5 6 7 8 9 10 11
1 1 1 1 1 1 1 1 1 1 1

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