×
  • 1. Системы счисления
  • 2. Логические функции
  • 3. Анализ информационных моделей
  • 4. Файловая система и базы данных
  • 5. Кодирование и декодирование. Условие Фано
  • 6. Выполнение и анализ простых алгоритмов
  • 7. Адресация в электронных таблицах
  • 8. Анализ программ с циклами
  • 9. Скорость передачи, объем памяти, время передачи
  • 10. Кодирование, комбинаторика
  • 11. Рекурсивные алгоритмы
  • 12. Адресация в сетях TCP/IP
  • 13. Вычисление количества информации
  • 14. Анализ и выполнение алгоритмов для исполнителя
  • 15. Поиск путей в графе
  • 16. Позиционные системы счисления
  • 17. Запросы в поисковых системах
  • 18. Логические выражения и множества
  • 19. Анализ программы по работе с массивом
  • 20. Анализ программ с циклами
  • 21. Анализ программ с циклами и подпрограммами
  • 22. Динамическое программирование
  • 23. Системы логических уравнений
  • 24. Исправление фрагмента программы и ошибок
  • 25. Программа на обработку массива
  • Спасибо за внимание
  • Условие задачи

    500) Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц, порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры – единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно. Программист торопился и написал программу неправильно.

    N = int(input())
    R = 0
    T = 1
    while N > 0:
        d = N % 10
        if d != 1:
            R = R + d*T
            T = T + 1
        N = N // 10
    print(T)
    var 
      N, R, T: longint;
      d: integer;
    begin
      readln(N);
      R:=0;
      T:=1;
      while N>0 do begin
        d := N mod 10;
        if d<>1 then begin
           R := R + d*T;
           T := T+1
        end;
        N := N div 10;
      end;
      writeln(T);
    end.
    #include <iostream>
    using namespace std;
    int main() {
      long N, R, T;
      int d;
      cin >> N;
      R=0;
      T=1;
      while (N>0) {
        d = N % 10;
        if (d != 1) {
           R = R + d*T;
           T = T+1;
        }
        N = N / 10;
      }
      cout << T;
    }

    Последовательно выполните следующее:
    1. Напишите, что выведет эта программа при вводе числа 314.
    2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки выпишите номер строки и укажите, как надо исправить ошибку - приведите правильный вариант строки.





    Комментарии