Вопрос № 21531: Люди помогите какой процедурой надо пользоваться для того чтоб найти max,min кол-во перемен знаков в массиве а то не разберусь как.Могу только через операторов ...
Вопрос № 21.531
Люди помогите какой процедурой надо пользоваться для того чтоб найти max,min кол-во перемен знаков в массиве а то не разберусь как.Могу только через операторов
Отправлен: 30.05.2005, 18:30
Вопрос задала: Shaman (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Master135
Здравствуйте, Shaman!
Ну я так понял надо найти min,max и кол-во изменений знаков.Какие операторы, мобильной связи что ли:)?
A:array[1..20] of integer;
var min,max,number_of_changes,i:integer;
current_sign,current_sign1:boolean;
begin
Max:=A[1];
Min:=A[1];
number_of_changes:=0;
if A[1]>0 then current_sign:=0
else current_sign:=1;
for i:=2 to 20 do
begin
if A[i]<min then min:=A[i];
if A[i]>max then max:=A[i];
if A[i]>0 then current_sign1:=0 ;определяем текущий знак 0-положительное
else current_sign1:=1;
if current_sign1<>current_sign then
begin
inc(number_of_changes);
current_sign:=current_sign1;
end;
end;
{в результате минимум массива в min максимум-в макс кол-во изменений знаков в number_of_changes}
Ответ отправил: Master135 (статус: 3-ий класс)
Отправлен: 31.05.2005, 02:37 Оценка за ответ: 3 Комментарий оценки: спасибо за ответ
Отвечает: sir henry
Здравствуйте, Shaman!
Именно такой процедуры в Паскале нет и никогда не было. Конечно придется самому написать. Вот простейший принцип:
- Заводите переменную (integer), куда заносите количество перемен знака;
- Читаете весь массив с верху до низу в цикле;
- Проверяете меньше ли нуля текущий элемент массива. Если да, то в специальной переменной (boolean) запоминаете;
- Со второго элемента начинаете сравнивать сравнение текущего элемента с меньше нуля с это специальной переменной. Если не совпало, значит инкрементируете переменную, в которой Вы ведете подсчет количества перемен знаков.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 31.05.2005, 06:03
Отвечает: sniv
Здравствуйте, Shaman!
Минут 10 пялился в монитор пытаясь понять этот вопрос... Во-первых если тебе необходимо найти min,max , то это будет не процедура, а функция (это я тебя ориентирую на соответствующий пункт в Help'e). Во-вторых непонятно, что ты имеешь ввиду под "найти min,max количество перемен знаков в массиве"... Но все же, насколько позволяет абстрактное понимание этого вопроса, - нет такой функции.
Ответ отправил: sniv (статус: 1-ый класс)
Отправлен: 31.05.2005, 15:17