Найти число единиц в введённом числе - Turbo Pascal
Формулировка задачи:
Требуется написать программу, которая находит число единиц в введённом числе.
Где ошибка и как её исправить?
Листинг программы
- uses crt;
- var
- x: word;
- s, ss: string[8];
- cnt: byte;
- i,d:byte;
- mas: array[1..8] of byte;
- procedure xorBin(x: integer);
- begin
- asm
- mov d,2
- cmp x, 0
- je @k
- xor x, 255
- mov cx, 8
- mov ax,x
- lea si, mas
- @cycl:
- mov bx, [si]
- div d
- mov [si], ah
- cbw
- inc si
- inc si
- loop @cycl
- @k: nop
- end;
- for i:= 1 to 8 do begin
- Str(mas[i], ss);
- s := s + ss;
- end;
- end;
- begin
- repeat
- writeln('Vvedite x: ');
- Read(x)
- until (x < 256);
- write('Dvoichnoe predstavlenie: ');
- xorBin(x);
- writeln;
- if Length(s) <> 8 then
- for i := Length(s) to 7 do begin
- Insert('0', s, 1);
- if s[i] = '0' then cnt := cnt + 1;
- end;
- writeln(s);
- writeln('Kolichestvo edinic: ', cnt);
- readkey;
- end.
Решение задачи: «Найти число единиц в введённом числе»
textual
Листинг программы
- var
- n: LongInt;
- c: Integer;
- begin
- Write('Введите число: '); ReadLn(n);
- c:=0;
- while n<>0 do begin
- if Abs(n mod 10)=1 then Inc(c);
- n:=n div 10;
- end;
- WriteLn(c);
- end.
Объяснение кода листинга программы
- В начале объявляются две переменные: n и c, обе типа LongInt.
- Затем идет команда Write, которая выводит на экран сообщение «Введите число: ».
- После этого с помощью функции ReadLn считывается введенное пользователем число и сохраняется в переменной n.
- Далее инициализируется переменная c со значением 0.
- Затем начинается цикл while, который будет выполняться до тех пор, пока значение переменной n не станет равным нулю.
- Внутри цикла проверяется, равно ли абсолютное значение последнего разряда числа (mod 10) единице. Если да, то значение переменной c увеличивается на 1.
- После этого значение переменной n делится на 10 (n div 10), и это значение становится новым значением переменной n.
- Цикл while повторяется, пока значение переменной n не станет равным нулю.
- По окончании цикла выводится на экран значение переменной c с помощью команды WriteLn.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д