IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Умножить элементы последовательности!, Помогите!!!
tolyanl1985
сообщение 19.11.2012 4:05
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Анатолий

Репутация: -  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('Произведение положительных чисел последовательности = ',b)
else writeln('В последовательности кроме нуля нет элементов');
end.

Всё считает, но есть загвоздка когда вводишь последовательность "1 0" пишет ответ "В последовательности нет элементов" В чём ошибка подскажите плиз!!! Заранее огроменное спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
TarasBer
сообщение 19.11.2012 10:17
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Загвоздка в том, что если произведение чисел в последовательности равно 1, то это не значит, что чисел в последовательности нет.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 19.11.2012 17:54
Сообщение #3


Гость






Цитата(TarasBer @ 19.11.2012 10:17) *

Загвоздка в том, что если произведение чисел в последовательности равно 1, то это не значит, что чисел в последовательности нет.



????????????? blink.gif
 К началу страницы 
+ Ответить 
tolyanl1985
сообщение 19.11.2012 18:08
Сообщение #4





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Анатолий

Репутация: -  0  +


Помогите ПЛИЗ!!! !mol1.gif !mol1.gif !mol1.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 20.11.2012 10:09
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


У тебя есть последовательность, в которой одни единицы.
Произведение чисел в ней равно ЧЕМУ?
А программа, встретив такое значение, выводит ЧТО?



--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FLASH911
сообщение 20.11.2012 19:18
Сообщение #6





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  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>0 then writeln('Произведение положительных чисел последовательности = ',b)
else writeln('В последовательности кроме нуля нет элементов');
end.


В этой строчке ошибка: if b>0 then writeln, зачем тебе b<>1, если нужно больше нуля?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 20.11.2012 20:12
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Неправильно, если в списке нету элементов, то b будет тоже равно 1, потому что единицей инициализируется.
Я бы ввел банальный счетчик кол-ва элементов и не парился бы со всем этим.....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FLASH911
сообщение 21.11.2012 18:01
Сообщение #8





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


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


Тогда так, с использованием счётчика.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 3:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"