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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2011, 22:09   #1
Programmist26
 
Регистрация: 31.07.2011
Сообщений: 9
По умолчанию массив

нужно найти произведение отрицателных чисел в массиве вот моя программа но она всегда выдает ноль
Код:
procedure TForm11.Button5Click(Sender: TObject);
 var
p,i,j:integer;
begin
  p:=1;
  begin
    for i:= 1 to 15 do
     for j:= 1 to 7  do
       if a[i,j] <0 then
           p:=p*a[i,j];
    edit5.Text:=floattostr(p);
  end;
end;



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

Последний раз редактировалось Serge_Bliznykov; 29.08.2011 в 08:19.
Programmist26 вне форума Ответить с цитированием
Старый 28.08.2011, 22:11   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Эм...а begin после p:=1; это к чему? Зачем float если p integer?

И используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.08.2011, 08:25   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

с замечаниями Alex11223 полностью согласен.

Однако это всё недочёты, которые не влияют на работоспособность данного алгоритма.

Принципиальных ошибок я не вижу.
Скорее всего в массиве НЕТ отрицательных значений, либо они лежат за пределами 15 строки и/или 7-го столбца...

И давайте код модуля полностью - как описываете массив, где Вы его заполняете и т.п....

p.s. А код я бы такое рекомендовал (внимание! Если элементы массива целые числа, то лучше p объявить как Integer и присвоение делать так edit5.Text := IntToStr(p)):
Код:
procedure TForm11.Button5Click(Sender: TObject);
var 
  p : double;
  i,j:integer;
begin
  p:=1.0;
  for i:= 1 to MaxRow do
   for j:= 1 to MaxCol  do
     if a[i,j]<0 then
           p:=p*a[i,j];
  edit5.Text := FloatToStr(p);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.08.2011, 09:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но она всегда выдает ноль
А должна выдавать 1 )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W leha_demi Помощь студентам 2 24.09.2011 18:12
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06