Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Массив

Автор: midss 31.03.2011 16:15

Дан массив из 49 элементов на интервале 1. . . 200. Найти среднее арифмит каждых третьих элементов.

Var A:array [1..20] of integer;  {Массив}
K,S,i: integer; {Прочие переменные}
begin
for i:=1 to 49 do begin {заполнил массив}
a[i]:=random(101)+1;
write(a[i]:5); {вывел}
end;


Не могу вывести формулу, которая будет отбирать каждый третий элемент.
Помогите пожалуйста...

Автор: volvo 31.03.2011 16:42

Для начала обрати внимание на размер массива, и на то количество данных, которые ты пытаешься записать в него. Вылета за границы (с заполнением не принадлежащей массиву области памяти => неадекватного поведения программы) не боишься? В лучшем случае она у тебя закончится аварийно, если установлена галочка там, где нужно в настройках.

Цитата
Не могу вывести формулу, которая будет отбирать каждый третий элемент.
Каждый третий - это тот, индекс которого нацело делится на 3. То есть, остаток от деления на 3 равен 0. if i mod 3 = 0 then (это будут третий, шестой, девятый. Если надо начать с первого - то if i mod 3 = 1 then, тогда будет первый, четвертый, седьмой, ...). Или используй цикл while с шагом = 3

Автор: midss 31.03.2011 18:18

Цитата(volvo @ 31.03.2011 12:42) *

Для начала обрати внимание на размер массива, и на то количество данных, которые ты пытаешься записать в него. Вылета за границы (с заполнением не принадлежащей массиву области памяти => неадекватного поведения программы) не боишься? В лучшем случае она у тебя закончится аварийно, если установлена галочка там, где нужно в настройках.

Каждый третий - это тот, индекс которого нацело делится на 3. То есть, остаток от деления на 3 равен 0. if i mod 3 = 0 then (это будут третий, шестой, девятый. Если надо начать с первого - то if i mod 3 = 1 then, тогда будет первый, четвертый, седьмой, ...). Или используй цикл while с шагом = 3


Спасибо большое, ошибки понял. smile.gif