Вообщем, меня просят набросать программу, которая сможет "подсчитать кол-во отрицательных эл-тов и изменить значение каждого положительного элемента (кроме последнего) путем его деления на значение последующего члена (если это не ноль)". Первую то часть задания я выполнил
const N=40;var a: array[1..N] of integer;i, pol, otr: byte;begin pol:=0;otr:=0;for i:=1 to N do begina := random(100) - 50;write(a:4);if a < 0 thenotr := otr + 1elseif a > 0 thenpol := pol + 1;end;writeln;writeln('Положительных: ', pol);writeln('Отрицательных: ', otr);end.
(да, прога считает кол-во положительных и отрицательных чисел), но как сделать так, чтобы каждый положительный элемент (кроме последнего) делился на следующий эл-т? И еще вопрос: а как мне узнать кол-во эл-тов, если мне пишут: x1,x2..xn?
Нажмите, чтобы раскрыть...
Чтобы узнать количество элементов массива есть свойство Count у всех объектов типа Список.
Либо если хочешь чтобы программа вручную считала количество элементов есть цикл While.
По типу
Massiv:= array[x1,x2..xn] of int;
int Count:=0;
int IndexOfArray;
While (IndexOfArray in Massiv) do
Count++; // Текущей индекс элемента массива
end.
Я Паскаль не помню. Редактируй код если ошибаюсь.
Этим же циклом While узнаешь положительный ли элемент или нет и делить на следующий. Что-то вроде:
while ... do
if IndexOfArray > 0 then
IndexOfArray:=IndexOfArray \ Massiv[Count] *Не прибавляю +1 к индексу потому что массивы начинаются с 0.
end.