Страница 2 из 3

Re: Сортировка столбцов ТР

Добавлено: 23 май 2008, 23:01
Anuta
MOTOCoder, в смысле нахождение среднего арифметического должно содержаться в процедуре сортировки??

Re: Сортировка столбцов ТР

Добавлено: 23 май 2008, 23:15
MOTOCoder
Думаю, что да.

Re: Сортировка столбцов ТР

Добавлено: 25 май 2008, 20:19
Anuta
ааа, у меня ничего так и не получилось.... :(
ну не хочет программа работать((
помогите, пожалуйста....

Re: Сортировка столбцов ТР

Добавлено: 25 май 2008, 22:05
Serge_Bliznykov
Анюта, честно говоря, не понял, зачем Вам столько массив массивов?!!
Вам же ясно сказал уважаемый MOTOCoder, если нужен двухмерный массив B описывается просто:

Код: Выделить всё

var [b]B1:Array [1..N,1..M] of integer[/b]
это раз.
второе. я бы рекомендовал среднеарифметическое сделать всё таки вещественным.
третье. существует два принципиально разных решения.
1) алгоритм - написать функцию SREDARIFMET( K : integer) - которая будет возращать среднеарифметическое значение K-го столбца и дальще сортировать столбцы, сравнивая
if SREDARIFMET(i)>SREDARIFMET(j) then {поменять столбцы I и J местами...}

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

Re: Сортировка столбцов ТР

Добавлено: 25 май 2008, 22:22
Serge_Bliznykov
вот решение по второму алгоритму...

Код: Выделить всё

Program anuta;
uses crt;
const n=5; m=7;
var  i,j,sum, IndexMin : integer;
     B    : Array [1..N,1..M] of integer; 
     OneS : real;
     Aver : Array [1..M] of real; {массив для сохранения средний значений}
     

{процедура переставляет два столбца в массиве B}     
procedure Exchange(Idx1,Idx2:integer);
var iLoc : integer;
    OneB : integer;
begin 
  for iLoc:=1 to N do begin 
     OneB := B[iLoc,Idx1];
     B[iLoc,Idx1]:=B[iLoc, Idx2];
     B[iLoc, Idx2] := OneB;
  end;
end;     
     
begin
clrscr;
  randomize;
  for i:=1 to n do 
  begin
     for j:=1 to m do begin
       b[i,j]:=random(10);
       Write (b[i,j]:4);
     end; 
     writeln; 
  end;
  for j:=1 to m do 
  begin
     sum:=0;
     for i:=1 to n do begin
        sum:=sum+b[i,j];
     end;
     Aver[j] := sum / n;
     writeln ('SredArifm [',j:1,']= ',Aver[j]:5:1);
  end;

  {а вот теперь начинаем сортировку.
     методом "пузырька" - как самым простым}
     

  {Выбирается минимальный элемент массива
  и меняется местами с первым элементом массива.
  Затем процесс повторяется с оставшимися элементами и т. д. }

  for i:=1 to M-1 do begin
    IndexMin := i; {предварительно считаем, что первый элемент наименьший}
    {ищем индекс минимального элемента}
    for j:=i+1 to M do
      if Aver[j]<Aver[IndexMin] then IndexMin := j;

    {меняем местами элементы массива с индексами i и IndexMin
    (ну, если они не равны, конечно) }
    if i<>IndexMin then begin
      OneS := Aver[IndexMin];
      Aver[IndexMin] := Aver[i];
      Aver[i] := OneS;
      
      {а здесь мы поменяем местами два столбца!}
      Exchange(i, IndexMin)
      
    end;
  end;
  
  {выведем отсортированный двухмерный массив}
  WriteLn('--------------- RESULTAT ---------------');
  for i:=1 to n do 
  begin
     for j:=1 to m do 
       Write (b[i,j]:4);
     writeln; 
  end;
  
  {ну, и для проверки, выведем отсортированный массив 
      со среднеарифметическими значениями    }
  Write('SredArifm(');
  for j:=1 to m do
    write ( Aver[j]:5:1,',');
  WriteLn(')');

  readln;
end.

Re: Сортировка столбцов ТР

Добавлено: 25 май 2008, 23:05
Anuta
:p аааа!!!!!!!!
Serge_Bliznykov, огрооомное спасиибооо!!!!!!!!!!
и спасибо всем, кто со мной мучался и пытался мне помоочь!!!! thanks!!) ;)

Re: Сортировка столбцов ТР

Добавлено: 03 июн 2008, 20:17
Anuta
ааа... у меня проблема... нужно решить эту же задачку, с использованием библиотеки...
и совсем не понимаю, как это...
помогите пожалуйста...

Re: Сортировка столбцов ТР

Добавлено: 03 июн 2008, 20:48
MOTOCoder
Библиотеки или модуля?
По-моему, в паскале нет понятия библиотек.

Re: Сортировка столбцов ТР

Добавлено: 03 июн 2008, 21:44
somewhere
&quot писал(а):нужно решить эту же задачку, с использованием библиотеки...
может это намек идти книжки читать ;)

Re: Сортировка столбцов ТР

Добавлено: 03 июн 2008, 22:35
Anuta
MOTOCoder, хм... преподавательница сказала, с помощью библиотеки.... хотя, может она оговорилась...
somewhere, та я читала уже) у меня просто сейчас такая каша в голове... уже ничего не понимаю....=//