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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2013, 19:56   #1
tolyanl1985
 
Регистрация: 10.11.2012
Сообщений: 9
Восклицание Ошибка в последовательности! Чё то не понимаю!

Задача № 4
Дана последовательность неотрицательных чисел, последнее из которых равно нулю, причём других равных нулю чисел в последовательности нет. Вычислить произведение положительных чисел этой последовательности.

Код:
program Posledovatelnost;
var
  a,b:integer;
begin
  Writeln('Введите через пробел последовательность положительных чисел, окончание ввода "0"');
  read(a);
  b:=1;
  while a<>0 do begin
  if a>=0 then b:=b*a;
   read(a);
  end;
  if b<>1 then writeln('Произведение положительных чисел последовательности = ',b)
  else writeln('В последовательности кроме нуля нет элементов');
end.

единственный минус при вводе последовательности "1 0" тоже выводит что в последовательности нет элементов!!!
ПОМОГИТЕ ПЛИЗ!!!

Последний раз редактировалось Stilet; 08.01.2013 в 20:44.
tolyanl1985 вне форума Ответить с цитированием
Старый 08.01.2013, 20:28   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
program Posledovatelnost;

var
  a, b: integer;
  t: boolean;

begin
  t := false;
  Writeln(
    'Введите через пробел последовательность положительных чисел, окончание ввода "0"');
  read(a);
  b := 1;
  while a <> 0 do
  begin
    if a > 0 then
    begin
      b := b * a;
      t := true;
    end;
    read(a);
  end;
  if t then
    Writeln('Произведение положительных чисел последовательности = ', b)
  else
    Writeln('В последовательности кроме нуля нет элементов');
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.01.2013, 20:50   #3
tolyanl1985
 
Регистрация: 10.11.2012
Сообщений: 9
Хорошо

ОГРОМНОЕ СПАСИБО!!!

А можете пояснить с переменной типа булеан, что именно она делает??? Заранее огромное спасибо

Последний раз редактировалось Stilet; 08.01.2013 в 21:45.
tolyanl1985 вне форума Ответить с цитированием
Старый 08.01.2013, 21:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это переключатель. Как только встречается первое положительное "а" эта переменка переключается в состояние истины, дабы в конце программы показать что среди введенных чисел были положительные. Анализировать b нельзя. поскольку оно заранее инициализируется положительным числом, поэтому правильные проггеры используют такие булевки в качестве триггера состояния системы для анализа типа "было - не было".
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2013, 21:46   #5
tolyanl1985
 
Регистрация: 10.11.2012
Сообщений: 9
По умолчанию

Спасибо ОГРОМНОЕ!!!
tolyanl1985 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не понимаю где ошибка((( Юлия- Общие вопросы C/C++ 2 15.12.2012 15:13
Не понимаю где ошибка ВДПУ Помощь студентам 2 21.11.2011 20:50
Не понимаю в чём ошибка Eldrich JavaScript, Ajax 2 05.02.2011 01:50
Не понимаю в чём ошибка levandowskiy Общие вопросы C/C++ 3 23.08.2009 12:48
Не понимаю в чём ошибка Editor Общие вопросы Delphi 4 24.04.2008 08:00