федороа
?>

На обработку поступает натуральное число, не превышающее 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. найдите все ошибки в этой программе и исправьте их, при этом не меняя весь алгоритм. как правило, ошибок две. я их нашёл, но мне не засчитали. найти ошибки в программе, из-за которых алгоритм работает неверно!

Информатика

Ответы

Monstr13
Var N, k, digit, prod: longint;
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.
avetisov-84850

Объяснение:

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.

dianakryukova00
Цель работы: изучить меню, команды, процедуры при использовании в процессе верстки графических изображений.
Для ознакомления с особенностями обработки графики при верстке в программе InDesign рассмотрим порядок выполнения следующих процедур, необходимых при изготовлении полос текста в соответствии с оригиналом, представленным на следующих страницах
пособия:
• приведение текста к виду, удобному для верстки;
• формирование двухколонного набора;
• образование фреймов произвольной формы с использованием
инструментов группы Реn;
• использование градиентного закрашивания (Gradient);
• размещение символов строки вдоль произвольной траектории;
• задание степени непрозрачности объекта (Opacity);
• задание размытости края изображения (Feather);
• создание контура обтравки (Clipping) непосредственно в программе InDesign;
• использование клавиатурных сокращений для точного масштабирования изображений:
—Ctrl, точка и Ctrl, запятая — соответственно увеличение
и уменьшение на 1%;
—Ctrl, Shift, точка и Ctrl, Shift, запятая — соответственно
увеличение и уменьшение на 5%;
• использование специальных механизмов для реализации технических требований к набору и верстке изданий.
Описание работы
Перечень изучаемых действий:
• создание нового файла с основными параметрами:
а) формат виртуального листа бумаги (блока после обрезки) —
200×287мм, выбранный в соответствии с ГОСТ 5773–90 для
журнальных изданий при размере листа бумаги 60×84/8;
б) число колонок (Columns\Number) = 2;
в) межколонное расстояние (Gutter) = 4,512 мм;

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

На обработку поступает натуральное число, не превышающее 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. найдите все ошибки в этой программе и исправьте их, при этом не меняя весь алгоритм. как правило, ошибок две. я их нашёл, но мне не засчитали. найти ошибки в программе, из-за которых алгоритм работает неверно!
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Aleksandr_Vasilev
Jannadon77
avtalux527
anaissite6
Ерохин
evolkova-73
Любовь-Волков1205
whiskyandcola
fokolimp
bulenbeiser
АлександрАнатолий
mustaevdmitry397
andy74rus36
Avolohova
zakaz6354