ответ: Для примера возьмем число 503. Если бы это число было записано в непозиционной системе, то его значение равнялось 5+0+3 = 8. Но у нас — позиционная система и значит каждую цифру числа необходимо умножить на основание системы, в данном случае число “10”, возведенное в степень, равную номеру разряда
Я не стану указывать эпитетов к своему коду, пусть он сам скажет за себя. Алгоритм такой: просматриваем массив от конца к началу. И завершаем работу, как только встретим отрицательный элемент. А если так и не встретим до начала массива, значит таких элементов в массиве нет.
const n=20; { размер массива } var a:array[1..n] of integer; i:integer; found:boolean; begin Randomize; Writeln('Элементы массива'); for i:=1 to n do begin a[i]:=Random(21)-10; { случайное число на интервале [-10;10] } Write(a[i]:4) end; Writeln; { собственно задание } i:=n; repeat found:=(a[i]<0); Dec(i) until (i=0) or found; if found then Writeln('Номер элемента равен ',i+1) else Writeln('Отрицательных элементов нет') end.
Вот код простой и понятный В строке №7 мы записали переменную для хранения индекса отрицательного элемента. В строке №19 мы задаем условие, при котором перебираются все 10 сгенерированных чисел и среди них ищется отрицательный, и если отрицательное число находится, то его индекс (номер) заносится в переменную K (строка №21). В строке №23 записывается условие: если переменная «K» больше 0 (т.е. есть отрицательные элементы), то на экран выводится сообщение (строка №24). В обратном случае (если нет отрицательных элементов, и «K» так и останется равным 0), выведется сообщение (строка №26)
ответ: Для примера возьмем число 503. Если бы это число было записано в непозиционной системе, то его значение равнялось 5+0+3 = 8. Но у нас — позиционная система и значит каждую цифру числа необходимо умножить на основание системы, в данном случае число “10”, возведенное в степень, равную номеру разряда