Как сделать свой калькулятор на компьютер

Обновлено: 03.07.2024

В этой статье простым языком изложена вся необходимая информация для программирования калькулятора на языке C. Применяемая программа используется на лабораторных занятиях студентов инженерных специальностей первого года обучения. Так что любой студент, например изучающий математическое моделирование в биологии, сможет самостоятельно запрограммировать калькулятор. Попробуем сделать калькулятор и мы.

Цель этой программы

Сделать простой калькулятор на языке программирования C с помощью оператора switch .

Понятия, используемые в программе

Типы данных

Тип данных указывает на вид данных, которые может хранить переменная, например целочисленные типы, числа с плавающей запятой, символьные типы данных и т. д.

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

int

Переменная int используется для хранения целых чисел.

Синтаксис для int: int variable_name =integer ;.

Например: int a=10;.

char

Самый распространенный тип данных на C. Он занимает в памяти один байт почти во всех компиляторах.

Синтаксис для char : char variable_name=”single character”;.

Например: char b=”x”;.

Операторы switch

Переключатель (оператор switch) позволяет проверить переменную на соответствие по списку значений. Каждое значение называется случаем (case) , и переменная, для которой задействуется оператор switch , проверяется для каждого случая внутри switch .

Синтаксис для switch :

switch(expression) case value1:
statement(s);
break;
case value2:
statement(s);
break;
…….
default:
statement(s)
>

Алгоритм для этой программы

Шаг 1 : начало.

Шаг 2 : объявляется переменная n, a, b, c типа данных int .

Шаг 3 : отображается меню для пользователя.

Шаг 4 : читается значение n от пользователя.

Шаг 5 : при вводе пользователем любого числа от 1 до 5 выполняется следующий шаг согласно случаю, соответствующему введенному числу.

a) случай 1. Читаются значения a и b . Высчитывается сумма a и b . Результат отображается с помощью break;.

б) случай 2. Читаются значения a и b . Высчитывается разность a и b . Результат отображается с помощью break;.

в) случай 3. Читаются значения a и b . Высчитывается произведение a и b . Результат отображается с помощью break;.

г) случай 4. Читаются значения a и b . Высчитывается частное от деления а на b . Результат отображается с помощью break;.

д) случай 5. Читаются значения a и b . Высчитывается квадрат а . Результат отображается с помощью break;.

е) default: отображается Invalid.

Шаг 7 : конец.

Блок-схема

Заголовочный файл stdio . h расшифровывается как “standard input output” («стандартный ввод/вывод»). В нем содержится информация, связанная с функциями ввода/вывода.

Что такое «main»?

Функция main () — это точка входа любой программы на Си . Здесь начинается выполнение программы. При этом контроль выполнения переходит непосредственно в функцию main (). Функция main () есть в каждой программе на C.

Что такое «printf» и «scanf»?

Функция printf () задействуется для отображения вывода, а функция scanf () — для принятия пользовательского ввода. Они часто используются в языке C, в частностив заголовочных файлах в качестве встроенных библиотечных функций.

Что такое «switch» и «case»?

Оператор switch позволяет проверить переменную на соответствие по списку значений. Каждое значение называется случаем ( case ), а переменная, для которой задействуется оператор switch , проверяется для каждого случая case внутри switch .

Что такое оператор «break»?

break — это ключевое слово, которое используется в языке C для вывода управления программой из цикла . Оператор break задействуется внутри циклов или внутри оператора switch, прерывая циклы один за другим. То есть в случае вложенных циклов сначала он прерывает внутренний цикл , а затем переходит к внешним.

А для чего на C нужен «default»?

Операторы switch и case используются только для конкретных значений выполняемых операторов case и для проверяемого выражения внутри switch . Когда выражение в switch не соответствует ни одному случаю case , программа выполняет операторы default .

Что такое «ruturn 0»?

return 0 в функции main означает, что программа выполнена успешно и определяемая пользователем функция возвращает false. return 1 в функции main означает, что программа не выполнена успешно и есть какая-то ошибка, а определяемая пользователем функция возвращает true.

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

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

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

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

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

Хочу сделать для сайта калькулятор расчета сметы. Чтобы пользователь на сайте сам мог заполнить виды работ, их количество и в конце получил бы оформленный (заполненный) 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. Если что, то я могу посодействовать в написании бэкенд части и фронта. Но не фуллтайм

Как написать программу-калькулятор

Добавьте в код 4 переменных, которые будут сохранять числа, введенные пользователем и определять режим. Например:

var
a, b, c: real; //числа, которые вводит пользователь
d: integer; //действие калькулятора

Созданные переменные можете внести как и в protected, так и в private. Теперь к каждой цифровой кнопке обработайте событие OnClick. Для всех цифр код будет идентичен:

procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Caption:=Panel1.Caption+'число'
end;

Замените «число» на название кнопки (если это цифра 0, то Panel1.Caption+'0').

Переменная d имеет формат integer и будет содержать соответствующее числовое значение какого-либо действия. Если будет осуществляться умножение, то можно задать действию значение 1, если деление — значение 2, если сложение — значение 3, и т. д. Для действия умножения код будет иметь вид:

procedure TForm1.ButtonMultiplyClick(Sender: TObject); //действие умножения
begin
a:=StrToFloat(Panel1.Caption); //после нажатия кнопки сохраняется значение переменной a
d:=1; //переменной действия задается соответствующее значение
Panel1.Caption:='';
end;

Сделайте аналогичные операции для деления (ButtonDivClick), сложения (ButtonPlusClick), вычитания (ButtonMinusClick) и возведения в степени (ButtonPowerClick).

Для обработки значения ''='' необходимо сделать условие case и поочередно рассматривать каждое действие:

procedure TForm1.ButtonClick(Sender: TObject);
begin
case d of
1: begin //если d = 1, т. е. нажимается кнопка умножения, то происходит соответствующее действие
b:=StrToFloat(Panel1.Caption);
c:=a*b;
Panel1.Caption:=FloatToStr(c);
end;
2: begin
a:=StrToFloat(Panel1.Caption);
c:=a/b;
Panel1.Caption:=FloatToStr(c);

В этом руководстве мы расскажем, как создать калькулятор на Java для Android. Если вы новичок в программировании и никогда раньше не создавали приложения, ознакомьтесь с нашим предыдущим руководством по написанию первого приложения для Android:


Предполагается, что у вас есть хотя бы минимальный базовый опыт создания Android – приложений .

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

Создание проекта

Создание проекта

Для этого руководства мы выбрали в панели « Add an Activity to Mobile » опцию « EmptyActivity », для « MainActivity » мы оставили имя по умолчанию – « Activity ». На этом этапе структура должна выглядеть, как показано на рисунке ниже. У вас есть MainActivity внутри пакета проекта и файл activity_main.xml в папке layout :

Создание проекта - 2

Включение привязки данных в проекте

Перед тем, как создать приложение для Андроид с нуля, нужно уяснить, что использование привязки данных помогает напрямую обращаться к виджетам ( Buttons , EditText и TextView ), а не находить их с помощью методов findViewById() . Чтобы включить привязку данных, добавить следующую строку кода в файл build.gradle .

Включение привязки данных в проекте

Разработка макета калькулятора

Для включения привязки данных в файле activity_main.xml требуется еще одно изменение. Оберните сгенерированный корневой тег ( RelativeLayout ) в layout , таким образом сделав его новым корневым тегом.

Как научиться создавать приложения для Андроид? Читайте наше руководство дальше.

Теперь перейдите к файлу MainActivity.java . Создайте закрытый экземпляр ActivityMainBinding внутри вашего класса, а в методе onCreate() удалите строку setContentView () и вместо нее добавьте DataBindingUtil.setContentView() , как показано ниже.

Общие принципы создания виджетов макета

В приложении калькулятора есть четыре основных элемента:

Создание макета калькулятора

Создание макета калькулятора

Код макета калькулятора объемный. Это связано с тем, что мы должны явно определять и тщательно позиционировать каждую из кнопок интерфейса. Ниже представлен фрагмент сокращенной версии файла макета activity_main :

Внутренние компоненты калькулятора

Этот простой калькулятор сможет выполнять только операции сложения, вычитания, умножения и деления. Поэтому мы определяем четыре статических символа для представления этих операций и переменную CURRENT_ACTION , содержащую следующую операцию, которую мы намереваемся выполнить.

Затем мы используем класс DecimalFormat для форматирования результата. Конструктор десятичного формата позволяет отображать до десяти знаков после запятой.

Обработка нажатий на цифры

В нашем создаваемом простом приложении для Андроид всякий раз, когда пользователь нажимает на цифру или точку, нам нужно добавить эту цифру в editText . Пример кода ниже иллюстрирует, как это делается для цифры ноль ( 0 ).

Обработка кликов по кнопкам операторов

Обработка кликов по кнопкам операторов

Обработка нажатия кнопок операторов ( действий ) выполняется по-другому. Сначала нужно выполнить все ожидающие в очереди вычисления. Поэтому мы определяем метод computeCalculation . В computeCalculation , если valueOne является допустимым числом, мы считываем valueTwo из editText и выполняем текущие операции в очереди. Если же valueOne является NaN , для valueOne присваивается цифра в editText .

Продолжаем создавать копию приложения на Андроид . Для каждого оператора мы сначала вызываем computeCalculation() , а затем устанавливаем для выбранного оператора CURRENT_ACTION . Для оператора равно (=) мы вызываем computeCalculation() , а затем очищаем содержимое valueOne и CURRENT_ACTION .

Заключение

Если вы запустите и протестируете данное приложение, то увидите некоторые моменты, которые можно улучшить: 1) возможность нажимать на кнопку оператора, когда editText очищен ( т. е. без необходимости ввода первой цифры ), 2) возможность продолжать вычисления после нажатия кнопки « Равно ».

Полный код примера доступен на github .

Пожалуйста, опубликуйте свои отзывы по текущей теме статьи. За комментарии, подписки, лайки, дизлайки, отклики низкий вам поклон!

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

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