М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
fedosovsemen
fedosovsemen
03.09.2020 23:48 •  Информатика

Определите типы данных в соответствии с выполняемыми операциями Операция с=a/b

print(type(c)) с=4>3

print(type(c)) с=input(4**6)

print(type(c)) с=a//b

print(type(c))

Тип данных







👇
Открыть все ответы
Ответ:
azmamatovm
azmamatovm
03.09.2020
Записываем сложение "в столбик".
   2 2
+ 5 5

1 1 0

Рассмотрим сложение в младшем разряде. В десятичной системе счисления 2+5=7, а у нас записан ноль. Следовательно, данный разряд был сброшен, а в следующий добавлена единица. Такое возможно только если сумма (т.е. 7) равна основанию системы счисления, в которой производится сложение. Т.е. мы делаем предположение, что система семиричная.
В самом деле, когда мы складываем два однозначных десятичных числа, например 2 и 8, то получаем 10, 0 в разряде сложения и перенос 1 в следующий разряд. В двоичной система 1+1=10, т. е. тут двойка  (1+1) - основание системы - привела к появлению нуля и переносу.
Проверим предположение, что система семиричная. В следующем разряде снова 2+5=7, но еще есть разряд переноса, итого 8. Но 8 в семиричной системе записывается как 11. Итого получается как раз 110, т.е. система счисления действительно семиричная.
4,5(58 оценок)
Ответ:
polinaguskova
polinaguskova
03.09.2020
Чтобы разъяснить происходящее, были сделаны следующие шаги.
1. Константы 3.1 и 0.8 переведены в машинное представление а затем назад в десятичное с максимальной для паскалевских данных вещественного типа real (он же double) точностью (вложения 1 и 2).
2. В системе компьютерной алгебры, позволяющей работать с произвольной точностью (выбрана точность в 30 значащих цифр) для полученных констант выполнены соответствующие заданному фрагменту программы вычисления (вложение 3)
3. Результат 0.499999999999999955591079014996 был переведен в машинное представление. Затем в машинное представление была переведена константа 0.5, которая, как видно во вложении 4, представляется в компьютере точно. Поэтому проверка на точное равенство с 0.5 дает не тот результат, который Вы ожидали.
4. Можно было также воспользоваться программой на паскале.
begin
  var x:=3.1;
  var y:=0.8;
  var p:=2;
  var a:=Frac(x); // =0,1
  var b:=Frac(y)-0.5; // =0,3
  var kp:=sqrt(sqr(0.5-a)+b*b); // =0,5
  if abs(kp-0
  Writeln(kp-0.5)
end.

Результат: -5.55111512312578E-17
Это как раз то, что так портит Вам всю картину.

По поводу Вашего условия if kp>=0.5 then p=p+1;
Ошибка имеет порядок 0.6·10⁻¹⁶ и наверно ничего страшного не будет, если оператор (с запасом) подправить на if kp>=(0.5-1e-15) then p:=p+1;

Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
Pascalabc.net вот кусочек программки: // x=3.1 (введено с клавиатуры) // y=0.8 (введено с клавиатуры
4,7(96 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