ramco1972
?>

Переведите число 143 из десятичной системы счисления в двоичную систему счисления. *​

Информатика

Ответы

majorovnatalya5

ответ:

10001111,2

bogdanyukn562

Для вычисления алгебраического выражения, представленного текстом, требуется написать простенький анализатор этих самых выражений. Изначально мы имеет Выражение, из которого должны, с различных вычислений получить Число.

Для этого разберёмся, что же такое число и выражение, и какие они бывают.


Понятия и определения:

1) Число. Может быть целым или дробным. Запишем это так (в /.../ записано регулярное выражение для всех неотрицательных чисел, отрицательные рассмотрим, как выражение)

Число :- строка вида /[0-9]+(.[0-9]+)?/ или число на паскале

2) У Выражения можество определений. Во-первых, число само по себе тоже является выражением, возвращающим само себя. Во-вторых число {+,-,*,итд} выражение тоже являются выражением.

Набор рекурсивных определений:

Выражение :- Число

Выражение :- -Число

Выражение :- (Выражение)

Выражение :- Число + Выражение

Выражение :- Число - Выражение

Выражение :- Число * Выражение

Выражение :- Число \ Выражение


Список можно продолжить и для других математических операций.

Используя эти определения можно написать программу, которая реализует предикаты (функции) Число() и Выражение() (функции называй, как хочешь). Особенно удобно это делать на логических языках программирования по типу Prolog, так как её код очень похож на то, что записано выше.

Для паскаля же (или того же c++) нужно писать рекурсивную программу.

Далее псевдокод:

void ВывестиОшибку(){

Print("У тебя что-то не то с выражением!! Перепиши!");

}

real Число(string numb){

    if(/[0-9]+(.[0-9]+)?/.IsMatch(numb) <> true) ВывестиОшибку();

    return StrToInt(numb);

}

real Число(real numb){

    return numb;

}

real Выражение (string expr) {

    if(/[0-9]+(.[0-9]+)?/.IsMatch(expr)){

         // Вариант: число

         return Число(expr);

    }

    else if(/-[0-9]+(.[0-9]+)?/.IsMatch(expr)){

         // Вариант: -число

         return -Число(expr);

    }

    else if(/\((.+)\)/.IsMatch(expr)){

         // Вариант: (выражение)

         return Выражение(/\((.+)\)/.Match(expr)[1]); //Используя группы регулярных выражений вытаскиваем содержимое из скобок

    }

    else if(/([0-9]+(?.[0-9]+)?)\+(.+)/.IsMatch(expr)){

         // Вариант: число + выражение

         real numb = /([0-9]+(?.[0-9]+)?)\+(.+)/.Match(expr)[1]; // Вытаскиваем Число

         expr = /([0-9]+(?.[0-9]+)?)\+(.+)/.IsMatch(expr)[2]; // Вытаскиваем Выражение

         return Число(numb) + Выражение(expr); // Складываем

    } else if (...далее для остальных (-,*,/) знаков...) {}

   else {

         //Если ничего не подошло, значит ошибка в выражении.

        ВывестиОшибку();

   }

}


P.S. В выражении не может быть пробелов. Если нужна поддержка пробелов, подкорректируй регулярки.

manager-3

Изменить содержимое ячейки:

левый щелчок мыши на ячейке - ввести новое значение (старое при этом пропадёт)

левый щелчок мыши на ячейке или переместиться курсором на ячейку -   - левый щелчок мыши в строке формул - отредактировать значение (можно дописать, изменить часть текста и т.д.)

левый щелчок мыши на ячейке или переместиться курсором на ячейку -- клавиша F2 - отредактировать значение

выделить другую ячейку - скопировать или вырезать её содержимое (это работает и для пустой ячейки)  - выделить нужную ячейку - команда "Вставить"

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Переведите число 143 из десятичной системы счисления в двоичную систему счисления. *​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Fomin Korablev1781
Karmelita1978
megapolisgroup
vera4
zatoichi69
mariyachervonnaya44
baranovaas
Panda062000
Yurevna419
YekaterinaAbinskov
zmlavra
Грачева мураховская
pereverzev
rabchek145200614
Александрович Андреевна