Как создать калькулятор в notepad

Обновлено: 04.07.2024

Приветствую всех кто заглянул в статью. Сразу извинюсь если промахнулся разделом, пишу здесь в первый раз, прошу не пинайте и направьте на путь истинный в комментариях.

Цель этой статьи найти ответы на вопросы и получить советы профессионалов коими вы являетесь.

Я работаю инженером в области изысканий под строительство, моих коллег геодезистов вы могли неоднократно видеть вдоль дорог.

Но их задача это в основном измерения на поверхности земли (углов, расстояний и т.д.), я же являюсь инженером-гидрометеорологом и в мои задачи входит измерение поверхностных водных объектов (скорости течений, прогноз размыва берегов, максимальные уровни затопления и т.д.), а также климатические характеристики исследуемой местности.

Дальше без воды к сути дела:

Хочу сделать для сайта калькулятор расчета сметы. Чтобы пользователь на сайте сам мог заполнить виды работ, их количество и в конце получил бы оформленный (заполненный) Excel файлик с итоговой ценой (что-то вроде чека из магазина). Проблема в том, что стандартные решения (типа «заполни бриф») в данном случае не подходят. Так как существует более >200 видов работ которые могут быть задействованы в том или ином проекте. Сами расчеты не сложные что-то типа "Цена*объем*коэффициент*сложность=стоимость" это 90% расчетов, но встречаются и более сложные формулы зависящие от даты выполнения работ или от местности (крайний север, горы и т.д.). С точки зрения программирования эти расчеты произвести несложно (я своими силами все эти формулы оформил в Excel). Я может быть и не плохой инженер, но я абсолютно ничего не понимаю ни в Web-программировании, ни в Web-дизайне, ни в верстке и т.д. Поэтому прошу вашего совета в личку или в комментарии.

  1. В какой области вообще искать специалиста который способен это выполнить? (как называется это направление?)
  2. Где лучше всего искать такого специалиста? (посоветуйте фриланс площадку или конкретного человека)
  3. Как дорого может стоить такой вид работы? (подскажите ориентировочную вилку разброса цен)
  4. На сколько я понимаю сам <Код> с формулами и расчетами делает один специалист, второй человек разрабатывает дизайн этого калькулятора, третий человек все это совмещает и «натягивает» на сайт. Как совместить этих людей? Как сделать так, чтобы результаты работы одного были понятны другому, чтобы все работали на одном понятном друг другу языке. Или может быть есть специалисты способные проделать всю работу «соло»?
  5. Может быть ты дорогой читатель и есть такой человек? Или ты знаешь такого человека? Поделись информацией. Со своей стороны могу помочь в своей области:). Может ты строишь дачу или загородный дом и тебе нужен совет по ближайшей реке/ручью или по климатическим характеристикам твоего региона (минимальные температуры зимой, толщина снега, скорость ветра и т.д.).
Мы тут собрали умную камеру для наблюдения за котиками. Хотите научим?

1. В сфере веб-программирования: PHP/JavaScript, Node.js/JavaScript, Ruby/JavaScript, Python (Django)/JavaScript, Perl/JavaScript и т. д.

2. На Kwork можно найти уйму превосходных, ответственных и дешевых (по сравнению с веб-студиями) веб-разработчиков.

3. Обычный сайт из 5 страниц со следующей структурой: "Главная", "Услуги", "Калькулятор", "Отзывы", "О проекте" будет стоить на Kwork около 10 000 рублей. + Калькулятор и экспорт в формате doc/docs - это еще где-то 5 000 руб. Но опять же, это зависит от того, на сколько оценивает себя тот или иной веб-разработчик. Например, я бы за 10 000 без труда бы нашел нормального веб-программиста на какой-нибудь бирже фриланса для подобного рода задачи.

4. Можно поступить несколькими способами:

- Нанять front-end разработчика.

- Нанять back-end разработчика.

Ну или просто нанять только одного full stack разработчика, хорошо разбирающегося в PHP и JavaScript/Vue.js/React.js.

Еще можно купить готовую верстку на ThemeForest и обратиться только к back-end разработчику, который без труда сможет все это заставить работать.

