197 / 9 / 3
Регистрация: 30.04.2016
Сообщений: 733
1

Заполнить таблицу трассировки

27.10.2019, 11:34. Показов 2312. Ответов 4
Метки нет (Все метки)

Имеется блок – схема алгоритма
подсчёта десятичных разрядов в заданном положительном
числе N. Заполнить таблицу трассировки и доказать, что
в переменой k действительно получили количество разря-
дов (в данном случае их 4).
Таблица 7.1 для трассировки алгоритма.
Pascal
1
2
Оператор   Условие   N      k    Примечание
      “             “             1024       “
Написать программу и проверить алгоритм для других
значений N. (Написал программу согласно коду):
Был получен один из ответов от Puporev’а (05. 05. 2019_
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
uses Crt;
Var N, k: Integer;
begin ClrScr;
Write(‘ Ввести число N:);
    ReadLn(N);
        k:= 0;
   repeat
      N:= N div 10;
         k:= k + 1;
    until N = 0;
WriteLn(‘ Число разрядов:, k);
   ReadLn
end.
На выходе имеем:
Pascal
1
2
Ввести число N:  4236
Число разрядов:  4
И всё-таки – что такое разряды?
Как пишут учёные люди – Каждый разряд (включено,
выключено) в двоичном коде называется битом. Восемь
битов составляет байт (может содержать простую машин-
ную команду, символ или число).
А что имеется в виду под количеством разрядов во вве-
дённом числе, например, 4236 (какая имеется система
счисления: 2-ичная, 8-ричная, 10-ричная, 16-ричная?).
И ещё: в выражении N:= N div 10 ; определяется цело-
численное частное (от деления числа N = 4236 на 10).
Так это число будет равным 423, а на выходе выдаётся
количество непонятных разрядов 4. И как это понимать?
Можно всё это объяснить коротко и доходчиво.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2019, 11:34
Ответы с готовыми решениями:

Заполнить таблицу трассировки
Имеется блок – схема алгоритма подсчёта десятичных разрядов в заданном положительном числе N....

Заполнить таблицу трассировки
Имеется блок – схема алгоритма подсчёта десятичных разрядов в заданном положительном числе N. ...

Вывести на экран таблицу трассировки для функции
Помогите пожалуйста вывести на экран таблицу трассировки для функции нахождения k-ого члена...

Как сделать таблицу трассировки для кода
как сделать таблицу трассировки для этого кода ?

4
Модератор
8947 / 4508 / 3083
Регистрация: 17.08.2012
Сообщений: 14,375
28.10.2019, 09:08 2
Petro29, Вы издеваетесь, или у Вас очень плохие учители? Как можно не знать очевидные вещи - не постигаю.

Каждая отдельная цифра числа называется разрядом. Разряд - это просто одна из цифр в числе. В любой системе счисления. Просто в десятичном числе разряд десятичный, в двоичном - двоичный, и так далее.

Количество разрядов - это просто количество цифр в числе.

Самый правый разряд называется младшим, самый левый - старшим, разряды в целом числе нумеруются справа налево, начиная с 1.

Оператор N:= N div 10 (целочисленное деление на 10) в программе используется для удаления младшего десятичного разряда числа, в частности, из 4236 сначала удаляется 6, остаётся 432, затем - 2, остаётся 43, затем 3, остаётся 4, затем и 4, и число N становится равным 0.

В переменой k в то же время подсчитывается количество целочисленных делений на 10, которых для четырёхразрядного десятичного числа будет четыре, естественно. Эта самая четвёрка и выводится как результат работы программы.

Кстати, число обозначает количество, в какой бы системе счисления оно не было бы записано. Например, 11112, 178, 1510 и F16 выражают одно и то же количество. Нижним индексом слева от числа обозначается система счисления, если её нужно указать явно.

И ещё. Если делить на 2, получим количество двоичных разрядов, на 16 - шестнадцатеричных, на 8 - воьмеричных. Короче, деление на основание системы счисления используется для подсчёта количества разрядов числа.
0
197 / 9 / 3
Регистрация: 30.04.2016
Сообщений: 733
09.02.2020, 18:44  [ТС] 3
Пример с числом 4236. Действительно, при делении на 2 получаем двоичное число: 1000010001100 = 4236, в котором
4 единицы, т. ею количество цифр 4. Правильно.
А возьмём число, например, 232. При делении на 2 получаем двоичное число: 11101000 = 232. В нём количество единиц 4,
а цифр – 3 шт. Несоответствие.
Или число 23. При делении на 2 получаем двоичное число 00010111 = 23. Количество цифр 2, а единиц – 4.
И вообще, весь код ASCCI не соответствует определению количества цифр способом деления на 2. В чём дело?
Или я что-то недопонял?
А вот при использовании целочисленного деления для определения количества цифр в заданном числе N = N div 10 – всё
в порядке. И понятно.
0
Модератор
8947 / 4508 / 3083
Регистрация: 17.08.2012
Сообщений: 14,375
09.02.2020, 19:55 4
Нет. Вы не издеваетесь. Вы действительно непостижимым образом не понимаете элементарных вещей.

В сообщении #3 Вы бред написали.
Количество единиц в двоичном представлении числа никак не связано, и не может быть связано, с количеством разрядов в числе.
Код ASCII никак не связан, и не может быть связан, с определением количества цифр способом деления на 2.

Вы вообще прочитали то, что я написал в сообщении #2?

Ещё раз: количество разрядов - это то же самое, что и количество цифр. Естественно, количество разрядов для одного и того же числа, записанного в разных системах счисления, вполне может быть разным.

Очевидно, что количество разрядов в числе зависит не только от величины, которое выражает число, но и от того, в какой системе счисления это число записано. Если число делить на основание системы счисления до тех пор, пока не получится 0, то количество делений будет равно количеству разрядов в числе. Это следует из определения для позиционной системы счисления.

Например, число 4236 в распространённых (позиционных) системах счисления содержит такое количество разрядов:

423610 - 4 десятичных разряда (чтобы число стало равным 0, нужно его 4 раза поделить на 10)
423610 = 10000100011002 - 13 двоичных разрядов (... 13 раз поделить на 2)
423610 = 102148 - 5 восьмеричных разрядов (... 5 раз поделить на 8)
423610 = 108С16 - 4 шестнадцатеричных разряда (... 4 раза поделить на 16)
0
Модератор
8947 / 4508 / 3083
Регистрация: 17.08.2012
Сообщений: 14,375
10.02.2020, 22:43 5
Про ответ на вопрос совсем забыл. Таблица трассировки, как правило, создаётся только для основного алгоритма. В данном случае, имеет смысл создать таблицу трассировки для строк 5..10

ОператорУсловиеN kПримечание
ReadLn(N)--1024--Ввод N
k:= 0--10240 
repeat--10240Начало цикла
N := N div 10--1020 
k := k + 1--1021 
until N = 0false1021Переход на начало цикла
N := N div 10--101 
k := k + 1--102 
until N = 0false102Переход на начало цикла
N := N div 10--12 
k := k + 1--13 
until N = 0false13Переход на начало цикла
N := N div 10--03 
k := k + 1--04 
until N = 0true04Выход из цикла

Доказано: при выходе из цикла значение k равно числу разрядов в числе.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2020, 22:43
Помогаю со студенческими работами здесь

заполнить таблицу
Заполнить двумерный массив следующим образом:

Заполнить таблицу
Даны 2 прайс-листа, на январь и на март. Нужно вычислить цены на апрель и заполнить таблицу справа

Заполнить таблицу
Добрый вечер форумчане! Помогите, пожалуйста. Попросили заполнить таблицу тестовою формулами. Но...

Заполнить таблицу
Заполнить таблицу с 3 видами функции 1.Вид f 2. Запись в Excel 3.Краткое описание.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru