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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2010, 17:12   #1
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
Восклицание массивы

помогите пожалуйста Написать программу! Условие:
переставить в обратном порядке часть массива между
элементами с номером k1 и k2, включая их. Сделать проверку корректности ввода k1 и k2, если ввод не правильный, то ничего не делать.

заранее Спасибо за помощь.
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.
Voldemort93 вне форума Ответить с цитированием
Старый 03.11.2010, 17:13   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const n=5;
var a:array[1..n] of Integer;
    k1,k2,i,r:Integer;
    f:Boolean;
begin
  Randomize;
  writeln('   -=YouR OlD ArraY=-');
  for i:=1 to n do begin
    a[i]:=random(15)+2;
    write(a[i]:4);
  end;
  Writeln;
  Write('k1=');
  readln(k1);
  Write('k2=');
  readln(k2);
  f:=true;
  if (k1<1) or (k2<1) or(k1>n) or (k2>n)  then f:=False;
  if k1>=k2 then f:=False;
  r:=k2-k1;
  if Odd(r) then r:=r div 2 +1
  else r:=r div 2;
  if f then begin
    for i:=k1 to k1+r-1 do
      begin
        a[i]:=a[i]+a[k2];
        a[k2]:=a[i]-a[k2];
        a[i]:=a[i]-a[k2];
        dec(k2);
      end;
      writeln;
      writeln('    -=New ArraY=-');
      for i:=1 to n do begin
        write(a[i]:4);
      end;
  end
  else Writeln('Array is not changed');
  Readln;
end.
Ручной ввод массива и размерности
Код:
uses crt;
var a:array[1..100] of Integer;
    k1,k2,i,r:Integer;
    f:Boolean;
    n:Integer;
begin
  write('n=');
  readln(n);
  for i:=1 to n do
  begin
    Write('[',i,']=');
    readln(a[i]);
  end;
  clrscr;
  writeln('   -=YouR OlD ArraY=-');
  for i:=1 to n do begin
    write(a[i]:4);
  end;
  Writeln;
  Write('k1=');
  readln(k1);
  Write('k2=');
  readln(k2);
  f:=true;
  if (k1<1) or (k2<1) or(k1>n) or (k2>n)  then f:=False;
  if k1>=k2 then f:=False;
  r:=k2-k1;
  if Odd(r) then r:=r div 2 +1
  else r:=r div 2;
  if f then begin
    for i:=k1 to k1+r-1 do
      begin
        a[i]:=a[i]+a[k2];
        a[k2]:=a[i]-a[k2];
        a[i]:=a[i]-a[k2];
        dec(k2);
      end;
      writeln;
      writeln('    -=New ArraY=-');
      for i:=1 to n do begin
        write(a[i]:4);
      end;
  end
  else Writeln('Array is not changed');
  Readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 03.11.2010 в 18:37.
Mad_Cat вне форума Ответить с цитированием
Старый 03.11.2010, 17:15   #3
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
По умолчанию

надо на паскале!
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.
Voldemort93 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Массивы Оленька=) Помощь студентам 11 23.02.2010 20:14
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12