И не забывайте про SEO'шников и маркетологов, если вы собираетесь продвигать сайт в поисковых системах за счет платного или бесплатного трафика.

P.S. Как правило, в наше время веб-разработчики умеют и верстать, и программировать, т. к. конкурировать в этой сфере стало очень сложно. Просто составьте техническое задание и затем опубликуйте его на Kwork. Те разработчики, которых устроят ваши условия - обязательно возьмутся за ваш заказ. ред.

10к баксов или рублей?

Мне кажется вы демонизируете проблему. Ваш калькулятор это просто обычная форма, может с более сложной логикой работы. Навскидку работы на пару часов. Если я правильно понял, то дизайн сайта и форм уже есть, что мешает использовать их. Выше правильно сказали есть биржи. тот же кворк, там есть раздел доработать сайт(лендинг), цены от 500 рублей, не думаю, что это затратная работа.

Может и так, но я ж говорю, что эта область (разработка сайтов) для меня просто как "туман войны".
Допускаю, что для профессионала это как два пальца об асфальт.
Но проблема в том, что я даже не знаю с чего начать, потому и написал этот список вопросов, чтобы знающие направили в нужную сторону.

Вам уже сказали/направили )

1. Как уже говорили выше, сфера web программирования.

2. Где искать не посоветую, так как не встречал более менее хорошей площадки.

3. Все зависит от того, что должно быть ещё не сайте кроме калькулятора. Сам функционал калькулятора со всеми выгрузками и отчётами на мой взгляд будет делаться по времени около 2-3 недель в сумме. Это дизайн, бэк, фронт и верстка. А по сумме тут уж кого найдете. Минимум 50к.

4. Нужены:
Дизайнер - все рисует и отдает вам макеты
Бэкендер - пишет серверную логику калькулятора, все что для него необходимо, и выгрузки
Фронтендер - отображает серверную логику непосредственно на сайте
Верстальщик - делает что бы все было красиво

Как правило, если найти нормально бэкендера, то он и фронт сможет сделать. Но нужен будет верстальщик.
Если найти нормального фронтендера, то он в теории сможет и сверстать. Но нужен будет бэкендер
Либо можно найти фуллстека который и бэк сделает и фронт и сверстает.
Единственное, скорей всего, придется отдельно искать дизайнера.

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

Ну и да, как говорили выше нужен будет тот кто умеет продвигать сайты. Это как правило тоже отдельный человек.

5. Если что, то я могу посодействовать в написании бэкенд части и фронта. Но не фуллтайм

image

Не секрет что каждый из нас хоть раз открывал com или exe файлы блокнотом, видел письмена подобные этим:

В целях приподнятия завесы тайны странного наречия и написана эта статья.

Сразу стоит отметить, что символы, приведенные выше, по большей части, не несут смысловой нагрузки в своем начертании. Они являются визуальной формой числового представления. В свою очередь, числовое представление является операционным кодом машинного языка, и хранителем сакрального смысла этих тайных знаков.

Практика

На первом этапе, нам придется опустится как можно ближе к опкодам и написать программу на языке Ассемблера

Язык ассемблера, или просто ассемблер — низкоуровневый язык программирования, использующий мнемоники, инструкции и операнды для представления машинного кода
Википедия

Теперь, имея на руках готовую программу, можно перейти к этапу трансляции.

Трансляция

org 100h
Это просто смещение и код для него не генерируется. Будем использовать 100h для будущего расчета адресов.

mov ah,9h — заносим в регистр ah число 9h.
Переведем в машинные коды. Открываем второй том интеловской книги на странице с инструкцией mov. И видим…

