Не выдается сообщение в случае отсутствия положительных элементов массива - Turbo Pascal
Формулировка задачи:
Помогите пожалуйста, считает и заменяет все правильно, а вот если положительных элемент нет, сообщение не выдает.
Все отрицательные элементы массива замените квадратом среднего арифметического его положительных элементов. Если положительных элементов нет, выдать соответствующее сообщение
Решение задачи: «Не выдается сообщение в случае отсутствия положительных элементов массива»
textual
Листинг программы
var S: Real; N, i, K: Integer; X: array [1..50] of Real; begin Write('введите размерность массива N='); ReadLn(N); S:=0; K:=0; { в TP необязательно } for i:=1 to N do begin Write('x[',i,']='); Read(x[i]); if x[i]>0 then begin S:=S+x[i]; K:=K+1; end; end; if K=0 then WriteLn('положительных элементов нет') else begin S:=S/K; WriteLn('SR=',S); S:=sqr(S); for i:=1 to N do if x[i]<0 then x[i]:=S; end; for i:=1 to N do WriteLn('x[',i,']=',x[i]); end.
Объяснение кода листинга программы
- В начале кода объявляются переменные S, N, i, K и X. Переменная S инициализируется значением 0, а переменная K - значением 0 (это необязательно в Turbo Pascal).
- Затем пользователю предлагается ввести размерность массива N. Это значение сохраняется в переменной N.
- Далее, переменные S и K инициализируются значениями 0.
- Затем идет цикл for, который выполняется от 1 до N. Внутри цикла пользователю предлагается ввести элемент массива X. Если этот элемент больше 0, то переменные S и K инкрементируются. Если элемент меньше 0, то он заменяется на S.
- После завершения цикла проверяется, были ли найдены положительные элементы. Если их не было, выводится сообщение
положительных элементов нет
. Если положительные элементы были, выводится среднее значение S, а также квадрат S. Затем все элементы массива X заменяются на S. - Наконец, выводится содержимое массива X.