Произведение Чисел В Последовательности

Тема в разделе "Pascal and Delphi", создана пользователем tolyanl1985, 19 ноя 2012.

  1. tolyanl1985

    tolyanl1985 New Member

    Регистрация:
    19 ноя 2012
    Сообщения:
    4
    Симпатии:
    0
    Дана последовательность неотрицательных чисел, последнее из которых равно нулю, причём других равных нулю чисел в последовательности нет. Вычислить произведение положительных чисел этой последовательности

    решил так:

    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('Произведение положительных чисел последовательности = ',:)
    else writeln('В последовательности кроме нуля нет элементов');
    end.
    ;)
    Оказывается неправильно, контрольную вернули! Осталась неделя, полный попенгаген! Помогите братцы!!!
    Всё считает, но есть загвоздка когда вводишь последовательность "1 0" пишет ответ "В последовательности нет элементов" В чём ошибка подскажите плиз!!! Заранее огроменное спасибо
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Код (Text):
    program Posledovatelnost;
    var
    a,b:integer;
    flag:boolean;
    begin
    Writeln('Введите через пробел последовательность положительных чисел, окончание ввода "0"');
    read(a);
    b:=1;
    flag:=false;
    while a<>0 do begin
    if a>0 then
    begin
    flag:=true;
    b:=b*a;
    end;
    read(a);
    end;

    if flag then writeln('Произведение положительных чисел последовательности = ',B)
    else writeln('В последовательности кроме нуля нет элементов');

    end.
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    очевидно произведение последовательности из единиц равно 1, поэтому выполнится та ветка:
    Код (Text):
    else writeln('В последовательности кроме нуля нет элементов');
     
  4. tolyanl1985

    tolyanl1985 New Member

    Регистрация:
    19 ноя 2012
    Сообщения:
    4
    Симпатии:
    0


    Огромное Спасибо!!!
     
  5. tolyanl1985

    tolyanl1985 New Member

    Регистрация:
    19 ноя 2012
    Сообщения:
    4
    Симпатии:
    0
    а что здесь такое Flag и как работает?
     
Загрузка...

Поделиться этой страницей