![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.01.2010
Сообщений: 11
|
![]()
в программу вводим нули,единицы,двойки
выводим эти числа по порядку,то есть сначала все нули,потом единицы,потом двойки... const n=10; procedure swap(var a,b:integer);{процедура,которая меняет два элемента в массиве} var c: integer;{a,b-элементы массива,c-коробочка,нужная для перестановки элементов} begin c:=a; a:=b; b:=c; end; var l,m,r,b,i:integer; a: array[1..n] of integer; begin for i:=1 to n do read(a[i]); b:=1; l:=0; m:=0; r:=n; {инвариант: a[1..l]<b; a[l+1..m]=b; a[r+1]..a[n]>b} while m <> r do begin if a[m+1]=b then begin m:=m+1; end else if a[m+1]>b then begin swap(a[m+1],a[r]); r:=r-1; end else begin {a[m+1]<b} swap(a[m+1],a[l+1]); l:=l+1; m:=m+1; end; end; for i:=1 to n do write(a[i], ' '); end. можете пож-ла прокомментировать каждую выделенную строку после строки инвариант и до двух end... и объяснить мне по какому принципу работает эта программа? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычислить номер по перестановке | WOWka777 | Общие вопросы C/C++ | 2 | 08.04.2011 18:27 |
Внесение данных по порядку | Dog_DinGo | Microsoft Office Excel | 2 | 25.03.2011 20:03 |
Стек, вивести у зворотньому порядку | Sonne_asja | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.03.2011 15:14 |
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов | Strax | Фриланс | 11 | 12.06.2010 20:13 |
как посчитать даты по порядку? | Vorchun | Microsoft Office Excel | 4 | 27.11.2008 21:32 |