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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2008, 20:34   #1
P@niSheR
 
Аватар для P@niSheR
 
Регистрация: 05.12.2008
Сообщений: 3
По умолчанию Помогите решить задачу в паскале

нужно исправит этот отрывок проги так чтобы каждый нечетный раз прохода по циклу нйденый максимум записывался бы на в начало масива а каждый четный раз прохода по циклу он бы записывался в конец масива

procedure sort(var d:mas;k:integer);
begin
for k1:=1 to k-1 do
begin
max:=-maxint;
for i:=k1 to k do
if d[i]>max then begin
max:=d[i];
nmax:=i;
end;
d[nmax]:=d[k1];
d[k1]:=max;
end;
end;
P@niSheR вне форума Ответить с цитированием
Старый 07.12.2008, 23:18   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот нарисовал такую штуку, разбирайся.
uses crt;
var a:array[1..100] of integer;
n,i,j,max,jmax,k:integer;
begin
clrscr;
randomize;
write('n=');readln(n);
for i:=1 to n do
begin
a[i]:=random(20);
write(a[i],' ');
end;
writeln;
for i:=1 to n do
begin
max:=-maxint-1;jmax:=1;
if odd(i) then //если нечетное i
begin
for j:=(i div 2)+1 to n-(i div 2) do
if a[j]>max then
begin
max:=a[j];
jmax:=j;
end;
for k:=jmax downto (i div 2)+2 do
a[k]:=a[k-1];
a[(i div 2)+1]:=max;//каждый нечетный максимальный ставим 1,2,3...
end;
max:=-maxint-1;jmax:=1;
if not odd(i) then //если четное i
begin
for j:=(i div 2)+1 to n-((i-1) div 2) do
if a[j]>max then
begin
max:=a[j];
jmax:=j;
end;
for k:=jmax to n-((i-1) div 2)-1 do
a[k]:=a[k+1];
a[n-((i-1) div 2)]:=max;//каждый четный максимум ставим n,n-1,n-2....
end;
end;
for i:=1 to n do
write(a[i],' ');
readln
end.
P.S. Тэги Code не ставятся.

Последний раз редактировалось puporev; 07.12.2008 в 23:22.
puporev вне форума Ответить с цитированием
Старый 08.12.2008, 18:48   #3
P@niSheR
 
Аватар для P@niSheR
 
Регистрация: 05.12.2008
Сообщений: 3
По умолчанию

спасибо ))))
P@niSheR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу в ПАСКАЛЕ triston Помощь студентам 3 17.11.2008 17:46
Помогите пожалуйста решить задачу в Паскале Alfons Помощь студентам 1 19.02.2008 21:07
Помогите решить задачу в Паскале freeman4913 Помощь студентам 3 24.12.2007 21:41
Помогите решить задачу на паскале! jst.denis Помощь студентам 2 28.10.2007 11:13