C言語で次のようなプログラムを作りたいのですが
ソースを教えていただけないでしょうか?
四則演算のみの計算式を標準入力から受け取り計算式の通りに計算を行い計算式と答えを標準出力に出力する

どなたか教えてください

A 回答 (2件)

四則演算式の規模はどれぐらいを考えるのですか?たぶん以下の方法であろうと思われるのですが。



文字列に演算式を読み込む
文字列から"+","-","*","/"の演算記号(トークン)を読み出す。
そのトークンより前の文字列を数値に変換する
次にトークンより後の文字列を数値に変換する
Switch-case文により四則演算を行う。
文字列と演算結果を表示する。

以上のスクリプトで間違いないと思います。
    • good
    • 0

何かの課題でしょうか?


であれば、どこまで作成して、どこがわからないか具体的にお願いします。
「標準入力」がキーボードで、「標準出力」がディスプレイであれば、
1.キーボードから入力された文字を取得する。
 数値や演算子を判断する。
 「1+2」と「1」「+」「2」をそれぞれ独立して入力するのでは処理が違う。
2.判断した演算子で計算する。
3.計算結果をディスプレイに表示する。
を行う処理を作成します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q簡単な四則演算のできない人が老若男女を問わず多いと思い、イラついています どうして彼らは四則演算がで

簡単な四則演算のできない人が老若男女を問わず多いと思い、イラついています

どうして彼らは四則演算ができないのか理解に苦しみます

きっと文明の利器に頼りすぎて、自力で計算する能力が圧倒的に低いのでしょうね

簡単な四則演算のできない人に対してイラつくのは異常でしょうか?

Aベストアンサー

あなたは、自分ができるから、他の人もできると思っているのですね。
言葉ができない日本人がアメリカに行った時に、アメリカ人は、「なぜお前は英語が話せないんだ。」と云った話があります。それと同じなんですね。
 自分中心に物事を考える/自分の尺度で物事を判断するのは危険ですよ。
イラつく前に自分が知っているのだから、教えてあげようという気持ちも欲しいですね。
また、今回は四則演算のことでしたが、もっと社会を知ることです。そうすれば、自分より富める人貧困な人、自分よりできる人できない人など多くの人たちがいることを知れば、心が広くなりイラつくことは少なくなると思います。

QC言語の四則演算について

これからプログラミングを勉強する為、C言語の入門書を買ってきたのですが、その中で、コンピューターでは四則演算を1の補数と2の補数を用いてすべて足し算で行うと書いてありました。詳しく解説してないのでどういうことなのか良くわかりません。掛け算や割り算などを足し算でできるのでしょうか。
この辺のところに詳しい方、ぜひ、ご解説をお願いします。

Aベストアンサー

他の方と同じく、C言語の勉強として必要性が全く感じられない知識です。
C言語は、メモリやスタック等のCPUの動作をある程度意識してプログラムを組む必要がある言語ですが、だからといってそんなことまで知っている必要は全くありません。
今時、小さなCPUでも四則演算の命令はありますから、この知識が必要なのは旧式のCPUのプログラマか、CPUの設計者くらいなんじゃないでしょうか?
もう、ほとんど”トリビア”に近いです。

さて、引き算を補数と足し算で行うやり方ですが、概念がわかる程度に解説させていただきます。
この補数による引き算は10進数でもできるので、10進数で説明します。
(#2さんと同じ話をしています)

(1)2進数の世界での1の補数と2の補数は、10進数の世界での9の補数と10の補数にあたります。

(2)補数を考えるときは桁数を限定しないといけません。
ここでは桁数を4桁にします。
つまり
a.0000~9999までしか数を表現できない
b.足し算をして4桁を超えた部分は無視 ← これ大事

(3)ある数Xの9の補数は、引き算をせずとも求まります。
対応表を使います。
0123456789
↓↓↓↓↓↓↓
9876543210
例えば45の4桁の9の補数は、
45=0045→9954
になります。
(4)同じく10の補数は9の補数に1を足すと得られます。
例えば45の4桁の10の補数は、
9954+1=9955
です。

さて、9と10の補数についてわかっていただいたところで早速引き算をしてみましょう。
123-45の計算をしてみます。
1)足す数と引く数を4桁で表す。
  0123
- 0045
2)引く数の10の補数を求める
  0123
  9955
