Вопрос:

11. Дан фрагмент программы, определяющий количество неотрицательных элементов массива А[1..10]. Восстановите пропущенное условие.

Смотреть решения всех заданий с листа

Ответ:

Решение:

Алгоритм подсчитывает количество неотрицательных элементов массива A[1..10].

Переменная k инициализируется нулем. Затем в цикле for i:=1 to 10 do происходит перебор элементов массива.

Если условие в операторе if истинно, то значение k увеличивается на 1 (k:=k+1). Это означает, что текущий элемент массива A[i] является неотрицательным.

После цикла, в фрагменте k:=k-1; s:=0; k:=k + 1. s:=s+1, происходит нелогичное изменение значения k и инициализация переменной s. Однако, учитывая, что задача — определить количество неотрицательных элементов, и финальная переменная, которая должна отражать этот подсчет, это k (судя по начальной инициализации и инкременту), то условие должно проверять неотрицательность элемента.

В данном контексте, пропущенное условие должно проверять, является ли элемент массива A[i] неотрицательным, то есть больше или равен нулю.

Условие: A[i] >= 0

Фрагмент после восстановления:

k:= 0; 
for i:=1 to 10 do 
if A[i]>=0 then 
  write (k) 
  k:=k+1; 
else 
  k:=k-1; 
  s:=0; 
  k:=k + 1. 
  s:=s+1

Примечание: Судя по условию задачи, переменная s и некоторые действия с k после цикла выглядят как лишние или ошибочные, если целью является только подсчет неотрицательных элементов. Однако, если допустить, что write(k) должно было быть вне цикла, и k должно отражать именно количество неотрицательных элементов, то условие A[i] >= 0 является корректным.

Ответ: A[i]>=0

ГДЗ по фото 📸
Подать жалобу Правообладателю