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