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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2009, 12:01   #1
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
Радость Массивы

Здравствуйте! Наткнулся на одну задачу, и застрял..

Array15. Дан массивA размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем — элементы с четными номерами в порядке убывания номеров.

В целом задача была бы легкая, но стоит "Условный оператор не использовать.".
Есть несколько идей, 1:

Код:
 i:=1; While i<n do begin
writeln(a[i]);
i:=i+2;
end;
i:=2;
While i<n do begin
writeln(a[i]);
i:=i+2;
end;
2:
Код:
m:=1;
 for i:=1 to n div 2 
 begin 
a[i]:=a[m];
m:=m+2;
decantnik вне форума Ответить с цитированием
Старый 20.09.2009, 13:47   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
program pr1;

const N = 9;
      a: array[1..N] of integer = (1, 2, 3, 4, 5, 6, 7, 8, 9);

var i: integer;

begin
i := 1;
repeat
  write(a[i],' ');
  i := i + 2;
until i > N;
i := i - 1 - (N mod 2)*2;
repeat
  write(a[i],' ');
  i := i - 2;
until i <= 0;
readln;
end.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 21.09.2009, 07:55   #3
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Код:
const
  N = 9;
  a: array[1..N] of integer = (1, 2, 3, 4, 5, 6, 7, 8, 9);

var
  i: integer;
  s
begin
  for i:=0 to ((n div 2)+(n mod 2))-1 do
    write(a[i*2+1],' ');

  writeln;

  for i:=(n div 2) downto 1 do
    write(a[i*2],' ');
  readln;
end;
Матчасть, будь она не ладна..
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 21.09.2009, 08:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Вы ребята конечно жуки хитрые, но я будь преподавателем придрался бы к такой "сортировке".

Тут минимум нужно вычислять математически.

А чтоб меня голосло вно во флуде не обвиняли предлагаю сортир пузырем без условий:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
  var i,j,k,l:integer;
   a:array[1..5] of integer;
 Procedure exc(var q,w:integer);
 var l,s,m,mx:integer;
 begin   {$o-}
   s:=q+w;
   m:=abs(q-w);
   l:=(s-m) div 2;
   q:=l;
   w:=s-l;
 end;
begin
 Randomize;
 for i:=1 to 5 do  begin a[i]:=random(100); Write(a[i]:5); end;
 // Типа сортир пузырем
   for i:=1 to 5 do begin
    for j:=1 to 4 do begin
     exc(a[j],a[j+1]);
    end;
   end;
 //********************
 writeln;
 for i:=1 to 5 do  Write(a[i]:5);
 writeln;

 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
I'm learning to live...

Последний раз редактировалось Stilet; 21.09.2009 в 08:43.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
массивы .... Sashko Общие вопросы C/C++ 3 26.03.2009 21:07
Массивы stim-12 Помощь студентам 4 11.01.2009 00:18
Массивы Студентка@ Помощь студентам 2 03.05.2008 14:32