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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 17:26   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

upd: ой, невнимательно задание прочитал, показалось надо заменить тот столбец, а не вставить после него. Тогда надо n+1. Вот правильный вариант )
Код:
//объявление переменных, заполнение массива и т.д.
k:=0;
lastcol:=0;
for i:=1 to n do 
begin
    if k=m then lastcol:=i-1;
    k:=0;
    for j:=1 to m do 
       if a[i,j]<0 then
          inc(k);
end;
if lastcol > 0 then
    for i:=1 to m do
        a[i, lastcol+1]:=0;
//вывод массива и т.д.
upd2 : точнее m+1, а не n. n — столбцы, m — строки.
upd3: тьфу, опять перепутал строки и столбцы в задании. все правильно, n+1
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 31.05.2011 в 22:41.
Alex11223 вне форума Ответить с цитированием
Старый 31.05.2011, 22:27   #12
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

const
n=5;
m=6;
var
A:array [1..m,1..n+1] of integer;
i,j,k, lastcol:integer;
begin
randomize;
j:=n;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(20)+30;
write(a[i,j],' ');
end;
writeln;
end;
k:=0;
lastcol:=0;
for i:=1 to n do
begin
if k=m then lastcol:=i-1;
k:=0;
for j:=1 to m do
if a[i,j]<0 then
inc(k);
end;
if lastcol > 0 then
for i:=1 to m do
a[i, lastcol+1]:=0;



writeln(' ');
end.
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 22:28   #13
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

посмотри, правильно теперь?

Последний раз редактировалось prelest'; 31.05.2011 в 22:31.
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 22:38   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Random
Random(201)-100 — от -100 до 100


И используй тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.05.2011, 22:54   #15
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

И используй тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении.

а как это?
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 22:59   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Когда сообщение пишешь или редактируешь сверху есть значок как символ # Он вставляет тег [CODE] [/CОDE], внутри которого код сохраняет исходное форматированние и т.д. Или можно просто вставить код, выделить и нажать на эту кнопку. Аналогично "цитата", выделение, подчеркивание и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.05.2011, 23:25   #17
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

Цитата:
const
n=5;
m=6;
var
A:array [1..m,1..n+1] of integer;
i,j,k, lastcol:integer;
begin
randomize;
j:=n;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(20)+30;
write(a[i,j],' ');
end;
writeln;
end;
k:=0;
lastcol:=0;
for i:=1 to n do
begin
if k=m then lastcol:=i-1;
k:=0;
for j:=1 to m do
if a[i,j]<0 then
inc(k);
end;
if lastcol > 0 then
for i:=1 to m do
a[i, lastcol+1]:=0;



writeln(' ');
end.
посмотри с самого начало до конца, вывод у меня не полный да?
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 23:40   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну в конце надо еще раз вывести массив, наверно. Про рандом выше написано. И цитата это не тоже самое, что
Код:
upd: а, опять строки и столбцы в выводах перепутаны. исправил
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 01.06.2011 в 00:30.
Alex11223 вне форума Ответить с цитированием
Старый 01.06.2011, 00:39   #19
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что-то туплю уже. Вот почти правильный вариант, утром исправлю если не получится или никто до утра не поправит
Код:
 const
  n = 5;
  m = 6;

var
  A: array [1..m, 1..n+1] of integer;
  i, j, k, lastcol: integer;

begin
  randomize;
  j := n;
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 100;
      write(a[i, j]:4);
    end;
    writeln;
  end;
  k := 0;
  lastcol := 0;
  for i := 1 to n do
  begin
    if k = n then lastcol := i;
    k := 0;
    for j := 1 to m do
      if a[i, j] < 0 then
        k:=k+1;
  end;
  if lastcol > 0 then
    for i := 1 to n do
      a[ i, lastcol + 1 ] := 0;
  
  writeln;
  for i := 1 to m do
  begin
    for j := 1 to n+1 do
      write(a[i, j]:4);
    writeln;
  end;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 01.06.2011 в 00:45.
Alex11223 вне форума Ответить с цитированием
Старый 01.06.2011, 02:41   #20
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
uses crt;
const n=4;{ - количество строк}
      m=3; { - количество столбцов}
var a:array[1..n,1..m+1] of integer;
    i,j,d:integer;
    f:byte;
begin
     clrscr;
     randomize;
     {заполняем матрицу случайными числами по колонкам}
     for j:=1 to m do
     begin
          {для того чтобы в матрице появлялись столбцы}
          {с отрицательными значениями, ввел понятие дельты (d)}
          {и в зависимости от значения флага (f)}
          {присваиваю значение дельты (d): 5 - разные числа}
          {или 11 - столбец с только отрицательными значениями}
          f:=random(2)-1;
          if f=0 then d:=5 else d:=11;
          for i:=1 to n do
          a[i,j] := random(10)-d;
     end;
     {выводим на экран то, что получилолсь}
     writeln('Matrix:');
     for i:=1 to n do
     begin
          for j:=1 to m do
          write(a[i,j]:3);
          writeln;
     end;
     {используем флаг для выявления отрицательности}
     {последнего столбца матрицы, f=1 когда все значения}
     {последнего столбца матрицы отрицательные}
     f:=1;
     for i:=1 to n do
     if a[i,m]>0 then
     begin
          f:=0;
          break;
     end;
     writeln;
     {выводим результат в зависимости от флага}
     writeln('Result:');
     if f=1 then
     begin
          {заполняем последний ("новый", m+1) столбец нулями}
          {хотя он итак весь нулями заполнен}
          for i:=1 to n do a[i,m+1]:=0;
          {выводим матрицу на экран}
          for i:=1 to n do
          begin
               for j:=1 to m+1 do write(a[i,j]:3);
               writeln;
          end;
     end else
          {выводим матрицу без изменений на экран}
          for i:=1 to n do
          begin
               for j:=1 to m do write(a[i,j]:3);
               writeln;
          end;
     readln;
end.
пс: только не говорите, что вы динамические массивы проходите (проходили) , а то все вышесказанное всеми будет не верным
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
обнуление kuzjaca Microsoft Office Access 7 24.02.2011 10:03
вывод номеров столбцов матрицы и подсчитать количество этих столбцов Vitalina69 Помощь студентам 2 15.02.2011 21:52
обнуление счетчика в бд Tanuska___:) БД в Delphi 2 22.01.2009 23:10
Обнуление переменной [MI_nor] Общие вопросы C/C++ 3 05.11.2008 18:01