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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2009, 05:37   #1
Ominous48
 
Регистрация: 18.05.2009
Сообщений: 6
По умолчанию Матрицы. Сортировка

Здраствуйте. Имеется задача: Даны три матрицы целого типа произвольной размерности(размер вводится пользователем). Для каждой матрицы отсортировать строки в порядке убывания их минимальных элементов(метод вставок). Могли бы Вы мне помочь с решение данной задачи? и ещё небольшой вопрос: как сделать, чтобы если в матрицы вводишь вместо цифры букву, то программу не выкидывало с ошибкой, а просто написало бы: Введите число, а не букву или что нить типо такого. Заранее премного благодарен.
Ominous48 вне форума Ответить с цитированием
Старый 18.05.2009, 09:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Могли бы Вы мне помочь с решение данной задачи?
Посмотри внизу страницы ссылки на подобные темы. Самый популярный вид сортировки - пузырек, вот его и забей в поиск, уже обсуждалось много раз с примерами, или на DelphiWorld зайди там есть примеры
Цитата:
как сделать, чтобы если в матрицы вводишь вместо цифры букву, то программу не выкидывало с ошибкой,
Ну например вводить так:
Код:
readln(s); {читаем в строку}
val(s,i,e); {пробуем перевести введенное в строку. Если перевелось то в i - будет число а в e - 0, иначе в е <>0}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2009, 09:51   #3
Ominous48
 
Регистрация: 18.05.2009
Сообщений: 6
По умолчанию ...

Пузырёк то я много раз встречал, а мне именно метод "вставок" нужен(
Ominous48 вне форума Ответить с цитированием
Старый 18.05.2009, 11:29   #4
Ominous48
 
Регистрация: 18.05.2009
Сообщений: 6
По умолчанию

Код:
program mn;
uses crt;
Var f:array[1..20,1..20] of integer;
    n,i,j,max,min,jmax,jmin,k,l,b:integer;
begin
clrscr;
WRITE('Vvedite razmer matricy n=');
READLN(N);
FOR I := 1 TO N DO
FOR J := 1 TO N DO
  Begin
    WRITE('f[', I, ',', J, '] ');
    READLN(f[I, J])
   End;
clrscr;{после ввода экран лучше очистить и вывести нормально матрицу}
writeln('Ishodnaya matrica:');
For I := 1 To N Do
   Begin
    For J := 1 To N Do
    Write(f[I,J]:5);
    WriteLn;
   End;
for i:=1 to n do
   begin
    min:=f[i,1];jmin:=1;
    for j:=1 to n do
    if f[i,j]<min then
        begin
         min:=f[i,j];{находим мин}
         jmin:=j;{его номер в строке}
        end;
    if jmin>1 then {если минимальный не первый}
      begin
        l:=f[i,jmin];{запоминаем его значение}
        for k:=jmin downto 2 do f[i,k]:=f[i,k-1];{сдвигаем к нему(вправо) строку, он исчезает}
        f[i,1]:=l;{записываем его на первое место}
      end;
    max:=f[i,1];jmax:=1;
    for j:=1 to n do
    if f[i,j]>max then {то же с максимальным, только сдвиг влево и запись на последнее место}
        begin
         max:=f[i,j];
         jmax:=j;
        end;
    if jmax<n then
       begin
         b:=f[i,jmax];
         for k:=jmax to n-1 do f[i,k]:=f[i,k+1];
         f[i,n]:=b;
       end;
  end;
writeln;
writeln('Rezultat:');
For I := 1 To N Do
  Begin
    For J := 1 To N Do
    Write(f[I,J]:5);
    WriteLn;
  End;
readln
end.
Я этак понял это сортировка пузырьком?
Ominous48 вне форума Ответить с цитированием
Старый 18.05.2009, 11:36   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не очень похоже не пузырек...
Ну и вставками тоже примеры были.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2009, 11:51   #6
Ominous48
 
Регистрация: 18.05.2009
Сообщений: 6
По умолчанию

Так...ладно..допустим для этого примера мне нужно сделать при запуске окошко с выбором действий (ввод данных, загрузка, сохранение, выход) с помощью процедур. как бы это осуществить? и кстати сохранение и загрузка данных для него будет выглядеть так?
Код:
assign(a,'basa.txt');
  append(a);
  writeln(a,'');
  writeln(a,'Matrica');
Цитата:
assign(a,'basa.txt');
reset(a);
While not EOF(a) do
begin
readln(a,s);
writeln(s);
Ominous48 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка матрицы по спирали {pascal} Влдислаав3911 Помощь студентам 3 10.04.2012 22:05
c++ сортировка матрицы Aion Помощь студентам 10 15.05.2009 14:30
сортировка строк матрицы aurora_87 Общие вопросы C/C++ 3 23.04.2009 12:29
сортировка стоблцов матрицы по убыванию сумм их элементов rev1ver Паскаль, Turbo Pascal, PascalABC.NET 6 14.01.2009 19:18