![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
tolyanl1985 |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Анатолий Репутация: ![]() ![]() ![]() |
Дана последовательность неотрицательных чисел, последнее из которых равно нулю, причём других равных нулю чисел в последовательности нет. Вычислить произведение положительных чисел этой последовательности
решил так: 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" пишет ответ "В последовательности нет элементов" В чём ошибка подскажите плиз!!! Заранее огроменное спасибо |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Загвоздка в том, что если произведение чисел в последовательности равно 1, то это не значит, что чисел в последовательности нет.
-------------------- |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
|
tolyanl1985 |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Анатолий Репутация: ![]() ![]() ![]() |
Помогите ПЛИЗ!!!
![]() ![]() ![]() |
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
У тебя есть последовательность, в которой одни единицы.
Произведение чисел в ней равно ЧЕМУ? А программа, встретив такое значение, выводит ЧТО? -------------------- |
FLASH911 |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
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, если нужно больше нуля? -------------------- |
Krjuger |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Неправильно, если в списке нету элементов, то b будет тоже равно 1, потому что единицей инициализируется.
Я бы ввел банальный счетчик кол-ва элементов и не парился бы со всем этим..... |
FLASH911 |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
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.
Тогда так, с использованием счётчика. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 17:39 |