• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Борода с массивом)

  • Автор темы Guest
  • Дата начала
G

Guest

Задача: Для массива X из 50 элементов, имеющего положительные и отрицательные элементы, вычислить среднее арифметическое положительных элементов массива и заменить им максимальный элемент массива.

Код:
program z_2;

uses crt;

const n=50;

var X: array[1..n] of real;
i, kol, max: byte;
cp_ap, s: real;

BEGIN
clrscr;
randomize;

for i:=1 to n do
X[i]:= 10-random(20);

for i:=1 to n do
writeln(X[i]:1:2);


for i:=1 to n do
begin
if X[i]>0 then
begin
s:=s + X[i];
kol:=kol+1;
end;
end;

cp_ap:=s/kol;

max:=1;

for i:=1 to n-1 do
begin
if X[i+1] > X[i] then
max:=i+1
end;

X[max]:=cp_ap;

for i:=1 to n do
writeln(X[i]:1:2);

readkey;


END.

Проблема: Не определяет правильно максимальный элемент массива :KillMe:
 
D

Dock1100

тут ошыбка
Код:
 for i:=1 to n-1 do
begin
if X[i+1] > X[i] then //вы сравниваете два последовательных Х, а надо сравнивать Х и МАХ
max:=i+1
end;

X[max]:=cp_ap;

for i:=1 to n do
writeln(X[i]:1:2);

readkey;

END.

надо писать это:

Код:
var kk:integer;
...
...
...
max:=x[1];
for i:=1 to n do
if X[i] > max then
begin
max:=x[i];
kk:=i;
end;
X[kk]:=cp_ap;
for i:=1 to n do
writeln(X[i]:8:2);
readln;

END.
 
G

Guest

if X[i+1] > X then //вы сравниваете два последовательных Х, а надо сравнивать Х и МАХ

Здесь все вроде правильно.
Например массив будет выглядеть так: 5 8 6 3 9 тогда
max=1
X[2]>X[1]? да! тогда max=2
X[3]>X[2]? нет! тогда max не изменяется
X[4]>X[3]? нет! тогда max не изменяется
X[5]>X[4]? да! тогда max=5
В итоге X[max] -это X[5] т.е. 9, а 9 самое большое число...
Я так понимаю. Обьясните!!!
 
G

Guest

Так...давайте не будем дискутировать на отвлеченные темы, а поможем нубу!!!
 
H

hosm

так вроде же всё сказали. Док вроде правильно написал, и ребята пояснили)
А что за бред в посте #6?
Например массив будет выглядеть так: 5 8 6 3 9 тогда
max=1
X[2]>X[1]? да! тогда max=2
X[3]>X[2]? нет! тогда max не изменяется
X[4]>X[3]? нет! тогда max не изменяется
X[5]>X[4]? да! тогда max=5
В итоге X[max] -это X[5] т.е. 9, а 9 самое большое число...
Я так понимаю. Обьясните!!!
а например, массив будет выглядеть так: 5 8 6 3 4 тогда X[5]>X[4]? да! тогда max=5
В итоге X[max] -это X[5] т.е. 4, а 8 самое большое число...

Добавлено: так понятней?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!