Opcode Instruction Clocks Description
88 /r MOV r/m8,r8 2/2 Move byte register to r/m byte
89 /r MOV r/m16,r16 2/2 Move word register to r/m word
89 /r MOV r/m32,r32 2/2 Move dword register to r/m dword
8A /r MOV r8,r/m8 2/4 Move r/m byte to byte register
8B /r MOV r16,r/m16 2/4 Move r/m word to word register
8B /r MOV r32,r/m32 2/4 Move r/m dword to dword register
8C /r MOV r/m16,Sreg 2/2 Move segment register to r/m word
8D /r MOV Sreg,r/m16 2/5,pm=18/19 Move r/m word to segment register
A0 MOV AL,moffs8 4 Move byte at (seg:offset) to AL
A1 MOV AX,moffs16 4 Move word at (seg:offset) to AX
A1 MOV EAX,moffs32 4 Move dword at (seg:offset) to EAX
A2 MOV moffs8,AL 2 Move AL to (seg:offset)
A3 MOV moffs16,AX 2 Move AX to (seg:offset)
A3 MOV moffs32,EAX 2 Move EAX to (seg:offset)
B0 + rb MOV reg8,imm8 2 Move immediate byte to register
B8 + rw MOV reg16,imm16 2 Move immediate word to register
B8 + rd MOV reg32,imm32 2 Move immediate dword to register
C6 MOV r/m8,imm8 2/2 Move immediate byte to r/m byte
C7 MOV r/m16,imm16 2/2 Move immediate word to r/m word
C7 MOV r/m32,imm32 2/2 Move immediate dword to r/m dword

Как же выбрать из всего этого множества необходимую команду? Регистр ah является байтным регистром. Плюс нам необходимо занести в регистр число 9. Поэтому выбираем опкод для MOV reg8, imm8, это B0+rb, где rb номер регистра, который можно взять из следующей таблицы.

rb rb rd
0 AL AX EAX
1 CL CX ECX
2 DL DX EDX
3 BL BX EBX
4 AH SP ESP
5 CH BP EBP
6 DH SI ESI
7 BH DI EDI

Номер регистра ah равен 4. Отсюда B0+4=B4. Число, которое будет занесено в регистр, пишется следом за опкодом инструкции. Таким образом, mov ah, 9h превращается в B4, 9 (запятая поставлена лишь для визуального отделения чисел).

Следующая инструкция mov dx, message . В регистр dx заносим адрес строки message. Пока рассчитать его мы не можем, поэтому поставим временную заглушку. Пользуясь двумя приведенными выше таблицами, получаем опкод для mov dx — BA,100, где 100 является временной мерой.
Теперь транслируем int 21h и int 20h , из приведенной ниже таблицы можно получить нужные опкоды — это CD,21 и CD,20.

Opcode Instruction Clocks Description
CD ib INT imm8 37 Interrupt numbered by immediatebyte
CD ib INT imm8 pm=59 Interrupt--Protected Mode, same privilege
CD ib INT imm8 pm=99 Interrupt--Protected Mode, moreprivilege
CD ib INT imm8 pm=119 Interrupt--from V86 mode to PL 0
CD ib INT imm8 ts Interrupt--Protected Mode, via task

Запишем полученную программу: B4, 09, BA, 100, CD, 21, CD, 20 .
Вернемся к нашей заглушке потому, как нам все еще необходимо рассчитать адрес нашей строки для вывода. Теперь это сделать достаточно просто. Посчитаем все пары цифр по порядку. Их девять (число 100h не входит в один байт. Поэтому требуется два). Таким образом, адрес строки будет равен 100h+9h=109h. Заменяем 100h на 109h. Число 109h, по понятным причинам, не может быть помещено в один байт, поэтому понадобиться двухбайтовое значение 09,01 таким образом, получаем следующую программу: B4, 09, BA, 09, 01, CD, 21, CD, 20.

Кодинг

image


Для простоты кодирования приведем числа к десятичной системе счисления (для оправдания заголовка, на калькуляторе)
180, 9, 186, 9, 1, 205, 33, 205, 32 .
Вооружаемся блокнотом и вставляем нужные ASCII символы.
Не забываем ввести в конце Hello World!$ .

Все что осталось это сохранить наш файл с расширением com и запустить.

Microsoft Notepad был включен в каждую версию Windows, начиная с Windows 1.0 в 1985 году. Это чрезвычайно минималистский текстовый редактор, и когда я говорю «минималистский», я имею в виду минималистский . Если в качестве текстового процессора для Microsoft Word установлено значение «10», то значение «Блокнот» будет равно «.000004» (дайте или возьмите несколько нулей).

