1

Тема: Побудова задачі за допомогою масиву.

Допоможіть скласти задачу за допомогою масиву.
Умова задачі: "Знайти елемент, який найменше віддалений від середнього арифметичного всіх елементів масиву."
Середнє арифметизне я знайшов:

Прихований текст
program ab;
uses crt;
const n=10;
var a: array [1..n] of integer;
    i,k,s:integer;
    ser:real;
begin
   clrscr;
   randomize;
   s:=0;
     for i:=1 to n do
       begin
         a[i]:=random(10)+1;
         s:=s+a[i];
       end;
   writeln ('Елементи масиву: ');
     for i:=1 to n do write (a[i]:3);
   writeln;
   ser:=s/n;
   writeln ('Середнє арифметичне елементів масиву: ');
   writeln (ser:3:1);
end.

2

Re: Побудова задачі за допомогою масиву.

Проходимось ще раз по масиву. І шукаємо у якого елемента найменша різниця по модулю з середнім арифметичним.
Приблизно виглядає так:

   min_i := 1;
   for i:=2 to n do
       if abs(a[i] - ser) < abs(a[min_i] - ser) then
          min_i := i;

min_i - і є індекс того елемента, який необхідно знайти

Подякували: Logans1

3

Re: Побудова задачі за допомогою масиву.

Replace написав:

Проходимось ще раз по масиву. І шукаємо у якого елемента найменша різниця по модулю з середнім арифметичним.
Приблизно виглядає так:

   min_i := 1;
   for i:=2 to n do
       if abs(a[i] - ser) < abs(a[min_i] - ser) then
          min_i := i;

min_i - і є індекс того елемента, який необхідно знайти

Якщо чесно то не виходить.
Ось код задачі.

Прихований текст
program ab;
uses crt;
const n=10;
var a: array [1..n] of integer;
    i,k,s,min_i:integer;
    ser:real;
begin
   clrscr;
   randomize;
   s:=0;
     for i:=1 to n do
       begin
         a[i]:=random(10)+1;
         s:=s+a[i];
       end;
   writeln ('Елементи масиву: ');
     for i:=1 to n do write (a[i]:3);
   writeln;
   ser:=s/n;
   writeln ('Середнє арифметичне елементів масиву: ');
   writeln (ser:3:1);
   min_i := 1;
     for i:=1 to n do
       begin
         if abs(a[i] - ser) < abs(a[min_i] - ser) then min_i := i;
       end;
   writeln ('Елемент, який найменьше віддалений від середнього арифметичного: ');
   writeln (min_i:3);
end.

4

Re: Побудова задачі за допомогою масиву.

А здається все працює. Показує ж індекс, а не значення.

Подякували: Logans1

5 Востаннє редагувалося Logans (04.11.2012 18:49:31)

Re: Побудова задачі за допомогою масиву.

Replace написав:

А здається все працює. Показує ж індекс, а не значення.

Аа, так там індекс, а я не подивився якось. Тоді так, все працює, дякую.
А тоді таке питання, як вивестит сам елемент?

Re: Побудова задачі за допомогою масиву.

Oleg написав:

А тоді таке питання, як вивестит сам елемент?

writeln (a[min_i]);
Подякували: Replace, Logans2