Премини към съдържанието

soundtracker

Потребител
  • Публикации

    545
  • Регистрация

  • Последно онлайн

Харесвания

518 Невероятна репутация

Всичко за soundtracker

  • Титла
    java.lang.NullPointerException
  • Рожден ден 26 октомври

Информация

  • Пол
    Мъж
  • Град
    София
  • Интереси
    Програмиране, Астрономия, Природни науки, Музика

Последни посетители

11173 прегледа на профила
  1. soundtracker

    Java Pack200

    Мда ... щото няма такова нещо като JAD, да не говорим, че IntelliJ даже CE версията успява да декомпилира .class P.S. "пакети" = папки след разархивирането. Така, че фактически са само клас файлове, но ... само мога да гадая колко ... хиляди ще са, ако са сложени и "бурканите" с библиотеки при генерирането на тоя jar. Съвета ми: Освен ако това не е нещо, което да е от изключително особено значение, по-добре го оставете тоя архив да си вирее цял Поздрави !
  2. Ретроспектива, ако обичате: ... Анализ: 1) Зададен е въпрос по точно конкретен проблем. 2) Даден Ви е отговор с ресурси, където да можете да проверите какво става. 3) Вие "прегледахте" всичко в Google и не става (?!) и искате клип - ами нали вече всичко проверихте ? Т.е. няма индексиран клип, който да описва това и някой от нас трябва да го направи ?! 4) Логично, при тази постановка е по-добре да се види конкретно какъв е проблема Ви - затова Ви се иска код или диаграми или нещо, което сте направил, за да може да Ви се помогне. Вие като сте болен, GP-то Ви как да Ви помогне, ако не му обясните конкретно проблемите си и не му покажете лабораторни резултати или снимки ? Или да пуска тотото и да Ви изпише нещо, пък ... ако стане ... ?! И много сте прав - това е ФОРУМ, в който хората си помагат - не е портал за учене или записване на tutorial-и по програмиране. Като в болницата - идва се с конкретен проблем и с вашите конкретни данни и изследвания, а не "дайте тука всички начини за ползването на пеницилина ... " . И малко повече увежение, ако обичате - @Raze и @mr mcwolf са можели през времето, когато са ви обърнали внимание да се занимават с техни си неща. Така, като заключение, поздравление за това, че сте успели да се справите с проблема си (който така и не се разбира всъщност от какво се обуслява), но обърнете малко внимание на attitude-а си към събеседниците насреща. P.S. Принципно, дори в големите форуми е прието, когато се реши даден проблем, независимо от кого, той да се добави като отговор към темата (дори SO си имат политика за Accepted Answer). Това ще помогне именно следващия индивид с такъв проблем, бързо да види как да го реши. В случая, честно казано, ще остана повече изненадан ако се случи, отколкото да не стане. Но ... надежди ... Поздрави и с ... уважение ...
  3. http://lmgtfy.com/?q=cpp+print+largest+even+number+from+user+input Или направо първия резултат: https://techcpp.blogspot.com/2016/04/program-to-find-largest-even-number-and.html Гугъл ви е приятел, въпреки, че наистина много иска да знае всичко за вас - ползвайте го ! Поздрави !
  4. Здравейте, Този форум е точно за това, когато някой има затруднения и проблеми, хората да се опитат да им помогнат. Но за да се получи това, трябва да можем да си говорим "на един език" т.е. на един и същ терминологичен речник. Не винаги хората имат време (и нерви ) да седнат да обясняват "азбуката" или ако трябва - то комуникацията си се води на ЛС-та. Така, да се върнем на оригиналния въпрос: "Как да вземам стойности само на определени checkbox" Фактически, въпроса е доста по - голям от това обаче - програмата Ви трябва да може не само да взема флаговата стойност на дадено входно поле, но и да презизчислява допълнително данните в друго поле (крайна/междинна цена). Ще използвам псевдо-код за да изложа предложенията, което вярвам, че щом сте стигнали до тук, няма да е проблем да си ги реализирате на C#. Предложение 1: Реализация с бутон за преизчисляване. Мотивация: Директната реализация на изчисляването може да се извърши по метода на "събиране" на входните данни, чрез ръчно действие на потребителя. В реалния свят, това е бутон "Изчисли/Преизчисли". В случаите, когато говорим за реализирането на фукционалност, използваща архитектурата "Клиент-Сървър", това е по - разционалния подход, защото потребителя им контрол кога да отправи запитването. Допълнително се постига и добра производителност на системата, защото сървъра, който ще извърши изчислението, ще бъде запитан само когато потребителя поиска. Псевдо-реализация: 1) Цялата проверка се извършва САМО когато се натисне бутона за "Изчисли/Преизчисли" 2) Всяка проверка за всеки check-box е НЕЗАВИСИМА - използва се САМО if statement-a. Псевдокод: private void onClickButtonRecalculate() { double totalSum = 0; For every standard input field INPUT Do: totalSum += calculateForInput(INPUT); End; // For each of the checkboxes: if (checkbox1 == true) { totalSum += calculateForCheckbox(checkbox1); } if (checkbox2 == true) { totalSum += calculateForCheckbox(checkbox2); } ... if (checkboxN == true) { totalSum += calculateForCheckbox(checkboxN); } totalSumLabel = totalSum; } Предложение 2: Event-driven подход: Мотивация: Често, клиентите искат да виждат всяка промяна по конфигурацията си да се отразява веднага върху набора от избрани техни параметри, без да се налага експлицитно те да правят заявка за преизчисляване. В този случай, и за постигането на целите, можем да обезпечим програмата с код, който се изпълнява на определено действие върху някой input. По този начин, ще се постигне real-time получаване на резултат. Този метод дава доста по-добър user experience, но в архитектура client-server може да натовари обработката, ако заявките се изпращат постоянно. В този случай, преизчислението има повече смисъл реално да не се предава на сървъра, а да се прави от самия клиент (с JavaScript). Независимо от програмната реализация, подхода е еквивалентен. Псевдо-реализация: 1) За всека една входна контрола, която ще въздейства върху резултата се определя кое събитие, породено от потребителско действие ще модифицира резултата. Възможни събития са: onClick, onFocus, onFocusOut, onKeyDown, onKeyUp и т.н. 2) За да се постигне този вариант, метода за изчисляване на "допълнителни" екстри трябва да е НЕЗАВИСИМ от останалите полета - това ще рече, че резултата от изчислението не може да зависи от досега получения резултат (т.е. добавяне на резултата чрез проценти, модулни и степенни операции не винаги могат да се отменят нетривиално). Във Вашия случай, check-box полетата добават стойност, която не е обвързана със досегашния резултат, което означава, че са обратими. Тука обаче трябва да се отбележи нещо - за да може да отмените операция, трябва да пазите стойностите на операндите, с която е направена промяната. В случая, трябва да пазите с колко дни са изчислявани всички check-box полета. 3) Реализацията на това може да се постигне по два начина отново: 3.1.) Чрез преизчисляване на ВСИЧКО за всяка направена промяна, при интеракция с което и да input поле - де факто, ще трябва за всяко поле, което може да се променя да закачите функция, еквивалентна на функцията onClickButtonRecalculate() от Предложение 1. 3.2.) За всеки input да закачите програмна логика, която ще изчислява САМО неговата част от общата стойност - разбира се, това означава, че за всеки такъв input ще трябва да пазите предходна стойност, за да може правилно да извадите предходния резултат и да добавите новия при промяна. Псевдо-код: // Global or Static: Map<Object, Object> previousValuesAddedFromField; // For EVERY checkbox or INPUT, define thiis method for the selected event handler: private void onClickOrInputForField(targetField) { // Take current total result. currentTotalResult = getDoubleFromLabel(totalSumLabel); // Take from global cache the previously added value, so that you can "undo" it. previouslyAddedValue = previousValuesAddedFromField.get(targetField); // Calculate the new value, that tou need to add currentlyCalculatedValue = calculateAdditionalTax(targetField); // The operation ONLY need to be done, if we have different data to // substitute - no need to do anything, if there won't be change. if (previouslyAddedValue != currentlyCalculatedValue) { // Remove previusly added. currentTotalResult -= previouslyAddedValue; // Add new data. currentTotalResult += currentlyCalculatedValue; // Update the cache value with the new one. previousValuesAddedFromField.put(targetField, currentlyCalculatedValue); // Change the totalSum to indicate the newly calculate value. totalSumLabel = currentTotalResult; } } // Extract double value from the input field. private double getDoubleFromLabel(targetField) { // TODO: Add checks, that targetField.data is valid double indeed. return targetField.data == null ? 0 : parseDouble(targetField.data); } // Calculate for this field what to add private double calculateAdditionalTax(targetField) { double result = 0; switch(targetField) { case checkBox1: result = ... break; case checkBox2: result = ... break; ... } return result; } За момента, това са подходите, които на prima vista ми идват на акъла - относително разбираеми и леки за имплементиране. Поздрави !
  5. soundtracker

    Идея за програмиране

    Здравейте ! Първо, поздравление за ентусиазма и енергията, с която искате да създадете продукт в помощ на останалите. Както вече Ви споменаха, насоката с Андроид е Java, Kotlin или Apache Cordova (NodeJS - JavaScript + HTML + CSS). Т.е. от описаното по-горе, следва, че ще трябва да научите поне един или два програмни езика за тази цел. Друго обаче ми прави впечатление, което по-скоро ме води до мисълта, че това няма да се получи (осланяйки се на принципа, че мотивацията най-лесно се постига с предизвикателство, искрено ще се радвам да ми докажете, че греша ) : 1) Има визия, но не е изчистена - всеки проект трябва да се знае какво иска да постигне и къде може да се счете за "готов за хората". Не е нужно да е нещо голямо - дори само един предмет и един урок да се представи с това решение - пак е добро начало, над което да градите. Думи от типа "еди-си-какво" индикират, че има какво още да се изчиства и какво още да се обмисля. Най-лесния начин е просто дори да си нарисувате на лист хартия всяко екранче какво ще има. След което помислете Вие, като потребител какво ще ви липсва и какво ще искате да имате (това е лесно - просто пуснете който и да app от телефона си и, така да се каже, му "намерете кусурите", които ви дразнят - шансът е повечето хора да се дразнят на същите неща, на които и вие ). 2) Базова мотивация : При положение, че на въпросните ползватели им е "трудно" да отварят учебниците, защо смятате, че ще ползват телефоните си (освен ако не са таблети), за да учат ? И за да поставим още по - трудния въпрос - електронни книги и учебници вече има, а и лесно могат да се сканират и направят на PDF - т.е. вече книгата е електронна и не тежи в раницата и въпреки това, пак не я ползват ... Явно не уроците и книгата са проблема май, а ? И третото, което е най-тежкото от всички: 3) Парадокса: И така - как ще направим приложение, което да замести учебника и уроците, при положение, че ние не искаме да отваряме книгата, с която да се научим да пишем това приложение ? Връщайки се на 2-рата точка, въпроса тука вече е и личната мотивация и промяната - ако искаме да направим приложение, ще трябва да седнем и да четем. А за да седнем и да четем, трябва да имаме желанието да го направим и да променим малко себе си, нали . Все още сме 180 години преди времето на Матрицата, където Нео учи кунг-фу с диск и игла в главния си мозък, а и текущото ниво на ИИ е до толкова, че да може да върти едни дебели математически формули относително бързо с порядъчно големи масиви от данни. Както отбелязах по-рано - искрено ще се радвам това, което написах да е мотивация да седнете и да се занимавате, а не да Ви откаже ! Поздрави и успех !
  6. Здравейте ! Опитайте се следното: if (mdr.Read()) да го замените с while(mdr.Read()) Принципно, когато искате да изчетете всички данни от курсор, Ви е необходим поне един цикъл, който да обикаля през редовете на записите, получени от RDBMS-а на MySQL или която и да е друга база. Понякога се налага и втори (вътрешен) цикъл, с който освен редовете, да обиколите и колоните, но в този пример, виждам, че вече получавате масив от данни, представляващ един кортеж/запис от резултатната таблица. Поздрави ! P.S. Следният ред: mysqlvruzka.Close(); го изкарайте извън тялото на if/while-а - затварянето на връзката трябва да се направи, след като всичко от курсора се изчете - в противен случай, ако се опитате да изчетете курсор от затворена вече връзка, може да получите Exception.
  7. soundtracker

    помощ java

    Здравейте, Няколко бележки по кода: 1) Входа е специфициран да е "поредица" от числа и то във формата, в който се третират входните аргументи от String[] args Може да се използват args наготово с Parse-ване, или просто да се остави Scanner-а, който да ги чете (без тези подканващи съобщения). Ако останете със Scanner-а, то той трябва да се затвори, след като сме приключили изчитането на данните. 2) По изискване, резултата се очаква да е цяло число - имаме ли проверка, че това наистина ще е така ? 3) Къде правим проверка на входните данни дали са правилен брой и тип ? Както са дефинирани като double, спокойно a, b, c и d мога да се сложат като -0.5, 0.34, 3.14 и т.н., което троши условието за входа: Дали a, b, c и d не трябва да са друг тип и да имат още проверки ? 4) Като генерален подход, решението е специфично за събиране на 2 дроби - добре е, когато мислим решения, да мислим в перспектива - дали ще можем да съберем 3, 4, ... N дроби ? В случая, може спокойно да помислим как да третираме въпросните променливи от входа като множество двойки от дроби за събиране (примерно 2 отделни масива, които да държат числителите и знаменателите или 2 отделни колекции). Поздрави !
  8. soundtracker

    моля ви за решение

    Това наистина е така, но по-скоро аз го приемам като "добър навик" на C/C++ програмиста и един вид дуракозащита срещу тези грешки. До колкото си спомням, компилационно наистина няма разлика и се привеждат в една и съща команда (тука тезата ми е по спомени - приемам забележка, ако не е вече така ) За Java и C# също е вярно твърдението, въпреки, че присвояването също е възможно в рамките на условния оператор (момента обаче е, че не можеш "без да искаш" да го постигнеш, защото, както е и отбелязано, компилацията следят типа на получения резултат от записания израз и реват, ако не е булев). Good Point, но и няма как да не се съглася и с @bvbfan - М$ до последно, докато се занимавах имаха странни разбирания за C/C++ - от 2-3 години, всичко на C/C++, поне при мен минава през GCC семейството .
  9. soundtracker

    моля ви за решение

    Оффф ... половината ми пост не се е добавил ... така е като бързам ... Първата половина беше свързана с добрите практити като цяло в сферата. Знам, че по принцип може и да се счете вече като спам или оффтопик, но може би ще е полезно и ще го добавя . С позволението на @exwol, ще използвам неговия код, за да направя малко анализ, свързан именно с това. Длъжен съм да кажа, че произведеното от него решение е валидно и покрива задачата, която трябва да се реши. Ако това се подготвя за production код обаче, ще се наложат малко промени . function checkSum(){ //Добре е да има валидация на операндите, преди парсването //Фактически, искаме да фарантираме, че тук ще имаме само число, а не alpha-numeric данни. //Може да се ползва isNaN(), който проверява дали данните не са число ... var number1=parseInt(document.getElementById("number1").value); var number2=parseInt(document.getElementById("number2").value); //Добра практика е ID-тата или конкретни hard-coded данни да се изнасят като глобални променливи или //да се изведат в началото на метода. var answ=parseInt(document.getElementById("answ").value); //Мммм носталгичен полъх от С/С++ - там често се използваше подобен запис за проверка. //По принцип, разпространения начин за проверка е a+b == c или a == null. Само в C/C++ и //UNIX скриптинга съм засичал null == a. Програмно, записите са еквивалетни, разбира се :). //За === -> Това е окей, въпреки, че е ненужно - така или иначе, ние сме парснали всички операнди към Integer тип //което ни гарантира, че работим с едни и същи типове. //Факт е обаче, че и аз бих оставил === а не ==, защото са "неведоми пътищата Божии" в JS а и съм параноичен, когато работя с JS код. if(answ === number1 + number2){ document.getElementById("true").innerHTML="Верен отговор!"; //Малко typo - едно пропуснато 'о' имаше } else { //На теория, ако имаме една операция (number1 + number2), повече от един път във функцията, //можем да кешираме резултата в променлива. Но това е отново въпрос на trade-off - една локална //променлива повече или процесора 2 пъти ще смята едно и също :). document.getElementById("wrong").innerHTML=(answ+" -> Е грешен отгвор! Верният е -> "+(number1+number2)); } } Та така . Дано помогне и да е полезно ! Поздрави и успешен ден !
  10. soundtracker

    моля ви за решение

    <!DOCTYPE html> <!-- saved from url=(0035)https://exwol.ddns.net/cheksum.html --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Събиране | Математика</title> <style type="text/css"> *{ height:auto; text-align:center; margin:0; padding:0; font-family:Verdana,Geneva,sans-serif } form { margin-top:20px } .btn-style{ padding:3px;display:block; text-align:center; margin:10px auto 0 auto } #correctAnswer{ color:green; margin-top:50px; font-size:25px } #wrongAnswer{ color:red; margin-top:50px; font-size:25px } </style> <script type="text/javascript"> operandOneId = "operandOne"; operandTwoId = "operandTwo"; answerId = "answerField"; correctFieldId = "correctAnswer" wrongFieldId = "wrongAnswer" function checkSum(){ //Get Raw data: var operandOneRaw = document.getElementById(operandOneId).value; var operandTwoRaw = document.getElementById(operandTwoId).value; var answerRaw= document.getElementById(answerId).value; //Get the refs to the possible outcomes: var trueOutcome = document.getElementById(correctFieldId); var falseOutcome = document.getElementById(wrongFieldId); //Validate: if (isNaN(operandOneRaw) || isNaN(operandTwoRaw) || isNaN(answerRaw) || (operandOneRaw.length + operandTwoRaw.length + answerRaw.length < 3)) { falseOutcome.innerHTML= "Поне един от параметрите не е число"; } else { var parsedOperandOne = parseInt(operandOneRaw); var parsedOperandTwo = parseInt(operandTwoRaw); var parsedAnswer = parseInt(answerRaw); var operandSum = parsedOperandOne + parsedOperandTwo if(operandSum === parsedAnswer){ trueOutcome.innerHTML="Верен отговор!"; } else { falseOutcome.innerHTML=(parsedAnswer + " -> Е грешен отговор! Верният е -> " + operandSum); } } } </script> </head> <body> <form method="post" onsubmit="checkSum();return false;"/> <input type="text" autocomplete="off" id="operandOne" placeholder="Въведете число" /> <span> + </span> <input type="text" autocomplete="off" id="operandTwo" placeholder="Въведете число" /> = <input type="text" autocomplete="off" id="answerField" placeholder="Въведете резултата" /> <input type="submit" class="btn-style" value="Провери резултата"/> <input type="submit" class="btn-style" value="Изчисти формата" onclick="window.location.reload()" /> </form> <div> <div id="correctAnswer"/> <div id="wrongAnswer"/> </div> </body> </html> Поздрави !
  11. soundtracker

    тарся примерен код html

    Явно автора иска да направим Скайнет и да произвеждаме Терминатори ... Ще ги праща в 90-те години на миналия век, че да спасяват България от разпродажбата на Костов ... Тая тема си реве за преместване в коша вече.
  12. soundtracker

    тарся примерен код html

    Тоя въпрос ме кара да отида до университета и да си върна дипломата по Изкуствен Интелект ... Така: Както вече се обясни HTML е презентационен "език" - съвкупност от нотации, описващи определена структура за подреждане и визуализиране на данни. С XML-а са братя. До момента не съм срещал нещо, което да прави ML, изграден на HTML. "Търсеща машина робот" преплита поне 3 концепции: "Търсеща" какво ? Данни ? Ресурси в Интернет ? Път към най-близката чалготека ? Това, което ми идва на prima vista е Search Engine, но само спекулирам. "Машина" за какво ? Не е много ясно "Робот" - ако е само за себе си, говорим за механичнo творение. Съчетано с "Търсеща", означава, че трябва да има поне памет + процесорно у-во, както и изпрограмиран, обучен, тестван и себе-усъвършенстващ се модел за вземане на решения. Каква е точно задачата, която трябва да се реши ? В тази сфера и при ML, не може да се говори за general-purpose решение на разнороден клас/съвкупност от задачи по простата причина, че моделите се обучават и планират да работят с определен набор от типове данни, взаимодействащи си по определен начин а и действията или изводите също са лимитирано и добре обусловено множество от команди, които осъществяват взетото решение. Това не е алгоритъм за събиране на числа, който може да се пише и на езотеричен език ... Толкова по темата - ако все пак това е било просто за "чесане на езици", игнорирайте поста ми ! Поздрави !
  13. soundtracker

    моля ви за решение

    Здравейте, По условие, задачата е изпълнена - скрипта работи, препращането - също. Момента със CSS-а обаче малко се разминава, но ако за самата задача сте отделили 10 мин за всичко, то CSS-а ще отиде поне половин час докато се намести всичко за всички браузъри. Поне според мен, за нивото и за нуждите, задачата може да се счете за почти направена . P. S. Лично не се наемам да оправям CSS-а тука - няма да е много, но ще трябва да се умува дали тая картинка трябва да е в div, който да се подравнява, дали да е в span заради IE<нещо-си> - по мое мнение, нека запитващия, като опит за упражнение да се опита да го стилира . Така поне ще има малко инвестиция на време и от негова страна, а ние по принцип целим именно това, нали . Поздрави !
  14. soundtracker

    Задача

    Здравейте, Моля, прегледайте следната блок-схема, която почти напълно трябва да покрива алгоритъма, който Ви трябва. Не съм много запознат в какъв формат ги искат сега (последната такава съм чертал преди има-няма 14 години). Ако не е в изискуемия формат, може да ползвате поне операциите и да си дооформите. Поздрави ! П.С.
  15. Това горното ми звучи като "Някой може ли да ми сготви за 10 лв ?" Когато някой иска да му бъде направо нещо, идва с идеята, визията си, параметрите и изискванията си. В противен случай, просто ударете F12 (Chrome) на тази страница и след като изберете секцията "Elements", селектирате и копирате всичко в локален файл с разширение .html. Воала ! Имаме сайт за по-малко от 10 сек ... Поздрави !
  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

×
×
  • Добави ново...