Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 98
1

Найти в каждой строке матрицы среднее арифметическое и поставить его на место минимума строки

15.11.2013, 00:06. Показов 1200. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Матрица вводится с клавиатуры. Нужно найти в каждой строке матрицы среднее арифметическое и поставить его на место минимума строки (т.е. заменить им минимум). Затем из полученных средних арифметических создать массив и отсортировать его по убыванию (вывести отдельно).
В общем, я где-то в Инете увёл код и адаптировал немного, но в нём много недочётов (а препод придирчивый у другана). Во-первых, вводится матрица только рандомом (почему-то не смог переделать на ручной ввод - сразу всё ломается). Во-вторых, средние арифметические как-то странно выводятся справа от матрицы напротив соответствующих строк (тоже не смог исправить), причём не массивом, а циклом - т.е. отсортировать это нельзя. И вообще написан как-то странно. Можно что-нибудь сделать? Вот:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program pr3;
uses crt;
var i,j,m,n:integer; B:array[1..5,1..5] of real; sr,min1,min2:real;
begin clrscr; randomize; n:=5;
writeln('Исходный массив:');
 for i:=1 to n do begin
sr:=0; min2:=10; m:=0;
 for j:=1 to n do begin
B[i,j]:=random(10);
min1:=B[i,j];
 if min2>min1 then begin
min2:=min1; m:=j; end;
sr:=sr+B[i,j];
write(B[i,j]:5:2); end;
sr:=sr/n;
B[i,m]:=sr;
writeln('    ',sr:5:2); end;
writeln('Результат:');
 for i:=1 to n do begin
 for j:=1 to n do
write(B[i,j]:5:2,' '); writeln; end;
readkey; end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2013, 00:06
Ответы с готовыми решениями:

Найти среднее арифметическое в каждой строке матрицы А и, определив минимальное прибавить его к элементам той
Найти среднее арифметическое в каждой строке матрицы А и, определив минимальное прибавить его к...

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

Найти в каждой строке матрицы среднее арифметическое четных элементов
Дана целочисленная прямоугольная матрица размера m×n, заполненная случайными числами. Найти в...

Найти среднее арифметическое каждой строки матрицы
Задача: Составьте программу вычисления среднего арифметического каждой строки матрицы В(N,N) и...

4
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
15.11.2013, 10:26 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
50
51
52
53
54
55
const
  nmax=10;
var
  a: array[1..nmax,1..nmax] of real;
  b: array[1..nmax] of real;
  n,m,i,j,jmin: integer;
  s,t: real;
begin
  repeat
    write('Ââåäèòå ðàçìåðû ìàòðèöû (n<=10; m<=10): ');
    readln(n,m);
  until (n in [1..nmax]) and (m in [1..nmax]);
  for i:=1 to n do
    for j:=1 to m do
    begin
      write('a[',i,',',j,']=');
      readln(a[i,j]);
    end;
  writeln('Èñõîäíàÿ ìàòðèöà:');
  for i:=1 to n do
  begin
    s:=0; jmin:=1;
    for j:=1 to m do
    begin
      write(a[i,j]:8:2);
      if a[i,j]<a[i,jmin] then jmin:=j;
      s:=s+a[i,j];
    end;
    b[i]:=s/m;
    a[i,jmin]:=b[i];
    writeln;
  end;
  writeln('Ìàññèâ ñðåäíèõ çíà÷åíèé:');
  for i:=1 to n do write(b[i]:8:2);
  writeln;
  for i:=2 to n do
    for j:=n downto i do
      if b[j-1]<b[j] then
      begin
        t:=b[j-1];
        b[j-1]:=b[j];
        b[j]:=t;
      end;
  writeln('Óïîðÿäî÷åííûé ìàññèâ:');
  for i:=1 to n do write(b[i]:8:2);
  writeln;
  writeln('Ïðåîáðàçîâàííàÿ ìàòðèöà:');
  for i:=1 to n do
  begin
    for j:=1 to m do
      write(a[i,j]:8:2);
    writeln;
  end;
  readln;
end.
1
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 98
15.11.2013, 21:49  [ТС] 3
Спасибо! Всё как по маслу.
0
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 98
18.11.2013, 22:42  [ТС] 4
Кое-какие вопросы... Требуется построчный ввод, но когда я пытаюсь вставить такой кусок, ломается нафиг вся программа (например, все циклы). Я так понимаю, это пишется как-то так?
Pascal
1
2
3
4
5
6
7
8
writeln('Введите размерность массива:');
readln(m);
readln(n);
writeln('Введите исходный массив:');
 for j:=1 to m do
 for i:=1 to n do begin
gotoxy(i*4,j+5);
readln(A[i,j]);
0
0 / 0 / 0
Регистрация: 25.03.2013
Сообщений: 98
20.11.2013, 13:58  [ТС] 5
Еще раз прошу помочь с построчным вводом. Как это сделать? Gotoxy или вообще по-другому?
0
20.11.2013, 13:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2013, 13:58
Помогаю со студенческими работами здесь

Найти среднее арифметическое каждой строки матрицы
Дано натуральное число n и двумерный массив размером n*(n+1).Составьте программу которое находит...

Найти среднее арифметическое значение каждой строки матрицы
Помогите пожалуйста. дана матрица H= размером (p x q). p=3; q=5; Найти среднее арифметическое...

Найти среднее арифметическое каждой чётной строки матрицы
Найти среднее арифметическое каждой чётной строки матрицы Заранее спасибо :)

Найти среднее арифметическое каждой строки матрицы и записать в вектор
найти среднее арифметическое каждой строки матрицы А . Сформировать из них вектор В 1...


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

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