Вопрос задан 19.07.2023 в 18:08. Предмет Информатика. Спрашивает Ефимчик Милана.

pascal Даны два массива А и В. Подсчитать сумму и количество элементов по каждой строке,

предшествующих первому отрицательному элементу. Из полученных значений сформировать вектора.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Чистякова Елизавета.

program raf105;

const

 n = 4;

var

 a,b: array[1..n,1..n] of integer;

 Vkol1,Vkol2,Vsum1,Vsum2: array[1..n] of integer;

 i,j,sum1,sum2,kol1,kol2: integer;

 x1,x2: boolean;

begin

 for i:=1 to n do

 begin

   x1:= False;

   x2:= False;

   kol1:= 0;

   kol2:= 0;

   sum1:= 0;

   sum2:= 0;

   for j:=1 to n do

   begin

     a[i,j]:= random(-9,9);

     b[i,j]:= random(-9,9);  

     if a[i,j] < 0

       then x1:= True;

     if b[i,j] < 0

       then x2:= True;

     if not(x1)

       then begin

         sum1:= sum1 + a[i,j];

         kol1:= kol1 + 1;

       end;

     if not(x2)

       then begin

         sum2:= sum2 + b[i,j];

         kol2:= kol2 + 1;

       end;

   end;

   Vkol1[i]:= kol1;

   Vkol2[i]:= kol2;

   Vsum1[i]:= sum1;

   Vsum2[i]:= sum2;

 end;

 writeln('Массив A');

 for i:=1 to n do

 begin

   writeln;

   for j:=1 to n do

     write(a[i,j]:3);

 end;

 writeln;

 writeln;

 writeln('Массив B');

 for i:=1 to n do

   begin

   writeln;

   for j:=1 to n do

     write(b[i,j]:3);

 end;

 writeln;

 writeln;

 write('Вектор "Количество по строкам A": ');

 for i:=1 to n do

   write(Vkol1[i],' ');

 writeln;

   write('Вектор "Количество по строкам B": ');

 for i:=1 to n do

   write(Vkol2[i],' ');

 writeln;

 write('Вектор "Сумма по строкам A": ');

 for i:=1 to n do

   write(Vsum1[i],' ');

 writeln;

 write('Вектор "Сумма по строкам B": ');

 for i:=1 to n do

   write(Vsum2[i],' ');

end.

PascalABC 3.4.2

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на языке программирования Pascal, вам потребуется выполнить следующие шаги:

  1. Объявите и инициализируйте два массива А и В.
  2. Найдите первый отрицательный элемент в каждой строке.
  3. Подсчитайте сумму и количество элементов до найденного отрицательного элемента в каждой строке.
  4. Сформируйте новые массивы, содержащие полученные суммы и количество элементов.

Приведу пример кода на Pascal, решающего эту задачу:

pascal
program CountSumAndElements; const N = 3; // Количество строк массивов M = 5; // Количество столбцов массивов type TArray = array[1..N, 1..M] of integer; var A, B: TArray; SumVector, CountVector: array[1..N] of integer; i, j, firstNegative: integer; // Функция для нахождения индекса первого отрицательного элемента в строке function FindFirstNegativeIndex(const Arr: array of integer): integer; var k: integer; begin Result := -1; // Если отрицательных элементов нет, возвращаем -1 for k := Low(Arr) to High(Arr) do begin if Arr[k] < 0 then begin Result := k; Break; // Нашли первый отрицательный элемент, выходим из цикла end; end; end; begin // Заполняем массивы А и В (для примера, можно изменить значения) A[1, 1] := 3; A[1, 2] := 5; A[1, 3] := -2; A[1, 4] := 8; A[1, 5] := 4; A[2, 1] := 2; A[2, 2] := 1; A[2, 3] := 7; A[2, 4] := 9; A[2, 5] := 6; A[3, 1] := 0; A[3, 2] := -1; A[3, 3] := -4; A[3, 4] := 3; A[3, 5] := 2; B[1, 1] := 1; B[1, 2] := -3; B[1, 3] := 5; B[1, 4] := 2; B[1, 5] := 6; B[2, 1] := 4; B[2, 2] := 8; B[2, 3] := 0; B[2, 4] := 7; B[2, 5] := -2; B[3, 1] := 3; B[3, 2] := 1; B[3, 3] := 4; B[3, 4] := -1; B[3, 5] := 9; // Инициализируем векторы FillChar(SumVector, SizeOf(SumVector), 0); FillChar(CountVector, SizeOf(CountVector), 0); // Обрабатываем каждую строку for i := 1 to N do begin firstNegative := FindFirstNegativeIndex(A[i]); if firstNegative > 0 then // Если найден отрицательный элемент begin // Считаем сумму и количество элементов до отрицательного элемента for j := 1 to firstNegative - 1 do begin SumVector[i] := SumVector[i] + A[i, j]; CountVector[i] := CountVector[i] + 1; end; end; end; // Выводим результаты writeln('Сформированные векторы:'); writeln('Сумма по каждой строке:'); for i := 1 to N do write(SumVector[i], ' '); writeln; writeln('Количество элементов по каждой строке:'); for i := 1 to N do write(CountVector[i], ' '); writeln; end.

Обратите внимание, что в примере массивы A и B заполняются для демонстрации, и вы можете изменить их значения в соответствии с вашими данными.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос