RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-227022

Denis Danilov's questions

Martin Hope
Denis Danilov
Asked: 2020-12-16 08:50:19 +0000 UTC

将字符串转换为数学表达式

  • 1

任务是将作为数学表达式的输入字符串转换为真正的数学表达式,并在 java 脚本中计算其结果。eval()不能使用。

鉴于此,我决定使用字符串替换操作,在其中我取两个操作数和它们之间的一个运算符并执行数学运算。所有运算都必须像在实际数学中一样执行:括号具有最高优先级,运算顺序为 * / + - 并且从左到右。

问题是我split在括号中制作了表达式,我将一个数学运算符和一段带有数学表达式的字符串传递给函数,我将这一段传递给函数,replace并在函数中尝试捕获我传递的数学运算符及其操作数一个正则表达式并执行相应的数学运算并返回其结果而不是表达式。

该算法的本质是通过4个运算符跳过原始字符串的一部分,结果返回一个数字。对所有部分执行相同的操作。问题本身是没有replace行并且表达式返回不变。

+(function(){
    var inputString = prompt("Enter a math expression here", "0");
    var arrayOfMathSymbols = ['*', '/', '+', '-'];

    //checking block of math expression
    var splitExpression = inputString.split('');
    var testArray = splitExpression.filter( function(item){
        if(!isNaN(+item)) return item;
        else if( /[\*\/\+\-\(\)]/g.test(item) ) return item;        
    });    
    if (testArray.length != splitExpression.length) {
        alert("Please enter a correct math expressions contains numbers or * / + - ( )");
        throw("Lexical error in the expression");
    }  
    // end of the cheking block

    var arrayAfterSplitOnBracket = inputString.split(/[\(\)]/g);

    while(true) {
        if(arrayAfterSplitOnBracket.length > 1){
            for(let i = parseInt((arrayAfterSplitOnBracket / 2) - 1); i > 0;) {
                arrayOfMathSymbols.forEach( function(item, i, arr) {

                       var resultCalculation = Calculate(item,arrayAfterSplitOnBracket[i]);
                       arrayAfterSplitOnBracket[i] = resultCalculation;                    
                });
            }
        }
        else {
            arrayOfMathSymbols.forEach( function(item, i, arr) {

                var resultCalculation = Calculate(item,arrayAfterSplitOnBracket[0]);
                arrayAfterSplitOnBracket[0] = resultCalculation;

            });
        }
        break;
    }

    //Define block of functions
    function Calculate(mathSymbol, partOfMathExpression) {
        let regularNote = new RegExp('[\\+\\-]?\\d+\\' + mathSymbol + '[\\+\\-]?\\d+', 'gi');
        partOfMathExpression.replace(regularNote, function(str, offset, s) {
            let afterSplit = str.split(mathSymbol);
            switch(mathSymbol) {
                case '*': return afterSplit[0] * afterSplit[1];
                    break;
                case '/': return afterSplit[0] / afterSplit[1];
                    break;
                case '+': return (parseInt(afterSplit[0]) + parseInt(afterSplit[1]));
                    break;
                case '-': return afterSplit[0] - afterSplit[1];
                    break;
            }
        });
        return partOfMathExpression; //для примера 1*2 после первого прохода здесь должно получится 2, но на выходе всё тоже выражение 1*2
    }
}());
javascript
  • 2 个回答
  • 10 Views
Martin Hope
Denis Danilov
Asked: 2020-10-12 22:38:54 +0000 UTC

读取大文件时解析字符串c ++

  • 0

在寻找读取文件和解析数据的最快算法的过程中,出现了错误。最初,文件中可读行的类型(即感兴趣的float类型的最后一个数字,其余为垃圾):12242BENZ H6 24 11.060 8.703 4.112

例如,由于在 Habré 上介绍了使用 iostream的不同方法,由于我在 c ++ 方面的资质较低,我决定不费心使用 Boost::Spirit::Qi(尽管如果有工匠可以建议通过 Boost: :Spirit::Qi 解析器创建浮点数的方法,我将不胜感激)并使用一个相当简单的算法:

ifstream fid("Benzene_Simu1_0_35ns.gro");
if (!fid) throw exception("Bad opening");   

std::ios::sync_with_stdio(false);

char buffer[80];
char * test;

//vector <float> coordinates(3);
float coordinates = 0.0;
vector <float> coordinate;

while (true)
{
    if (fid.eof()) break;

    fid.ignore(std::numeric_limits<size_t>::max(), '\n');
    fid.ignore(std::numeric_limits<size_t>::max(), '\n');
    for (int i = 0; i < 120; i++) {
        fid.getline(buffer, sizeof(buffer));
        test = strrchr(buffer, ' '); //take pointer on last float in string
        std::advance(test, 1);
        sscanf(test, "%f", &coordinates); //select z_axis value
        coordinate.push_back(coordinates);
    }
    fid.ignore(std::numeric_limits<size_t>::max(), '\n');
}
cout << coordinate[sizeof(coordinate) - 1] << endl;
cout << clock()/1000 << endl;
_getch();

所以,作为这样一个算法在代码行中运行的结果

sscanf(test, "%f", &coordinates); //select z_axis value

