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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 22:42   #1
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
Вопрос Как поменять последний и передостаний столбики в массиве

Разработайте алгоритм и программу, которые в двумерном массиве размерностью 4 на 3 меняют местами последний и передостаний столбце. Обеспечить вывод на экран массива в виде таблицы до и после преобразования.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
  const n=3; m=4;
  var t:array[1..n,1..m] of integer;
  i,j, dob: integer;
begin
  randomize;
  writeln('Nash maduv');
  for i:=1 to n do
    for j:=1 to m do
    begin
   t[i,j]:=random(50)-25
   end;
   for i:=1 to n do
    begin
    for j:=1 to m do
    write(t[i,j]:5);
    writeln;
    end;

    for i:=1 to n do
    for j:=1 to m do
     begin
     if (j>3) and (i>0)then
     dob:=t[i,j];
     t[i,j]:=t[i,j+1];
      t[i,j+1]:=dob;
      end;
      writeln;
      for i:=1 to n do
    begin
    for j:=1 to m do
    write(t[i,j]:5);
    writeln;
    end;
    readln
end.
Я сделал, но оно меняет все столбики.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 01.06.2011 в 08:39.
ВДПУ вне форума Ответить с цитированием
Старый 31.05.2011, 23:13   #2
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

Если
Цитата:
передостаний
- это предпоследний, то так:
Код:
for i := 1 to n do
begin
    dob := t[i, m - 1];
    t[i, m - 1] := t[i, m];
    t[i, m] := dob; 
end;
_Alerter_ вне форума Ответить с цитированием
Старый 31.05.2011, 23:38   #3
ВДПУ
Пользователь
 
Регистрация: 09.02.2011
Сообщений: 37
По умолчанию

нет, так тож не верно(
ВДПУ вне форума Ответить с цитированием
Старый 01.06.2011, 09:16   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ВДПУ
нет, так тож не верно(
ищите у себя в коде проблему!

код, предложенный _Alerter_ делает ровно то, о чём Вы просили!


Код:
const
  n=3; m=4;

var
  t:array[1..n,1..m] of integer;
  i,j, dob: integer;

procedure PrintMatrix;
begin
   for i:=1 to n do
    begin
      for j:=1 to m do
        write(t[i,j]:5);
      writeln;
    end;
end;

begin
  randomize;
  writeln('Nash maduv');

  // заполнение матрицы
  for i:=1 to n do
    for j:=1 to m do
       t[i,j]:=random(50)-25;

  WriteLn('Ishodnyi massiv: ');
  PrintMatrix;

  // меняем последний и предпоследний столбцы местами
  for i := 1 to n do
  begin
    dob := t[i, m - 1];
    t[i, m - 1] := t[i, m];
    t[i, m] := dob;
  end;

  WriteLn('Posle zameny: ');
  PrintMatrix;

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal.поменять местами первый и последний символ в последнем слове Kris92 Помощь студентам 5 07.07.2010 14:00
В массиве T(k) найти первый и последний нулевые элементы farrrell Фриланс 4 07.04.2010 20:47
Поменять столбцы в массиве Wildstudent Паскаль, Turbo Pascal, PascalABC.NET 5 16.06.2009 16:33
задача поменять в массиве max элемент с первым, но меняет как то не так.. почему? Валюшка Помощь студентам 2 21.01.2009 01:46
Как поменять местами в массиве max и min элемент. Stager Общие вопросы C/C++ 2 13.01.2009 02:03