「AOJよく使うコード」の編集履歴(バックアップ)一覧はこちら

AOJよく使うコード」(2013/02/15 (金) 12:03:41) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

再帰下降構文解析のスケルトン。 int saiki(std::string formula,int& p,int pr){ int re,a; while(formula.size()>p){ char c=formula[p]; if(c=='('){ p++; re=saiki(formula,p,0); p++; }else if(c==')'){ return re; }else if(c=='+' || c=='-'){ if(pr>=1){ return re; } p++; a=saiki(formula,p,1); //ここに計算を書く }else if(c=='*'){ if(pr>=2){ return re; } p++; a=saiki(formula,p,2); //ここで計算を行う }else if(c=='/'){ if(pr>=2){ return re; } p++; a=saiki(formula,p,2); //ここで計算を行う }else{ //変数の読み込み std::string str=""; int k=0; while(formula[k+p]!='\0'){ str+=formula[k+p]; k++; } p=p+k+1; } } return re; }
再帰下降構文解析のスケルトン。 int saiki(std::string formula,int& p,int pr){ int re,a; while(formula.size()>p){ char c=formula[p]; if(c=='('){ p++; re=saiki(formula,p,0); p++; }else if(c==')'){ return re; }else if(c=='+' || c=='-'){ if(pr>=1){ return re; } p++; a=saiki(formula,p,1); //ここに計算を書く }else if(c=='*'){ if(pr>=2){ return re; } p++; a=saiki(formula,p,2); //ここで計算を行う }else if(c=='/'){ if(pr>=2){ return re; } p++; a=saiki(formula,p,2); //ここで計算を行う }else{ //変数や自然数の読み込み } } return re; }

表示オプション

横に並べて表示:
変化行の前後のみ表示: