0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
1

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

18.10.2017, 22:13. Показов 3279. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан двумерный массив. Определить среднее арифметическое элементов второго столбца массива.
Сам массив создал, заполнил но посчитать и вывести результат в label не могу догнать.
вот код заполнения:
Delphi
1
2
3
4
5
6
7
8
var a:array[1..12,1..6]of integer;
i,j:integer;
begin
   For i:=1 to 12 do
    for j:=1 to 6 do begin
      a[i,j]:=random(50)-25;
      Stringgrid1.Cells[i-1,j-1]:=intToStr (A[i,j]);
    end;
Помогите плис))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2017, 22:13
Ответы с готовыми решениями:

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

Отпечатать среднее арифметическое элементов каждого столбца матрицы
Помогите решить. Для матрицы из 2 строк и 9 столбцов отпечатать среднее арифметическое элементов...

Для каждого столбца матрицы найти среднее арифметическое исходных значений элементов
Задание: Дана матрица, состоящая из n строк и m столбцов. Заменить в матрице на 1 каждый...

Определить среднее арифметическое элементов третьей строки массива, максимальный элемент 2-ого столбца
Дан массив R (N,M). Определить среднее арифметическое элементов третьей строки, максимальный...

18
5422 / 4343 / 1069
Регистрация: 29.08.2013
Сообщений: 27,247
Записей в блоге: 3
18.10.2017, 22:24 2
Цитата Сообщение от Fox2156 Посмотреть сообщение
но посчитать и вывести результат в label не могу догнать.
что ты не можешь догнать?
перебирай элементы массива так же как и заполнял
в цикле проверяй, если второй столбец, то суммировать, а на выходе из цикла разделить сумму элементов на количество

КАРЛ!
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 00:18  [ТС] 3
Если я бы было так все очевидно я бы не обращался за помощью на форум.
У меня получается какой-то бред((
Delphi
1
2
3
4
5
6
7
8
9
10
var
i, j, s: integer;
begin
 s:=0;
 for i:=1 to 2 do
 for j:=1 to 6 do begin
  s:=s+strtoint(StringGrid1.Cells[j,i]);
  StringGrid1.Cells[2,i]:=formatfloat('0.0',s/6);
 end;
end;
и тем более здесь у меня вывод в этот же стрингрид, в котором лежат значения для подсчета ср.ариф. А мне нужно вывести в caption label((
0
пофигист широкого профиля
4747 / 3183 / 860
Регистрация: 15.07.2013
Сообщений: 18,347
19.10.2017, 01:36 4
Цитата Сообщение от Fox2156 Посмотреть сообщение
Если я бы было так все очевидно я бы не обращался за помощью на форум.
А что такое "среднее арифметическое" вы знаете? И как посчитать на бумажке это "среднее арифметическое" нескольких чисел тоже знаете? Тогда почему у вас в программе нет ничего похожего на такие вычисления?
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 01:40  [ТС] 5
northener, ну естественно я знаю как считать ср.ариф. Я просто не могу понять как это записать программно чего похожего )
здесь считаю сумму
Delphi
1
 s:=s+strtoint(StringGrid1.Cells[j,i]);
а здесь делю на 6 ибо слагаемых 6 шт
Delphi
1
StringGrid1.Cells[2,i]:=formatfloat('0.0',s/6);
.
0
пофигист широкого профиля
4747 / 3183 / 860
Регистрация: 15.07.2013
Сообщений: 18,347
19.10.2017, 02:04 6
А зачем вы что-то записываете во второй стлобец
Цитата Сообщение от Fox2156 Посмотреть сообщение
StringGrid1.Cells[2,i]:=formatfloat('0.0',s/6);
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 02:10  [ТС] 7
northener, Да блин я считал уже среднее арифметическое строк в StringGrid и там выводилось в столбец.
Вот он.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm8.Button4Click(Sender: TObject);
var
i, j, s: integer;
begin
for i:=1 to StringGrid1.RowCount-1 do
 begin
  s:=0;
  for j:=1 to 10 do
  s:=s+strtoint(StringGrid1.Cells[j,i]);
  StringGrid1.Cells[11,i]:=formatfloat('0.0',s/10);
 end;
end;
А вот как это все дело вывести в caption lable. Я не могу сообразить. Ну в расчете арифметического второго столбца скорее всего тоже ошибка.
p/s поэтому я этот код взял за основу. Ибо не могу склепать его из головы((
0
Модератор
9338 / 6116 / 2394
Регистрация: 21.01.2014
Сообщений: 26,119
Записей в блоге: 3
19.10.2017, 06:33 8
Лучший ответ Сообщение было отмечено Fox2156 как решение

Решение

Цитата Сообщение от Fox2156 Посмотреть сообщение
я считал уже среднее арифметическое строк в StringGrid
"Уж сколько раз твердили миру..." (И.В. Крылов)
НЕ НАДО ПРОИЗВОДИТЬ НИКАКИХ ВЫЧИСЛЕНИЙ НАД ЯЧЕЙКАМИ СТРИНГГРИДА!!!
StringGrid - компонент для отображения массива. Для отображения (возможно, для ввода), но не для вычислений, производимых с его ячейками!
Fox2156, у Вас есть объявленный массив, вы его заполняете случайными числами и выводите в стринггрид. Все хорошо и правильно, и вот кто Вам мешает в момент заполнения массива сразу считать сумму элементов второго столбца, после цикла считать среднее арифметическое (у Вас статический массив, число строк заранее известно, не надо изгаляться их считать) и вывести все это в лэйбл?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button2Click(Sender: TObject);
var a:array[1..12, 1..6] of integer;
i, j, Summ: integer;
Avr: double;
begin
  Summ := 0;
  for i := 1 to 12 do
    for j := 1 to 6 do
     begin
       a[i, j] := random(50)-25;
       Stringgrid1.Cells[j - 1, i - 1] := IntToStr(A[i, j]);
       if j = 2 then Summ := Summ + A[i, j];
     end;
  Avr := Summ / 12;
  Label1.Caption := FormatFloat('0.0', Avr);
end;
Вот и вся Ваша задача...
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 07:16  [ТС] 9
D1973, спасибо большое он считает все заполняет. Но в label все равно не выводит, она по идее должна поменяться на значение (среднее арифметическое). У меня label 6 в коде с 1 на 6 поменял((
Миниатюры
Определить среднее арифметическое элементов второго столбца матрицы  
0
Модератор
9338 / 6116 / 2394
Регистрация: 21.01.2014
Сообщений: 26,119
Записей в блоге: 3
19.10.2017, 07:23 10
Показывайте код...
И странно как-то... У Вас по заданию массив 12 строк на 6 столбцов, а на форме - наоборот...
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 08:22  [ТС] 11
D1973,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm10.Button2Click(Sender: TObject);
var a:array[1..12, 1..6] of integer;
i, j, Summ: integer;
Avr: double;
begin
  Summ := 0;
  for i := 1 to 12 do
    for j := 1 to 6 do
     begin
       a[i, j] := random(50)-25;
       Stringgrid1.Cells[j - 1, i - 1] := IntToStr(A[i, j]);
       if j = 2 then Summ := Summ + A[i, j];
     end;
  Avr := Summ / 6;
  Label6.Caption := FormatFloat('0.0', Avr);
end
я правда 12 заменил на 6 в делении. Но поменял на исходный как вы написали, но он все равно не выводит в label

Добавлено через 55 минут
D1973, блин осталось только вот последняя задача вывести результат в делфи. ((( Может у кого еще есть какие-то соображения по этому поводу.
0
5422 / 4343 / 1069
Регистрация: 29.08.2013
Сообщений: 27,247
Записей в блоге: 3
19.10.2017, 08:23 12
Лучший ответ Сообщение было отмечено Fox2156 как решение

Решение

Цитата Сообщение от Fox2156 Посмотреть сообщение
я правда 12 заменил на 6 в делении
а зачем? у тебя же 12 строк

у меня этот код работает

Delphi
1
Avr := Summ / Stringgrid1.RowCount;
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 08:28  [ТС] 13
qwertehok, сделал по вашему примеру
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm10.Button2Click(Sender: TObject);
var a:array[1..12, 1..6] of integer;
i, j, Summ: integer;
Avr: double;
begin
  Summ := 0;
  for i := 1 to 12 do
    for j := 1 to 6 do
     begin
       a[i, j] := random(50)-25;
       Stringgrid1.Cells[j - 1, i - 1] := IntToStr(A[i, j]);
       if j = 2 then Summ := Summ + A[i, j];
     end;
 Avr := Summ / Stringgrid1.RowCount;
 Label6.Caption := FormatFloat ('0.0', Avr);
 
 
end;
но Caption все равно не меняется. Сам Lable на форме есть
Миниатюры
Определить среднее арифметическое элементов второго столбца матрицы  
0
Модератор
9338 / 6116 / 2394
Регистрация: 21.01.2014
Сообщений: 26,119
Записей в блоге: 3
19.10.2017, 08:38 14
Не верю! Не может с этим кодом быть заполнено 6 строк и 12 столбцов...

Добавлено через 1 минуту
Высылайте-ка проект целиком...
1
5422 / 4343 / 1069
Регистрация: 29.08.2013
Сообщений: 27,247
Записей в блоге: 3
19.10.2017, 08:42 15
у тебя фигня какая-то с индексами вот тут Stringgrid1.Cells[j - 1, i - 1]

вот мой код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.sButton1Click(Sender: TObject);
var a:array[1..12, 1..6] of integer;
i, j, Summ: integer;
Avr: double;
begin
  StringGrid1.RowCount:=6;
  StringGrid1.ColCount:=12;
  Summ := 0;
  for i := 1 to 12 do
    for j := 1 to 6 do
     begin
       a[i, j] := random(50)-25;
       Stringgrid1.Cells[i - 1, j - 1] := IntToStr(A[i, j]);
       if i = 2 then Summ := Summ + A[i, j];
     end;
 Avr := Summ / Stringgrid1.RowCount;
 sButton1.Caption := FormatFloat('0.0', Avr);
end;
Цитата Сообщение от Fox2156 Посмотреть сообщение
но Caption все равно не меняется
возможно это не Label6, всегда нужно переименовывать компоненты что бы понятно было
0
Модератор
9338 / 6116 / 2394
Регистрация: 21.01.2014
Сообщений: 26,119
Записей в блоге: 3
19.10.2017, 08:45 16
Цитата Сообщение от qwertehok Посмотреть сообщение
у тебя фигня какая-то с индексами вот тут Stringgrid1.Cells[j - 1, i - 1]
Почему фигня? массив определен как array[1..12, 1..6] - 12 строк, 6 столбцов
В СтрингГрид же, в отличие от массива, индекс столбца идет на первом месте...
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 66
19.10.2017, 08:48  [ТС] 17
Блин, это мой косяк все ночь уже сижу. У меня просто кнопка вызывает другой отрывок кода который я сам делал))) Так что D1973, все правильно сделал, все гуд и работает. Реально извиняюсь))) qwertehok, и тебе спасибо за помощь, добра вам обоим
Я с помощью вас наконец-то закончил эту практику
0
5422 / 4343 / 1069
Регистрация: 29.08.2013
Сообщений: 27,247
Записей в блоге: 3
19.10.2017, 08:52 18
Цитата Сообщение от D1973 Посмотреть сообщение
Почему фигня?
потому что его код заполнял только половину таблицы

Цитата Сообщение от D1973 Посмотреть сообщение
массив определен как array[1..12, 1..6] - 12 строк, 6 столбцов
а на картинке 6 строк и 12 столбцов
0
Модератор
9338 / 6116 / 2394
Регистрация: 21.01.2014
Сообщений: 26,119
Записей в блоге: 3
19.10.2017, 09:18 19
Цитата Сообщение от qwertehok Посмотреть сообщение
а на картинке 6 строк и 12 столбцов
Вот и я об этом спросил - как так? Но вроде все уже устаканилось
0
19.10.2017, 09:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2017, 09:18
Помогаю со студенческими работами здесь

Среднее арифметическое каждого столбца матрицы
Составьте пограмму вычисления среднего арифметического каждого столбца матрицы A(N,N) и запишите...

Вывести среднее арифметическое каждого столбца матрицы в Memo
Помогите, пожалуйста, нужно задать двумерный массив рандомных чисел и вывести среднее арифмитич....

Найти среднее арифметическое элементов столбца
Какой код по нахождению среднего арифметического элементов данного столбца??? Срочняк надо

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


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

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

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