Показать сообщение отдельно
Старый 03.12.2013, 19:06   #2 (permalink)
Стася
Новичок
 
Регистрация: 03.12.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Program Variant_5;
Uses Crt;
Const n = 10; {задание размера вектора именованной константой}

Var i, v_min, v_max,i_max, max,i_min, min, i_max_2, max_2, i_min_2, min_2, k, m, a, i1, i2 : Integer;
vector : Array [1..n] Of Integer;

Begin

Randomize; {запуск генератора случайных чисел}
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);

For i:=1 To n Do {заполнение вектора случайными числами}
vector[i]:=Random(v_max-v_min + 1) + v_min;

WriteLn;
WriteLn('Исходный вектор:');
For i:=1 To n Do {вывод на экран исходного вектора}
Write(vector[i]:5);
WriteLn;

max:= vector[1]; {пока макс элемент - первый элемент вектора}
i_max:= 1;
min:= vector[1]; {пока мин элемент - первый элемент вектора}
i_min:= 1;

For i:=2 To n Do {поиск начинаем со второго элемента}
Begin

If (vector[i] > max) Then {если очередной элемент больше} {текущего максимального}
Begin
max := vector[i]; {то максимальным элементом}
i_max := i; {становится очередной элемент} {вектора}
End;

If (vector[i] < min) Then {если очередной элемент меньше} {текущего минимального}
Begin
min := vector[i]; {то минимальным элементом}
i_min := i; {становится очередной элемент} {вектора}
End;

End;


max_2:= vector[1];
i_max_2:= 1;
min_2:= vector[1];
i_min_2:= 1;

For i:=2 To n Do
Begin

If (vector[i]<max) and (vector[i]>max_2) Then
Begin
max_2 := vector[i]; {то максимальным элементом}
i_max_2 := i; {становится очередной элемент} {вектора}
End;

If (vector[i]>min)and (vector[i]<min_2) Then
Begin
min_2 := vector[i]; {то минимальным элементом}
i_min_2 := i; {становится очередной элемент} {вектора}
End;

End;

WriteLn;
WriteLn('max_2=', max_2, ' i_max_2=', i_max_2);
WriteLn('min_2=', min_2, ' i_min_2=', i_min_2);

If min=max then write('Решений нет-все элементы равны между собой')
else
begin
If i_min_2<i_max_2 then
Begin
i1:=i_min_2;
i2:=i_max_2;
End
Else
Begin
i2:=i_min_2;
i1:=i_max_2;
End;

a:=n-i2;
m:=(i2-i1) Div 2;
For i:=i1 To m Do
Begin
k:= vector[i1+i];
vector[i1+i]:=vector[i2-i] ;
vector[i2-i]:=k;
End;

WriteLn;
WriteLn('Полученный вектор:');
For i:=1 To n Do {вывод на экран полученного вектора}
Write(vector[i]:5);
WriteLn
End;
End.
Стася вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070