КОД ** ПАСКАЛЬ Помогите пожалуйста Дан вектор А[1:20] а) найти сумму положительных чисел...

0 голосов
24 просмотров

КОД НА ПАСКАЛЬ
Помогите пожалуйста
Дан вектор А[1:20] а) найти сумму положительных чисел и сумму отрицательных чисел б) найти произведение этой суммы на min элемент вектора. в) найти сумму элементов вектора между min и последним элементом вектора г) удалить 16-ый элемент вектора.


Информатика (162 баллов) | 24 просмотров
0

var A: array of integer; i, SumPos, SumNeg, Min, MinId, Size, SumBetween: integer;begin Size := 20; SumPos := 0; SumNeg := 0; SetLength(A, Size); randomize; //Генерация массива, подсчет сумм, вывод writeln('Исходный вектор: '); for i := 0 to Size - 1 do begin A[i] := random(10)-5; if A[i] > 0 then SumPos := SumPos + A[i]; if A[i] < 0 then SumNeg := SumNeg + A[i]; write(A[i]:3); end;

0

writeln; writeln('Сумма положительных = ', SumPos); writeln('Сумма отрицательных = ', SumNeg); //Поиск min Min := A[0]; for i := 0 to Size - 1 do begin if A[i] < Min then begin Min := A[i]; MinId := i; end; end; writeln('Min = ', Min); writeln('Сумма положительных * min = ', SumPos * Min); writeln('Сумма отрицательных * min = ', SumNeg * Min);

0

//Сумма между min и последним SumBetween := 0; MinId := 0; for i := MinId+1 to Size - 1 do SumBetween := SumBetween + A[i]; writeln('Сумма между min и последним элементом = ', SumBetween); //Удаление элемента writeln('Вектор после удаления 16-ого элемента(индекс 15): '); for i := 15 to Size - 2 do A[i] := A[i + 1]; Size := Size - 1; SetLength(A, Size); //Вывод массива for i := 0 to Size - 1 do write(A[i]:3); writeln; readln;end.

Дано ответов: 2
0 голосов

// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
// Не знаю, есть ли какая то разница между векторами и массивами в Паскале, поэтому написал с массивом
begin
var a:=ReadArrInteger('Введите элементы вектора', 20);
Writeln('Сумма положительных элементов -> ', a.Where(t -> t > 0).sum);
Writeln('Сумма отрицательных элементов -> ', a.Where(t -> t < 0).sum);
Writeln('Произведение суммы пложительных чисел на минимальный элемент -> ', a.Where(t -> t > 0).sum * a.Min);
Writeln('Произведение суммы отрицательных чисел на минимальный элемент -> ', a.Where(t -> t > 0).sum * a.Min);
Writeln('Сумма между min и последним элементом вектора -> ', a.Where((v,i)-> i > a.IndexMin).Sum);
a:= a[:15]+a[16:];
Writeln(a);
end.

(8.8k баллов)
0 голосов

//PascalABC.NET 3.3,сборка 1611 от 06.01.2018

//Внимание! Если программа не работает, обновите версию!

uses NumLibABC;

begin

var y:=ArrRandomReal(20,-10,10);

var mas:=y.Select(t->round(t*100)/100).ToArray;

var V:= new Vector(mas); 

var b:=V.Value.Where(t->t>0).Sum; 

Writeln('сумма положительных чисел=',b);

var t:=V.Value.Where(t->t<0).Sum;<br>
Writeln('сумма отрицательных чисел=',t);

var a:=V.Value.Min; var promax:=a*b; var promin:=a*t;

Writeln('произведение суммы >0  на min элемент вектора=',promax);

Writeln('произведение суммы <0  на min элемент вектора=',promin);<br>
var h:=V.Value.IndexMin; 

var f:=V.Value.Where((V,I)->(I>h) and ( i< 20-1)).sum;

Writeln('суммa элементов вектора между min и последним
элементом=',f);

var p:=V.Value.Where((V,I)->(I<16) or (I>16));

Writeln('вектор без 16 элемента ->');p.Println;

end.


image
(2.3k баллов)