IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> одномерный массив
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Женский

Репутация: -  0  +


Вот задачка:
Определить среднее значение элементов массива. Найти далее индекс элемента массива, наиболее близкого к среднему значению.

Я знаю, как найти среднее значение элементов массива, а вот как найти индекс элемента массива, наиболее близкого к среднему значению я не знаю. Кому не сложно подскажите бедной студентке, как это сделать!!!! Заранее СПАСИБО!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






шалунья
Вот пример решения (просто замени константы на переменные и организуй ввод массива):
Код

const
 n = 10;
 a: array[1 .. n] of integer =
   (2, 5, 3, 8, 6, 9, 1, 13, 10, 22);

var
 aver, min: real;
 i, index: integer;

begin
 aver := 0;
 for i := 1 to 10 do
   aver := aver + a[i];
 aver := aver / n;

 min := maxInt;
 for i := 1 to n do
   if min > abs(a[i] - aver) then
     begin
       min := abs(a[i] - aver); index := i
     end;

 writeln('average = ', aver:10:5);
 writeln('closest = a[', index, '] = ', a[index]:4);
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Один из возможных вариантов.
m1 - наш массив, sred - среднее значение, bliz - индекс ближайшего.
(Дремучая лень помешала мне написать всю прогу целиком и отладить ее. Но по идее должно работать)
Код

program x;
const n=10;
var m1: array[1..n] of real;
   sred,delta_best: real;
   i,bliz: integer;
begin
  {Здесь вводим массив и просчитываем среднее значение}
  {...}


  {А теперь будем искать ближайший элемент}
  bliz := 1;
  delta_best := abs(sred-m1[1]);

  for i:=2 to n do
      begin
        delta :=  abs(sred-m1[i]);

        if delta < delta_best
           then
             begin
               delta_best := delta;
               bliz := i;
             end;
      end;

{...что-то там еще}
{...}
end.


P.S. Volvo меня обошел!

Сообщение отредактировано: Бродяжник -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 7
Пол: Женский

Репутация: -  0  +


:D СПАСИБО!!!! :thanks:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.04.2024 15:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name