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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 16:17   #1
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
Восклицание обнуление отрицательных столбцов

помогите пожалуйста исправить прогу, не правильно работает.
задача: Дана матрица размера M х N. После последнего столбца, содержащего только отрицательные элементы, вставить столбец из нулей. Если требуемых столбцов нет, то вывести матрицу без изменений.
программный код:
const
n=5;
m=6;
var
A:array [1..m,1..n+1] of integer;
i,j,k:integer;
begin
randomize;
j:=n;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(20);
write(a[i,j],' ');
end;
writeln;
end;

for i := 1 to m do
If (a[i,j] < 0) then
inc(k);
If (k=m) then
for i:= 1 to m do
a[i,j+1]:=0;
writeln(' ');
end.
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 16:19   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если random(20), то у вас не будет отрицательных элементов.
И используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении. Пожалуйста.
Цитата:
for i := 1 to m do
If (a[i,j] < 0) then
inc(k);
If (k=m) then
for i:= 1 to m do
a[i,j+1]:=0;
Что-то запутался тут. Вроде на верном пути, но как минимум вы проверяете только 1 столбец с j, которая осталась от прошлого цикла (т.е. последний). И после каждого столбца надо к обнулять (и, наверно, запоминать в другую переменную номер столбца если к=кол-ву элементов в столбце)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

пожалуйста напишите полностью программу исправленную
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 16:27   #4
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

измени способ проверки столбцов. в цикл for которй перебирает столбцы, закинь еще один for который перебирает все ячейки в текущем столбце. если все они меньше ноля, то запоминаешь номер столбца (заранее организуй для этого переменную) и потом после него вставляешь столбец с нолями

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

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

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

lastcol это что?
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 17:05   #7
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

не получается короче ничего(
prelest' вне форума Ответить с цитированием
Старый 31.05.2011, 17:06   #8
prelest'
Пользователь
 
Регистрация: 23.05.2011
Сообщений: 34
По умолчанию

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

Переменная, в которой "запоминается" номер последнего столбца, состоящего из отрицательных элементов. Ошибся немного там, кстати, вроде исправил.
Цитата:
A:array [1..m,1..n+1] of integer;
Тут +1 зачем?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

напиши полностью программу пожалуйста я уже сама запуталась
а что не надо +1?
prelest' вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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