Программа
CONST QuantityElement=6; { Количество элементов вектора }
TYPE ElementType=integer; { Тип элементов вектора }
VectorType=array [1..QuantityElement] of ElementType; { Вектор-тип }
PROCEDURE InputVector (var B:VectorType); { Процедура ввода вектора }
Var i:word; { Счетчик }
Begin
for i:=1 to QuantityElement do { Цикл ввода элементов вектора }
begin
Write('Введите элемент [',i,'] ');
{ Вывод приглашения ввести элемент вектора }
ReadLn(B[i]); { Ввод элемента вектора }
end
End;
PROCEDURE SortVector (var B:VectorType);
{ Процедура сортировки вектора по убыванию }
Var i,j:word; { Счетчики }
NumOfMax:word;
{ Номер максимального элемента в неотсортированной части массива }
Buf:ElementType; { Переменная для обмена содержимого ячеек массива }
Begin
for i:=1 to QuantityElement-1 do { Цикл сортировки массива }
begin
NumOfMax:=i;
{ Начальное определение номера максимального из оставшихся элементов }
for j:=i+1 to QuantityElement do
{ Цикл просмотра неотсортированной части массива }
if B[NumOfMax]<B[j] then NumOfMax:=j;
{ Если текущий элемент превосходит максимальный, то переопределение номера максимального }
if NumOfMax<>i then begin
{ Перестановка текущего элемента с найденным максимальным: }
Buf:=B[NumOfMax];
B[NumOfMax]:=B[i];
B[i]:=Buf
end
end
End;
PROCEDURE OutputVector (B:VectorType); { Процедура вывода вектора }
Var i:word; { Счетчик }
Begin
for i:=1 to QuantityElement do { Цикл вывода вектора }
Write (B[i],' '); { Вывод элемента вектора }
WriteLn { Вывод конца строки }
End;
PROCEDURE GetNegativeVector(V1:VectorType;var V2:VectorType);
{ Процедура создания массива отрицательных элементов }
Var i:word; { Счетчик }
Begin
for i:=1 to QuantityElement do { Цикл просмотра массива }
if V1[i]<0 then V2[i]:=V1[i] { Если текущий элемент отрицательный, то запись элемента в создаваемый массив }
else V2[i]:=0 { Иначе - определение создаваемого массива нулем }
End;
PROCEDURE WriteVector(V:VectorType; FileName:string);
{ Процедура записи вектора в файл }
Var i:word; { Счетчик }
F:text; { Файловая переменная }
Begin
Assign(F,FileName); { Связывание фаловой переменной с именем файла }
Rewrite(F); { Открытие файла под запись }
for i:=1 to QuantityElement do { Цикл просмотра вектора }
if V[i]<0 then WriteLn(F,V[i]); { Запись элемента вектора в файл }
Close(F) { Закрытие файла }
End;
PROCEDURE ReadVector(FileName:string); { Процедура чтения вектора из файла }
Var F:text; { Файловая переменная }
Buf:ElementType; { Вспомогательная переменная для чтения файла }
Begin
Assign(F,FileName); { Связывание фаловой переменной с именем файла }
Reset(F); { Открытие файла для чтения }
while not EOF(F) do { Цикл просмотра файла }
begin
ReadLn(F,Buf); { Чтение числа }
Write(Buf,' ') { Вывод числа }
end;
WriteLn; { Вывод конца строки }
Close(F) { Закрытие файла }
End;
VAR Vector,VectorOfNegative:VectorType; { Вектор }
BEGIN
WriteLn; { Пропуск строки }
InputVector(Vector); { Ввод вектора }
WriteLn; { Пропуск строки }
WriteLn(' Массив: '); { Вывод заголовка }
OutputVector(Vector); { Вывод вектора }
SortVector(Vector); { Сортировка вектора }
WriteLn(' Отсортированный массив: '); { Вывод заголовка }
OutputVector(Vector); { Вывод вектора }
GetNegativeVector(Vector,VectorOfNegative);
{ Создание массива отрицательных элементов }
WriteVector(VectorOfNegative,'VECTOR');
{ Запись вектора отрицательных элементов в файл }
WriteLn(' Массив отрицательных элементов: '); { Вывод заголовка }
ReadVector('VECTOR'); { Чтение файла }
WriteLn; { Пропуск строки }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию