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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2014, 20:37   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

1) Не нужно пробелов в теге [CODE]
2) Чуть поправил:
Код:
const
  n = 5;
  m = 10;
var
  a: array[1..n, 1..m] of integer;
  i, j, k: integer;
begin
  randomize;
  k := 0;
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i,j] := random(199) - 99;
      write(a[i,j]:4);
      if a[i, j] > 0 then
        inc(k)
      else if a[i, j] < 0 then
        dec(k);
    end;
    writeln;
  end;
  if k = 0 then
    for j := 1 to m do
      write(a[1, j], ' ')
  else
    write(0);
  readln;
end.
3) Программа выводит ноль, если количество не совпадает, чтобы оно совпало при случайном заполнении, должно повезти
4) А что в условии говорит о том, что нужно проверять только первую строку? Действие-то может быть произвольным.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 08.02.2014, 20:49   #12
Julia1
Пользователь
 
Регистрация: 03.02.2014
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
1) Не нужно пробелов в теге [CODE]
2) Чуть поправил:
Код:
const
  n = 5;
  m = 10;
var
  a: array[1..n, 1..m] of integer;
  i, j, k: integer;
begin
  randomize;
  k := 0;
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i,j] := random(199) - 99;
      write(a[i,j]:4);
      if a[i, j] > 0 then
        inc(k)
      else if a[i, j] < 0 then
        dec(k);
    end;
    writeln;
  end;
  if k = 0 then
    for j := 1 to m do
      write(a[1, j], ' ')
  else
    write(0);
  readln;
end.
3) Программа выводит ноль, если количество не совпадает, чтобы оно совпало при случайном заполнении, должно повезти
4) А что в условии говорит о том, что нужно проверять только первую строку? Действие-то может быть произвольным.
1)я проверяла везение )) когда в первой строчки было равное количества положительных и отрицательных, но она мне её не выводила на экран хотя и по сути всё должно быть верно!?
2) зачем совершать лишнюю работу если от нас требуется только проверять первую строчку?
Julia1 вне форума Ответить с цитированием
Старый 08.02.2014, 21:10   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

1) Эта программа проверяет равенство количества положительных и отрицательных элементов по всей матрице, а не по первой строке (совпадение количества в первой строке не значит совпадения количества во всей матрице)
2) Это не лишняя работа, в условии ничего про первую строчку нет
Это выглядит так: если а, то б, иначе с
где
а - количество отрицательных элементов = количеству положительных
б - вывести первую строку
с - в данном случае его нет (а в код оно пробралось из другого условия задачи)

Хорошо, вот другой код:
Код:
const
  n = 5;
  m = 10;
var
  a: array[1..n, 1..m] of integer;
  i, j, k: integer;
begin
  randomize;
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i,j] := random(199) - 99;
      write(a[i,j]:4);
    end;
    writeln;
  end;
  k := 0;
  for j := 1 to m do
    if a[1, j] > 0 then
      inc(k)
    else if a[1, j] < 0 then
      dec(k);
  if k = 0 then
    for j := 1 to m do
      write(a[1, j], ' ')
  else
    write(0);
  readln;
end.
Теперь он проверяет только первую строчку, но мой вопрос про условие задачи в 7 посте был не просто так.

UPD
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 08.02.2014 в 21:32.
BDA на форуме Ответить с цитированием
Старый 08.02.2014, 21:28   #14
Julia1
Пользователь
 
Регистрация: 03.02.2014
Сообщений: 14
Хорошо Спасибо))

Даниил Спасибо большое за объяснение! вы мне очень помогли!

Последний раз редактировалось Julia1; 08.02.2014 в 21:34.
Julia1 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему выдает ошибку??? marales Помощь студентам 6 30.12.2012 16:17
Выдает ошибку [Error] Unit1.pas(46): Method identifier expected ckbdf16 Помощь студентам 5 24.06.2011 09:22
Выдает ошибку [Warning] Unit1.pas(225): FOR-Loop variable Neroaz Общие вопросы Delphi 8 26.03.2010 02:20
при поиске по базе выдает ошибку - Пропущен оператор в выражении frai БД в Delphi 1 09.11.2007 23:01