ПОМОГИТЕ СРОЧНО, ПОЖАЛУЙСТА Помогите , пожалуйста, нужно составить трасеровочную таблицу...

0 голосов
24 просмотров

ПОМОГИТЕ СРОЧНО, ПОЖАЛУЙСТА
Помогите , пожалуйста, нужно составить трасеровочную таблицу , отладить эту программу . Программа работает. Выдаёт правильный ответ. Но не проходит по тренировочной таблице .
program test;
var n, k, m: integer ;
begin
repeat ;
write ('Введите натуральное число n );
readln (n);
until n>0;
m:=n;
k:=10;
while m div 10<>0 do
begin
k:=k*10;
m:=m div 10;
end;
m:=(2*k+n)*10+2;
writeln ('Число с двойками=,m');
end.

Помогите , пожалуйста, срочно!
Возможно что-то не так(


Информатика (15 баллов) | 24 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Вот вариант программы с трассировкой

program test;

var
  n,k,m:integer;

begin
  repeat
    Writeln('*** очередной проход по циклу REPEAT');
    Write('Введите натуральное число n: ');
    Readln(n);
    Writeln('*** введено ',n)
  until n>0;
  Writeln('*** вышли из REPEAT по условию ',n,' > 0 = ',n>0);
  m:=n;
  k:=10;
  Writeln('*** m=',m,', k=',k);
  Writeln ('*** проверка входа в цикл WHILE с условием ',m,' div 10<>0 = ',
      m div 10<>0);
  while m div 10<>0 do begin
    Writeln ('*** проход по циклу WHILE с условием ',m,' div 10<>0 = ',
        m div 10<>0);
    k:=k*10;
    m:=m div 10;
    Writeln('*** m=',m,', k=',k);
    end;
  Writeln('*** Цикл WHILE завершен');
  m:=(2*k+n)*10+2;
  Writeln('Число с двойками = ',m);
end.


image
(150k баллов)