3)足し算する
  0123
+ 9955
-----------------------
 10078
4)桁を超えた部分を削る
 0078
計算終了

と、こんな具合です。
2進数でも同じ要領です。
9、10の補数が1、2の補数になっただけで、桁数の限定、はみ出た桁の無視は同じです。

ところで、上のやり方で9の補数を求めるのに表を使っていましたが、2進数で1の補数を求めるときはその必要はありません。
0/1のビットを反転するだけでできるからです。
ですから2進数の引き算では、加算とビット演算だけで実現できてしまうのです。(加算だって論理演算の固まりですけどね)

....今、この知識が必要な場面を一つ思いつきました。
整数型においての負数表現です。
詳細はここでは述べませんが、その場合でも「なぜ負の数を2の補数で表現するのか?」の理由として紹介する方が適切かも知れません。
ですから根こそぎ必要ない知識ではないですが、CPUが割り算をどう計算しているのかとは、あまり関係のない話ですね。

他の方と同じく、C言語の勉強として必要性が全く感じられない知識です。
C言語は、メモリやスタック等のCPUの動作をある程度意識してプログラムを組む必要がある言語ですが、だからといってそんなことまで知っている必要は全くありません。
今時、小さなCPUでも四則演算の命令はありますから、この知識が必要なのは旧式のCPUのプログラマか、CPUの設計者くらいなんじゃないでしょうか?
もう、ほとんど”トリビア”に近いです。

さて、引き算を補数と足し算で行うやり方ですが、概念がわかる程...続きを読む

Q法(mod)の四則演算について

とても困ってます。
情報セキュリティの課題で

・整数は素数を法とする演算では、四則演算が実行できる。その例を示せ。
・整数は合成数を法とする演算では、四則演算の一部で、解が一意に定まる場合と定まらない場合がある。その例を示せ。

この2つの問題が分かりません。
答えを教えていただけませんか?お願いします。

Aベストアンサー

以下、剰余算の計算式を「13 mod 7 = 6」(13÷7の余りが6という意味)のように表します。suryaさんの読みやすいように適宜読み替えて下さい。

・法が素数の場合
2つの整数(5, 13)を7で割ったときの剰余の四則演算の例を以下に示します。

1. 加算
13 mod 7 = 6, 5 mod 7 = 5なので、(13 mod 7) + (5 mod 7) = 11 mod 7 = 4 … (1)
また、(13 + 5) mod 7 = 18 mod 7 = 4 … (2)
(1)と(2)は同じ値になるので、(13 mod 7) + (5 mod 7) = (13 + 5) mod 7

2. 減算
13 mod 7 = 6, 5 mod 7 = 5なので、(13 mod 7) - (5 mod 7) = 1 mod 7 = 1 … (1)
また、(13 - 5) mod 7 = 8 mod 7 = 1 … (2)
(1)と(2)は同じ値になるので、(13 mod 7) - (5 mod 7) = (13 - 5) mod 7

3. 乗算
13 mod 7 = 6, 5 mod 7 = 5なので、(13 mod 7) × (5 mod 7) = 30 mod 7 = 2 … (1)
また、(13 × 5) mod 7 = 65 mod 7 = 2 … (2)
(1)と(2)は同じ値になるので、(13 mod 7) × (5 mod 7) = (13 × 5) mod 7

4. 除算
剰余の除算は整数や実数といった一般的な数値の除算と異なるので注意して下さい。
剰余での除算は「逆数を掛ける」ことで定義されます。「aをbで割る」はa×b^-1で表されます。

(3 mod 7) × (5 mod 7) = 1なので、(5 mod 7)^-1 = (3 mod 7)
また、3.乗算の結果から、(13 × 5^-1) mod 7 = (13 mod 7) × (5 mod 7)^-1が言える。これを計算すると、
(13 × 5^-1) mod 7 = (13 mod 7) × (5 mod 7)^-1 = (13 mod 7) × (3 mod 7) = 4


・法が合成数の場合
良い例かどうかは分かりませんが…。
法が8のときの除算を例に挙げてみます。

例えば、(5 mod 8) × (3 mod 8)^-1は(3 mod 8) × (3 mod 8) = 1だから、
(5 mod 8) × (3 mod 8)^-1 = (5 mod 8) × (3 mod 8) = 7のように計算できます。
しかし、(5 mod 8) × (4 mod 8)^-1は、4 mod 8の逆数を求めることができないため計算できません。

