擬似言語の問題についての疑問

このQ&Aのポイント
  • 擬似言語の問題において、整数型の変数を割り算で行って小数になった場合、小数点以下が打ち切られるのは仕様なのか疑問です。
  • 変数idxとfintが整数型である擬似言語の問題において、fint - (fint ÷ 10 ) × 10 の計算結果に疑問を持っています。
  • fintの計算結果が一の位の2の部分を打ち切るという解説に疑問を持っています。
回答を見る
  • ベストアンサー

基本情報 平成19年秋 午後第4問について

擬似言語の問題ですが 変数idx,fintともに整数型です。 真ん中より少し上あたりに   「・idx← fint - (fint ÷ 10 ) × 10」 という行があると思います。 解説には fint = 12だとすると (fint ÷ 10 )  を行うと 、fintの一の位の2の部分が 打ち切られるというようなことが書かれていましたが これが納得できません。 fint ← fint ÷ 10 ならば  fint ← 1.2 = fint ÷ 10 とういうことであり、 1.2をfintに代入して少数以下が打ち切られるのがわかるのですが、 整数型の変数に格納しなくても、整数型の変数を割り算で行って小数になった場合、小数点以下が打ち切られるのは擬似言語の仕様なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

打ち切られる→切捨てられる、と解釈します。 >整数型の変数を割り算で行って小数になった場合、 >小数点以下が打ち切られるのは擬似言語の仕様なのでしょうか? そうです。 http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19.html#19aki に問題がありますが、P3の「注」に >整数同士の除算では、整数の商を結果として返す。 とあります。 つまり(fint ÷ 10 )の段階で結果が整数になります。

