Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2012, 22:28   #1
Temarustver
Новичок
Джуниор
 
Регистрация: 11.03.2012
Сообщений: 2
По умолчанию сортировка матрицы нахождение среднеарифметического и замена элемента все в одной задаче

Дана матрица NxM. Найти среднее арифметические из каждой строки матрицы и поместить значение среднего арифметического на место наименьшего элемента в этой строке с указанеем его индексом. Создать линейный массив из найденных средних арефметических и отсортировать этот массив по убыванию.
Temarustver вне форума Ответить с цитированием
Старый 11.03.2012, 22:34   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

выкладываем наработки... или деньги...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 11.03.2012, 22:36   #3
Temarustver
Новичок
Джуниор
 
Регистрация: 11.03.2012
Сообщений: 2
По умолчанию

uses crt;
Var
arifmet : integer;
min,i_min,index_b : integer;
B : array [1..100] of integer;
i,j,i_tmp,tmp,n,m : integer;
index_i,index_j : integer;
A : Array[1..100,1..100] of integer;
Begin
clrscr;
Writeln('Введите размерность массива MxN');
Write('n = '); Read(n);
Write('m = '); Read(m);
Writeln('');
writeln('Входной массив');
Write('A[');
for i := 1 to n do
for j := 1 to m do begin
gotoxy(j*4,i+5);
read(a[i,j]);
tmp := tmp + A[i,j];
if (j = m-1) then begin
arifmet := trunc(tmp / m);
tmp := 0;
B[i] := arifmet;
min:= A[i,j];
for i_tmp:=1 to m-1 do
if A[i,i_tmp] < min then
A[i,i_tmp] := arifmet;
end;
end;
Writeln(' ];');
Writeln('');
for i:=1 to n-1 do
for j:=i+1 to n do
if (b[j] > b[i]) then
begin
tmp:=b[i];
b[i]:=b[j];
b[j]:=tmp;
end;
writeln('');
writeln('Выходной массив');
write('B[ ');
for i:=1 to n do
if i <> n then
write(B[i]+'['+inttostr(i)+']',', ')
else
write(B[i] +'['+inttostr(i)+']',' ');
write(']');
writeln('');
writeln('');
End.
Temarustver вне форума Ответить с цитированием
Старый 11.03.2012, 23:25   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
uses crt;
var
min,sr_ar : real; // среднеарифметическое дожно быть вещественным
b : array [1..100] of real; // также как и матрица для среднеарифм
a: array [1..100,1..100] of real; // матрица со значениями в виду того что вставятся срарифм так же вещественная
m,n,i, j, j_min : integer;
begin
  clrscr;
  randomize;
  m := 4;
  n := 6;
  // заполняем массив, тут рандомом...
  for i := 1 to n do
  begin
    for j := 1 to m do
      begin
        a[i,j] := random(20) + 1;
        write(a[i,j]:5:1);
      end;
    writeln;  
  end;
  // находим наименьший элемент и строим вторую матрицу из среднеарифм
  for i:=1 to n do
    begin
    min := a[i,1];
    j_min := j;
    sr_ar := 0;
      for j := 1 to m do
      begin
        if min > a[i,j] then
          begin
            min := a[i,j];
            j_min := j;
          end;
        sr_ar := sr_ar + a[i,j];  
      end;
    b[i] := sr_ar / m ;
    a[i,j_min] := b[i];
    end;
    writeln;
  // вывод результатов
 writeln('новая матрица А');
 for i:= 1 to n do
    begin
      for j:=1 to m do
        write(a[i,j]:5:1);
      writeln;  
    end;
    writeln;
    writeln('матрица b');
  for i:=1 to n do
    writeln('b[',i,']=', b[i]);
end.
позабавлявшись с форматом вывода достигнете нужной точности... в вашем коде не особо хотелось разбираться... так как не оформили должным образом( через #)... вот вам такой код.... селаете коль нужно ввод ручной... и вывод по своему усмотрению...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответ... just_dake Помощь студентам 7 28.12.2018 14:33
Массив: нахождение искомого элемента Resident_W Паскаль, Turbo Pascal, PascalABC.NET 0 16.12.2011 19:21
Нахождение максимального элемента (assembler) roxy7 Помощь студентам 0 07.12.2011 20:09
Нахождение минимального элемента матрицы переменной длины.паскаль. pif Помощь студентам 9 14.03.2010 01:07
Найти все числа из массива B(n), встречающиеся более чем в одной строке матрицы A(m,n). Alexander89 Паскаль, Turbo Pascal, PascalABC.NET 2 16.10.2008 12:41