Объяснение:
1. 10
2. 12
3. 3
4. 22
5. 15
6. 34
7. 3
Часть 2
1.
Var
n:integer;
Begin
Write('Введи число ');
Readln(n);
if (n mod 2) = 0 then write(n,' чётное) else write(n,' нечётное);
End.
2.
Var
a,b:integer;
Begin
Write('Введи числа ');
Readln(a,b);
if a>b then Begin Write('a = ',b*a,' b = ',a+b) else write('a = ',a+b,' b = ',a*b);
End.
3.
Var
n:integer;
Begin
write('Введи двузначное число ');
Readln(n);
if ((n div 10) = 6) or ((n mod 10) = 6) then write('6 присутствует') else write('6 нет в этом числе');
End.
Поделитесь своими знаниями, ответьте на вопрос:
На обработку поступает натуральное число, не превышающее 10^9. нужно написать программу, которая выводит на экран произведение цифр числа, кратных 3. если в числе нет цифр, кратных 3, требуется на экран вывести "no". программист написал программу неправильно. напоминание: 0 делится на любое натуральное число. текст написанной программистом программы (с ошибками): var n, k, digit, prod: longint; begin readln(n); prod : = n mod 10; k : = 0; while (n > 0) do begin digit : = n mod 10; if (digit mod 3 = 0) then begin prod : = prod*digit; k : = k+1; end; n : = n div 10; end; if (k = 0) then writeln('no') else writeln(n) end. найдите все ошибки в этой программе и исправьте их, при этом не меняя весь алгоритм. как правило, ошибок две. я их нашёл, но мне не засчитали. найти ошибки в программе, из-за которых алгоритм работает неверно!
begin
readln(N);
prod := 1; // Произведение не должно быть равно 0, в вашем случае просто отделают последнюю цифру, не проверяя ее кратна она 3 или нет
k := 0;
while (N > 0) do
begin
digit := N mod 10;
if (digit mod 3 = 0) and (digit<>0) then begin // (digit<>0) проверка на неравенство нулю(любое число*0=0)
prod := prod*digit;
k := k+1;
end;
N := N div 10;
end;
if (k = 0)
then writeln('NO')
else writeln(prod) // Выводить нужно не конечное N, а именно произведение(prod)
end.