以下、剰余算の計算式を「13 mod 7 = 6」(13÷7の余りが6という意味)のように表します。suryaさんの読みやすいように適宜読み替えて下さい。

・法が素数の場合
2つの整数(5, 13)を7で割ったときの剰余の四則演算の例を以下に示します。

1. 加算
13 mod 7 = 6, 5 mod 7 = 5なので、(13 mod 7) + (5 mod 7) = 11 mod 7 = 4 … (1)
また、(13 + 5) mod 7 = 18 mod 7 = 4 … (2)
(1)と(2)は同じ値になるので、(13 mod 7) + (5 mod 7) = (13 + 5) mod 7

2. 減算
13 mod 7 = 6, 5 mod 7 = 5なので、(13 mod 7...続きを読む

Q四則演算プログラム(入力式の表示版)

プログラミング初心者の大学生です。よろしくお願いいたします。

 計算式入力し、計算結果を表示するプログラムの作成方法がわかりません。
条件としては、数値は実数の入力を可能とし、括弧の利用は考えないとのことです。
 
 【実行例】

 ・計算式="5.2+20*2-3"
 ・結果=42.2

 いきなり難易度が上がっため、自分の手には負えませんでした…。
どなたか、良いお答えをよろしくお願いいたします。

Aベストアンサー

今頃このような問題をしているという事は大学1年生位でしょうかね?
確かにこの前始めた人にこの問題は結構辛いですね。

回答例・・というか99%答えなんですけど^^;
サンプルプログラムを書きましたんで、見てください。

入門者さんみたいなのでなるべく簡単な関数や書き方で書きました。

#include<stdio.h>
#include<string.h>
int num[20],atainokosu;
char input_str[100],enzanshi[10],str[10][20];

int a2i(char*str){
int cnt;
int num=0;

for (cnt = 0; (str[cnt] >= '0') && (str[cnt] <= '9') ; cnt++) {
num = 10 * num + (str[cnt]-'0');
}
return num;
}

int getch(){
int i=0;

while( ( input_str[i] = getchar() ) != EOF)
i++;
input_str[i-1]='\0';
return 0;
}

int divch(){

int i=0,j=0,s=0;

while(input_str[i]!='\0'){
if(input_str[i] == '+' || input_str[i]=='-' || input_str[i]=='*' || input_str[i] =='/'){
enzanshi[j]=input_str[i];
j++;
s=0;
}
else{
str[j][s]=input_str[i];
s++;
}
i++;
}
atainokosu=j;
for(i=0;i<=j;i++)
num[i]=a2i(str[i]);

return 0;
}

int calc(){
int i=0,j;
while(i<=atainokosu){
if(enzanshi[i]=='*'){
num[i]=num[i]*num[i+1];
j=i;
while(j<=atainokosu){
num[j+1]=num[j+2];
enzanshi[j]=enzanshi[j+1];
j++;
}
atainokosu--;
}
else if(enzanshi[i]=='/'){
num[i]=num[i]/num[i+1];
j=i;
while(j<=atainokosu){
num[j+1]=num[j+2];
enzanshi[j]=enzanshi[j+1];
j++;
}
atainokosu--;
}
else
i++;
}
i=0;
while(0<atainokosu){
if(enzanshi[i]=='+'){
num[i]=num[i]+num[i+1];
j=i;
while(j<=atainokosu){
num[j+1]=num[j+2];
enzanshi[j]=enzanshi[j+1];
j++;
}
atainokosu--;
}
else if(enzanshi[i]=='-'){
num[i]=num[i]-num[i+1];
j=i;
while(j<=atainokosu){
num[j+1]=num[j+2];
enzanshi[j]=enzanshi[j+1];
j++;
}
atainokosu--;
}
else
i++;
}
return 0;
}
int main(){
int i;
getch();
divch();
calc();
printf("計算式=\"%s\"\n結果=%d\n",input_str,num[0]);

return 0;
}

これは整数の四則演算ができるプログラムです。
浮動小数点には対応していません。
例:
「10/5+2*5」と入力し、エンターを押す。その後Ctrl + Zを押してエンターを押す。すると計算結果が表示される。

100%答えを書いてしまってはよくないので(といっても99%答えですけど)
ココまでプログラム書いたんで、今度は小数点も計算できるように改良してください。
ヒントは#2さんが既におっしゃっています。
4.strtod して値を返す
この辺をヒントに頑張ってください。
わかれば1分で完成すると思います。

プログラムの中身は次に説明します。

頑張ってください。

今頃このような問題をしているという事は大学1年生位でしょうかね?
確かにこの前始めた人にこの問題は結構辛いですね。

回答例・・というか99%答えなんですけど^^;
サンプルプログラムを書きましたんで、見てください。

入門者さんみたいなのでなるべく簡単な関数や書き方で書きました。

#include<stdio.h>
#include<string.h>
int num[20],atainokosu;
char input_str[100],enzanshi[10],str[10][20];

int a2i(char*str){
int cnt;
int num=0;

for (cnt = 0; (str[cnt] >= '0') && (...続きを読む

Q四則演算機能のある電卓はノイマン型ですか?

四則演算機能のある電卓はノイマン型コンピュータですか?

それとも非ノイマン型ですか?

よろしくお願いします。

Aベストアンサー

 四則演算機能のある電卓がノイマン型コンピュータか、非ノイマン型コンピュータかという質問ですが、ノイマン型コンピュータは逐次命令実行型コンピュータのことで、命令とデータが交互に並んでプログラムを実行するコンピュータを意味します。

 それに対して非ノイマン型コンピュータは命令とデータが別々に存在し、配線などのプログラムによって命令とデータを結び付ける方法で処理を実行するコンピュータです。一般のコンピュータは全てノイマン型で、非ノイマン型は現在ではほとんど使われていません。

 ノイマン型コンピュータ:http://ja.wikipedia.org/wiki/%E3%83%8E%E3%82%A4%E3%83%9E%E3%83%B3%E5%9E%8B

 電卓:http://ja.wikipedia.org/wiki/%E9%9B%BB%E5%8D%93

 電卓は電卓用プログラムで計算を実行するノイマン型コンピュータで、電卓が普及する技術革新の過程で4ビットコンピュータが開発され、さらに、8ビット、16ビットへと進んで、マイコンやパソコンへと発展していったようです。電卓はパソコンの元祖と呼んでも良いでしょう。

 四則演算機能のある電卓がノイマン型コンピュータか、非ノイマン型コンピュータかという質問ですが、ノイマン型コンピュータは逐次命令実行型コンピュータのことで、命令とデータが交互に並んでプログラムを実行するコンピュータを意味します。

 それに対して非ノイマン型コンピュータは命令とデータが別々に存在し、配線などのプログラムによって命令とデータを結び付ける方法で処理を実行するコンピュータです。一般のコンピュータは全てノイマン型で、非ノイマン型は現在ではほとんど使われていません。

...続きを読む

Qパーザ 複数の型の四則演算

http://www.kmonos.net/alang/boost/classes/spirit.html
上記のサイトを参考に、実数(float)も使えるように拡張しようと思いました。
union type{
int i;
float f;
};
stack<type> stk;
これで、値をスタックに積む場合は問題なく実装できました。

しかし、これを取り出す時の処理がどうしても分かりません。
これを解決する方法・参考書籍・サイトをご存じの方、よろしくお願いします。

Aベストアンサー

それこそまさに
> struct ではなく class にして型情報を隠蔽し、setter/getter で型情報を適切に扱うようにした方が便利でしょうね。
ということで。
以下のコードを参考にどうぞ。

#include <stdio.h>
class data {
enum { type_int, type_float } type;
union {
int i;
float f;
} value;
public:
data() { type = type_int; value.i = 0;}
data(int v) { type = type_int; value.i = v;}
data(float v) { type = type_float; value.f = v;}
operator int() const { return type == type_int ? value.i : (int)value.f; }
operator float() const { return type == type_int ? (float)value.i : value.f; }
};
int main(int argc, char *argv[])
{
data v;
int i;
float f;

v = data(3);
i = v;
f = v;
printf("(int)v = %d, (float)v = %f\n", i, f);

v = data(3.5f);
i = v;
f = v;
printf("(int)v = %d, (float)v = %f\n", i, f);
}


以上は、質問の int と float を使い分けるための記述ですが、
根本的な問題として、そもそも使い分ける必要があるのでしょうか
float と int だと、float の有効数字は24bitで、
intが32bitの環境なら「intで表現できるがfloatで表現できない数」というのがありえますが、
double を使えば、精度は有効数字53bitなので、32bit int で表現できる数はそのまま double でも誤差なく表現できます。
ですから、電卓を実数対応するなら、そもそも全ての「数値」をintでなくdoubleで扱うようにするだけでOKです。unionの出番はありません。

それこそまさに
> struct ではなく class にして型情報を隠蔽し、setter/getter で型情報を適切に扱うようにした方が便利でしょうね。
ということで。
以下のコードを参考にどうぞ。

#include <stdio.h>
class data {
enum { type_int, type_float } type;
union {
int i;
float f;
} value;
public:
data() { type = type_int; value.i = 0;}
data(int v) { type = type_int; value.i = v;}
data(float v) { type = type_float; value.f = v;}
operator int() const { return type == type_int ...続きを読む

Q4,4,4,4 をできれば四則演算で10に・・

できますか? ずっとやってたんですができません><  

例   3,8,2,5 (8-2)*5/3

もし 四則演算以外で出来る方法があるのなら それも教えて欲しいです できるなら・・

Aベストアンサー

4+4+4-√4
・・・とかはダメ!?

Q四則演算のプログラム

自力で解きたかったのですが、二時間考えても、とけないので
投稿させていただきます。どこを直せばよいのでしょうか
実行するときは%プログラム名 + 5 12
と入力して実行したいです。加えて参照にしている部分の
%の扱いについても教えていただけると幸いです。
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[]){
char kigou;
double num1,num2;
kigou=atof(argv[1]);
num1=atof(argv[2]);
num2=atof(argv[3]);
if(kigou=='+'){
printf("%f+%f=%f\n",num1,num2,num1+num2);
}
else if(kigou=='-'){
printf("%f-%f=%f\n",num1,num2,num1-num2);
}
else if(kigou=='x'){
printf("%f*%f=%f\n",num1,num2,num1*num2);
}
else if(kigou=='/'){
printf("%f/%f=%f\n",num1,num2,num1/num2);
}
/* else if(kigou=='%'){
printf("%f%%f=%f\n",num1,num2,num1%num2);
}*/
else{
printf("Please input +,-,x,%%.\n");}


}

自力で解きたかったのですが、二時間考えても、とけないので
投稿させていただきます。どこを直せばよいのでしょうか
実行するときは%プログラム名 + 5 12
と入力して実行したいです。加えて参照にしている部分の
%の扱いについても教えていただけると幸いです。
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[]){
char kigou;
double num1,num2;
kigou=atof(argv[1]);
num1=atof(argv[2]);
num2=atof(argv[3]);
if(kigou=='+'){
printf("%f+%f=%f\n",num1,num2,...続きを読む

Aベストアンサー

★まず引数 argv、argc とは?
・『argv』はコマンドラインの引数を、空白文字で区切ってその文字列をポインタへの配列に
 セットします。『char *argv[]』とはその定義です。
・『argc』はコマンドラインの引数を、空白文字で区切った文字列の個数です。
・よって『sample.exe abc def 123 /s /o』というコマンドラインならば、
 argc=6
 argv[0]="sample.exe" ←プログラム名など(処理系によっては空文字列かも)
 argv[1]="abc"
 argv[2]="def"
 argv[3]="123"
 argv[4]="/s"
 argv[5]="/o"
 argv[6]=NULL ←NULLポインタがセット
・となります。

●本題
・第一引数の記号は『atof』を使わずに『kigou=argv[1][0];』とすれば良い。
・argv[1]="abc"のとき、
 argv[1][0]='a'
 argv[1][1]='b'
 argv[1][2]='c'
 argv[1][3]='\0'
・として取り出せます。

●サンプル
int main( int argc, char *argv[] )
{
 char kigou = argv[1][0]; ←ここがポイント
 double num1 = atof(argv[2]);
 double num2 = atof(argv[3]);
 
 switch ( kigou ){ ←switch 文のほうが分かりやすいよ
  case '+': printf( "%f+%f=%f\n", num1, num2, (num1 + num2) ); break;
  case '-': printf( "%f-%f=%f\n", num1, num2, (num1 - num2) ); break;
  case 'x': printf( "%f*%f=%f\n", num1, num2, (num1 * num2) ); break;
  case '/': printf( "%f/%f=%f\n", num1, num2, (num1 / num2) ); break;
  case '%': printf( "%f%%%f=%f\n", num1, num2, fmod(num1,num2) ); break; ←ここも重要
  default: printf( "Please input +,-,x,/,%%.\n" ); ←『/』を追加
 }
 return( 0 );
}

最後に:
・浮動小数点の『%』は関数『fmod』を使います。→直接『%』演算子を使えません。
・整数値の『char』、『short』、『int』、『long』型などは直接『%』演算子で剰余を
 計算できますが、浮動小数点の『float』、『double』型では関数の『fmodf』、『fmod』
 の関数を使います。→テキスト(教科書)などの算術演算を参照して下さい。
・注意。割り算と剰余の場合に『num2』が『0』だと『ゼロ除算エラー』が発生します。
・『num2』が『0』のときは計算不能というエラーを表示した方が良いです。
・以上。おわり。

参考URL:http://www.bohyoh.com/CandCPP/C/Library/fmod.html

★まず引数 argv、argc とは?
・『argv』はコマンドラインの引数を、空白文字で区切ってその文字列をポインタへの配列に
 セットします。『char *argv[]』とはその定義です。
・『argc』はコマンドラインの引数を、空白文字で区切った文字列の個数です。
・よって『sample.exe abc def 123 /s /o』というコマンドラインならば、
 argc=6
 argv[0]="sample.exe" ←プログラム名など(処理系によっては空文字列かも)
 argv[1]="abc"
 argv[2]="def"
 argv[3]="123"
 argv[4]="/s"
 argv[5]="/o"
...続きを読む

QMS-DOSで四則演算を行いたいんですが方法を教えて下さい

MS-DOSで四則演算を行いたいんですが方法を教えて下さい

*作業の都合上、MS-DOSからのツールの起動を行っています。

バッチファイルの中で、いろいろなアプリを起動しているのですが、
アプリを起動する際の引数の数値をいじりたい関係で
どうしても、四則演算が必要になっています。

もし、ご存知の方がいらっしゃいましたら、ぜひ教えて下さい。

Aベストアンサー

再登場
 電卓といえどもアプリですからアプリ無しで動作させるのは・・・・

ただこのソフトは16KしかなくFDに入れてそこから動作させる
という案はいかがでしょうか?

参考まで

Q関数による四則演算でのエラー

expected ')' before 'kakeru'
とエラーが出ます。インデントも)も同じ数にしているのですが
30~1時間くらいやってるのですがわかりません
後ろから演算させるようにしたほうがいいのでしょうか。


((3+4)*3)/7-2 の計算をするようにプログラムを関数を使用し書け。

include <stdio.h>
int tasu(int,int);
int kakeru(int,int);
int waru(int,int);
int hiku(int,int);

int
main()
{
/* ((3+4)*3)/7-2 */
printf("%d = 1\n",(tasu(3,4)kakeru(1,3)waru(21,7)hiku(3,2)));
return 0;
}
int
tasu(int x, int y)
{
return x+y;
}
int
kakeru(int x, int y)
{
return x*y;
}
int
waru(int x, int y)
{
return x/y;
}
int
hiku(int x, int y)
{
return x-y;
}

expected ')' before 'kakeru'
とエラーが出ます。インデントも)も同じ数にしているのですが
30~1時間くらいやってるのですがわかりません
後ろから演算させるようにしたほうがいいのでしょうか。


((3+4)*3)/7-2 の計算をするようにプログラムを関数を使用し書け。

include <stdio.h>
int tasu(int,int);
int kakeru(int,int);
int waru(int,int);
int hiku(int,int);

int
main()
{
/* ((3+4)*3)/7-2 */
printf("%d = 1\n",(tasu(3,4)kakeru(1,3)waru(21,7)hiku(3,2)));
return 0;
}
int
tasu(int x, in...続きを読む

Aベストアンサー

((3+4)*3)/7-2
1つの演算子に対して1組の()を適用する。
((((3+4)*3)/7)-2)
それぞれの()に対して演算子に応じた関数を適用する。
hiku(waru(kakeru(tasu(3+4)*3)/7)-2)
各式を引数のならびに置き換える。
hiku(waru(kakeru(tasu(3, 4), 3), 7), 2)


人気Q&Aランキング

おすすめ情報