問題を解くにはまずプログラムの全体の流れを抑えると思いますが、
具体的にどのようにされていますでしょうか。
自分の取り組み方として、問題文から何を
どうしたいのかを確認します。
そこから、どのような流れになるか想像します。
例えば、Aファイルからレコードを取り出し、そのレコードの
データを書きかえて、Bファイルに登録する場合は以下のように
考えます。
(1)Aファイルのオープン
(2)Aファイルからレコードを読む
(3)該当するレコードに対し、書き換え処理を行う
(4)処理したレコードをBファイルに書き込む
ただ、この流れを想定して問題のプログラムを見たとき、
なぜ、このようなことをしているのか?
という不明点がでてきます。
すると、全体にどのような影響があるか解らなくなり、
全体像が把握しきれなくなります。
例えば、上記の不明点が変数に値を代入していて、
別の箇所でもその変数を使用している場合、
何をしているかがわからなくなり、
お手上げ状態になってしまいます。
みなさんのプログラムに対する全体象のとらえ方や、
上記のような状態になったとき、どのような対処を
しているかを教えていただけないでしょうか。
ちなみにCASLを勉強しています。
(CASLに変数はありませんが、例として記述させていただきました)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
局部的な動きを確認する場合・・・ですかぁ。
質問者さんのやりかたは、原則どおりで実に正しく王道の方法です。
ですので、以下の私の方法は「間違えることもある邪道」だと了解の
上、理解してみてください。
注目するのは「主な処理」です。
例えば、ループで何かの結果を貯める処理の場合、どこかに
DATA = DATA + INPUT(I) (vbの場合、他言語の場合は敷衍して下さい)
みたいな、データを貯める処理があると思います。これを回すループ
を見つけてしまえば、それ以外の処理は「メイン」ではありません。
また、何かを差し替える処理であっても、
OUTPUT = INPUT
の式が、どこかにあるはずですよね。コレが分かれば、その命令の前
は入力データを整える処理、後は単なる出力になりますから、差し替え
処理の条件分岐を探す・・・ということになります。
要は「キモになる処理」の命令を想定して見つけてしまうんです。キモ
以外のコードは事前・事後の処理で、そう言う処理は大概アタリマエの
準備ですから無視・・・というか理解は後回しでも大丈夫。重要な分岐
と処理さえ押さえれば、後は芋づる式に理解できます。
ただ、前にも書きましたが、この方法は「キモになる処理」のパターン
を多く知っていること、プログラムが、奇をてらわないマトモな処理
であることが前提になります。この2点のどちらかが外れると、泥沼に
陥りますので、ヤバイと思ったら即座に王道に戻る必要があります。
基本情報処理では、それほどヘンな処理は出ませんが、タマに「意表
を突く処理」が出るコトがあります。特にアセンブラやJavaではその
傾向がありますので、ヤマが外れると辛いです。逆に経験上、COBOLの
処理は比較的マトモな場合が多いので、ロジックが苦手な人はCOBOLを
狙うと良いかもしれません。ま、とっつきは非常に悪い言語ですがね。
No.1
- 回答日時:
他人の作ったプログラムは、どのようなものでも読みにくいですよね。
で、実際の業務なら、実際にそのプログラムを動かして、レジスター
などの動きを毎ステップフォローすると、何とか分かる場合が多いの
ですが、試験問題でそんなことも出来ませんし、そもそもCASLのような
アセンブラでは、ステップを追っても何をやってるか分からないことが
多いです。
ですので、私は結果から追っていきます。大概の問題では、最終的に
何が出力されるかは明示されていますので、出力データは容易に当たり
をつけることが出来ます。出力データが分かれば、それをどうやって
計算しているかを順次追いかけていく・・・という方法が取れます。
当然、変数やレジスターは、ステップごとの変化をしっかり書き出す
ようにしておかないと、手がかりを見落としますよ。
ただ、実際にやってみると、CASLは「アセンブラプログラムのクセ」に
慣れておかないと、追いかけることすら出来ない場合が少なくないです。
ですので、どうしてもCASLという場合は、アセンブラのコードをたくさん
読み、出来ればエミュレータで動作させて見ることを繰り返すしかない
と私は思います。逆に言えば、一見難しい他の言語の方が、ロジックを
追いかける上ではむしろ分かりやすい、とも言えます。
情報処理試験を社内外で教えて来た経験からです。参考になれば幸いです。
返事が遅くなってしまい、すみません。
全体の把握方法のアドバイス、有難うございました。
では、局部的な動きを確認する場合についても、相談させて下さい。
自分のやり方は簡単なデータを使用してトレースしています。
たとえば、文字列の中に空白が存在した場合、
空白を別の文字列で置き換えるというプログラムがあったとします。
その場合、正常なデータ(空白が無いデータ)でまずはトレースし、
次に空白であった場合でトレースします。
要はデータが変化しないパターンでトレースした後で、
データが変化するパターンでトレースします。
このような手順を踏まないと、文字が空白であるかの分岐で両方の
分岐をみながらトレースすることになると思います。
すると、フローの整理がつかなくなると思います。
ただし、この方法では時間がかかってしまいます。
そこで、分岐が存在するプログラムはどのようにトレースしていますでしょうか。
ここら辺が固まれば、局部的な箇所もスムーズにトレースできるのでは
ないかと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
医師・看護師・助産師
薬剤師・登録販売者・MR
医療事務・調剤薬局事務
歯科衛生士・歯科助手
臨床検査技師・臨床工学技士
理学療法士・作業療法士・言語聴覚士
臨床心理士・心理カウンセラー・ソーシャルワーカー
介護福祉士・ケアマネージャー・社会福祉士
弁護士・行政書士・司法書士・社会保険労務士
フィナンシャルプランナー(FP)
中小企業診断士
公認会計士・税理士
簿記検定・漢字検定・秘書検定
情報処理技術者・Microsoft認定資格
TOEFL・TOEIC・英語検定
建築士
インテリアコーディネーター
宅地建物取引主任者(宅建)
不動産鑑定士・土地家屋調査士
マンション管理士
電気工事士
美容師・理容師
調理師・管理栄養士・パティシエ
シェフ
保育士・幼稚園教諭
教師・教員
国家公務員・地方公務員
警察官・消防士
その他(職業・資格)
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テストについて
-
三菱製PLC:ファイルレジスタ(...
-
システムを作るにあたり、SQLSe...
-
プログラムソースの値段
-
三菱シーケンサーA1SHCPUとA1SJ...
-
不具合の現状認識をしないプロ...
-
Zと2とか紛らわしいのがあるか...
-
コピペではスキルアップしませんか
-
ヴィジュアルベーシックについて
-
グーグルの障害者訓練プログラ...
-
納品 vs ご納品 どちらが正し...
-
納入日と納品日について
-
見積書と発注書を兼用できるの...
-
営業職をやってます。先月発注...
-
texに関する初歩的な質問
-
Windows server 2022 CALとSQL ...
-
「スポット受注」はどういう意...
-
【ASP.NET】DataSetをSqlDataSo...
-
発注書と見積書の品番が異なっ...
-
テスト仕様書作成って初心者(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テストについて
-
Zと2とか紛らわしいのがあるか...
-
三菱製PLC:ファイルレジスタ(...
-
プログラムソースの値段
-
グーグルの障害者訓練プログラ...
-
三菱シーケンサーA1SHCPUとA1SJ...
-
インプットとアウトプット
-
東京でヨコイのソース買えますか?
-
システムを作るにあたり、SQLSe...
-
ナショナル NE-1401F の業...
-
不具合の現状認識をしないプロ...
-
マスクROM と PROMの違いについて
-
トークスプリクト作成
-
初心者です。プログラムを作り...
-
MELSEC Qシリーズのシーケンサ...
-
国家公務員宿舎法
-
戻り番地を逃がしておくの意味...
-
テストやチェックすることが苦...
-
名簿業者の方いますか?
-
自閉症のイルカセラピーについて
おすすめ情報