Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Преобразование символов в числа.
Рассмотрим строку цифр длиной N: c1, c2, …, cN-1, cN Соответствие между строкой и числом, которое она представляет, задается формулой: где B – основание системы исчисления, а c – численное значение i -го символа в строке.
Для числа 0101 получаем следующие десятичные значения в выбранных системах исчисления: 01012 = 0x23 + 1x22 + 0x21+1x20 = 0 + 4 + 0 + 1 = 510 01018 = 0x83 + 1x82 + 0x81+1x80 = 0 + 64 + 0 + 1 = 6510 010110 = 0x103 + 1x102 + 0x101+1x100 = 0 +100 + 0 + 1 = 10110 010116 = 0x163 + 1x162 + 0x161+1x160 x= 0 + 256 + 0 + 1 = 25710 Цифры систем счисления больше 10 обычно представляются буквами, например цифры шестнадцатиричной системы исчисления следующие: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Лучшая стратегия поиска десятичного значения выражения в системе исчисления с основанием B: c1 x BN-1 + c2 x BN-2 + … + cN x B0 умножать его, используя правило Хорнера (Horner’s rule) (…(c1 x B + c2) x B + c3) … x B + cN Процедура StringToInt преобразовывает строки символов в системе счисления представленной Base в целочисленные значения в Result, используя правило Хорнера.
DP 1 PROCEDURE StringToInt (VAR F: TEXT; VAR Base, Result: INTEGER); {F=<, x#y, R>, где x – строка цифр, Base – целое число, 2 < = Base < = 16, задающее их систему исчисления --> F, Result: = < x#, y, R>, N(x), где N – целое значение, имеющее символьное представление x} VAR< Ch: CHAR; Digit: INTEGER; BEGIN {StringToInt} Result: = 0; READ(F, Ch); WRITE(Ch); WHILE(Ch < > ‘#’) AND (Ch < > ‘ ’) DO BEGIN {Digit: = число, соотвествующее Ch в Base} Result: = Result * Base + Digit; READ(F, Ch); WRITE(Ch) END END. {StringToInt}
Код для нахождения целого, соответствующего Ch простой, но длинный, поэтому он оформлен в виде процедуры.
DP 1.1. PROCEDURE CharToDigit (VAR Ch: CHAR; VAR Result: INTEGER); {(‘0’ < = Ch < = ‘9’ OR ‘A’ < = Ch < = ‘F’ --> Result: = число соответствующее Ch) | (NOT (‘0’ < = Ch < = ‘9’ OR ‘A’ < = Ch < = ‘F’) --> Result: = 0)} BEGIN { CharToDigit} IF Ch = ‘0’ THEN Result: = 0 ELSE IF Ch = ‘1’ THEN Result: = 1 ELSE IF Ch = ‘2’ THEN Result: = 2 ELSE IF Ch = ‘3’ THEN Result: = 3 ELSE IF Ch = ‘4’ THEN Result: = 4 ELSE IF Ch = ‘5’ THEN Result: = 5 ELSE IF Ch = ‘6’ THEN Result: = 6 ELSE IF Ch = ‘7’ THEN Result: = 7 ELSE IF Ch = ‘8’ THEN Result: = 8 ELSE IF Ch = ‘9’ THEN Result: = 9 ELSE IF Ch = ‘A’ THEN Result: = 10 ELSE IF Ch = ‘B’ THEN Result: = 11 ELSE IF Ch = ‘C’ THEN Result: = 12 ELSE IF Ch = ‘D’ THEN Result: = 13 ELSE IF Ch = ‘E’ THEN Result: = 14 ELSE IF Ch = ‘F’ THEN Result: = 15 ELSE BEGIN Result: = 0 END END. { CharToDigit}
Для тестирования этого проекта он помещается в программу, которая сначала считывает основание системы счисления в десятичном формате, в котором должна быть интерпретирована следующая строка.
PROGRAM Convert (INPUT, OUTPUT); VAR Base, Number: INTEGER; {Включить PROCEDURE StringToInt (VAR F: TEXT; VAR Base, Result: INTEGER); F=<, x#y, R>, где x – строка цифр, Base – целое число, 2 < = Base < = 16, задающее их систему исчисления --> F, Result: = < x#, y, R>, N(x), где N – целое значение, имеющее символьное представление x} BEGIN {Convert} READ(Base); StringToInt(INPUT, Base, Number); WRITELN; WRITELN(‘Десятичное значение: ’, Number) END. {Convert}
Выполнение: INPUT: 8 0101# OUTPUT: 8 0101# Десятичное значение: 65
INPUT: 16 1F# OUTPUT: 16 1F# Десятичное значение: 31
|