一个错误

Unhandled exception at 0x5B031BCC (ucrtbased.dll) in ConsoleApplication1.exe: 0xC0000005: Access violation reading location 0x00000001. occurred

对于这种情况和代码会有什么评论和评论?

c++
  • 2 个回答
  • 10 Views
Martin Hope
Denis Danilov
Asked: 2020-10-08 20:24:39 +0000 UTC

将向量传递给 C++ 函数时出错

  • 0

在用 c++ 编写多线程应用程序时,有必要将大量对向量的引用传递给以多线程模式 (multy) 运行的函数,这些函数对每个线程都有自己的值。编译导致错误:

  1. 严重性代码说明项目文件行抑制状态错误C2672 'std::invoke': 找不到匹配的重载函数
  2. 严重性代码描述项目文件行抑制状态错误 C2893 无法专门化函数模板“未知类型 std::invoke(_Callable &&,_Types &&...) noexcept()”

控制台应用程序代码如下:

#include "pch.h"
#include "libraries.h"
#include "globalVariables.h"
//#include "multyThreadingFunc.h"


thread_local double centerOfMass = 0.0;

thread_local double templateZ;


vector<float> distanceAxis(n_bin + 1);

//here the total number of molecules in each bin is saved during the loop for the analyte molecules
vector<double> vectordensity(n_bin);

mutex mtx;

void multy(FILE &fid, int &amountOfAtoms, float &time, vector<float> &coordinates, vector<float> &changedCoord, double &centerOfMass, double &templateZ, vector<double> &vectordensity) {

    FILE *file = &fid;
    ...//some calculating
}

int main()
{
    thread_local vector<float> coordinates(3); //x,y,z coordinates
    thread_local vector<double> changedCoord;

    FILE *fid = fopen("Benzene_Simu1_0_35ns.gro","rt"); 
    if (fid == NULL) throw exception("Error was happend with the file");

    float time;

    for (int i = 1; i <= n_bin; i++) {
        distanceAxis[i] = (i - 0.5)*BinWidth;
    }

    int startTime = clock();
    while (true) {
        std::thread thr(multy, ref(fid), &amountOfAtoms, &time, ref(coordinates), ref(changedCoord), &centerOfMass, &templateZ, ref(vectordensity));

        if (feof(fid)) break;

        vectordensity[bin]++;   //sorts the molecules according to their bins
                                //after finishing the loop, density contains the distribution of the molecules over all bins for all time steps

        index++;
    }
    --index;

    fclose(fid);
    cout << endl << (endTime - startTime) / 1000 << endl;
    return 0;
}
c++
  • 1 个回答
  • 10 Views
Martin Hope
Denis Danilov
Asked: 2020-07-31 21:24:26 +0000 UTC

通过smtp从php脚本发送邮件

  • 2

您好,我决定使用此 php 脚本通过 smtp 发送电子邮件:http: //i-leon.ru/smtp-php/

我使用 ssl://smtp.mail.ru:465 作为邮件服务器。但是,在授权阶段,服务器接受登录,在接受密码阶段,它抛出一个授权错误,即密码不正确。也许有人遇到过在 ssl 上链接 php smtp 和 mail.ru 邮件程序的类似问题

php
  • 1 个回答
  • 10 Views
Martin Hope
Denis Danilov
Asked: 2020-12-16 17:11:44 +0000 UTC

病毒和浏览器[关闭]

  • 2
关闭。这个问题不可能给出客观的回答。目前不接受回复。

想改进这个问题? 重新设计问题,以便可以根据事实和引文来回答。

5 年前关闭。

改进问题

有一个巨大的问题使我筋疲力尽并且非常恼火。在浏览器(Chrome 和 Opera)中,广告选项卡会每隔一段时间打开一次。该病毒还在 ..\AppData\Local... 目录中创建文件夹。文件夹的名称类似于(Kometa、Bromium、Yandex 等)。它们都包含相同的信息文件夹 User Data\here of the pack 和一个长的拉丁组合。我采取了以下步骤:

  1. 扫描和清理 ADWCleaner
  2. 扫描和清理MailwareFight
  3. 手动删除病毒自动创建的文件夹
  4. 剥皮eset点头
  5. 重置浏览器设置并清除 cookie
  6. 我尝试重新安装浏览器 (Chrom),但将旧的用户数据文件夹复制到新浏览器。

有哪些解决此问题的技巧?提前致谢。我将一个链接附加到包含在 AppData 中生成的文件夹之一的存档。

вирусы
  • 3 个回答
  • 10 Views
Martin Hope
Denis Danilov
Asked: 2020-11-08 00:40:46 +0000 UTC

移动浏览器中的 Bootstrap 模态窗口

  • 0

在移动浏览器中显示使用引导程序框架创建的模态窗口时存在问题。

也就是说,在计算机上的浏览器中,模态窗口的显示是正确的,但是在浏览器的移动版本中,模态窗口顶部会弹出一些块,阻止对站点的所有访问。

跟踪这行不通,因为无法在手机上查看标记(或者我还没有找到方法)。

可能是什么问题,我在哪里可以测试电话站点的运行(即电话,而不是检查布局的适应性)?

html
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5