• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IF文のよる瞬停)

IF文による瞬停の解決方法とは?

noname#230359の回答

noname#230359
noname#230359
回答No.4

  IF[[[#22/2]-#18]LT#29]THEN#33=[#29-[[#22/2]-#18]] THEN は昔のマニュアルには無い隠し構文で、使い方として変数への単純代入だけは問題無さそうというのが参考書に出ていて知りました。 機械メーカ作成のM指令でも、THEN を使わず GOTO のみで書かれているのを見ました。 括弧は4重までという制約は、使いすぎると構文解析作業でスタックメモリを消費するのを防ぐという理由からで、そのせいでもTHEN 以下を複雑にし過ぎるのは動作に危うさがあると思います。 CPUが古いFANUCなら問題有りで、パソコンCPUを使いハード指標ではダンチの能力を有するMELDASなら難なく通すというのも納得できる話です。 >指令先を近場に置いていればたいして処理速度に変化はなしってことですね 実験したことあるけど、この違いも大きいです。NC共通だろうけど、都度シーケンスNo.をアタマから探す単純作業を繰返しますから。 >メーカーにより一長一短ってことですかね ハード的にもコスト的にも性能低いCPUが使える、業界ダントツな特権ですね。

noname#230358
質問者

お礼

メーカーにより一長一短ってことですかね。 そうなるとGOTOからWHILEに変えたとしても、 指令先を近場に置いていればたいして処理速度に変化はなしってことですね。 有難うございます。 その辺りは全く考慮しておらず浅はかでした。 少し反れますが、MELDASのタップ戻し機能にはビックリしました。

関連するQ&A

  • 長いIF文を短くしたい

    よろしくお願いします いつもgooのみなさんに大変お世話になっております マクロは2カ月ほど前から勉強しています お陰様で、私のマクロも日々進歩できています エクセルのバージョンは2013です 質問内容 長いIF文を短くしたい IF 条件1 and 条件2 and 条件3 and 条件4 and 条件5 Then   処理 End If このようにIF文が長いために、マクロ編集画面が見にくくなっています Select Case を使わずに短くする方法はないでしょうか?

  • if文がうまくできません;;

    こんにちわ。 当方、linux初心者です。 今if文を作っているのですが、どうしてもうまくいきません。 ●lsで出力した結果が何行出力されたかによって回答が変わるシェルを作成してください。(10以上と9~3と2以下の3種類) という例題を解答中ですが、下記のとおり作ったのですが 何かアドバイスは頂けませんか? お願い致します。 #!/bin/bash ls -l > case.txt P=`cat case.txt | wc -l` if $P -ge 10 then echo '10以上' elif $P -ge 3 ; then echo '3以上' elif $P -le 2 ; then echo '2以下' fi

  • fortran if文

    fortranのif文で、以下の様に場合わけしてプログラムしたのですが、 このようなエラー文が出ます。どう対処したらいいのか教えて下さい。 Error: An unterminated block exists. プログラム↓ if(-0.5d0.LE.theta.LE.0.0d0) then eta=2 if(0.0d0.LT.theta.LT.0.5d0) then eta=5 if(0.5.LE.theta.LE.1.0d0) then eta=3 場合わけの範囲指定の仕方が不味いのではないかと思っていますが、 どうしていいものかわからず・・ 皆様のお力を貸して下さい。

  • マクロのif文

    「もしアクティブセルの一つ上のセルが選択状態だったら」 上記のマクロ文は以下では違うと思いますが、正しいものを教えて下さい。 If ActiveCell.Offset(1, 0) = Selection Then

  • If文について

    よろしくお願いします。 Excelのマクロで If文を使おうとしています。 ブックAのシート1に会員No.リストがあり、 ブックBに会員Noをシート番号にしたものがあります。 そこで、会員Noに等しいシートを見つけようと、下記のようにIf文を使いました。 しかし、等しいシート番号があるのに 一致した と出ません。 シートの最後まで進んで 不一致 が出ます。 どこが悪いのでしょうか。ご指導お願いします。 For I = 1 To ActiveWorkbook.Worksheets.Count 'ワークシートの数だけ繰り返す MsgBox 会員No & Worksheets(I).Name If 会員No = Worksheets(I).Name Then MsgBox "一致した" End If Next MsgBox "不一致" 質問の補足ですが、マクロはブックAにあります。 ブックAから会員Noを読み取り、ブックBをアクティブにしてから、If文に入っています。またIf文の前のMsgBox 会員No & Worksheets(I).Name で番号が一致する時があることも確認しています。

  • If文の条件文の書き方

    お世話になります。 Excelでマクロを作成しております。 内容:  あるセルに、X<=300 というような条件を入れておきます。  ある値、たとえば、500 が来たときに、Xに代入して、  500<=300 という条件式を作り、それが、正しいか、正しくないか  の結果を求めたいと思っています。 このとき、if文の条件文は、値によって、変わらなくてはいけないので、 文字列の置き換え等をして、変数として条件文を作ると、「型が違います」 のエラーになります。 どのように条件文を作ればいいでしょうか?? hani = Cells(1,1).value 'セル1,1に、X<=300 が書かれています。 exp = Replace(hani, "X", 500) '"X"を500と置き換えます。 If exp Then Check = 0 Else Check = 1 End If よろしくお願いします。

  • 再質問 長いIF文を短くしたい

    お世話になっております 先日1/24に、条件を示さずに「長いIF文を短くしたい」という質問をしてしまいました こちらの手抜きをお詫びします 前回keithinさんにアドバイスいただいた方法で書き直しましたので これをさらに簡単に書く方法があれば教えてください 以下は、Private Sub Worksheet_Change(ByVal Target As Range)内のマクロです If Target.Row >= 15 And Target.Row <= 100 And Target.Column = 9 Then If Range("I" & Target.Row).Value < Range("J" & Target.Row).Value Then If Range("G" & Target.Row).Value >= 1 Then If Range("I" & Target.Row).Value >= Range("G" & Target.Row).Value Then If Range("I" & Target.Row).Value Mod Range("G" & Target.Row).Value = 0 Then  処理 End If End If End If End If End If

  • vb.netでのif文について

    vb.netでエクセルを操作する プログラムを作ってて、 Dim xlrange As Excel.Range Dim xlcells As Excel.Range xlrange=xlcells(1,1) if xlrange.value<>"*合計*" then xlrange.value="" end if というプログラムを考えたのですが、 うまくいきません。 if文の条件にxlrange.valueは使えるのでしょうか?

  • アラームの指令

    マクロプログラムでアラームをつかいたいのですが、どういった指令の 仕方をすればいいのですか?ファナック、OSPの場合。 (例) IF[#20EQ#30]GOTO1 ; ; ; ; ; N1 ?????????←ここです。 G90G0Z30. M99

  • if文がbegin - endな訳は?

    if 条件 > 0 then  begin   条件あり  end else  begin   それ以外。  end; Delphiでは、こうなるのですがなぜ{}を使わないのでしょうか? {}はコメントになるけど、//でも/* */ でもいいじゃないですか。 それに比べて、begin - end って面倒じゃないですか? 何かの本でif文が多いのは汚いプログラムだ、と読んだのですが、当時はPerl,PHPしか知らなかったので、それほど汚くないじゃん。と思ったのですが、Delphiを使ってみると、やっぱりif文が汚く感じます。 もちろん、コンパイルするので、書き方は開発者の自由なのは分かりますが、{}ではいけない明確な理由があるんでしょうか? 豆知識を持っている方、プログラム経験上分かった方、よろしくお願いします。