Найти число единиц в введённом числе - Turbo Pascal

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

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

Требуется написать программу, которая находит число единиц в введённом числе.
Листинг программы
  1. uses crt;
  2. var
  3. x: word;
  4. s, ss: string[8];
  5. cnt: byte;
  6. i,d:byte;
  7. mas: array[1..8] of byte;
  8. procedure xorBin(x: integer);
  9. begin
  10. asm
  11. mov d,2
  12. cmp x, 0
  13. je @k
  14. xor x, 255
  15. mov cx, 8
  16. mov ax,x
  17. lea si, mas
  18. @cycl:
  19. mov bx, [si]
  20. div d
  21. mov [si], ah
  22. cbw
  23. inc si
  24. inc si
  25. loop @cycl
  26. @k: nop
  27. end;
  28. for i:= 1 to 8 do begin
  29. Str(mas[i], ss);
  30. s := s + ss;
  31. end;
  32. end;
  33. begin
  34. repeat
  35. writeln('Vvedite x: ');
  36. Read(x)
  37. until (x < 256);
  38. write('Dvoichnoe predstavlenie: ');
  39. xorBin(x);
  40. writeln;
  41. if Length(s) <> 8 then
  42. for i := Length(s) to 7 do begin
  43. Insert('0', s, 1);
  44. if s[i] = '0' then cnt := cnt + 1;
  45. end;
  46. writeln(s);
  47. writeln('Kolichestvo edinic: ', cnt);
  48. readkey;
  49. end.
Где ошибка и как её исправить?

Решение задачи: «Найти число единиц в введённом числе»

textual
Листинг программы
  1. var
  2.   n: LongInt;
  3.   c: Integer;
  4. begin
  5.   Write('Введите число: '); ReadLn(n);
  6.   c:=0;
  7.   while n<>0 do begin
  8.     if Abs(n mod 10)=1 then Inc(c);
  9.     n:=n div 10;
  10.   end;
  11.   WriteLn(c);
  12. end.

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

  1. В начале объявляются две переменные: n и c, обе типа LongInt.
  2. Затем идет команда Write, которая выводит на экран сообщение «Введите число: ».
  3. После этого с помощью функции ReadLn считывается введенное пользователем число и сохраняется в переменной n.
  4. Далее инициализируется переменная c со значением 0.
  5. Затем начинается цикл while, который будет выполняться до тех пор, пока значение переменной n не станет равным нулю.
  6. Внутри цикла проверяется, равно ли абсолютное значение последнего разряда числа (mod 10) единице. Если да, то значение переменной c увеличивается на 1.
  7. После этого значение переменной n делится на 10 (n div 10), и это значение становится новым значением переменной n.
  8. Цикл while повторяется, пока значение переменной n не станет равным нулю.
  9. По окончании цикла выводится на экран значение переменной c с помощью команды WriteLn.
  10. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

13   голосов , оценка 3.538 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы