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

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

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



Для решения этой задачи на языке программирования Pascal, вам потребуется выполнить следующие шаги:
- Объявите и инициализируйте два массива А и В.
- Найдите первый отрицательный элемент в каждой строке.
- Подсчитайте сумму и количество элементов до найденного отрицательного элемента в каждой строке.
- Сформируйте новые массивы, содержащие полученные суммы и количество элементов.
Приведу пример кода на Pascal, решающего эту задачу:
pascalprogram 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 заполняются для демонстрации, и вы можете изменить их значения в соответствии с вашими данными.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili