Составить программу в PASCAL. Вводится длина вектора и значения его элементов. 1. Подсчитать количество элементов, равных заданному значению. 2. Поменять местами максимальный и минимальный элементы вектора. 3. Подсчитать количество отрицательных, положительных и нулевых элементов вектора.
program VectorOperations; const maxSize = 100; var vector: array[1..maxSize] of Integer; n, i, count, maxValueIndex, minValueIndex, positiveCount, negativeCount, zeroCount: Integer; valueToCount: Integer; procedure ReadVector(var vector: array of Integer; var n: Integer); var i: Integer; begin WriteLn('Enter the length of the vector:'); ReadLn(n); WriteLn('Enter the elements of the vector:'); for i := 1 to n do begin ReadLn(vector[i]); end; end; function CountElementsWithValue(vector: array of Integer; n, value: Integer): Integer; var i, count: Integer; begin count := 0; for i := 1 to n do begin if vector[i] = value then begin count := count + 1; end; end; CountElementsWithValue := count; end; procedure SwapMaxAndMin(var vector: array of Integer; maxValueIndex, minValueIndex: Integer); var temp: Integer; begin temp := vector[maxValueIndex]; vector[maxValueIndex] := vector[minValueIndex]; vector[minValueIndex] := temp; end; procedure CountPositiveNegativeZero(vector: array of Integer; n: Integer; var positiveCount, negativeCount, zeroCount: Integer); var i: Integer; begin positiveCount := 0; negativeCount := 0; zeroCount := 0; for i := 1 to n do begin if vector[i] > 0 then positiveCount := positiveCount + 1 else if vector[i] < 0 then negativeCount := negativeCount + 1 else zeroCount := zeroCount + 1; end; end; begin ReadVector(vector, n); WriteLn('Enter the value to count:'); ReadLn(valueToCount); count := CountElementsWithValue(vector, n, valueToCount); WriteLn('Number of elements equal to ', valueToCount, ': ', count); maxValueIndex := 1; minValueIndex := 1; for i := 2 to n do begin if vector[i] > vector[maxValueIndex] then maxValueIndex := i else if vector[i] < vector[minValueIndex] then minValueIndex := i; end; SwapMaxAndMin(vector, maxValueIndex, minValueIndex); CountPositiveNegativeZero(vector, n, positiveCount, negativeCount, zeroCount); WriteLn('Number of positive elements: ', positiveCount); WriteLn('Number of negative elements: ', negativeCount); WriteLn('Number of zero elements: ', zeroCount); end.
Эта программа сначала считывает длину вектора и его элементы, затем запрашивает значение, количество элементов которого нужно подсчитать. После этого программа находит количество элементов в векторе, равных заданному значению. Затем находит максимальный и минимальный элементы вектора, меняет их местами и выводит новый вектор. Наконец, программа подсчитывает количество положительных, отрицательных и нулевых элементов в векторе и выводит результаты.
Программа:
program VectorOperations;const
maxSize = 100;
var
vector: array[1..maxSize] of Integer;
n, i, count, maxValueIndex, minValueIndex, positiveCount, negativeCount, zeroCount: Integer;
valueToCount: Integer;
procedure ReadVector(var vector: array of Integer; var n: Integer);
var
i: Integer;
begin
WriteLn('Enter the length of the vector:');
ReadLn(n);
WriteLn('Enter the elements of the vector:');
for i := 1 to n do
begin
ReadLn(vector[i]);
end;
end;
function CountElementsWithValue(vector: array of Integer; n, value: Integer): Integer;
var
i, count: Integer;
begin
count := 0;
for i := 1 to n do
begin
if vector[i] = value then
begin
count := count + 1;
end;
end;
CountElementsWithValue := count;
end;
procedure SwapMaxAndMin(var vector: array of Integer; maxValueIndex, minValueIndex: Integer);
var
temp: Integer;
begin
temp := vector[maxValueIndex];
vector[maxValueIndex] := vector[minValueIndex];
vector[minValueIndex] := temp;
end;
procedure CountPositiveNegativeZero(vector: array of Integer; n: Integer; var positiveCount, negativeCount, zeroCount: Integer);
var
i: Integer;
begin
positiveCount := 0;
negativeCount := 0;
zeroCount := 0;
for i := 1 to n do
begin
if vector[i] > 0 then
positiveCount := positiveCount + 1
else if vector[i] < 0 then
negativeCount := negativeCount + 1
else
zeroCount := zeroCount + 1;
end;
end;
begin
ReadVector(vector, n);
WriteLn('Enter the value to count:');
ReadLn(valueToCount);
count := CountElementsWithValue(vector, n, valueToCount);
WriteLn('Number of elements equal to ', valueToCount, ': ', count);
maxValueIndex := 1;
minValueIndex := 1;
for i := 2 to n do
begin
if vector[i] > vector[maxValueIndex] then
maxValueIndex := i
else if vector[i] < vector[minValueIndex] then
minValueIndex := i;
end;
SwapMaxAndMin(vector, maxValueIndex, minValueIndex);
CountPositiveNegativeZero(vector, n, positiveCount, negativeCount, zeroCount);
WriteLn('Number of positive elements: ', positiveCount);
WriteLn('Number of negative elements: ', negativeCount);
WriteLn('Number of zero elements: ', zeroCount);
end.
Эта программа сначала считывает длину вектора и его элементы, затем запрашивает значение, количество элементов которого нужно подсчитать. После этого программа находит количество элементов в векторе, равных заданному значению. Затем находит максимальный и минимальный элементы вектора, меняет их местами и выводит новый вектор. Наконец, программа подсчитывает количество положительных, отрицательных и нулевых элементов в векторе и выводит результаты.