Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Vicky
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 56
1

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

20.01.2012, 22:57. Просмотров 906. Ответов 4
Метки нет (Все метки)

Не могу понять, где ошибка. Ругался, что неправильно, что-то удалила, откомпилировал, но результат правильный не выдает :С
Я искала не номера, а пока что значение элемента.
Посмотрите, пожалуйста..
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program task17;
uses crt;
const
 nmax= 10;
type
 mas = array [1..nmax] of real;
var
 m: mas;
 i, n, k: integer;
 s, avg, cl, raz:real;
begin
repeat
writeln('Input real number of elements:'); readln(n);
  if (n<1) or (n>nmax) then
   writeln ('There are no such elements! Try again')
  until
   (n>=1) and(n<=nmax);
 writeln('Input each element one by one:');
 for i:=1 to n do
  begin
   write(i, '-i='); readln(m[i]);
     end;
 s:=0;
 for i:=1 to n do
  begin
   s:=s+m[i];
   avg:= s/n;
  end;
 
 for i:=1 to n do
  raz:=abs(avg - m[i]);
  
 while (i<=n) do
   if (m[i]<=raz) or (m[i]>=raz)  then     {нахожу разность меньшую по модулю}
     cl:=raz  {сохраняю в новой переменной}
   else
    inc(k);
 write(avg);
end.
Задание звучит так:
Дан массив вещественных чисел. Найти те номера элементов массива, значение которых максимально приближено к значению среднего арифметического всех элементов массива.
Замечание. Искать минимум абсолютного значения разности среднего арифметического и элементов массива.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 22:57
Ответы с готовыми решениями:

Все элементы массива, значение которых меньше среднего арифметического, увеличить в К раз
Дан массив A (N). Все элементы, значение которых меньше среднего арифметического увеличить в К раз.

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

Удалить из массива те элементы, которые больше среднего арифметического
Дан массив целых чисел D1,...,D30. Удалить из него те элементы, которые больше среднего...

Вывести на экран элементы одномерного массива, большие среднего арифметического
Вывести на экран элементы одномерного массива, большие среднего арифметического.

Дан массив, состоящий из N элементов.Обнулить все элементы, большие среднего арифметического всех элементов массива
Дан массив, состоящий из N элементов. Обнулить все элементы, большие среднего арифметического всех...

4
Andyc
206 / 183 / 104
Регистрация: 10.01.2011
Сообщений: 302
22.01.2012, 20:20 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
program task17;
uses crt;
const
 nmax= 10;
type
 mas = array [1..nmax] of real;
 num = array [1..nmax] of Integer;
var
 m: mas;
 nr: num;
 i, n, k: integer;
 s, avg, cl, raz:real;
begin
repeat
writeln('Input real number of elements:'); readln(n);
  if (n<1) or (n>nmax) then
   writeln ('There are no such elements! Try again')
  until
   (n>=1) and(n<=nmax);
 writeln('Input each element one by one:');
 for i:=1 to n do
  begin
   write(i, '-i='); readln(m[i]);
     end;
 s:=0;
 for i:=1 to n do
  begin
   s:=s+m[i];
   avg:= s/n;
  end;
 
  k:=1;
  nr[1]:=1;
  raz:=abs(avg - m[1]);
  for i:=2 to n do
   if raz>=abs(avg - m[i]) then
   begin
     if raz=abs(avg - m[i]) then Inc(k)
     else begin
       raz:=abs(avg - m[i]);
       k:=1;
     end;
     nr[k]:=i;
   end;
   Write('Номера элементов: ');
   for i:=1 to k do Write(nr[i]:4);
   Writeln;
 
end.
1
Vicky
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 56
22.01.2012, 21:30  [ТС] 3
Pascal
1
2
3
4
5
6
if raz>=abs(avg - m[i]) then
   begin
     if raz=abs(avg - m[i]) then Inc(k)
     else begin
       raz:=abs(avg - m[i]);
       k:=1;
Можете пояснить эту часть?
0
Andyc
206 / 183 / 104
Регистрация: 10.01.2011
Сообщений: 302
22.01.2012, 22:10 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
k:=1; {Количество элементов в массиве nr}
  nr[1]:=1; {Массив номеров элементов, значение которых максимально приближено к среднему}
  raz:=abs(avg - m[1]); {За минимальную разность принимаем разность между 1 элементом и ср. ар.}
  for i:=2 to n do
   if raz>=abs(avg - m[i]) then
   begin
     if raz=abs(avg - m[i]) then Inc(k) {Если разность текущего элемента такая же как у "минимальног", 
                                         увеличиваем количество элементов в массиве номеров}
     else begin                         {Инче разность больше разности текущего элемента, то}  
       raz:=abs(avg - m[i]);  {за новую разность принимаем разность текущего элемента}
       k:=1;  {устанавливаем размер массива номеров равным 1}
     end;
     nr[k]:=i; {записываем в массив номеров номер текущего элемента}
   end;
   Write('Номера элементов: ');
   for i:=1 to k do Write(nr[i]:4);
   Writeln;
1
Vicky
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 56
22.01.2012, 23:21  [ТС] 5
Очень признательна
0
22.01.2012, 23:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2012, 23:21

Из одного массива в другой переписать элементы, модуль которых меньше среднего значения
Помогите пожалуйста!=) Из массива а(100) в массив b(100) переписать элементы модулькоторых...

Заменить нулевые элементы массива на сумму элементов,значения которых кратны некоторому целому значению.
В одномерном массиве A с размерностью N: Заменить нулевые элементы массива на сумму...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru