5 / 5 / 5
Регистрация: 05.03.2014
Сообщений: 68
1

Определить среднее арифметическое чётных элементов и среднее арифметическое нечётных элементов в массивах

12.04.2014, 13:32. Показов 1349. Ответов 1
Метки нет (Все метки)

Составить программу, которая определяет среднее арифметическое чётных элементов и среднее арифметическое нечётных элементов в массивах X(N) и Y(M). Нахождение средних арифметических оформить в виде подпрограммы.

Суть проблемы: не правильно считает sacB (Среднее Арифметическое Четных элементов массива B). Под спойлером пример вывода.
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
50
51
52
53
54
55
Program labzadanie; 
var   a, b: array[1..100] of integer;
  i,  n: integer;
  c,f,g,v:real;
 
procedure SA(r:integer; var sacA,sanA,sacB,sanB:real);
var i:integer;
k1,k2,k3,k4:integer;
begin
sacA:=0;sanA:=0; sacB:=0;sanB:=0;
k1:=0;k2:=0;k3:=0;k4:=0;
for i:=1 to r do
if (a[i] mod 2=0)  then begin sacA:=sacA+a[i];inc(k1);
sacB:=sacB+b[i];inc(k3) end
else 
begin sanA:=sanA+a[i];inc(k2);
end;
for i:=1 to r do
if (b[i] mod 2=0) then begin sacB:=sacB+b[i]; inc(k3); end else 
begin sanB:=sanB+b[i];inc(k4); end;
sanA:=sanA/k2; sacA:=sacA/k1; 
sanB:=sanB/k4; sacB:=sacB/k3; 
 
writeln('   Массив А');
    writeln('Чет');
    writeln(sacA);
    writeln('НЕчет');
    writeln(sanA); 
writeln('   Массив B');
    writeln('Чет');
    writeln(sacB);
    writeln('НЕчет');
    writeln(sanB);
end;
begin
  write('Введите количество элементов массива=');
  readln(n); 
  writeln('Исходный массив A');
  for i := 1 to n do
  begin
    a[i] :=random(50);
       write(a[i]:3,' |');
    end;
   writeln();
   writeln('Исходный массив B');
    for i := 1 to n do
  begin
    b[i]:= random(50);
    write(b[i]:3,' |');
    end;
    f:=a[i];c:=0;
    g:=b[i];v:=0;
    writeln();
    SA(n,f,g,c,v);   
end.
Кликните здесь для просмотра всего текста
Введите количество элементов массива=5
Исходный массив A
0 | 28 | 45 | 37 | 17 |
Исходный массив B
7 | 2 | 6 | 25 | 37 |
Массив А
Чет
14
НЕчет
33
Массив B
Чет
4.25
НЕчет
23
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2014, 13:32
Ответы с готовыми решениями:

Найти среднее арифметическое четных элементов в массивах
Используя подпрограммы-процедуры составить блок-схему и программу для решения задачи. Варианты...

Определить среднее арифметическое положительных и среднее арифметическое отрицательных элементов вектора
В целочисленном векторе vectorn определить среднее арифметическое положительных и отдельно...

Найти количества положительных элементов в массивах A,B,C, а затем - их среднее арифметическое
Задание к работе: Ввод исходных данных и их контрольный вывод оформить как процедуры, а обработку...

Дан двухмерный массив.Определить среднее арифметическое нечетных элементов пятой строки
Дан двухмерный массив.Определить среднее арифметическое нечетных элементов пятой строки

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32451 / 20945 / 8105
Регистрация: 22.10.2011
Сообщений: 36,213
Записей в блоге: 7
12.04.2014, 18:59 2
Цитата Сообщение от Ricon Посмотреть сообщение
не правильно считает sacB (Среднее Арифметическое Четных элементов массива B)
Ничего что ты дважды суммируешь элементы массива B, при чем первый раз - неправильно (проверяешь условие четности для A, и увеличиваешь счетчики одновременно для A и B)?

Лучше всего - переписать код вот так:
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
50
51
52
53
54
55
56
57
58
59
program labzadanie; 
 
type
  TArr = array[1..100] of integer;
 
procedure SA(var arr: TArr; r: integer);
var
  i: integer;
  k1, k2: integer;
  sacA, sanA: real;
begin
  sacA := 0;sanA := 0;
  k1 := 0;k2 := 0; 
  for i := 1 to r do
    if (arr[i] mod 2 = 0) then
    begin
      sacA := sacA + arr[i];inc(k1);
    end
    else 
    begin
      sanA := sanA + arr[i];inc(k2);
    end;
    
  // тут добавь проверку, чтобы не было деления на 0...
  sanA := sanA / k2; sacA := sacA / k1; 
  writeln('Чет');
  writeln(sacA);
  writeln('НЕчет');
  writeln(sanA); 
end;
 
var
  a, b: TArr;
  i,  n: integer;
 
begin
  write('Введите количество элементов массива=');
  readln(n); 
  writeln('Исходный массив A');
  for i := 1 to n do
  begin
    a[i] := random(50);
    write(a[i]:3, ' |');
  end;
  writeln();
  writeln('Исходный массив B');
  for i := 1 to n do
  begin
    b[i] := random(50);
    write(b[i]:3, ' |');
  end;
  writeln();
  
  writeln('   Массив А');
  SA(a, n);
  
  writeln('   Массив B');
  SA(b, n);   
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2014, 18:59
Помогаю со студенческими работами здесь

Функции. Найти среднее арифметическое всех элементов с четными номерами и количество нулевых элементов в трех массивах.
Заданы три одномерных массива R, U, W. Количество элементов каждого массива не превышает 25. Для...

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

Определить сумму указанных элементов, количество нечетных элементов и среднее арифметическое четных элементов массива
Дан двумерный массив целых чисел. Определить: 1. Сумму элементов массива, больших 30 2....

Найдите среднее арифметическое всех отрицательных элементов в нечетных элементах двух одномерных массивах
найдите среднее арифметическое всех отрицательных элементов в нечетных элементах двух одномерных...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru