LINUX.ORG.RU

Простой (?) калькулятор своими руками


0

1

Итак, пробую объяснить.

Есть необходимость сделать «калькулятор». Объясняю схему, как он должен работать. Есть поля выбора значения (1,2,3,4,5...n), есть поля, заполняемые пользователем. Есть поля, которые должны игнорироваться или работать как 0. Между полями установлены постоянные арифметические действия: умножить, сложить (кстати, тут не работает тема, насчет поле = 0, так что, лучше пусть будет неактивным, при необходимости).

Насколько сложна задача для полного новичка в программировании? Можно ли осуществить в Lazarus?


Насколько сложна задача для полного новичка в программировании?

Если знаешь ООП хотя бы на примитиве, то не сложно.

comp00 ★★★★
()
Ответ на: комментарий от comp00

Одного ООП тут будет мало. Желательно еще бы подтянуть лямбды. Ну и конечно придется несколько вставок на асм сделать.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

Желательно еще бы подтянуть лямбды.

тут я задумался

Ну и конечно придется несколько вставок на асм сделать.

А тут я понял что ты меня троллишь. А ведь почти получилось.

comp00 ★★★★
()

План А.

1. Берем «К & R»
2. Копипастим код из конца книги
3. Прикручиваем к нему гуй
???
ПРОФИТ!

План Б.

1. Берем эксель Берем supercalc
2. Правим его в хексредакторе до нескучного состояния со своими копирайтами
???
Ну ты понел

План Ц.

1. Берем эксель
2. Берем редактор ресурсов
3. Смотри п.2 плана Б.
???
На винфак!

в Джобса!jobs!

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от cdshines

Я все больше убеждаюсь, что пора самозабаниться. Вносить смысл в треды с нулевым его количеством становится все сложнее и утомительнее.

anonymous
()
Ответ на: комментарий от beastie

Я бы ресурс ставил на первое место, а не «оппонентов». Ты бы на хабр зашел да огляделся. Оппоненты нашлись понимаешь, один базворд вкинул, другой огородами отправил. Стыдно за девелопмент, товарищи.

anonymous
()
Ответ на: комментарий от beastie

Ну и как КНР связан с постановкой вопроса? Я бы на месте опа подумал, что звездатый дядька знает что говорит и начал бы читать. Какой будет профит по сабжу, может кто подскажет, пока он не начал?

ОП, просто сегодня не твой день (ночь).

anonymous
()
Ответ на: комментарий от varchar

О, то, что нужно. Спасибо.

P
() автор топика
Ответ на: комментарий от anonymous

Анон, не переживай. Сам в своё время был «звезданутым», да ушёл на покой.

P
() автор топика
Ответ на: комментарий от anonymous

Если бы без красного словца — никто бы твой пост не трогал. Если же не можешь свою мысль без унижений выразить — лучше пожалуста ничего не говори. Хабры и подобное мне не пример.

beastie ★★★★★
()
Ответ на: комментарий от anonymous

Выше я уже замечал, что вопрос поставлен не ясно. ТС спросил — я ответил.

beastie ★★★★★
()
Ответ на: комментарий от Suntechnic

Распараллелить на працессорные ядра нужно будет.

drSchur ★★★
()
Ответ на: комментарий от beastie

Хабр был антипримером для лора. Посыл усвоил, приношу свои извинения за словцо. Но откровенный флуд и набор скора для токсов в девелопменте, это... Ну надеюсь ты понел, а то мне теперь нельзя.

anonymous
()
Ответ на: комментарий от beastie

Подвижники-сизифы, к сож., не могут без самоунижений :) Отметиться в составе самолично обозначенной категории лиц - это надо уметь. «Какой профит от КНР»казалось бы, причем тут корейцы... Но профит от «K & R» - для, цитирую, «полного новичка в программировании» - он же, вроде, очевиден.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

А вот и гении логики подтянулись, попетросянить и немножечко по теме, ну чисто чтоб скору добавить. Смысловой нагрузки все еще ноль. Ни наводящих вопросов, ни вводных мыслей. Читай K&R, там калькулятор, только гуй лазарувский прикрутить и всего делов. Сломали анонимуса полностью :/

anonymous
()
Ответ на: комментарий от anonymous

А вот и гении логики подтянулись

Да куда ж вы c ЛОРа уходили-то... Впрочем ладно, что конкретно по теме предлагаете? Дать прямую ссылку на кусок какого-нибудь кода, хотя бы и на Object Pascal с лазарусом, в котором «абс. новичок в программировании» все равно поймет мало без помощи винта «A + С = П»... или хотя бы РабиновичаФаронова? Это отсюда традиционно переносят в jobs (и результат без гарантий - случалось, добрые и честные люди готовые программы не могли выдать за свои - потому что не знали основ). Потому что «своими руками» без минимальных навыков может быть мучительно... Негуманно аж до бесчеловечности. Как говорил один тренер по плаванию, «не осилишь ты Азов без каких-нибудь азов»... И сталкивал всех с обрыва. Sad but true.

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от slackwarrior

Какой такой K&R копипастим? Он на паскале кодит.

anonymous
()

кстати, тут не работает тема, насчет поле = 0, так что, лучше пусть будет неактивным, при необходимости

Для умножения такое поле = 1?

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

Делается на любом ЯП любым человеком умеющим писать гуйню.