関連するQ&A

  • 数値を文字列に変換する処理

    基本情報の午後試験の擬似言語の問題でわからないところが あります。 この処理は、数値の整数部分を文字列に変換しスタックに積む プログラムです。 (たとえば、12.345だったら整数部分の12の一の位から順に スタックに積んでいきます。) Int()は小数部分を切り捨てる処理です。 文字型:Chr[]={"0","1","2","3","4","5","6","7","8","9"},T 整数型:Fint,idx; Fint=Int(F); while(Fint>0) { Idx=Fint - (Fint/10)*10; Push(chr[idx]); Fint=Fint/10; } 質問としては、なぜ上記のような処理で下位桁から順にスタックに 積んでいけるのかわかりません。 たとえば、Fint=Int(F)でFintに12が格納されて、 Idx=Fint - (Fint/10)*10の式でIdxには0が格納されて本来格納 されるべき'2'が格納されないと思うからです。 Idx=12-(12/10)*10→0というようにです。 表記は、擬似言語とC言語がごっちゃになっており大変わかりにくい かとは思いますが、何卒よろしくお願いします。

  • H20年秋期基本情報技術者午後問題の問2

    H20年秋期基本情報技術者午後問題の 問2(擬似言語)ですが、 主プログラムPrintOutの 整数型変数  LineC,MarginP,CurrentPで、 1.それぞれに、格納される物が分かりません。 2.もしかして、問題用紙に記載が洩れている?のでしょうか?   或いは、ココを読めば分かる、と、なっているのでしょうか? 詳しい方、教えて下さい! 今月の試験対策で、困っています。

  • 基本情報者の午後問題擬似言語

    こんにちわ~ 半年くらいかなぁ過去問題ばかり擬似言語勉強しても、 ちっとも安定した答えがでません。 いちお、C言語はなんとか5割ないし4割はキープできてると思うのですが。 質問したのはなぜかと言いますと、「みなさんは試験のとき擬似言語の問題はちゃんとトレースしてほぼ安定して答えをだすのか?」というのをきになりまして質問しました。おおざっぱに1周トレースはするのですが、変数の ありがちなIDXがSIDX等に変化するのをまじまじと約していくと時間ないですよね?どうでしょうか?時間ない上に今度は配列の図でも書いちゃおうかなぁなんて時間ないですよね?みなさんはどうしてるんでしょうか。

  • 変数に格納できる桁数に制限はあるの?

    スカラー変数に格納できる桁数に制限はあるのでしょうか? 制限があるとすれば、どうすれば解除できるのでしょうか? 具体的には下記のような手順です。 小数15位まである数値(整数部は3桁)を変数($hoge)に代入する。 $hoge = 123.123456789012345; 次に、この変数を他の変数($fuga)に代入する。 $fuga = $hoge; さらにこの変数をSmarthに渡してブラウザに表示させると、小数点以下が12桁までしか表示されません。 どうすれば15桁をそのまま表示させることができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 擬似言語のある処理について

    擬似言語についてわからないことがあります。 このプログラムはスタックを使って、実数値を10進数字に変換するプログラムです。 今回質問するのは、このプログラムの中でも数値を一桁ずつ10進数字に変換して、スタックに詰め込む部分です。 Fintは整数部分。Idxは変数。 IntはFの小数部をカットする。(つまり、整数部分だけにする処理です。) Chr[]={0,1,2,3,4,5,6,7,8,9},T (Chrは数値に対応する文字列を格納したものです。) Fint←Int(F) 繰り返し処理 Fint>0ならば ・Idx ← Fint - (Fint ÷ 10) × 10;Fintの最下位桁をIdxに取り出す。 ・Push(Chr[Idx]);最下位桁Idxに対応する数字をスタックにプッシュする ・Fint←Fint÷10;次の桁を最下位の桁にシフトする。 繰り返しで上へ 上記の「Fintの最下位桁をIdxに取り出す」という処理は たとえば、12,345という数字があったならば、12の最下位桁2を取り出すということなのだと思いますが、式に当てはめて計算すると 12-(12÷10)×10となりIdxに0という数字が格納されます。 その後に、Chrで0という数値を拾ってきて文字列0が格納されることになります。 しかし、問題文を見ると12,345という数字を変換すると12,345という文字列になっておりなぜ0?になってしまうのという話になります。 私の解釈は間違いだらけだと思いますが訂正していただけると 大変うれしいです。

  • このコードであってますでしょうか?

    重量を格納する変数(Weight)を宣言する。重量テキストボックスの入力値はMath.Ceilingメソッドで小数点以下を切り上げて整数値とし、これをWeightに代入して初期化する。 この文章をプログラムになおすと Dim Weight As Integer = Math.Ceiling(CDbl(Weight As Integer)) これでいいのでしょうか??

  • わり算の結果が整数でも小数点以下4桁まで表示されてしまう!

    わり算の結果が整数でも小数点以下4桁まで表示されてしまう! 同じような質問で恐縮なのですが、 例えば、100、101というデータをMySQLの算術演算子/を使って2で割ると、 50.0000、50.5000のように、整数だろうが小数だろうが、小数点以下4桁まで出てしまいます。 これを、いろんな関数を駆使して50、50.5にすることはできますか。 50、51または50.0、50.5のように小数点の位置を同じずつ動かすことはできるのですが、これでは嫌だなぁと思った次第です

    • ベストアンサー
    • MySQL
  • Excelでの割り算について

    Excelで割り算をするとき たとえば 10割る3 1) 何の条件もなければ =10/3 で " 3.33 " 2) 整数部のみ欲しいときは =INT(10/3)  もしくは =QUOTIENT(10/3) で " 3 "  3) 余は =MOD(10,3) で " 1 "  を得ることができます 4) 割り算の答えの小数部分を表示するにはどうしたら良いのでしょうか  つまり "0.33 " とし小数点以下の桁数は任意で可能選択とするには ? ぜひ教えてください、お願いいたします。

  • 割り算の商余について

    本サイトで下記問題と解答を見つけました。 私の知識では商は整数のはずですが、下記問題、回答は少数になっています。 「40.1÷75=0.5…2.6」 商が小数でも良いのであれば 「40.1÷75=0.53...0.35」や0.5346....0.005も答えになるはず。 小学校ではどのように教えているのでしょうか? ※割り算について教えてください。 2022/02/04 09:33 小学生の娘に割り算をおしえているのですが、恥ずかしながら親が分かりません… 40.1÷75=0.5…2.6 になりますが、なぜ余りの数が答えの0.5より大きいのでしょうか? 子供にもわかりやすく教えて頂けると嬉しいです。

  • 中学受験  算数の問題について質問です

    この様な問題がありました。 整数Aを4でわる計算を少数でわりきれるまでしましたが、答えに小数点を打ち忘れてしまったため、ただしい答えより76.5大きい答えになりました。 ①正しい答えはいくつですか ②整数Aはいくつですか --- 解答にはこう記載ありました。 ①8.5②34 整数4で割った時の答えの小数点以下は0.25か0.5か0.75です。 答えに小数点を打ち忘れると整数になるので、 整数-□.25=△.75 整数-□.5=△.5 整数-□.75=△.25 正しい答えよr76.5大きくなるから 正しい答えは少数第1位までとわかります。 少数第一位の数の小数点を打ち忘れると、小数点は右に1けたうつるので、まちがった答えは、正しい答えの10倍です。 正しい答えを〇とすると 〇×10-〇=〇×9 〇×76.5より正しい答えは76.5÷9=8.5です とありますが。 子どもはこの問題が理解できません。 恥ずかしながら、私も解説できません。 塾の先生はわからなければやらなくてよいというそうです。 子どもにどのように教えたら理解できるでしょうか。 なにか教え方でコツなどあるでしょうか。

専門家に質問してみよう