Дан массив из 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