
Дан одномерный массив A[n]. Найти сумму отрицательных элементов. Получить новый массив B[n] путем
замены нулевых элементов на полученную сумму. pascal

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

n=10;
var
A: array[1..n] of integer;
B:array[1..n] of integer;
i: integer;
sum: integer;
begin
{Заполнение массивов случайными числами}
randomize;
for i:=1 to n do begin
A[i]:=random(100)-50;
B[i]:=random(100)-50; {или B[i]=A[i];, если значения массива B должны совпадать со значениями массива A }
end;
{Поиск суммы отрицательных элементов}
sum:=0;
for i:=1 to n do
if A[i]<0 then sum:=sum+A[i];
{Замена нулевых элементов массива B на полученную сумму}
for i:=1 to n do
if B[i]=0 then B[i]:=sum;
{Вывод значений массива A}
writeln('массив A');
for i:=1 to n do
write(A[i],',');
writeln('');
writeln('Массив B');
{Вывод значений массива B}
for i:=1 to n do
write(B[i],',');
{Ожидание нажатия клавиши return от пользователя.}
readln;
end.



// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
var s:=a.Where(x->x<0).Sum; // сумма отрицательных элементов
var b:=a.Select(x->x=0?s:x).ToArray; b.Println
end.
Пример
n= 20
1 6 2 4 2 3 5 -8 2 -6 0 1 -7 0 -7 8 -4 -8 -1 -8
1 6 2 4 2 3 5 -8 2 -6 -49 1 -7 -49 -7 8 -4 -8 -1 -8



Я могу помочь вам с вашим заданием по программированию на языке Pascal. Вот возможный алгоритм и код для решения вашей задачи:
- Алгоритм: 1. Объявить и инициализировать переменные: массив A[n], массив B[n], сумма S, счетчик i. 2. Присвоить S значение 0. 3. Для i от 1 до n выполнить следующие действия: - Считать элемент A[i] из входных данных. - Если A[i] < 0, то увеличить S на A[i]. - Присвоить B[i] значение A[i]. 4. Для i от 1 до n выполнить следующие действия: - Если B[i] = 0, то присвоить B[i] значение S. - Вывести элемент B[i] на экран. - Код:
```pascal program SumAndReplace; var A, B: array[1..100] of integer; S, i, n: integer; begin readln(n); // ввод размера массива S := 0; // инициализация суммы for i := 1 to n do begin read(A[i]); // ввод элемента массива A if A[i] < 0 then // если элемент отрицательный S := S + A[i]; // увеличить сумму на его значение B[i] := A[i]; // скопировать элемент в массив B end; for i := 1 to n do begin if B[i] = 0 then // если элемент равен нулю B[i] := S; // заменить его на сумму write(B[i], ' '); // вывод элемента массива B end; writeln; end. ```
Надеюсь, это поможет вам понять, как решить вашу задачу. Удачи!


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








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