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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2015, 15:25   #1
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

Сортировка одномерного и двумерного массивов методом пузырька и методом выбора.Размер массива вводить с клавиатуры, вывод массива построчно и заполнение массива рандомно, т.е случайным образом

Одномерный массив(метод пузырька) правильно?
Код:
Program Sort;
Const
Nmax = 100;
Var
  X : Array [1..Nmax] Of Real;
  A : Real;
  n, k, i : Integer;

Begin
Writeln('Введите количество чисел');
Readln(n);
For i := 1 To n Do X[i]:=random(100);
{ Сортировка }
For k := 1 To n-1 Do
   For i := 1 To n-1 Do
     If X[i] > X[i+1] Then
       Begin
         A:=X[i];
         X[i]:=X[i+1];
         X[i+1]:=A
       End;
Writeln('Отсортированный массив чисел:');
For i:=1 To n Do
Write (X[i], ' ' );
End.
программа сортировки выбором одномерного массива
Код:
program Sort_Vybor1;
var A:array[1..100] of integer;
N,i,m,k,x : integer;

begin
write('количество элементов массива ');
read(N);
for i:=1 to n do A[i]:=random(100);
for k:=n downto 2 do {k- количество элементов для поиска max }
   begin
    m:=1; { m - место max }
    for i:=2 to k do if A[i]>A [m]then m:=i;
    {меняем местами элементы с номером m и номером k}
    x:=A[m]; A[m]:=A[k]; A[k]:=x;
   end;
for i:=1 to n do write(A[i],' '); {упорядоченный массив}
end.
From Stilet: Код выделяй спецтегом. Уважай форумчан.

Последний раз редактировалось Stilet; 04.12.2015 в 15:51.
Greschnik вне форума Ответить с цитированием
Старый 04.12.2015, 15:47   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

да правильно.
только код нужно оформлять правильно между тегами
[СODE]
[/СODE]
П.С. правила форума
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 04.12.2015, 15:49   #3
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

Помогите с двумерным массивом)

Для двумерного массива(пузырьковый) правильно?
Код:
const 
  nmax = 100; 
var 
  a:array[1..n] of integer;
  i,j,buf:integer;
begin
   {Заполняем массив случайными целыми числами из диапазона от 0 до 9 и выводим массив на экран}
  for i:=1 to n do
    begin
      a[i]:=random(100);
      write(a[i],' '); 	 	
    end;	
  for i:=1 to n-1 do 
    for j:=i+1 to n do {В этой строке начинающие программисты чаcто допускают ошибку}
      if a[i]>a[j] then 
        begin
          buf:=a[i]; 
          a[i]:=a[j]; 
          a[j]:=buf;
        end;
  writeln;
  writeln('Массив после сортировки пузырьковым методом: ');
  for i:=1 to n do 
    write(a[i],' ');
end.

Последний раз редактировалось Stilet; 04.12.2015 в 20:56.
Greschnik вне форума Ответить с цитированием
Старый 04.12.2015, 20:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Для двумерного массива(пузырьковый) правильно?
Неа.
Код:
const 
  nmax = 100; 
var 
  a:array[1..n,1..n] of integer;
  i,j,k,buf:integer;
begin
   {Заполняем массив случайными целыми числами из диапазона от 0 до 9 и выводим массив на экран}
  for i:=1 to n do for j:=1 to n do
    begin
      a[i,j]:=random(100);
      write(a[i,j],' '); 	 	
    end;	
  for i:=1 to n do 
    for j:=1 to n do 
     for k:=1 to n do 
      if a[i,k]>a[i,j] then 
        begin
          buf:=a[i,j]; 
          a[i,j]:=a[j,k]; 
          a[j,k]:=buf;
        end;
  writeln;
  writeln('Массив после сортировки пузырьковым методом: ');
  for i:=1 to n do for j:=1 to n do
    write(a[i,j],' ');
end.
Если не ошибаюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.12.2015, 12:31   #5
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

а метод выборки,помогите с ним разобраться
Greschnik вне форума Ответить с цитированием
Старый 05.12.2015, 15:27   #6
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Пояснение к идее сортировки матриц.
После этого, берёшь любую сортировку (выбором, шейкер и прочие) и путём замены A[i] на M[..., ...] получаешь сортировку.
FPaul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переписать в массив C(n) положительные элементы массива b(n) делённые на 2 . Со сдвигом (сжатием) массива. SnS Lazarus, Free Pascal, CodeTyphon 4 29.09.2013 00:21
Сортирока записей в БД Delphi Climber-18 Помощь студентам 9 18.02.2013 11:49
инициализация массива, вывод массива и обработка массива должны быть реализованы с помоshью функций airesjke Помощь студентам 0 02.03.2012 16:14
Pascal: Составить программу генерирования массива B, состящего из отрицательных элементов массива a mrRastom Помощь студентам 2 15.01.2011 14:33
Сортирока таблицы Юлькин Общие вопросы C/C++ 2 01.06.2009 20:40