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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 20:59   #1
Alexsssandr
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 12
Сообщение Массив

Дан одномерный массив из 15 элементов. Переставить в обратном порядке элементы, расположенные между k -м и s -м элементами (т. е. с ( k + 1)-го по ( s -1)-й). Значения k и s вводятся с клавиатуры, k < s .

const n=15;
var a:array[1..n] of integer; i,j,k,s,buf,c:integer;
begin
randomize;
for i:=1 to n do
begin
a[i]:=random(20);
write(a[i]:3);
end;
writeln;
c:=0;
k:=0;
s:=n+1;
j:=((s+k) div 2);
for i:=k+1 to j do
begin
buf:=a[i];
a[i]:=a[s-c-1];
a[s-c-1]:=buf;
inc(c);
end;
for i:=1 to n do write(a[i]:3);
writeln;
readln;
end.

Но я не могу изменить программу чтоб работало верно при вводе k и s с клавиатуры.....
Alexsssandr вне форума Ответить с цитированием
Старый 17.02.2010, 21:52   #2
edmynt
Пользователь
 
Аватар для edmynt
 
Регистрация: 03.06.2009
Сообщений: 83
По умолчанию

Вот на мой взгяд самы аптимальный вариант
Код:
program proga;
uses crt;
const n=15;
var
   a:array[1..n] of integer;
   i,k,s,buf,buf2,j:integer;
begin
     randomize;
     for i:=1 to n do
         begin
              a[i]:=random(10);
              write(a[i]:3);
         end;
     writeln;
     writeln ('Enter nambers elements');
     readln(k,s);
     if (k<1)or(k>s)or(s>n) then
        begin
             writeln('No valid nambers');
             readkey;
             exit;
        end;
       j:=k;
     for i:=s-1 downto k+1 do
         begin
              inc(j);
            if i<=j then
               begin
               break;
               end;
            buf:=a[i];
            buf2:=a[j];
            a[i]:=buf2;
            a[j]:=buf;

         end;
         writeln;
         for i:=1 to n do
             begin
             write (a[i]:3);
             end;
         readkey;
end.
edmynt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Массив WiNNi Помощь студентам 4 16.10.2009 19:00
Массив =\ ZeroQl Помощь студентам 2 06.03.2009 20:34
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06