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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 15:12   #1
Invok
Новичок
Джуниор
 
Регистрация: 12.04.2012
Сообщений: 4
По умолчанию Ошибочка в лазарусе

Вот сама задача - Определить, сколько раз последовательность из N
произвольных чисел меняет знак.

Код=>
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
N,A,B,i,k:integer;
S:string;
begin
N:=StrToInt(Edit1.Text);
S:=InputBox('Ввод   элементов   последовательности', 'Введите число. 0 конец последовательности ','');
A:=StrToInt(S);
k:=0;
for i:=1 to N do
begin
S:=InputBox('Ввод элементов последовательности', 'введите число. 0 конец последовательности ','');
A:=StrToInt(S);
if (i<>1) then
if A*B<0 then
k:=k+1;
B:=A;
end;
MessageDlg('K = '+IntToStr(k),MtInformation,[mbOk],0);
end;
и водя любые значения, всегда выдает K=O.



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

Последний раз редактировалось Serge_Bliznykov; 12.04.2012 в 16:59.
Invok вне форума Ответить с цитированием
Старый 12.04.2012, 18:09   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
A,B,i,k:integer;
S:string;
begin
  k:=0;
  A:=1;
  B:=0;
  while A<>0 do
  begin
    S:=InputBox('Ввод элементов последовательности', 'введите число. 0 конец последовательности ','');
    A:=StrToInt(S);
    if (A<>0)and(A*B<0) then
    begin
      k:=k+1;
      B:=A;
    end;
  end;
  MessageDlg('K = '+IntToStr(k),MtInformation,[mbOk],0);
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.04.2012, 19:23   #3
Invok
Новичок
Джуниор
 
Регистрация: 12.04.2012
Сообщений: 4
По умолчанию

Также всегда выдает K=0
Invok вне форума Ответить с цитированием
Старый 12.04.2012, 19:34   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
A,B,i,k:integer;
S:string;
begin
  k:=0;
  A:=1;
  B:=0;
  while A<>0 do
  begin
    S:=InputBox('Ввод элементов последовательности', 'введите число. 0 конец последовательности ','');
    A:=StrToInt(S);
    if (A<>0)and(A*B<0) then
      k:=k+1;
    B:=A;
  end;
  MessageDlg('K = '+IntToStr(k),MtInformation,[mbOk],0);
end;
(Проверил в Дельфи)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.04.2012, 22:05   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
if A*B<0 then
Приоритеты какие?
Надежнее if (A*B)<0 then
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать 2 программы в лазарусе Евгения18 Помощь студентам 0 14.12.2011 20:58
Сделать в Лазарусе Ne1StoM Помощь студентам 5 18.11.2011 11:20
Ошибочка... Crabobass Общие вопросы Delphi 5 05.05.2011 09:18
Проект на лазарусе! makklovskiy Помощь студентам 6 14.01.2010 17:24
StringGrid ошибочка Йогурт Общие вопросы Delphi 3 08.05.2009 14:07