Блокнот доводит концепцию «без излишеств» до крайности. Но то, что ему не хватает в способностях обработки текста, это восполняет как минималистский блокнот для базового кодирования. Помимо основной функциональности текста, Блокнот является надежным хранилищем для старых языков программирования, таких как VBScript. Пользователи могут создавать простые программы для персонализации работы с Windows (или просто выполнять аккуратные трюки). Конечно, существуют лучшие текстовые редакторы для всех, кто занимается кодексом, но Notepad - это текстовый редактор для всех (под управлением Windows).

Любой может использовать Блокнот, чтобы поиграться с кодом и создать программы для персонализации работы с Windows (очень неформально и исправимо). Даже если вы ничего не знаете о кодировании, существует множество базовых примеров кода, которые вы можете вырезать и вставить в Блокнот для некоторых ПК Magic.

Вот семь классных программ, которые каждый может использовать для создания простых маленьких программ на своем ПК. Все эти скрипты были протестированы с использованием Windows 10 Creators Update и могут немного отличаться в вашей установке Windows.


1 матричный эффект

Помните Матрицу ? Это самая близкая вещь, когда крупная бюджетная фантастика становится «мыслителем». Что ж, теперь вы можете пережить все свои воспоминания о матрице через Блокнот и немного простого кода. Вот что ты делаешь.

1) Скопируйте следующие строки кода и вставьте их в Блокнот:

@ эхо выключено
цвет 02
:ухищрения
echo% random %% random %% random %% random %% random %% random %% random %% random%
трюки

2) Сохранить как «Matrix.bat» (или вы можете называть его как хотите, но важно сохранить его как файл .bat).


2 Сделать личный дневник

Этот простой, но может быть сочтен полезным для некоторых.

1) Введите «.LOG» в новый документ «Блокнот» (без кавычек). Примечание: это должно быть все в верхнем регистре.

2) Сохранить как обычный текстовый документ.


3 Заставьте свой компьютер говорить

Теперь вы можете быть таким же, как Мэтью Бродерик в разгар технологического процесса 1983 года, и заставить свой компьютер говорить человеческим голосом. Это весело! Вот что ты делаешь.

1) Введите следующий код в документ Блокнот:

2) Сохранить как «talk.vbs» или как угодно (важно, чтобы вы сохранили его как файл .vbs).


4 Превратите свою клавиатуру в фестиваль EDM

Вы когда-нибудь хотели, чтобы ваша клавиатура была более 1) раздражающей и 2) праздничной? Что ж, благодаря этому трюку вы можете сделать это.

1) Вставьте следующий код в документ Notepad:

Установите wshShell = wscript.CreateObject ("WScript.Shell")
делать
wscript.sleep 100
wshshell.sendkeys ""
wshshell.sendkeys ""
wshshell.sendkeys ""
петля

2) Сохранить как файл .vbs.

3) Дважды щелкните по сохраненному файлу.


5 Угадайку

Вот хороший способ скоротать время, если вам скучно через Instructables.

1) Вставьте следующее в документ «Блокнот»:

2) Сохранить как файл .bat.


6 Генератор паролей

Ваши пароли, вероятно, отстой. Если вы хотите создать простой (числовой) генератор случайных паролей, вы можете сделать это с помощью этого небольшого трюка (с помощью Instructables). Иногда числа длиной в четыре цифры; некоторые из них пятизначные. По сути, это скорее генератор ПИН.

1) Вставьте следующий код в документ Блокнота.

