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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2010, 16:56   #1
Student30
Новичок
Джуниор
 
Регистрация: 21.09.2010
Сообщений: 1
Восклицание Исправьте программу

Я тут программу написал чтоб она вставляла столбец из нулей,смещая остальные вправо.
Исправьте программу,чтоб она всталяла перед всеми столбцами, в которых нет отрицательных элементов, второй столбец.
Просто я тока с сентября начал изучать программирование и мне не совсем понятна предыдущая программа
Помогите пожалуйста!!!
Код:
program lr6;
var mas:array[1..100,1..100] of integer;
k1,i,j,m,n:integer;
begin
writeln('Введите размерность матрицы: ');
write('n= ');readln(n);
write('m= ');readln(m);
randomize;
for i:=1 to n do
for j:=1 to m do begin
mas[i,j]:=random(30)-10;
end;
writeln('Матрица*');
for i:=1 to n do begin
for j:=1 to m do begin
write(mas[i,j]:5);
end;
writeln;
end;
begin
for i:=1 to n do
for j:=m downto k1+1 do
mas[i,j+1]:=mas[i,j];
for i:=1 to n do
mas[i,k1+1]:=0;
end;
writeln('Измененная матрица*');
for i:=1 to n do begin
for j:=1 to m do begin
write(mas[i,j+1]:5);
end;writeln;
end;
readln;
end.
From Stilet: Не лезь в чужую тему!

Последний раз редактировалось Stilet; 21.09.2010 в 17:09.
Student30 вне форума Ответить с цитированием
Старый 21.09.2010, 18:55   #2
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Не проверял.

Код:
program lr6;

var
  mas:array[1..100,1..100] of integer;
  k1,i,j,m,n:integer;
  b:boolean;

begin
  writeln('Введите размерность матрицы: ');
  write('n= ');
  readln(n);
  write('m= ');
  readln(m);
  randomize;
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      mas[i,j]:=random(30)-5;
    end;
  end;

  writeln('Матрица*');
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      write(mas[i,j]:5);
    end;
    writeln;
  end;

  j:=1;
  while j<=m do
  begin
    b := false;
    i := 1;
    for i := 1 to n do
    begin
      if mas[i,j] < 0 then
      begin
        b := true;
        break;
      end;
    end;
    if b then
    begin
      for k1 :=m downto j do
      begin
        for i := 1 to n do
        begin
          mas[i,k1+1]:=mas[i,k1];
          mas[i,k1]:=0;
        end;
      end;
      inc(m);
      inc(j);
    end;
    inc(j);
  end;

  writeln('Измененная матрица*');
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      write(mas[i,j]:5);
    end;
    writeln;
  end;
  readln;
end.
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 21.09.2010, 19:19   #3
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

не
Код:
 if b then
а
Код:
if not(b) then
и сказано второй столбец вставлять а не столбец из нулей
にんじゃ

Последний раз редактировалось ROMA2PVT; 21.09.2010 в 19:28.
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправьте программу в паскале. Figushkin Помощь студентам 4 26.05.2010 17:14
Исправьте программу для определения минимального элемента линейного массива Х Figushkin Помощь студентам 1 22.05.2010 09:23
Исправьте пожалуйста программу Алексей_xXx Помощь студентам 2 29.05.2009 05:11
проверьте программу плиз и исправьте что там не так Gronex Помощь студентам 3 21.05.2009 17:01
Исправьте программу плиз! Турбопаскаль. maxiswell Помощь студентам 2 08.01.2009 18:21