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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2013, 19:02   #11
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

Это сортировка методом прямого выбора,
Код:
for i:=1 to n-1 do
  Vub(a)
  writeln('sorted array');
вот сдесь опять пишет не соответсвие типов,подскажите пожалуйста, как это исправить?
lialia вне форума Ответить с цитированием
Старый 20.03.2013, 19:10   #12
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
program Laba9_1;

uses crt;

type
mas = array [1..10] of integer;

procedure Vub(var A:mas);
var i,j,n, imin, min:integer;
begin
  min:=a[1];
  imin:=1;
  for j:=1 to n do
    if min>a[j] then begin
      min:=a[j];
      imin:=j;
    end;
  a[imin]:=a[i];
  a[i]:=min;
  for j:=1 to n do
    write (a[j],' ');
  writeln;
end;

var
n,i,j:integer;
a:mas;
min,imin:integer;

begin
  clrscr;
  randomize;
  writeln('selection sort');
  writeln('enter number of components (<=10)') ;
  readln(n);
  for i:=1 to n do a[i]:=random(30);
  writeln('generated array');
  for i:=1 to n do writeln(a[i],' ');
  writeln;
  writeln('series of selection');
  for i:=1 to n-1 do
  Vub(a);
  writeln('sorted array');
  for i:=1 to n do write(a[i],' ');
  readln;
end.
Poma][a вне форума Ответить с цитированием
Старый 20.03.2013, 19:14   #13
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

спасибо,она заработала ,но вывод такой
17801 -32768 1621 7657 -31999 3198 29952 -5885 -662 32131 10 6772 30463 -244 267
8 30463 -248 1654 -6057 -1031 -15229 2826 30144 -5885 256 17803 -29944 1621 1805
7 -30226 -5034 -18455 27136 -256 2678 24203 -29700 2117 21899 774 4695 21 -29952
4703 -14029 -11273 -11785 -11485 -16093 23947 782 1623 18195 20488 22354 -31000
-31748 2756 23947 -32754 383 29696 -29756 -930 17803 -29944 1621 22275 5394 0 2
4459 13074 -2103 -2093 9169 9171 15297 2118 7538 1397 22075 29190 27158 -256 267
8 30463 -248 1654 -6057 -957 -15229 -29942 -5136 -29895 3701 31872 2305 1397 446
-5376 -235 3190 29951 -246 2164 29951 22022 18664 -31749 2756 -3957 -2549 5748
106 30463 -246 -4490 30463 22508 1768 -31748 2756 -14709 15595 24203 -29700 2117
21899 774 4695 21 -29952 4703 -14029 -11273 -11785 -11485 -16093 17979 29448 -5
885 -168 2165 22075 29446 -5885 -178 18059 -29944 1622 17801 -30456 1621 -16333
24159 -15415 -29867 -31764 1772 22358 32395 -29948 3702 -2549 3956 18059 2828 15
302 29894 -18426 26 2537 -29183 30238 22309 15848 23025 -16373 1653 32128 257 26
76 7822 14 4792 -5888 236 17803 -30454 -954 17803 -30452 -1466 30089 -29942 3142
17801 -29940 5725 30603 -29924 580 17979 32252 -29921 2118 22155 774 4692 21 -2
9952 4700 -14029 -11273 -11785 -11485 -16093 21545 6414 4164 17803 15114 580 806
2 18059 -29944 1622 21507 5394 0 23691 13074 -2103 -2093 9169 9171 449 3668 1742
5 -240 4214 30463 -246 2166 30463 22278 2280 -31749 2756 18057 -31746 -386 29696
-29856 5725 30603 -29924 2629 17467 32258 -29921 2118 22155 774 4692 21 -29952
4700 -14029 -11273 -11785 -11485 -16093 21545 6414 4164 17547 15106 -954 8061 18
059 -29944 1622 21507 5394 0 23691 13074 -2103 -2093 9169 9171 449 3668 17425 -2
9936 -954 17801 -29942 -1466 17801 -29172 3614 -29952 -442 24159 -15415 -29867 -
31764 1772 22358 24203 -29948 5703 18057 -29698
sorted array
10 9 10


это правильно?
lialia вне форума Ответить с цитированием
Старый 20.03.2013, 19:21   #14
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Кажется у Вас где-то идет переполнение..
Т.к. Ваша программа = ЧтО-ТоЕсТьНоНиЧеГоНеПоНяТнО, то могу предложить такой вариант :
Код:
type
	TArr = array [1..SIZE] of LongInt;

procedure ReadArr (var a : TArr; var n : LongInt);

var
	i : LongInt;

begin
	ReadLn (n);

	for i := 1 to n do
		Read(a[i])
end;

procedure PrintArr (const a : TArr; const n : LongInt);

var
	i : LongInt;

begin
	for i := 1 to n do
		Write (a[i], ' ');

	WriteLn;
end;


procedure Swap (var a, b : LongInt);

var
	t : LongInt;

begin
	t := a;
	a := b;
	b := t;
end;


procedure SortArr (var a : TArr; const n : LongInt);

var
	i, j, min : LongInt;

begin
	for i := 1 to n-1 do begin
		min := i;

		for j := i+1 to n do
			if a[j] < a[min] then
				min := j;

		Swap (a[i], a[min])
	end
end;


end;

var
	a : TArr;
	n : LongInt;

begin
	ReadArr (a, n);

	SortArr (a, n);

	PrintArr (a, n)
end.
Poma][a вне форума Ответить с цитированием
Старый 20.03.2013, 19:25   #15
lialia
Форумчанин
 
Регистрация: 08.12.2012
Сообщений: 116
По умолчанию

спасибо вам и Sciv
lialia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение имени процедуры из нутри самой процедуры RISagitov Microsoft Office Excel 8 28.09.2012 17:15
Использование имени процедуры в качестве параметра другой процедуры Alexey355 Помощь студентам 1 23.04.2011 13:59
закончить выполнение процедуры из тела другой процедуры Alaysor Общие вопросы Delphi 14 23.01.2011 05:26
Управляющие структуры, процедуры Function и процедуры Sub Natalo4ka Помощь студентам 0 17.05.2010 22:00
Запуск процедуры из процедуры с дополнением 1sal1 Общие вопросы Delphi 3 06.10.2008 21:54