@ эхо выключено
: Start2
ЦБС
Перейти к началу
:Начало
Название Генератор паролей
эхо я сделаю вам новый пароль.
эхо Пожалуйста, запишите пароль где-нибудь на случай, если вы забудете его.
эхо ---------------------------------------- -------- ---------------
эхо 1) 1 случайный пароль
эхо 2) 5 случайных паролей
эхо 3) 10 случайных паролей
echo Введите ваш выбор
установить вход =
set / p input = Choice:
если% input% == 1 перейти к A, если НЕ перейти к Start2
если% input% == 2 перейти к B, если НЕ перейти к Start2
если% input% == 3 перейти к C, если НЕ перейти к Start2
: A
ЦБС
echo Ваш пароль% random%
эхо Теперь выберите, что вы хотите сделать.
эхо 1) вернуться к началу
эхо 2) Выход
установить вход =
set / p input = Choice:
если% input% == 1 перейти к Start2, если НЕ перейти к Start 2
если% input% == 2 перейти к выходу, если НЕ перейти к началу 2
:Выход
Выход
: B
ЦБС
echo Ваши 5 паролей:% random%, % random%, % random%, % random%, % random%.
эхо Теперь выберите, что вы хотите сделать.
эхо 1) вернуться к началу
эхо 2) Выход
установить вход =
set / p input = Choice:
если% input% == 1 перейти к Start2, если НЕ перейти к Start 2
если% input% == 2 перейти к выходу, если НЕ перейти к началу 2
: C
ЦБС
echo Ваши 10 паролей:% случайный%, % случайный%, % случайный%, % случайный%, % случайный%, % случайный%, % случайный%, % случайный%, % случайный%, % случайный%
эхо Теперь выберите, что вы хотите сделать.
эхо 1) вернуться к началу
эхо 2) Выход
установить вход =
set / p input = Choice:
если% input% == 1 перейти к Start2, если НЕ перейти к Start 2
если% input% == 2 перейти к выходу, если НЕ перейти к началу 2

2) Сохранить как файл .bat.


7 Виртуальный калькулятор

Этот калькулятор с ручным кодированием - это больше крутое подтверждение концепции, чем то, что я бы честно рекомендовал для ваших нужд. Ваш ПК или телефон, скорее всего, поставляются с более интуитивным виртуальным калькулятором, как и браузер, на котором вы, вероятно, читаете это. (Через инструктаж)


Блокнота калькулятор является своим родом программного обеспечения калькулятора , который использует текстовый редактор в качестве своего основного интерфейса, а не имитируя традиционный карманный калькулятор. Основное преимущество калькулятора в блокноте - это возможность видеть и редактировать расчеты целиком. Они позволяют вам решать математические задачи построчно, подобно тому, как они решаются на бумаге.

СОДЕРЖАНИЕ

История и варианты

Калькуляторы блокнота в стиле MathPad

Одна из первых версий калькулятора блокнота называлась MathPad и была разработана Марком Видхольмом в 1993 году. Она распространялась как бесплатная загрузка.

Чтобы оценить строку, пользователь должен ввести математическое выражение и нажать клавишу возврата. MathPad вставил символ двоеточия, за которым следует результат в той же строке.

MathPad также использовал функцию выделения синтаксиса для раскрашивания различных частей выражения пользователя. Это помогает пользователю отличать функции и числа от обычного текста, который не оценивается. Пользователи также могут сохранять свою работу в виде текстовых документов и выполнять базовую печать.

Calca от Фрэнка Крюгера - это современный калькулятор блокнота в стиле MathPad, впервые выпущенный в 2013 году. Он использует аналогичный интерфейс текстового редактора, хотя он требует, чтобы пользователь набрал «=>», чтобы оценить строку. Он также добавляет возможность добавлять форматирование Markdown.

Калькуляторы блокнота в стиле соулвер

Soulver - это калькулятор в блокноте, созданный Ником Юдейлом и Заком Коханом. Первоначально он был выпущен для Mac и Windows в мае 2005 года. 9to5Mac описал его как мощное сочетание приложения-калькулятора и текстового редактора для выполнения быстрых вычислений. Версия Soulver, выпущенная в 2019 году, добавила вычисления даты и календаря, многословные переменные и ряд дополнительных фраз на естественном языке.

Другие продукты калькулятора блокнота, основанные на интерфейсе Soulver, были выпущены на большинстве основных вычислительных платформ. Некоторые клоны Soulver имеют открытый исходный код и могут использоваться из браузера.

Читайте также: