В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
АннаК78
АннаК78
11.07.2022 14:09 •  Информатика

Заполнить таблицу трассировки для следующего кода. a 5 b 4
a5 b5
a-5 b5

Показать ответ
Ответ:
Dozie
Dozie
19.01.2023 13:21
#include <iostream>
using namespace std;
int main() {
        int mat[3][3];
        int k;
        int size=0;
        int * arr=0;
        for(int i=0;i<3;i++){
                for(int j=0;j<3;j++){
                       cin>>mat[i][j];
                          if (mat[i][j]>0){
                             arr=(int*)realloc(arr,sizeof(int)*(++size));
                             arr[size-1]=mat[i][j];
                                             }
                                           }
                                    }
                  for(int i=0;i<size;i++){
                  cout<<arr[i];
                  }
               delete arr;
               cin.get();
               cin.get();
              return 0;
}
0,0(0 оценок)
Ответ:
frondron
frondron
13.12.2020 09:35
Если речь о результатах, то в компьютерной арифметике числа представляются в двоичном коде, а точность их представления обычно ограничена разрядностью процессора. Для проведения расчетов с неограниченной точностью используются специальные алгоритмы с представлением чисел в виде символьных строк.
При использовании двоичной арифметики приходится сталкиваться с тем, что большинство нецелых чисел невозможно точно представить в двоичной системе, как нельзя, например, в десятичной системе точно представить в виде десятичной дроби число 1/3 = 0.333
Рассмотрим пример. Если в простых дробях (1/3) х 3 = 1, то в десятичных 0.3333 х 3 = 0.9999.
В двоичной машинной арифметике происходит аналогичная ситуация. Но если человек сознает, что результат 0.9999... - та же единица, то компьютер этого не понимает. В результате в компьютерной арифметике (1 / 3) х 3 не равняется единице.
Еще пример. Пусть нам надо вычислить значение функции в точках от -2π до 2π с шагом π/6. Человек будет использовать значения -2π, -11π/6, -10π/6 и т.д. пока не придет к точке 2π. Компьютер (в арифметике с обычной точностью) вычислит значение -2π как -6.283185, а шаг представит значением 0.5235988. Это приведет к тому, что когда мы придем к нулю, то получим значение аргумента -9.536743х10⁻⁷, а в конечной точке получим аргумент 6.283184, который по абсолютной величине отличается от начального на единицу в младшей цифре, т.е. для компьютера при таком последовательном счете |-2π| ≠ 2π.
Третий пример. отрицательные целые числа представляются в компьютере в дополнительном коде, когда старший разряд является знаковым: 0 - это плюс, 1 - это минус.
Пусть мы прибавляем к 127 единицу в арифметике целых чисел, которым в двоичном представлении отведен один байт:
1111111₂ + 1₂ = 10000000₂ - тут все понятно, единичка перешла в старший, восьмой разряд. Но ведь он ЗНАКОВЫЙ! И вместо двоичного эквивалента 128 в компьютерной арифметике мы получаем отрицательное число! Причем, что самое интересное, из соображений эффективности эта ситуация обычно аппаратно не контролируется и в результате программы могут вести себя очень странно.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота