0 / 0 / 0 Регистрация: 22.11.2012 Сообщений: 8 |
|
1 |
|
22.11.2012, 21:34. Показов 20401. Ответов 9
Паскаль)
0 |
Ce7eH_111 34 / 34 / 19 Регистрация: 17.11.2012 Сообщений: 109 Записей в блоге: 2 |
||||
22.11.2012, 21:39 |
2 |
|||
1 |
0 / 0 / 0 Регистрация: 22.11.2012 Сообщений: 8 |
|
22.11.2012, 21:45 [ТС] |
3 |
УРААА!!! Спасибо)
0 |
34 / 34 / 19 Регистрация: 17.11.2012 Сообщений: 109 Записей в блоге: 2 |
|||||
22.11.2012, 21:46 |
4 |
||||
а спасибо поставить?
1 |
0 / 0 / 0 Регистрация: 22.11.2012 Сообщений: 8 |
|
22.11.2012, 21:50 [ТС] |
5 |
слушай а если я ввожу число больше 10 то у меня не правильно выходит((
0 |
34 / 34 / 19 Регистрация: 17.11.2012 Сообщений: 109 Записей в блоге: 2 |
|
22.11.2012, 21:52 |
6 |
попробуй longint Добавлено через 1 минуту
1 |
0 / 0 / 0 Регистрация: 22.11.2012 Сообщений: 8 |
|
22.11.2012, 21:53 [ТС] |
7 |
а где прописывается этот longint? а то я незнаю куда его ставить)
0 |
34 / 34 / 19 Регистрация: 17.11.2012 Сообщений: 109 Записей в блоге: 2 |
|
22.11.2012, 21:54 |
8 |
2 var n,i,s:longint;
1 |
0 / 0 / 0 Регистрация: 22.11.2012 Сообщений: 8 |
|
22.11.2012, 22:10 [ТС] |
9 |
нее я просто ввожу число 14 например, у меня выходит отрицательный 10240( Добавлено через 8 минут Добавлено через 5 минут
0 |
181 / 179 / 23 Регистрация: 29.08.2012 Сообщений: 489 |
|
22.11.2012, 23:31 |
10 |
ввожу число 14 например Ввожу и 10 и 14 и всё работает.
0 |
Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля.
Ребят, у меня вышла такая программа:
Program Pr1;
var n, p, m:integer;
begin
write (‘n=’) ;
readln (n) ;
m:=n;
p:=1;
while m>0 do
begin
if (m mod 10) mod 2=0 then
p:=p*m mod 10;
m:=m div 10;
end;
writeln (‘В числе ‘, n,’ произведение четных цифр = ‘, p) ;
end.
И в ответе, если произведение превышает число 9, выводится его последняя цифра.
Например: n=881
В числе 881 произведение четных цифр = 4
А на самом деле выходит 8*8=64.
Надеюсь, кто-нибудь сможет помочь.
И, да, мне нужна помощь исключительно в улучшении программы, а не написания новой.
Найдите правильный ответ на вопрос ✅ «Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля. Ребят, у меня вышла такая программа: Program Pr1; var n, p, …» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Главная » Информатика » Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля. Ребят, у меня вышла такая программа: Program Pr1; var n, p, m:integer; begin write (‘n=’) ; readln (n) ; m:=n; p:=1;
Формулировка. Дана последовательность натуральных чисел, ограниченная вводом нуля. Вывести на экран произведение четных элементов этой последовательности. При этом ноль не считается членом последовательности.
Примечание: задачи подобного рода требуют выполнения каких-либо действий в зависимости от некоторого характеристического свойства. Большинство из них математически неинтересны, однако развивают способность совмещать отдельные приемы и методы программирования, поэтому, в основном, способствуют наработке опыта.
Решение. Так как нам заранее неизвестна длина рассматриваемой последовательности, но мы знаем о том, что она ограничивается вводом нуля, и поэтому можем сделать цикл с предусловием a < > 0, где a – текущий введенный член. Так как нет необходимости работать с несколькими членами одновременно, мы можем следовать данной схеме и в конкретный момент времени работать лишь с одним элементом последовательности.
При всем этом перед циклом нам необходимо считать первый член a, чтобы войти в цикл, если последовательность непустая (а если пустая, то есть состоит из одного нуля, то и не нужно входить в цикл и что-либо делать):
read(a);
while a <> 0 do begin
…
read(a)
end;
Кстати, мы используем оператор ввода read, чтобы можно было вводить члены через пробел, а не через enter, как при использовании readln. Внутри цикла вместо многоточия должна располагаться некоторая последовательность операторов, которые и будут выполнять обработку вводимых данных. После каждой итерации необходимо ввести следующий член последовательности и продолжить обработку, если он не равен нуля, и закончить в противном случае.
Примечательно, что лишь за некоторыми исключениями именно в цикле такого вида будет располагаться основной блок обработки для всех задач на последовательность, ограниченную вводом нуля.
Что же касается текущей задачи, то для ее решения мы в цикле должны проверить каждый элемент на четность, и если он четный, домножить на него некоторую переменную prod для накопления результата (которую поначалу нужно сделать равной 1). При этом если по завершении программы переменная prod будет по-прежнему равна 1, то это значит, что последовательность либо пуста, либо в ней нет четных элементов, что побуждает сделать в этом случае соответствующую проверку с выводом результата или сообщения об отсутствии элементов. В связи с написанным возникает такой код:
read(a);
prod := 1;
while a <> 0 do begin
if a mod 2 = 0 then prod := prod * a;
read(a)
end;
if prod <> 1 then writeln(prod) else writeln(‘ No such elements!’);
При этом проверяется неравенство prod единице, так как хотелось бы поместить в then-блоке условного оператора вывод «положительного» ответа (который отвечает критерию задачи), а в else-блоке – обработку «вырожденного случая». На самом же деле такой порядок не должен быть самоцелью и не считается «хорошим тоном» в программировании, да и делается только по прихоти автора, так что не было бы никакой разницы, если бы в последней строчке было:
if prod = 1 then writeln(‘ No such elements!’) else writeln(prod);
Код:
- program ProductOfEven;
- var
- a, prod: word;
- begin
- read(a);
- prod := 1;
- while a <> 0 do begin
- if a mod 2 = 0 then prod := prod * a;
- read(a)
- end;
- if prod <> 1 then writeln(prod) else writeln(‘No such elements!’)
- end.
1) var n, odd, even, i, a: integer;
begin
odd:=0;
even:=1;
writeln (‘Введите число N’);
read(N);
writeln(‘Введите N целых чисел’);
for i:=1 to N do
begin
read(a);
if (a mod 2 = 0) then even:=even*a
else odd:=odd+a;
end;
writeln(‘Произведение чётных чисел равно ‘, even);
writeln(‘Сумма нечётных чисел равна ‘, odd);
end.
2)var N, plus, minus, i: integer;
a: real;
begin
plus:=0;
minus:=0;
writeln (‘Введите число N’);
read(N);
writeln(‘Введите N чисел’);
for i:=1 to N do
begin
read (a);
if(a > 0) then plus:=plus+1;
if (a < 0) then minus:=minus+1;
end;
writeln(‘Количество положительных чисел равно ‘, plus);
writeln(‘Количество отрицательных чисел равно ‘, minus);
if (plus<minus) then writeln (‘Отрицательных больше чем положительных на ‘, minus-plus);
if (plus>minus) then writeln (‘Положительных больше чем отрицательных на ‘, plus-minus);
if (plus=minus) then writeln (‘Количество положительных равно количеству отрицательных’);
end.
Составьте программу находящую произведение четных чисел от 1 до 10.
Чему оно равно?
Вы зашли на страницу вопроса Составьте программу находящую произведение четных чисел от 1 до 10?, который относится к
категории Информатика. По уровню сложности вопрос соответствует учебной
программе для учащихся 5 — 9 классов. В этой же категории вы найдете ответ
и на другие, похожие вопросы по теме, найти который можно с помощью
автоматической системы «умный поиск». Интересную информацию можно найти в
комментариях-ответах пользователей, с которыми есть обратная связь для
обсуждения темы. Если предложенные варианты ответов не удовлетворяют,
создайте свой вариант запроса в верхней строке.