AIv ★★★★★
()
Ответ на: комментарий от comp00

ты хоть раз видел как выглядит программа с гуем без ООП? Советую посмотреть.

ВОт гуевый фрагмент кода, без ООП:

if '--gui' in sys.argv[1:] :
    from aivlib.myTkinter import dialog_tree
    #---------------------------------------------------
    def df_add() :
        i = len(calc.df_list); calc.df_list.append([ 40, Vctr(0.,0.,1.) ])
        df_gui[( 0, 2*i+3 )] = ('функция распределения номер %i: число ячеек'%i,
                                '.df_list[%i][0]'%i)
        df_gui[( 0, 2*i+4 )] = (' ось','.df_list[%i][1]'%i)
    #---------------------------------------------------
    def mk_ht() :
        calc.h = min( .1*math.pi/(calc.Hext+calc.K2*calc.axe2+calc.K4*calc.axe4).abs(), 
                       .1*math.pi/calc.Omega )
        calc.t_relax = 3./calc.gamma 
        calc.Delta_t = 80.*math.pi/calc.Omega
        calc.steps_count = int( (calc.Delta_t+calc.t_relax)/calc.h )
    #---------------------------------------------------
    df_gui = { '00':('выводить сферическую функцию распределения', '.df_out'), 
               '01':('ранг сферической функции распределения', '.df_rank'),
               '02':('добавить одномерную функцию распределения', df_add) }
    if not dialog_tree( calc.path, calc, 
                        [( 'физические параметры', 
                           { '00':('температура T','.T',16), 
                             '01':('коэффициент диссипации gamma',
                                   '.gamma',16), 
                             '02':('постоянное внешнее поле Hext',
                                   '.Hext',4),
                             '03':('амплитуда переменного внешнего поля Aext',
                                   '.Aext',4),
                             '04':('частота  переменного внешнего поля Omega',
                                   '.Omega',16),
                             '05':('линейная анизотропия','.K2',16), 
                             '06':(' ось','.axe2',4),
                             '07':('кубическая анизотропия','.K4',16), 
                             '08':(' ось','.axe4',4)
                             } ),
                         ( 'начальные условия', 
                           { '00':('начальное значение','.init_value'),
                             '01':(1, '.init_method', ('дельта функция',0), 
                                   ('сферическое распределение',1), 
                                   ('распределение Больцмана',2), 
                                   ) }),
                                          
                         ( 'численные параметры', 
                           { '00':('шаг по времени h','.h'),
                             '01':('вывод каждые nsteps','.nsteps'), '11':'шагов',
                             '02':('время установления колебаний t_relax','.t_relax'),
                             '03':('время расчета Фурье-образа Delta_t','.Delta_t'), 
                             '04':'общее число шагов в расчете %(steps_count)g',
                             '05':('подобрать параметры автоматически',mk_ht)
                             } ),
                         ( 'функции распределения', df_gui ) ] ) : sys.exit()
ЧЯНТД?;-)

AIv ★★★★★
()
Ответ на: комментарий от comp00

Нет. Можете сделать лучше? Я б с удовольствием поглядел. Тока у Вас с Вашим ОПП это будет простыня на 5 экранов.

AIv ★★★★★
()

Возьми Excel и не парься.

Miguel ★★★★★
()

Я сделаю это задание за день!

anonymous
()
Ответ на: комментарий от comp00

ты хоть раз видел как выглядит программа с гуем без ООП? Советую посмотреть.

Посмотри на любой код на Tcl/Tk, там никаким гомосяцким ООП и не воняет даже.

ООП для гуя не нужен и только вреден.

anonymous
()

пушкой по люмпен заданиям

скобки между полями возможны???

как не странно но вот относительно длинный вариант (который легко обьяснять) покомпонентности.

1. классический калькулятор вычисляющий строку ариф выражение.

2. гуйня которая принимает поля и каждый раз формирует(сцепляет) из полей и лабелов строку выражения которая и считается . и выплёвывается в лабел ответа

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

qulinxao ★★☆
()
Ответ на: комментарий от comp00

зачем нужно знание ООП, если в лазарусе(о коем сказал тс), можно мышкой кликать ?) //сам я не фанат мышкекликания, да и гуя тоже.

TakeOver
()
Ответ на: комментарий от anonymous

Посмотри на любой код на Tcl/Tk, там никаким гомосяцким ООП и не воняет даже.

Лол. Удачки, тебе анонимус со своим Tcl/Tk рассмешил ты меня, да.

comp00 ★★★★
()
Ответ на: комментарий от comp00

ты хоть раз видел как выглядит программа с гуем без ООП? Советую посмотреть.

//_-

Waterlaz ★★★★★
()

Присобачь вызовы интерпретатора пайтона к гуям на своём лазурусе и готово :D

fornlr ★★★★★
()
Ответ на: комментарий от comp00

Че ты вякнуло, быдло? Я не улавливаю семантики в твоем гомосяцком пердеже.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Питон. Этот «омерзительный быдлокод» решает поставленную задачу наиболее лаконичным и эффективным образом.

AIv ★★★★★
()
Ответ на: комментарий от comp00

ФИгасе у вас тут оказывается спор идет! А на каком высочайшем уровне то!! И чем же Вас так тикль насмешил, поделитесь? Для простой гуйни наск я понимаю пока ничего лучше не придумано.

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.