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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2009, 23:25   #1
ЖориккккЁЁЁ
Новичок
Джуниор
 
Регистрация: 23.01.2009
Сообщений: 1
Восклицание помогите решить задачу в паскале (срочно нуна)

Proc30. Описать процедуру MoveLeft(A,N,k)1|MoveRight(A,N,k)2, осуществляющую циклический сдвиг элементов вещественного массива A размера N на k позиций влево1|вправо2 (0 < k < 5, k < N). Массив A — входной и выходной параметр, N и k — входные параметры. С помощью этой процедуры осуществить сдвиг элементов данного массива размера N на k1 позиций, а затем — сдвиг элементов полученного массива на k2 позиций (k1 и k2 даны). После каждого вызова процедуры выводить на экран результирующий массив.
ЖориккккЁЁЁ вне форума Ответить с цитированием
Старый 23.01.2009, 23:25   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

http://programmersforum.ru/showthrea...F1%F1%E8%E2%E0
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 24.01.2009, 05:54   #3
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

вот код я писал - тут сдвиг на позиции вправо циклически и вниз циклически:
Код:
program capta1n;
uses crt;
label 1;
const
 m = 5;
 v = 3;
type
 x = 1..m;
 y = 1..v;
 item = array [x,y] of integer;
var
 a : item;
 i : x;
 k : y;
 n,l : byte;
 j : integer;
 c : integer;
begin

  clrscr;
  randomize;
  writeln ('Vasha matrica: ');
  for i:=1 to m do
  begin
    for k:=1 to v do
    begin
      a[i,k]:=random(10);
      write (a[i,k],'|')
    end;
    writeln
  end;
  writeln;

  write ('Vvedite N= '); readln (n);
1:write ('Vvedite rejim sdviga: vpravo - 1; vniz - 2   '); readln(j);

  case j of
  1 : begin
        n:=n mod v;
        for i:=1 to m do
         for l:=1 to n do
         begin
           c:=a[i,v];
           for k:=v downto 2 do a[i,k]:=a[i,k-1];
           a[i,1]:=c
         end
      end;
  2 : begin
        n:=n mod m;
        for k:=1 to v do
         for l:=1 to n do
         begin
           c:=a[m,k];
           for i:=m downto 2 do a[i,k]:=a[i-1,k];
           a[1,k]:=c
         end
      end
 else begin
        writeln ('Neverniy vvod!');
        goto 1
      end

  end;


  writeln ('Noviy massiv: ');
  for i:=1 to m do
  begin
    for k:=1 to v do write (a[i,k],'|');
    writeln
  end;

  readln

end.
capta1n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно решить еще задачу в паскале! Срочно Lenochka082 Помощь студентам 4 19.01.2009 16:26
Помогите решить задачу в паскале P@niSheR Помощь студентам 2 08.12.2008 18:48
Помогите решить задачу на Паскале плизз срочно нужно!!!! NTFS Паскаль, Turbo Pascal, PascalABC.NET 2 15.03.2008 21:28
Помогите решить задачу на паскале! jst.denis Помощь студентам 2 28.10.2007 11:13