roman81rudi
01.05.2021 22:13

Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число n, не превосходящее 109, и выводится количество цифр этого числа. программист торопился и написал программу неправильно. (ниже для вашего удобства программа представлена на четырёх языках программирования.)

бейсик паскаль
dim n as long
input n
sum = 1
while n > 1
n = n \ 10
sum = sum + 1
wend
print sum
end
var n: longint;
sum: integer;
begin
readln(n);
sum : = 1;
while n > 1 do
begin
n : = n div 10;
sum : = sum + 1;
end;
writeln(sum);
end.
си++ алгоритмический
#include
using namespace std;
int main()
{
long int n;
int sum;
cin > > n;
sum = 1;
while (n > 1)
{
n = n /10;
sum = sum + 1;
}
cout « sum « endl;
}
алг
нач
цел n, sum
ввод n
sum : = 1
нц пока n > 1
n : = div(n, 10)
sum : = sum + 1
кц
вывод sum
кон
python
n = int(

sum = 1

while n > 1:

n //= 10

sum += 1

print(sum)

последовательно выполните следующее.

1. напишите, что выведет эта программа при вводе числа 938.

2. укажите одно число для которого эта программа будет работать верно.

3. найдите все ошибки в этой программе (их может быть одна или несколько). укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки правильный вариант. обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. исправление ошибки должно затрагивать только строку, в которой находится ошибка.

(2. укажите одно число для которого эта программа будет работать верно.)
объясните то что в скобках,я не понимаю

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
MrsKamYl
29.09.2020 16:16
Var St: string;
 z:string[10];
 x:string[2];
i,j,k,m: integer;           //новые переменные
Begin
Write('введите строку текста - St');
Readln(St);
k:=0;                       //обнуляем на всякий случай
z:='0123456789';
i:=1;
for j:=1 to length(St) do //начало
 begin;
  for m:=1 to 10 do
   if St[j]=z[m] then inc(k);
 end;
if k=0 then
begin;
 writeln('в тексте нет цифр');
 exit;
end;                              //конец
while i<=length(st)-1 do
begin
x:=copy(st,I,2);
if (x[1]=x[2]) and (pos(x[1],z)<>0) then
begin
delete(st,i,2);
insert('две',st,i);
i:=i+1;
end;
i:=i+1;
end;
writeln('преобразованная строка ', st);
End.
0,0(0 оценок)
Ответ:
Relig1d
31.12.2021 01:16
В двоичной системе: 1243(10)=2^10+2^7+2^6+2^4+2^3+2^1+1 = 1024+128+64+16+8+2+1 = 1243(10) =10011011011(2)
В восьмиричной системе:  разбиваете двоичное представление на группы по 3 бита справа налево
011  = 3
011  = 3
011  = 3
10   = 2
Тогда в восьмиричной системе: 2333(8) = 2*8^3+3*8^2+3*8^1+3 = 1024+192+24+3=1243(10)
В шестнадцатиричной системе:  разбиваете двоичное представление на группы по 4 бита справа налево
1011 = B = 11(10)
1101 = D(16) = 13(10)
100  = 4
Тогда в шестнадцатиричной системе
4DB(16) = 4*16^2+13*16^1+11 =1024+208+11=1243(10)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота