Задача "правило деления «лесенкой» числа m на число n" - Pascal

Узнай цену своей работы

Формулировка задачи:

Ввести два натуральных числа m и n (m>n). Показать на экране правило деления «лесенкой» числа m на число n. Вот такая задача.

Решение задачи: «Задача "правило деления «лесенкой» числа m на число n"»

textual
Листинг программы
var
  Delim, Delit, Chastnoe, Ostatok, Temp: integer;
  dA, dB: integer;
  A, B, C: array of integer;
  i, j, S, k, l: integer;
 
begin
  read(Delim);
  writeln(' / ');
  read(Delit);
  write(' = ');
  Chastnoe := Delim div Delit;
  write(Chastnoe);
  Ostatok := Delim mod Delit;
  if Ostatok > 0 then
    write(' (Остаток = ', Ostatok, ' )');
  
  dA := Delim;
  i := 1;
  while dA <> 0 do
  begin
    setlength(C, i);
    C[i - 1] := dA mod 10;
    dA := dA div 10;
    inc(i);
  end;
  
  dB := Chastnoe;
  i := 1;
  while dB <> 0 do
  begin
    setlength(B, i);
    B[i - 1] := dB mod 10;
    dB := dB div 10;
    inc(i);
  end;
  
  writeln;
  writeln;
  S := length(C);
  setlength(A, S);
  
  j := length(B);
  k:=1;
  for l:= 1 to j do
    k:=k*10;
  Temp := 1;
  while (Delim <> 0) do
  begin
    if Delim < Delit then
    
    begin
      for i := 1 to (length(C) - length(A)) do
        write(' ');
      writeln(Delim);
      Delim:=0;
    end
    
    else
    
    begin
      if Temp <> 0 then
      begin
        for i := 1 to length(C) - length(A) do
          write(' ');
        writeln(Delim);
        Temp := Round(B[j - 1] * Delit);
        if Temp <> 0 then
        begin
          for i := 1 to length(C) - length(A) do
            write(' ');
          writeln(Temp);
        end
      else
      begin
        dec(j);
        Temp := Round(B[j - 1] * Delit);
        for i := 1 to length(C) - length(A) do
          write(' ');
        writeln(Temp);
      end;
      end;
      k:=k div 10;
      Delim := Delim - Round(Temp * k);
      
      
      dA := Delim;
      i := 1;
      while dA <> 0 do
      begin
        setlength(A, i);
        A[i - 1] := dA mod 10;
        dA := dA div 10;
        inc(i);
      end;
      
      dec(j);
      end;
    end;
  
  readln;
  
end.

Объяснение кода листинга программы

  1. Задача программы - деление числа m на число n лесенкой.
  2. Входные данные: числа Delim и Delit.
  3. Переменные:
    • Delim - входное число.
    • Delit - делитель.
    • Chastnoe - частное первого делителя.
    • Ostatok - остаток первого делителя.
    • dA, dB - делители чисел Delim и Chastnoe соответственно.
    • A, B, C - массивы для хранения разрядов чисел dA и dB.
    • i, j, S, k, l - вспомогательные переменные для работы с массивами и циксами.
    • Temp - временная переменная для хранения округленного значения.
  4. Алгоритм работы программы:
    • Считывание входных чисел Delim и Delit.
    • Вычисление частного Chastnoe и остатка Ostatok первого делителя.
    • Преобразование Delim в массив dA и разбиение его на разряды.
    • Преобразование Chastnoe в массив dB и разбиение его на разряды.
    • Организация цикла для выполнения деления лесенкой.
    • Вывод на экран результатов деления.

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы