【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解する

Поделиться
HTML-код
  • Опубликовано: 25 авг 2024

Комментарии • 295

  • @itgakko
    @itgakko  2 месяца назад +2

    ⚠学習前にご確認ください!
    ・誤りがあった場合に概要欄で訂正している場合があります。動画におかしな点があった場合、まずは概要欄のご確認をお願いします。
    ・動画で投影している教材は、本動画の概要欄からさいとうの公式LINEに登録頂くと無料でダウンロードできます!
     ※概要欄で訂正している内容が反映されたものをダウンロードできます。

  • @kentsuji5670
    @kentsuji5670 6 месяцев назад +2

    対策本1冊は購入して科目Aはある程度勉強したのですが、1週間ほど前に科目Bに取り掛かってみて愕然。
    科目Aの勉強だけではまったくと言っていいほど対応できませんでした。
    この動画及びチャンネルの他動画を見て問題文の「日本語になおす」コツがつかめ、なんとか合格することができました。
    ありがとうございました!

    • @itgakko
      @itgakko  6 месяцев назад

      合格おめでとうございます!

  • @AtomSaito
    @AtomSaito Год назад +12

    具体例を付け加えてるから、わかりやすいです。
    抽象的なプログラムなので、具体例があると一気に理解しやすくなります!
    やっぱり初心者にとって具体例は一番大事だと思いました。
    ありがとうございます、基本情報技術者の動画が少ない中、この動画に助かってます。

    • @itgakko
      @itgakko  Год назад +3

      ありがとうございます!
      勉強頑張ってくださいね!

  • @user-sh2th9fv7x
    @user-sh2th9fv7x Год назад +9

    模擬問題全部解いちゃって困ってたけどオリジナル問題とかマジで助かります!!
    本当に感謝しかないです!

    • @itgakko
      @itgakko  Год назад +2

      コメントありがとうございます!
      これからもオリジナル問題は追加予定なのでぜひ楽しみにしていてください!

  • @hoge_tarou
    @hoge_tarou 8 месяцев назад +1

    プログラミング初心者なこともあり、科目Bは
    『教科書に書いてあることが、何をいっているのかさっぱり分からない…(特にオブジェクト指向)』
    状態に陥っていましたが、こちらの動画シリーズのおかげで、科目B克服&合格できました!
    本当にありがとうございます!

    • @itgakko
      @itgakko  8 месяцев назад

      合格おめでとうございます!
      素晴らしいですね!

  • @taikodaisukikurabu
    @taikodaisukikurabu Год назад +2

    問13のみ、訂正前の状態で解いたので「010」と続いて答えが合致しないと思いましたが、コメント欄や概要欄を見て再度解き直して「0110」になることが確認できました。
    訂正後にはなりますが、全問正解することができました。
    解説も分かりやすくて助かっています。

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!

  • @user-ez1xy1rt4m
    @user-ez1xy1rt4m 11 месяцев назад +3

    分かりやすい解説&オリジナル問題で助かりました!基本情報技術者まであと1ヶ月で、科目Bでかなり詰まっていましたので、いい演習になりました!

    • @itgakko
      @itgakko  11 месяцев назад

      コメントありがとうございます!
      勉強頑張って下さい!

  • @tatsuyanagao486
    @tatsuyanagao486 10 месяцев назад +2

    おかげさまで本日合格できました。未経験から勉強し一度は落ちましたが諦めずに続けてよかったです。この動画をきっかけに理解が深まりました!

    • @itgakko
      @itgakko  10 месяцев назад

      合格おめでとうございます!!

  • @user-rg4gv3db1v
    @user-rg4gv3db1v Год назад +2

    本日試験でした。サイトウさんのおかげで手も足も出なかった、アルゴリズム擬似言語の問題を理解することができ、無事合格できました。それもこれも、この動画のおかげです。初心者向けのこの動画がレベルアップにつながりました。本当に感謝しています^_^

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @user-ni6qd3uj7f
    @user-ni6qd3uj7f Год назад +7

    このような動画が欲しかった!ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!!

  • @user-uh5rf6lc4i
    @user-uh5rf6lc4i Месяц назад

    前回科目Bの問題集をなんとなくやって420点と惨敗したので、今回はさいとうさんが作った科目Bに向けての再生リストの動画を完全理解➕なんとなくやってた問題集の内容にさいとうさんの動画の知識を上乗せして理解する感じで勉強して本日科目Bを受けてきました。
    そして無事二回目で受かりました!!!
    本当に救われましたありがとうございました!!!!!!

    • @itgakko
      @itgakko  29 дней назад

      合格おめでとうございます!!

  • @yokosumakimotee5315
    @yokosumakimotee5315 Год назад +7

    とても分かりやすくて助かっています。

    • @itgakko
      @itgakko  Год назад

      嬉しいコメントありがとうございます!

  • @KK-xm1fw
    @KK-xm1fw 11 месяцев назад +1

    今日初めて基本情報技術者試験を受けてAB共にめっちゃギリギリですがでなんとか合格点に達せました!科目bの勉強はこの動画にお世話になりました!ありがとうございます!

    • @itgakko
      @itgakko  11 месяцев назад +1

      コメントありがとうございます!試験お疲れ様でした!

  • @Baechantokyo
    @Baechantokyo Год назад +1

    こんにちは!一昨日B試験落ちましたので心を改めてアルゴリズムを勉強しようと思いました。検索で偶然この動画をみつけましたが、説明の前に自分で考える時間があるのが非常に良いと思います。今日は00:35:40までやりました。明日また早く勉強したと思いました。良い学習動画ありがとうございます。

    • @itgakko
      @itgakko  Год назад

      こんにちは!
      勉強頑張ってください!

  • @akiper
    @akiper Год назад

    問13は自分で何回かトレースをしてみました。
    解説を聞いてみて、半年前ならできなかったですが今は出来るように自信が出来ました。ありがとうございます。

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      トレース、大事ですね!

  • @yuto-mb8ll
    @yuto-mb8ll Год назад +11

    問13にて、i=2、j=3の時についてですが、この時nowstateは2かと思います。
    この場合、statetransition[3][1]は2なので、一つ目のif文はtrue
    input[2]は1、statetransition[3][3]は1なので、二つ目のif文もtrueになり、
    statetransition[3][4]の値0を出力するのかと思ったのですが違いますでしょうか。

    • @itgakko
      @itgakko  Год назад +4

      ご質問ありがとうございます。
      ご指摘の通り、j=1の時に値を変えた結果、
      i=2、j=3の時もif文が通ってしまいますね。
      if文内のブロックに、for文内のブロックを抜ける旨の記載が必要ですので、
      概要欄にも訂正の旨記載させて頂きます。
      修正後のプログラムですが以下のようになるイメージです。
      ----------
           if (input[i] と stateTransition[j][3] が等しい)
            stateTransition[j][4] の値を出力する
            nowState ← stateTransition[j][2]
            繰り返しを抜ける
           endif
      ----------
      以上、よろしくお願いいたします。

  • @Baechantokyo
    @Baechantokyo Год назад +1

    基礎アルゴリズム講義コースありがとうございました。!!また応用問題にも進んでいきます!😄

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      頑張ってください!

  • @user-ut5jw4gk2h
    @user-ut5jw4gk2h Год назад +1

    科目Bの動画を色々探しましたがこの動画が一番わかりやすかったです
    特にアウトプット→インプットなので考えながらインプットできる所が頭にスッと入ってきました
    明日、早速受けてきます
    正直科目Bの勉強を詰め込みでやったので心配しか無いですが頑張ります!

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!
      試験頑張ってください!

    • @user-ut5jw4gk2h
      @user-ut5jw4gk2h Год назад

      受けて来ました!A 615 B540で撃沈です💦 特に関数と再帰が苦手でした💦基本中の基本なのでまた動画を見ながら3週間勉強して挑みます
      とても悔しい!!!!!

    • @itgakko
      @itgakko  Год назад

      受験お疲れ様でした!
      3週間後ですか、また頑張ってください!

  • @louiskentakikuchi6991
    @louiskentakikuchi6991 6 месяцев назад

    今日試験科目B受験しました!(科目Aは免除)結果は615点だったのでなんとか合格できました!さいとうさんには解説動画や質問対応など、本当にお世話になりました!ありがとうございました!

    • @itgakko
      @itgakko  6 месяцев назад

      合格おめでとうございます!

  • @user-ko6ze2dx8h
    @user-ko6ze2dx8h 6 месяцев назад

    この動画でアルゴリズムの基礎を理解でき、その後の過去問や模擬問題演習をスムーズに進めることができました。初回で科目B730点で合格出来ました。当日は、アルゴリズムの基本問題は自信をもって回答でき、応用問題は2-3問ほど分からなかったですが、アルゴリズムの基本問題とセキュリティを落とさなかったので、合格できたと思います。ありがとうございます!

    • @itgakko
      @itgakko  6 месяцев назад +1

      まずは合格おめでとうございます!
      余裕を持ったスコアでの合格素晴らしいですね!
      Thanksありがとうございます!
      より良いRUclipsチャンネル運営に使わせていただきます。

    • @user-ko6ze2dx8h
      @user-ko6ze2dx8h 6 месяцев назад

      @@itgakko お返事ありがとうございます!受験を考えている友人にも動画を紹介いたします。

    • @itgakko
      @itgakko  6 месяцев назад +1

      @user-ko6ze2dx8h ありがとうございます!

  • @kuriyamasaikou
    @kuriyamasaikou Год назад +2

    とても分かりやすく参考にさせていただいてます。
    明日試験なので合格できるよう頑張ってきます!

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます!
      試験頑張って下さい!

    • @kuriyamasaikou
      @kuriyamasaikou Год назад

      @@itgakko 合格できました。配信動画は全て使わせてもらいました(*'ω'*)有益な動画ありがとうございました!

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!!

  • @user-sk9yw5up7d
    @user-sk9yw5up7d Год назад +1

    基本情報技術者試験合格しました!
    さいとうさんの動画がすごく参考になり、安心して受験できました♪
    ありがとうございます☺️

    • @itgakko
      @itgakko  Год назад +1

      合格おめでとうございます!
      わざわざご報告ありがとうございます!

    • @user-sk9yw5up7d
      @user-sk9yw5up7d Год назад

      @@itgakko
      現在、応用情報技術者試験の勉強をしているのですが、どのような勉強法が良いのか、もし良ければ応用情報技術者試験の動画もぜひお願いしたいです。

    • @itgakko
      @itgakko  Год назад +2

      応用情報いいですね!動画化検討しますね!

    • @user-sk9yw5up7d
      @user-sk9yw5up7d Год назад

      @@itgakko ありがとうございます!
      動画お待ちしてます☺️

  • @kou367
    @kou367 7 месяцев назад +1

    この人マジで助かる❤ありがとうございます🎉

    • @itgakko
      @itgakko  7 месяцев назад

      コメントありがとうございます!

  • @user-lw5mu8ns3h
    @user-lw5mu8ns3h Год назад +1

    素晴らしい動画ありがとうございます。とても分かりやすいです。誤りもありますが(問題作りは大変なので致し方ないと思います)、オリジナル問題は非常にありがたいので今後もあたらしい問題作りを期待します。8/14に受検して参ります。頑張ります!

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます!
      試験頑張ってください!

  • @user-lb6ec3xk8y
    @user-lb6ec3xk8y Год назад +3

    わかりやすい解説ありがとうございます!
    問5の配列基本問題ですが、data[3]はプログラミング言語的には6なのではと思いました!
    配布されているサンプル問題では問題文の前提条件として、
    配列は1から始まるの記載があるのでそちらでしたら答えは5なのかなとおもいます

    • @itgakko
      @itgakko  Год назад +3

      すみません。
      IPAが公開しているサンプル問題に合わせて配列のインデックスは1から始まるようにしています。
      前提として書いておくべきでしたね。
      最近は多くのプログラミング言語が0始まりなので基本情報技術者試験の擬似言語も0からにすればよいのに、と個人的には思っています!
      COBOLとかは1始まりだった気がするんですけどさすがに今時じゃないので...

  • @user-mn5bl1gs3c
    @user-mn5bl1gs3c Год назад +3

    いつも分かりやすく、大変助かっております!
    7月に受けるのですが、科目Aの基本理論以外も出していただけると大変助かります、、!

    • @itgakko
      @itgakko  Год назад +2

      コメントありがとうございます!
      7月受験、頑張ってください!
      ただ申し訳ないのですが、
      科目Aの対策動画は7月の受験には間に合わないと思います。

  • @nukonuko2217
    @nukonuko2217 Год назад +1

    6月と7月(こっちは落ちたら)に受験します
    科目B解説やってる動画はほとんどないので重宝しています

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!
      勉強頑張ってください!

  • @lighttobrcaz1
    @lighttobrcaz1 9 месяцев назад

    動画ありがとうございます!
    とても、参考になりました!
    ありがとうございます!⭐👍️

    • @itgakko
      @itgakko  9 месяцев назад +1

      コメントありがとうございます!

  • @kck999
    @kck999 Год назад +2

    これオリジナル問題集ですか?
    このボリュームの問題よく作られましたね...すごい。4月5日に改定後の試験を受ける予定なので、サンプル問題が少ない中非常に助かります!

    • @itgakko
      @itgakko  Год назад +3

      コメントありがとうございます!
      オリジナルの問題集ですね、試験頑張ってください!

  • @yuhuqu4887
    @yuhuqu4887 Год назад +1

    外国人の私でもわかりやすかったです、ありがとうございました!

    • @itgakko
      @itgakko  Год назад +2

      嬉しいコメントありがとうございます!
      基本情報技術者試験の勉強頑張って下さい!

  • @techlearner-wp3rv
    @techlearner-wp3rv Год назад +3

    1:10:29 問14でreturnが4回出てきますけど、4つのreturnを足したものではなくて最後に出てきたreturnが答えなんですね

    • @itgakko
      @itgakko  Год назад +2

      コメントありがとうございます!そうですね!
      関数getSum(3) と呼び出した場合、getSum(3) の戻り値としては 6 が返されます。
      途中で呼び出されることになる getSum(2)、getSum(1)、getSum(0) についてはそれぞれ
      あくまでその呼び出し元である getSum(3)、getSum(2)、getSum(1) の中で戻り値が
      使われているだけなので、return文 が複数回出てきているからといって、
      その結果を足したりはしないです。

  • @user-og5gq8xc2k
    @user-og5gq8xc2k 11 месяцев назад

    31:53 ①が関数を呼び出して②がその関数を定義している
    問10もう一回
    問13解けたけどもう一回解説理解する
    問14 プログラム中のreturnとnumはくっついてない

  • @user-oo5qv9111o
    @user-oo5qv9111o Год назад +4

    問13人関して質問です。
    他の方と重複しますが。
    i=2, j=3の時、全てのif文通りませんか?
    はい、またはいいえでのご回答とその理由もくださると嬉しいです。
    お願い致します。

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      ご記載いただいた通り、i=2,j=3の時、全てのif文が通ります。
      概要欄に記載している以下の内容の通り、
      プログラムに以下内容を追加した状態が正しいので、
      お手数ですが読み替えて進めていただければと思います。
      ーーーーー
       ■対象:問13.繰り返し文(応用)
        ・プログラムに以下1行が不足しておりました。
         お手数ですが以下の行を追加したものとして動画の視聴をお願いします。
         動画内で喋っている解説自体は合っております。
         ----------
          if (nowState と stateTransition[j][1] が等しい)
           if (input[i] と stateTransition[j][3] が等しい)
            stateTransition[j][4] の値を出力する
            nowState ← stateTransition[j][2]
            繰り返しを抜ける        ←←← この行が不足しておりました
           endif
          endif
         ----------
      ーーーーー

  • @anonymouse64
    @anonymouse64 Год назад

    10月に基本情報技術者試験を受けます。
    大変参考になる動画ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      勉強頑張ってください!

  • @user-qg6rt3be3w
    @user-qg6rt3be3w 4 месяца назад

    00:47:08 問11.繰り返しのwhile文
    配列 4,3,1,5
    の場合
    if文( ソート前配列の要素 が minNum より小さい場合 )
    ではソート後の一番目が 3 ではないのですか?

    • @itgakko
      @itgakko  4 месяца назад

      質問ありがとうございます!
      関数selectSortを引数={4,3,1,5}として呼び出すと、
      最終的に関数が返す配列は記載してある通り{1,3,4,5} になります。
      もう少し詳細に「ソート後の1番目が 3 になる」と思われる部分をご記載いただければ、
      疑問点にお答えできると思いますので、
      よろしければ具体的な処理順やトレース結果などの詳細をご記載ください。

  • @user-zp1xx7yc5d
    @user-zp1xx7yc5d 10 месяцев назад +4

    参考書だけじゃ足りなくて試験1日前にこの動画で勉強したらギリギリ合格できました!ありがとうございます( ; ; )

    • @itgakko
      @itgakko  10 месяцев назад +1

      合格おめでとうございます!!

  • @user-lu1ry3po5i
    @user-lu1ry3po5i Год назад +3

    自分の頭ではついていけない所がありました😂 ポインターなどで説明している所を示してもらえると更に楽に理解ができる気がします。 
    大変分かりやすく解説された動画でしたのでまた違う動画も拝見したいと思います😊

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます!
      改善していきますね!

  • @SS.K
    @SS.K 11 месяцев назад +1

    問6は要素数と要素番号がごっちゃになって混乱しますね。わかりやすい解説が楽しいです。

    • @itgakko
      @itgakko  11 месяцев назад

      コメントありがとうございます!

  • @Lizm0414
    @Lizm0414 11 месяцев назад +1

    ビット値の操作が難し過ぎる…説明あって、そっから2時間くらい考えてようやく理解しました。こんなのが普通にスルッと理解できる脳じゃなきゃエンジニアは厳しいのだろうか…

    • @itgakko
      @itgakko  11 месяцев назад

      コメントありがとうございます!
      脳がどうとかいうことはないと思います。単純にこの問題を理解できる知識レベルに到達しているかしていないかだけです。
      ビット値の問題が他と比べて難しく感じるのであれば、2進数に関する理解を深めた方がいいかもしれませんね。
      私の動画でも2進数関連の問題の解説をしているのでよろしければご覧ください。
      ✅【永久保存版】科目A過去問10回分解説|1.基礎理論編(基本情報技術者試験)
       ruclips.net/video/rVAqR-jgd_Y/видео.html
      【2進数関連の問題】
      問4.ビット反転
      問6.2進数の乗算①
      問9.2進数の論理積
      問12.2進数の排他的論理和
      問19.2進数の特徴
      問28.10進数→2進数の変換
      問30.2進数の負数表現(2の補数)
      問35.2進数の乗算②
      問38.2進数の否定論理積

    • @Lizm0414
      @Lizm0414 11 месяцев назад

      ありがとうございます。拝見します!今回引っ掛かっていたのは、左端の数字でチェックして、右端の数字を書き換えていくという流れが理解するまでに時間を要したのと、iの存在です。iが8になったら8桁全て回ったということでループ終了で良いのに、i=8はどこかに代入する為にあるんじゃないのかとか、どこかの何かの数値と比較して両者が8になったことを確認しないとループを終わっちゃダメなんじゃないかと勝手に思い込んでいたことが大問題でした(笑)

    • @itgakko
      @itgakko  11 месяцев назад

      なるほど!
      「for文があったら配列の要素番号に指定する」とか予想を立てることは大事ですが、プログラムは書いてあることが全てで、それ以上の処理はないので、予想に囚われすぎないようにしたらいいかもしれませんね。

    • @Lizm0414
      @Lizm0414 11 месяцев назад

      @@itgakko ありがとうございます。囚われないことは超重要ですね!予測するにも色々パターンのプログラムに触れて見る事が大事だと思いました。まだ知らないプログラムが多くある中で知った気になって先回りしないように気をつけます!

    • @itgakko
      @itgakko  11 месяцев назад

      頑張って下さい!

  • @user-fansu
    @user-fansu Год назад +2

    54:06 右の4,5行目のif文について。
    「minNumがソート前配列の要素より小さい場合」ってなってますが、「ソート前配列の要素がminNumより小さい場合」minNumをソート前配列で上書きするのではないでしょうか。
    日本語がややこしくてすみません

    • @itgakko
      @itgakko  Год назад

      大変失礼しました。
      コメント頂いた内容が正しいです。
      お手数ですがお手数ですがご理解頂いている内容で
      読み進めていただけますでしょうか。

  • @user-mg9lu7xl9n
    @user-mg9lu7xl9n Год назад +2

    問10について質問させてください
    else文はbyte Λ 10000000が「10000000」という結果以外のときに実行する式だと思うのですが、
    resultByte ← resultByte ∨ (resultByte ∨ 00000001 )はどういうことを表しているのでしょうか?
    resultByte ← resultByte ∨ 00000001との違いがわからないので、教えてほしいです。

    • @itgakko
      @itgakko  Год назад +1

      コメントありがとうございます。
      すみません、質問いただいた通り違いはないです。
      意図としては問題文を resultByte ←【a】というように、
      右辺丸ごと空欄にしようとしていたのですが誤ってました。
      混乱させてしまってすみません。

  • @zenon1424
    @zenon1424 Год назад +1

    アルゴリズムが難しく理解に苦しみました。何回も動画見返してみますが何かコツがありましたら教えてほしいです。

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      具体的にはどのあたりで苦しみましたか?
      どんな苦しみ方をしたかによって例えば以下のように対応は異なります。
       ・時間はかかるがなんとか理解できる
        → たくさん問題を解いてアルゴリズムの問題に慣れる
       ・とにかく全くわからない
        → アルゴリズムで利用される記号などを覚えるところから
          始める必要があるかもしれません。
      アルゴリズムの問題が解けるようになるには、
      コツというよりは1つ1つ理解を積み上げていく他ありません。
      自分の現状に合った学習を積み重ねていけるといいですね。

  • @user-ex5sd8xy6c
    @user-ex5sd8xy6c 6 месяцев назад

    問13について質問がございます。if(nowStateとstateTransition[j][1]が等しい)について、一つ前のfor文でjを1からnowstateの要素数まで1ずつ増やすとあるため、j=1で、if文のstateTransition[j][1]の[1]はj=1の要素である、1,1,0,0の内の始点の1だと思ってしまいました。
    解説の中でif(nowStateとstateTransition[j][1]が等しい)について、水色の列から一致するものを探すという説明があり、一つ前のfor文でjを増やしており、j=1の配列のみ見るものだと思っていたので、なぜ水色の列から一致するものを探すという方法を取るのかが分からないです。

    • @itgakko
      @itgakko  6 месяцев назад

      ご質問ありがとうございます!
      ご質問いただいたのは投映している資料の中で
      -----
      ・i=1 のとき(input[i] = 0)※ nowState = 1」
       → 配列stateTransition(要素数 = 6) の繰り返し処理
      -----
      このように説明している箇所だと思います。
      ここで「if (nowState と stateTransition[j][1] が等しい)」の部分を
      -----
      水色の列から一致するものを探す
       → j=1 と j=2 が見つかる
      -----
      と表現しています。
      これは画面上の資料にも映している通り、
      「配列stateTransition(要素数 = 6) の繰り返し処理」
      の処理のことを説明しています。
      つまり、j=1の時だけの話ではなく、
      j=1〜j=6までの繰り返し処理全体の説明になります。
      そのため、
      ・j=1の時:if (nowState と stateTransition[1][1] が等しい)
      ・j=2の時:if (nowState と stateTransition[2][1] が等しい)
      ・j=3の時:if (nowState と stateTransition[3][1] が等しい)
      ・j=4の時:if (nowState と stateTransition[4][1] が等しい)
      ・j=5の時:if (nowState と stateTransition[5][1] が等しい)
      ・j=6の時:if (nowState と stateTransition[6][1] が等しい)
      j=1〜6の6個分の処理を行った結果、
      j=1とj=2の時にif文の条件が真(true)になったということで、
      「水色の列から一致するものを探す」
      という表現をしています。
      以上となります。
      混乱させて申し訳ありません。

    • @user-ex5sd8xy6c
      @user-ex5sd8xy6c 6 месяцев назад

      @@itgakko ありがとうございます!分からないことが多く混乱していたため、冷静になって考えることで理解できました。
      申し訳ないのですが、追加で2点質問がございます。
      1点目は問11について、for(iを1からcompareDataの要素数まで1ずつ増やす)について、これは問13のjを1からstateTransitionの要素数まで1ずつ増やすfor文と同様にi=1〜compareDataの要素数までの繰り返し処理全体の説明なのでしょうか?問題を解いた際、for文以降のif文からdelTarget1←iをループしてしまい、解けませんでした。
      for文をしっかり理解していないことが原因なのでしょうか?
      2点目は問10についてbyteと10000000の論理積をして判断したビット値を反転させて、一番「右」の桁に設定するのはなぜなのでしょうか?普通に考えて、ビットに数値を入れる際は右から入れるからなのでしょうか。(10進数なら1の位から数を入れるように。)

    • @itgakko
      @itgakko  6 месяцев назад

      それぞれ回答しますね!
      > 1点目は問11について、for(iを1からcompareDataの要素数まで1ずつ増やす)について、これは問13のjを1からstateTransitionの要素数まで1ずつ増やすfor文と同様にi=1〜compareDataの要素数までの繰り返し処理全体の説明なのでしょうか?
      →そうですね、この問題では1行1行トレースしているわけではなく、
       for文全体の処理について説明しています。
      > 問題を解いた際、for文以降のif文からdelTarget1←iをループしてしまい、解けませんでした。
      > for文をしっかり理解していないことが原因なのでしょうか?
      →解く時にトレースしてみたということでしょうか?
       であれば、お話を聞く限りfor文への理解というより、
       まずは時間がかかってもいいから1行1行確実に
       トレースしていくことに注意するのが良いと思います。
      > 2点目は問10についてbyteと10000000の論理積をして判断したビット値を反転させて、一番「右」の桁に設定するのはなぜなのでしょうか?普通に考えて、ビットに数値を入れる際は右から入れるからなのでしょうか。(10進数なら1の位から数を入れるように。)
      →まず前提として、右から設定しなければいけないという決まりはないです。
       関数の目的であるビット反転が実現できれば右からでも左からでも問題ありません。
       その上でこの問題のプログラムで1番右の桁に設定している理由について、
       
        ・for文による繰り返し処理で8回繰り返し処理を行うことを考えた時に、
         各繰り返し処理では毎回同じ場所(桁)に対して処理することになる。
        ・ビット値の操作については、左シフト・右シフト・論理積・論理和がある。
         ※これは公式のサンプル問題に合わせています
       上記から、まず右の桁に値を設定して、それを左シフトすることを繰り返せば
       最終的に元の値をビット反転した値が得られるということで
       こういったプログラムにしています。
      以上、よろしくお願いします。

    • @user-ex5sd8xy6c
      @user-ex5sd8xy6c 6 месяцев назад

      @@itgakko ありがとうございます!1からトレースして、再度解き直したら、正解することができました。その際、他の選択肢が間違っている理由も理解することができました。
      本当にありがとうございます。今は応用編の動画を学習しており、ビット値操作の問題がこの動画で勉強したおかげで、スムーズに解くことができました!

    • @itgakko
      @itgakko  6 месяцев назад

      よかったです!

  • @user-hx9rd5bw9x
    @user-hx9rd5bw9x 9 месяцев назад +2

    問10について
    解説で①の作業をbyte=01010101∧1000000 と置いていますが、
    この01010101はどこから出てきた数字でしょうか

    • @itgakko
      @itgakko  9 месяцев назад +1

      質問ありがとうございます!
      01010101は一例です。

  • @yokosumakimotee5315
    @yokosumakimotee5315 Год назад +3

    問10についてです。
    resultByteの一番右の桁に設定する理由が分からなくて困っています。。。

    • @itgakko
      @itgakko  Год назад +2

      コメントありがとうございます。
      resultByte の一番右の桁に設定する理由は以下の通りです。
      前提として、この問題のプログラムでの繰り返し処理では、
       ・1回の処理では1桁分しか処理できない
        (変数byte、変数resultByte 両方ともに言える話)
       ・変数resultByteに 1 or 0 を設定する処理は毎回同じ桁
        (このプログラムでは一番右の桁)にしかできない
      このようなプログラムになっています。
      上記前提があるので、問題の解説の中で、
       「③ 繰り返し処理の次の回で1つ隣の桁を対象にするために、byte、resultByte をそれぞれ1つ左シフト。」
      このような処理をしていると説明しています。
      ここから本題です。
      今回このプログラムで実現したい処理は、
       「8ビットの2進数の全ビット反転」
      なので、例えば2進数 10000000 が関数の引数であれば、
      結果は 01111111 となりますよね。
      これをプログラムのfor文の1回目の繰り返しの部分に着目すると、
       ① 変数byte の 一番左の桁の値が「1」
       ② 変数resultByte の 一番右の桁に「0」を設定
       ③ 変数byte、変数resultByte をそれぞれ1つ論理左シフト
      となります。
      上記②で 変数resultByte に設定した「0」は、
      2回目〜8回目の繰り返し処理で、合計7回論理左シフトされます。
      こうすることで、最終的に「0」が一番左の桁に移動します。
      「resultByte の一番右の桁に設定する理由」としては、
      このような処理をしているから、ということになるのですが、
      回答になっていましたでしょうか?
      ご不明点などあればご連絡いただければと思います。

    • @user-og5gq8xc2k
      @user-og5gq8xc2k 11 месяцев назад

      @@itgakko私も同じところで躓いたのですが解説が上手すぎて理解できました!ありがとうございます

  • @user-qw9cd8xi4b
    @user-qw9cd8xi4b 7 месяцев назад +1

    問題10.11だけわからなくて悔しい、、頑張ります。

    • @itgakko
      @itgakko  7 месяцев назад

      勉強頑張ってください!

    • @user-qw9cd8xi4b
      @user-qw9cd8xi4b 7 месяцев назад

      難しい問題を解いて、またこの動画に戻ってきたら11解けるようになりました!成長!

    • @itgakko
      @itgakko  7 месяцев назад

      @user-qw9cd8xi4b 素晴らしいですね!

  • @berryjin9113
    @berryjin9113 Год назад +1

    さいとうさん、こんばんは。
    今日基本情報技術者試験を受験しました。
    午後試験がさいとうさんの動画のおかげで、点数が合格線を軽く超えました!
    動画がわかりやすいです。
    試験時、半分ぐらいの内容を間に合わなくても、安全線にたどりました。超luckyでした。😂
    ありがとうございました!
    超超超超超超感謝します!!!!

    • @itgakko
      @itgakko  Год назад

      合格おめでとうございます!
      わざわざ報告いただいて嬉しいです!ありがとうございます!

  • @keganin
    @keganin Год назад

    アルゴリズムこの動画のおかげで意外とすんなりできた!

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!

  • @oooden
    @oooden Год назад +4

    科目Bのセキュリティもこのような動画が見たいです!!!

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      セキュリティですね、動画化検討してみます。

  • @user-ic3ug1pu3d
    @user-ic3ug1pu3d Год назад

    わかりやすいです、ありがとうございます!

    • @itgakko
      @itgakko  Год назад

      ありがとうございます!!

  • @user-oo5qv9111o
    @user-oo5qv9111o Год назад +3

    i = 1. j = 1 出力0
    i = 2. j = 2 出力1
    i = 2. j = 3 出力0
    i = 3. j = 4 出力1
    i = 3. j = 5 出力0
    i = 4. j = 6 出力0
    出力結果:010100
    間違ってたら教えてください

    • @user-kn3jd9lf2f
      @user-kn3jd9lf2f 9 месяцев назад

      それ私も思いました!!
      どなたか教えてください!!

    • @itgakko
      @itgakko  9 месяцев назад

      返信ができておらず失礼しました。
      問13はお手数ですが概要欄で訂正を入れさせて頂いております。
      以下の「繰り返しを抜ける」が不足しておりました。
      こちらで正しい解答になりますのでお手数ですがご確認下さい。
      -----
       ■対象:問13.繰り返し文(応用)
        ・プログラムに以下1行が不足しておりました。
         お手数ですが以下の行を追加したものとして動画の視聴をお願いします。
         動画内で喋っている解説自体は合っております。
         ----------
          if (nowState と stateTransition[j][1] が等しい)
           if (input[i] と stateTransition[j][3] が等しい)
            stateTransition[j][4] の値を出力する
            nowState ← stateTransition[j][2]
            繰り返しを抜ける        ←←← この行が不足しておりました
           endif
          endif
         ----------
      ------

  • @HS-ij2no
    @HS-ij2no 5 месяцев назад +1

    43:14で、byteの01010101と10000000の論理積を見ていると思いますがbyteが01010101であるのはなぜですか?単純に例を挙げただけです?すみません、混乱しています🥲

    • @itgakko
      @itgakko  5 месяцев назад

      そうですね!
      あくまで1例ということです!

  • @commtv1320
    @commtv1320 Год назад

    大変助かります。ありがとうございます。

    • @itgakko
      @itgakko  Год назад +2

      コメントありがとうございます!
      勉強頑張って下さい!

  • @user-rx7nb8cp8z
    @user-rx7nb8cp8z Год назад +2

    自分用 続き41:16

  • @foolim1
    @foolim1 Год назад +2

    初心者向けとありましたが応用問題は結構難しかったですw状態遷移図のやつチンプンカンプンです

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      そうですね、状態遷移図の問題は少し難しめに設定しています!
      ご不明点ありましたら質問頂ければと思います。

  • @user-gh4in6bi8i
    @user-gh4in6bi8i Год назад +2

    大変興味深いかつ良い問題ありがとうございます。
    問10について質問させてください。
    トレースがうまくできなくて。。。
    i=7終了時点で
    byte 10000000
    resultbyte 11001010
    となりi=8終了時点で
    byte 00000000
    resultbyte 10010100
    となってしまいました。
    どこがおかしいかご教授頂けませんか。
    よろしくお願いします。
    ちなみにi=1終了時点では
    byte 01101010
    resultbyte 00000010となっています。

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      大変失礼いたしました。トレース頂いた内容はあっており、
      プログラムの記載に不備がありました。
      正しいプログラムでは以下のように
      resultByte を左シフトする前に returnする必要があります。
      お手数ですが読み替えてトレース頂ければと思います。
      ◼︎修正後
      [プログラム]
       ○8ビット型: invert(8ビット型: byte)
        8ビット型: resultByte ← 00000000
        整数型: i
        for (i を 1 から 8 まで 1 ずつ増やす)
         if ((byte ∧ 10000000) が 10000000 である)
          resultByte ← resultByte ∨ 00000000
         else
          resultByte ← 【a】
         endif
         if (i が 8 と等しい)
          return resultByte
         endif
         byte ← byte

    • @user-gh4in6bi8i
      @user-gh4in6bi8i Год назад

      @@itgakko
      丁寧にご回答いただきありがとうございました。
      とても納得できました。
      今後も動画で学習させていただきます。
      今後ともよろしくお願い致します。

    • @itgakko
      @itgakko  Год назад

      大変失礼しました。
      勉強頑張ってください!

  • @XLEGT
    @XLEGT Год назад +12

    ファーーーーーーーwwwwwwwwwwオリジナル問題助かるwwwwwwwwwwww

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!

  • @itgakko
    @itgakko  Год назад +7

    この動画で基礎力を付けたら応用問題にもチャレンジしてみてくださいね!
    応用問題はコチラ↓↓
    ruclips.net/video/9fU2HlAXTiM/видео.html

  • @western13able
    @western13able Год назад +2

    度々質問がございます
    問5配列(基本)の箇所です
    整数型iが3となっていますが何故でしょうか?
    i番目なのでどこも指定されていないと思います

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます!
      整数型の変数i の具体的な値は問題文中の以下記載で指定されています。
      -----
      関数printArrayData を printArrayData(3,{3,4,5,6})として呼び出すと ...
      -----
      上記の記載により、関数printArrayData 内で使用する変数i, data の値はそれぞれ以下になります。
       ・i = 3
       ・data = {3,4,5,6}
      以上、ご不明点ございましたらご連絡頂ければと思います。

    • @western13able
      @western13able Год назад

      @@itgakko ありがとうございます!

    • @itgakko
      @itgakko  Год назад +1

      勉強頑張ってください!

  • @user-sq8qo8uf5w
    @user-sq8qo8uf5w Год назад +1

    解説動画を作成してくださり、ありがとうございます。
    問11 について質問なのですが、
    プログラムから最小値を求めている動きが想像できません…。
    2行目で minNum←compareDate[1] となっておりますが、
    6行目でも minNum←compareDate[i] としていることから、
    i=2 の場合、最小値ではない3を minNum へ上書きしてしまうのではないのでしょうか?
    考え直し方やアドバイスをご教示いただけますと幸いです。

    • @itgakko
      @itgakko  Год назад +3

      質問ありがとうございます。回答しますね。
      おそらくご質問頂いているであろう、
      while文の繰り返し1回目の際のプログラムの動きについて以下に書きます。
      プログラムに対する補足を「//斜体 」で書きますね。
      ----------
      minNum ← compareData[1] _//compareData={4,3,1,5}なので、minNumには4が格納される_
      delTarget ← 1
      for ( i を 1から compareDataの要素数まで 1ずつ増やす) _//4回の繰り返し処理_
      if (compareData[i] が minNum より小さい) _//このif文が真となるのはi=2,i=3のケースのため、for文が終了した時、minNum=1,delTarget=3となる_
      minNum ← compareData[i]
      delTarget ← i
      endif
      endfor
      sortedData ← addElement(sortedData, minNum) _//sortedDataに1を追加_
      compareData ← delElement(compareData,delTarget) _//compareDataから要素の3番目を削除_
      ----------
      記載いただいている通り、
      i=2の時、最小値ではない 3 で minNum が上書きされますが、
      その後i=3の時、最小値である 1 で minNum が上書きされるので、
      for文による繰り返し処理が全て完了した時には、
      最小値である 1 が minNum に格納されるようになっています。
      上記のような処理をしていることから、
      動画内ではこの部分を「ソート前配列から最小値を探す」
      というように説明させて頂いております。
      以上、ご不明点あればご連絡頂ければと思います。

    • @user-gf7hq6qo6d
      @user-gf7hq6qo6d Год назад

      @@itgakko for文による繰り返しがあることで3ではなく、1が最終的に上書きされるのですね!
      全く同じところで苦戦していたのでとてもスッキリしました!

    • @itgakko
      @itgakko  Год назад

      @user-gf7hq6qo6d よかったです!!

  • @user-ul5jf9bw5n
    @user-ul5jf9bw5n Год назад

    問10番の処理に関して質問です。
    日本語的な質問になってしまうのですが、、
    for(iを1から8まで1ずつ増やす)
    上記は、8を含む表現でしょうか?
    繰り返し処理を7回まで実施し、iが8になるからループから抜けるのでしょうか?(i

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      こちらは8を含む表現です。
      1,2,3,4,5,6,7,8 の合計8回の繰り返し処理になります。

  • @user-ju7nw9sm9x
    @user-ju7nw9sm9x 8 месяцев назад

    お疲れ様です。問13について質問があります。
    for(jを1からstatetransitionの要素数まで1ずつ増やす)
    IF(nowstateとstateTransition(j)(1)が等しい
    とあった際に、対象となる要素は、(j=1)(1)の値である1だけではなく(J=2)(1)の要素まで見るのかがわかりませんでした。
    もしよろしければ理由を教えていただけないでしょうか?

    • @itgakko
      @itgakko  8 месяцев назад +1

      質問ありがとうございます!
      まず、質問内容について確認させて下さい。
      -----
      1. for ( i を 1 から 3 まで 1ずつ増やす )
      2.  for ( j を 1 から 2 まで 1ずつ増やす)
      3.   i + j の値を出力する
      4.  endfor
      5. endfor
      -----
      頂いた内容は、上記のようにfor文が二重構造になっていた場合、
      その中の処理順は以下のようになる理由ということでしょうか?
      ・i=1の時/j=1の時:1+1 = 2 を出力
      ・i=1の時/j=2の時:1+2 = 3 を出力
      ・i=2の時/j=1の時:2+1 = 3 を出力
      ・i=2の時/j=2の時:2+2 = 4 を出力
      ・i=3の時/j=1の時:3+1 = 4 を出力
      ・i=3の時/j=2の時:3+2 = 5 を出力
      そうであれば以下にその理由を回答します。
      1行目にfor文があり、その中に2行目のfor文が存在します。
      まず1行目のfor文が先に実行されます。
      1行目のfor文はi=1〜3の3回の繰り返し処理です。
      その繰り返し1、2、3回目それぞれで2行目のfor文が実行されます。
      2行目のfor文はj=1〜2の2回の繰り返し処理です。
      その繰り返し1、2回目それぞれで3行目の「i + j の値を出力する」が実行されます。
      これをまとめると以下のイメージです。
      ・1行目のfor文の1回目(i=1)が実行される。
        └2行目のfor文の1回目(j=1)が実行される。
          └「i + j の値を出力する」が実行される。
        └2行目のfor文の2回目(j=2)が実行される。
          └「i + j の値を出力する」が実行される。
      ・1行目のfor文の3回目(i=2)が実行される。
        └2行目のfor文の1回目(j=1)が実行される。
          └「i + j の値を出力する」が実行される。
        └2行目のfor文の2回目(j=2)が実行される。
          └「i + j の値を出力する」が実行される。
      ・1行目のfor文の3回目(i=3)が実行される。
        └2行目のfor文の1回目(j=1)が実行される。
          └「i + j の値を出力する」が実行される。
        └2行目のfor文の2回目(j=2)が実行される。
          └「i + j の値を出力する」が実行される。
      for文が二重構造になっている場合は上記のような処理順になります。
      問い合わせ内容が異なる場合、
      もう少し詳細に教えていただけると幸いです。

  • @dai370
    @dai370 Год назад

    とてもためになります!初学者なのですが、問9について質問があります。
    average←sum÷dataなのでaverageが実数型でないといけないのは分かるのですが、
    getAverageも実数型にならなければいけないのでしょうか?

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます。
      27:15 から説明している関数の定義方法をご確認いただけると分かりやすいと思います。
      呼び出し元に返す値の型も実数型にしておかないと、
      せっかく関数内で平均値を計算しても
      呼び出し元に間違った値が返されてしまう可能性があります。
      関数から呼び出し元のプログラムへ返される値が
      実数型なのであれば、関数名の左の型定義部分も
      実数型にしておく必要があります。
      以上、ご不明点あればご連絡頂ければと思います。

  • @user-jp8jk6um1t
    @user-jp8jk6um1t Год назад +2

    問14最後のreturnでなぜgetsumの値だけが戻り値となるのですか?

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます!
      すみません、もう少し具体的に不明点を教えて頂けますでしょうか?
      問14は関数getSumだけで4回呼び出されていることもあり、ご質問頂いている内容が理解できませんでした。
      可能であれば、逆にどうあるべきだと思うかもあわせて教えていただけると助かります。
      関数getSumの値以外に戻り値となる可能性のあるものということです。
      以上、お手数ですがよろしくお願いします。

  • @sk-mq2no
    @sk-mq2no Год назад

    動画ありがとうございます。
    凄くわかりやすくて助かります。
    質問ですが、問13で、for文でjを要素数まで1ずつ増やす処理の目的がわかりません。
    Inputの要素数の繰り返し処理だけでは、駄目なのでしょうか?
    宜しくお願い致します。

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます。
      問13のプログラムの 2つ目の for文 がなぜ必要かということですが、
      結論から言うと必要で、1つ目の for文(配列inputの要素数分の繰り返し処理)だけでは実現が難しいです。
      2つ目の for文で行っている処理は以下の通りです。
      ----------
      ①   if (nowState と stateTransition[j][1] が等しい)
      ②    if (input[i] と stateTransition[j][3] が等しい)
      ③     stateTransition[j][4] の値を出力する
      ④     nowState ← stateTransition[j][2]
           endif
          endif
      ----------
      ①〜④の行でやっている内容を日本語に直すとそれぞれ以下の通りになります。
       ① 現在いる状態と、状態遷移図を表す配列stateTransitionのうち、
        「矢印の始点」と一致するものを探す。
       ② 入力(input[i])と、状態遷移図を表す配列stateTransitionのうち、
        「入力」と一致するものを探す。
       ③ ①②が両方一致する配列stateTransitionの要素から、
        「出力」の値を出力する
       ④ ①②が両方一致する配列stateTransitionの要素から、
        「矢印の終点」の値を「現在いる状態」に設定する
      特に①②の部分は「配列の中の全要素から合致するものを探す」
      と言う処理なので、繰り返し処理を用いて配列の値を1つ1つ参照し、
      if文で値が合致するかをチェックする、と言う処理が必要になります。
      一応 整数型配列の配列stateTransition の値が常に同じ前提なら、
      プログラムの 2つ目の for文 を使用しなくても同様の処理を
      実現できることはできますが、行数が無駄に増えてしまいますし、
      そうだったとしても for文 があった方がベターです。
      以上となります。ご不明点あればご連絡頂ければと思います。

  • @user-fb7ci3qz7g
    @user-fb7ci3qz7g Год назад +1

    なるほど。「2の倍数かつ4の倍数ではない」は「2の倍数かつ4の倍数である」

  • @yamadaiyokoB
    @yamadaiyokoB Год назад +1

    数学的な考え方が抜けなくてi=i+1ん?ってなったのは良い思い出

    • @itgakko
      @itgakko  Год назад +1

      初めてプログラミングする時に違和感を感じるところですよね!

  • @motosuu
    @motosuu Месяц назад

    問5で(3{3.4.5.6})で最初の(3の部分は何を示しているんでしょうか?整数型の値でしょうか?
    またi=3というのがよくわからないのですが、dataの配列の最初の[1]が3だから3なんでしょうか?

    • @itgakko
      @itgakko  Месяц назад +1

      質問ありがとうございます!
      前提を説明した方が理解しやすいので、
      順を追って説明しますね。
      まず細かいですが、ご質問いただいている問5の該当部分は (3,{3,4,5,6}) です。
      この問題のprintArrayDataのような関数に対して、
      printArrayData(3,{3,4,5,6})のように()内に具体的な値をつけて記述することで、
      関数内で使用する値を指定した状態で関数を実行することができます。
      また、上記で指定する具体的な値は
      関数の定義(以下)に記載してある順番と対応します。
      -----
      ○文字列型: printArrayData(整数型: i, 整数型の配列: data)
      -----
      関数の定義上、()内の 1番目が「i」、2番目が「data」になっていますよね。
      このように定義してある関数に対して、
      先ほどのようにprintArrayData(3,{3,4,5,6})と指定すると、
       ・3 → 関数定義の「i」に対応
       ・{3,4,5,6} → 関数定義の「data」に対応
      このようになるので、問題文の例で関数を実行した場合、
      i の値は「3」になります。
      【質問に対する回答まとめ】
      ・(3,{3,4,5,6})の「3」は整数型の値を表しています。
      ・i=3なのは、printArrayData(3,{3,4,5,6})のように()内の1番目の値が「3」だから
      今回お話しした関数について、
      詳しくは「問7.関数呼び出し①」で解説しているので
      よろしければそちらをご確認ください。

  • @user-iz2md3uu8j
    @user-iz2md3uu8j 3 месяца назад

    お恥ずかしい質問なのですが、問10がほぼ理解できない場合なにを勉強したらよいですか?失礼な質問でしたらすみません。
    あと、
    for (i を 1 から 8 まで 1 ずつ増やす)
           if ((byte ∧ 10000000) が 10000000 である)
            resultByte ← resultByte ∨ 00000000
           else
            resultByte ← 【a】
           endif
           if (i が 8 と等しい)
            return resultByte
           endif
           byte ← byte << 1
           resultByte ← resultByte << 1
          end for
    2行目の最初のbyteには、何の値が入っていますでしょうか?汗
    度々、すみません。最終的にreturn resultByteの値は10000000になるのでしょうか?

    • @itgakko
      @itgakko  3 месяца назад +1

      質問ありがとうございます!
      それぞれ回答しますね!
      > 問10がほぼ理解できない場合なにを勉強したらよいですか?失礼な質問でしたらすみません。
       →問10のようなビット値の操作の問題については他の問題と少し異なり、
        例外的にまずは科目Aの勉強をするのがおすすめです。
        ビット値の操作は前提として 2進数 に関する理解が求められる場合が多いです。
        科目Aの「基礎理論」という分野でまずは 2進数 を学習するのがおすすめです。
        その後に、科目Bアルゴリズムの問題を解くのが良いです。
      > 2行目の最初のbyteには、何の値が入っていますでしょうか?
       →ご質問の内容は、関数invertを呼び出す際の引数の値によって変わります。
        問題文に記載してある例のように、invert(00110101)と呼び出した場合であれば、
        関数上の 変数byte には 00110101 という値が入ります。
      > 最終的にreturn resultByteの値は10000000になるのでしょうか?
       →これも関数invertを呼び出す際の引数の値によって変わります。
        問題文に記載してある例のように、invert(00110101)と呼び出した場合であれば、
        最終的に resultByte の値は 00110101 をビット反転した 11001010 になります。

    • @user-iz2md3uu8j
      @user-iz2md3uu8j 3 месяца назад

      @@itgakko ご返信ありがとうございます!
      一つ一つ実行していこうと思います。
      ご丁寧に解答いただき感謝いたします!

    • @itgakko
      @itgakko  3 месяца назад +1

      勉強頑張ってください!

    • @user-iz2md3uu8j
      @user-iz2md3uu8j 3 месяца назад

      @@itgakko ありがとうざいます!

  • @nhanpham3262
    @nhanpham3262 Год назад

    いつ動画で勉強させていただき、ありがとうございます。
    今後、初心者むけオブジェクトの動画を作成する予定がありますか?

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます!
      頂いたのは「オブジェクト指向」の講座のことでしょうか?
      構想としてはありますが、現時点で具体的な予定はありません。

  • @TYAMA-uf8sn
    @TYAMA-uf8sn 7 месяцев назад

    大変分かりやすい動画ありがとうございます。
    お手数をおかけしますが、2点ご質問させてください。
    <質問①>
    問11の設問のプログラム2行目に
    「整数型:i,delTarget minNum」
    とありますが、これは、
    「整数型:i,delTerget,minNum」(delTargetとminNumの間に「,」を追加)
    ではないのでしょうか。
    最初にプログラムを見た時は、「delTerget minNum」という1つの変数かと思いましたが、
    以下のブログラム中でもdelTergetとminNumはそれぞれ独立して使用されて混乱しました。
    それとも、そもそも問題文の通り「整数型:i,delTarget minNum」記載されていても、それぞれ独立した変数として読み取るべきなのでしょうか。
    <質問②>
    問13の問題文2行目
    「帯域変数」は「大域変数」が正しいということでよろしいのでしょうか。
    お手数ですが、ご回答の程、何卒よろしくお願いします。

    • @itgakko
      @itgakko  7 месяцев назад +1

      質問ありがとうございます!
      それぞれ回答しますね。
      【質問①の回答】
      →すみません、誤値です。
       正しくは「整数型:i,delTerget,minNum」になります。
      【質問②の回答】
      →すみません、誤値です。
       正しくは「大域変数」になります。
      以上、お手数おかけしますが
      読み替えて進めていただけますでしょうか。

    • @TYAMA-uf8sn
      @TYAMA-uf8sn 7 месяцев назад

      @@itgakko
      早々にご回答いただき、誠にありがとうございました。
      科目Bについては複数の書籍を読んでも納得できずに読み進めれませんでしたが、
      さいとう先生の動画で何とか少しずつ理解できるようになってきました。
      動画作成、ありがとうございます。合格できるように頑張ります!

    • @itgakko
      @itgakko  7 месяцев назад +1

      勉強頑張って下さい!

  • @user-eo7vp6mx5o
    @user-eo7vp6mx5o 7 месяцев назад

    間がない話し方で脳が理解に追いついていけず聞き取りにくいです🥲

    • @itgakko
      @itgakko  7 месяцев назад

      ご意見ありがとうございます!
      改善しますね!

  • @buru398
    @buru398 Год назад +1

    17:38 問5ってdata[3]が出力されるから、出力されるのは6じゃね?
    配列はdata[0]からだから3+1番目の6になると思うんやけど
    さらに、if内の「data[i]の値を出力する」だとi=4の時data[4]は存在しないからエラーになると思うんだけど、私の勘違いかな
    この問題の言語たぶんCだよね?

    • @itgakko
      @itgakko  Год назад +2

      質問ありがとうございます。
      この問題は基本情報技術者試験の科目Bアルゴリズムで用いられる擬似言語と同じで配列の要素番号は1から始まることを前提にしております。
      動画内での説明が不足しておりすみません。

    • @buru398
      @buru398 Год назад

      @@itgakko
      なるほど!!むしろそれ知らないと本番絶対間違えてたな・・・
      教えてくれてサンクス!

    • @itgakko
      @itgakko  Год назад

      基本情報技術者試験頑張ってください!

  • @user-kh7jr7rp5d
    @user-kh7jr7rp5d 8 месяцев назад +1

    1〜9 ○
    10〜 △

  • @Lizm0414
    @Lizm0414 10 месяцев назад

    先生!問題の解答に関する質問とは違いますが質問があります!
    問11なんですが、このプログラムを最後までトレースしてみましたが結果が出るまでのプロセスに自信がありません。
    上から1行ずつトレースしていって、minNumが4→3→1と変わっていきcompareData[4]=5になったとき、minNum=1でif文が不成立でそのままfor文終了で下の関数(add/delElement)に入りますよね?(すでにちょっと自信ない😒)
    Elementの関数を回して、1→3→4と数字をsortedに送っていき、compareから消して行きます。
    まだcompare内に5(要素番号1)が1つ残ってるのでwhile文の『compareDataの要素数が0より多い』が真なので、また1行目から当て嵌めていくとminNum=5、delTarget=1。for文はすでにi=4まで回してるで飛ばして、下のadd/delElementの関数へ。そこで最後の5がsortedの末尾に行って、compareからラスト1つ1番目の5が削除される。
    こんな流れになると思うんですが、これ…ちゃんとトレースできてますでしょうか?😅
    なーんか、結果だけたまたま合ってるだけでプロセスが違うんじゃないかと自信がないんです💦

    • @itgakko
      @itgakko  10 месяцев назад

      質問ありがとうございます!1つ1つ回答しますね。
      > 上から1行ずつトレースしていって、minNumが4→3→1と変わっていきcompareData[4]=5になったとき、minNum=1でif文が不成立でそのままfor文終了で下の関数(add/delElement)に入りますよね?(すでにちょっと自信ない😒)
       → これは合ってます。
      > Elementの関数を回して、1→3→4と数字をsortedに送っていき、compareから消して行きます。
       → おそらく合っていると思うのですが「Elementの関数を回して」はどういう意味でしょうか?
         合っているかどうかはここの意味次第です。
      > まだcompare内に5(要素番号1)が1つ残ってるのでwhile文の『compareDataの要素数が0より多い』が真なので、また1行目から当て嵌めていくとminNum=5、delTarget=1。for文はすでにi=4まで回してるで飛ばして、下のadd/delElementの関数へ。そこで最後の5がsortedの末尾に行って、compareからラスト1つ1番目の5が削除される。
       → 一部違います。関数の処理が進んで compareDate = {5} になった時の while文内の処理を順に説明しますね。
      -----
      minNum ← compareData[1] _// minNumに5が格納される_
      delTarget ← 1 _// delTargetに1が格納される_
      for ( i を 1から compareDataの要素数まで 1ずつ増やす) _// compareDataの要素数=1なので、中の処理を1回だけ行う_
       if (compareData[i] が minNum より小さい) _// compareDate=5,minNum=5なのでif文の中は実行されない_
        minNum ← compareData[i]
        delTarget ← i
       endif
      endfor
      sortedData ← addElement(sortedData, minNum) _// sortedDataに5を追加し、sortedData={1,3,4,5}になる。_
      compareData ← delElement(compareData,delTarget) _// compareDataから5を削除し、compareData={}になる_
      _// この時点でcompareDataの要素数が0になるため、while文による繰り返し処理を終了する。_
      -----
      以上、ご不明点ございましたらご連絡いただければと思います。

    • @Lizm0414
      @Lizm0414 10 месяцев назад

      うわぁー😲ありがとうございます✨✨✨
      『関数を回す』という謎オリジナルな言い回しで混乱させてしまいすいませんでした。
      i=4のときcompareData4番(=5)とdelTarget=1でfor文が偽で下の段の関数に行きますよね😊
      そのときi=1〜3までのminNumとdelTargetの数値を、i=3の結果から遡りながらadd/delElementに入れていけば良いのかなと解釈していますが、いかがでしょうか?👀
      5が1つだけになってからも再度for文に行ってるんですね!
      何かもうi=4まで行って手詰まりになって、プログラム最初からになったんでfor文は使えないのかと思ってました。(考えてみたらそんなルールはない😂)
      結果的に条件が偽になるからあってないような感じになってますが、これを知ってるのと知らないのとでは、理解に大きな差が出ますね😮
      とても丁寧な解説をして頂いて助かります✨
      いつもありがとうございます😇

    • @itgakko
      @itgakko  10 месяцев назад

      補足ありがとうございます!
      > i=4のときcompareData4番(=5)とdelTarget=1でfor文が偽で下の段の関数に行きますよね😊
      > そのときi=1〜3までのminNumとdelTargetの数値を、i=3の結果から遡りながらadd/delElementに入れていけば良いのかなと解釈していますが、いかがでしょうか?👀
      → 前半はあってますが、おそらく後半が違います。
        while文の繰り返し1回目の処理の一部をトレースした結果を以下に記述しますので、
        内容確認してみていただけますか?
      -----
      (前略)
       endif
      endfor
      _// この時点で minNum=1, delTarget=3 です_
      sortedData ← addElement(sortedData, minNum) _// sortedDataに1を追加し、sortedData={1}になる。_
      compareData ← delElement(compareData,delTarget) // compareDataから1を削除し、compareData={4,3,5}になる_
      _// 次の繰り返しに進む(while文の先頭から実行する)_
      -----

    • @Lizm0414
      @Lizm0414 10 месяцев назад

      ようやく完全に理解しましたー💡
      毎回compareData =5になってはfor文が偽になり、下段の関数に移り、
      そのときの最新のminNumとdelTargetを処理してはwhile文の最初に戻ってたんですね✨
      ありがとうございます🥳奥が深い!!

    • @itgakko
      @itgakko  10 месяцев назад

      @@Lizm0414 よかったです!

  • @吉原瑞樹
    @吉原瑞樹 Месяц назад

    質問です、問13でi=2,j=2の時に出力1までは理解できてnowstateが2になるのはわかりました。ただそのあとにi=2.j=3、4,5,6は繰り返し処理しないのはなぜですか?i=1~4,j=1~6を実行しなければと思うのですが、各iで出力が一回あればjの残りをすっ飛ばして次のiに行くのはなぜですか?

    • @itgakko
      @itgakko  Месяц назад

      質問ありがとうございます!
      問13は本動画の概要欄で訂正させていただいていますので、お手数ですが訂正内容をご確認ください。
      以下、概要欄に記載してある内容を転記しておきます。
      -----
       ■対象:問13.繰り返し文(応用)
        ・プログラムに以下1行が不足しておりました。
         お手数ですが以下の行を追加したものとして動画の視聴をお願いします。
         動画内で喋っている解説自体は合っております。
         ----------
          if (nowState と stateTransition[j][1] が等しい)
           if (input[i] と stateTransition[j][3] が等しい)
            stateTransition[j][4] の値を出力する
            nowState ← stateTransition[j][2]
            繰り返しを抜ける        ←←← この行が不足しておりました
           endif
          endif
         ----------

    • @吉原瑞樹
      @吉原瑞樹 Месяц назад

      @@itgakko ご丁寧にありがとうございます。私が見落としていただけでした、失礼しました。無事問13解けました!

    • @itgakko
      @itgakko  Месяц назад

      @@吉原瑞樹 よかったです!勉強頑張ってください!

  • @kaguya_0101
    @kaguya_0101 9 месяцев назад

    いつも勉強させていただいております。問13のfor文についてですが
    この場合i=1;j=1の次はi=2;j=2。
    またその次はi=3;j=3と順に同じ数だけ増えていくのでしょうか?

    • @itgakko
      @itgakko  9 месяцев назад +1

      質問ありがとうございます!
      問13のfor文の実行順に関するご質問とお見受けします。
      for文の実行順は以下の通りになります。
       ・i = 1, j = 1
       ・i = 1, j = 2
       ・i = 1, j = 3
       ・i = 1, j = 4
       ・i = 1, j = 5
       ・i = 1, j = 6
       ・i = 2, j = 1
       ・i = 2, j = 2
         ・
         ・
         ・
       (以下省略)
      以上、ご不明点ございましたらご連絡いただければと思います。

    • @kaguya_0101
      @kaguya_0101 9 месяцев назад

      ​@@itgakko 様
      お返事ありがとうございます😊
      for文の実行手順がよく分かりました。
      ここでまた1つ疑問が生じたので質問させていただきたいです。
      問13についてこちらの動画の概要欄を確認したところ
      nowState ← stateTransition[j][2]
            繰り返しを抜ける      ←←← この行が不足しておりました
      この文言に疑問が生じました。
      コメント欄でみなさん指摘されていますがi=2;j=3;のときif文を通過し
      「出力する」という処理が実行されるはずですが
      この「繰り返しを抜ける」という処理が追加されることで
      i=2;j=2で「1」を出力したあとはi=2;j=3を判定するのではなく
      i=2の繰り返しを抜けi=3から判定を続けるという理解でよろしいでしょうか?

    • @itgakko
      @itgakko  9 месяцев назад +1

      追加のご質問について、ご認識いただいている通りの動きです!
      おそらく合っていると思いますが、念の為以下補足させて頂きます。
      正確に言うと「繰り返しを抜ける」が実行されることで、
      以下の j から始まる for文がその時点で終了します。
      -----
      for ( j を 1 から stateTransitionの要素数 まで 1ずつ増やす)
      -----
      上記for文が終了すると、その後すぐに i から始まるfor文の方もi=2の時の処理が終了するので、
      プログラムの動きとしては「繰り返しを抜ける」が実行された直後 i=3から判定が続いていきます。
      以上、ご不明点ございましたらご連絡いただければと思います。

  • @user-ie7gb2tb7d
    @user-ie7gb2tb7d Год назад

    文系、非IT、プログラミング未経験者でしたが昨日無事合格できました😂
    科目A、Bともに貴重な動画をありがとうございました!!

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます!
      素晴らしいですね!合格おめでとうございます!

  • @ST...6735B
    @ST...6735B 11 месяцев назад

    質問なのですが問13でState Trantision[j][4]出力した後はfor文で次はjを2にして繰り返すのではなくiを2にするんですか?

    • @itgakko
      @itgakko  11 месяцев назад +1

      質問ありがとうございます!
      すみません、お手数ですが問13については動画投稿後に概要欄にて訂正を入れさせて頂いております。
      以下に概要欄で訂正させて頂いている内容を以下にも記載しておきますので、ご確認の程よろしくお願いします。ご覧いただければ解決すると思います。
      -----
       ■対象:問13.繰り返し文(応用)
        ・プログラムに以下1行が不足しておりました。
         お手数ですが以下の行を追加したものとして動画の視聴をお願いします。
         動画内で喋っている解説自体は合っております。
         ----------
          if (nowState と stateTransition[j][1] が等しい)
           if (input[i] と stateTransition[j][3] が等しい)
            stateTransition[j][4] の値を出力する
            nowState ← stateTransition[j][2]
            繰り返しを抜ける        ←←← この行が不足しておりました
           endif
          endif
         ----------
      -----

  • @user-qy9er1cd6c
    @user-qy9er1cd6c 10 месяцев назад

    問8で質問です。
    関数calc=関数calccombinationということですか?
    関数calcが組み合わせの数xCyを返すから、return【a】のaにxCyの式を入れているのでしょうか。

    • @itgakko
      @itgakko  10 месяцев назад +1

      質問ありがとうございます!それぞれ回答しますね。
      > 関数calc=関数calccombinationということですか?
      → そうです。誤植失礼しました。
      関数calcが組み合わせの数xCyを返すから、return【a】のaにxCyの式を入れているのでしょうか。
      → そうです。

    • @user-qy9er1cd6c
      @user-qy9er1cd6c 10 месяцев назад

      ありがとうございます!勉強頑張ります💪

    • @itgakko
      @itgakko  10 месяцев назад +1

      頑張って下さい!

  • @book9964
    @book9964 Год назад +1

    29:55

  • @user-ex1ex3nn7g
    @user-ex1ex3nn7g Год назад +1

    すみません、問6のi=2,j=1がなぜか分かりませんでした。教えていただけますと幸いです。

    • @itgakko
      @itgakko  Год назад +1

      ご質問ありがとうございます。
      頂いた質問ですが、なぜi=2,j=1になるのか分からないということでしょうか?
      それともi=2,j=1でなぜこの答えになるのかが分からないということでしょうか?
      お手数ですが具体的に分からなかった箇所を教えて頂けますでしょうか。

  • @user-ng3wf8yj5u
    @user-ng3wf8yj5u 7 месяцев назад

    問13について質問があります。
    何度解きなおしても3つ目の出力が010のイになります。
    3つ目の出力はなぜ1になり、アが答えになるのでしょうか?

    • @itgakko
      @itgakko  7 месяцев назад

      質問ありがとうございます!
      すみません、問13のについては動画概要欄で訂正を入れさせて頂いております。
      概要欄に記載の内容を以下に記載しますのでこちらご確認いただけますでしょうか。
      -----
       ■対象:問13.繰り返し文(応用)
        ・プログラムに以下1行が不足しておりました。
         お手数ですが以下の行を追加したものとして動画の視聴をお願いします。
         動画内で喋っている解説自体は合っております。
         ----------
          if (nowState と stateTransition[j][1] が等しい)
           if (input[i] と stateTransition[j][3] が等しい)
            stateTransition[j][4] の値を出力する
            nowState ← stateTransition[j][2]
            繰り返しを抜ける        ←←← この行が不足しておりました
           endif
          endif
         ----------
      -----
      こちらをご確認いただければ、頂いた質問が解決すると思います。

    • @user-ng3wf8yj5u
      @user-ng3wf8yj5u 7 месяцев назад

      ご回答ありがとうございます!
      概要欄の記載を見落としていました💦
      無事アが答えになり、理解できました。次の日曜日に先月のリベンジを果たしに再受験致します。
      ありがとうございます!

    • @itgakko
      @itgakko  7 месяцев назад

      リベンジ頑張って下さい!

  • @user-th4ge1us6w
    @user-th4ge1us6w 9 месяцев назад

    問10のビット値の操作は、反転操作の処理手順を覚えた方が良いですか?

    • @user-th4ge1us6w
      @user-th4ge1us6w 9 месяцев назад

      トレースで対応しても厳しいように感じました。

    • @itgakko
      @itgakko  9 месяцев назад +1

      質問ありがとうございます!
      処理手順を覚えるのはお勧めできません。
      理由は「ビット反転の操作」のプログラム1つをとっても、実現方法は1つではなく、覚えた形のまま出るとは限らないためです。
      おっしゃられている「トレースしても厳しい」とは具体的にどのような状態でしょうか?
      具体例を作って、選択肢1つ1つトレースしていけば時間はかかるかもしれませんが多くの問題が解けると思います。
      最初は時間がかかるかもしれませんが、様々な問題で練習を積めばトレースも早くなり、プログラム穴埋めの勘所もついてきます。

  • @western13able
    @western13able Год назад +1

    質問があります
    24:25で整数型iが2,整数型jが1と解説されていますがなぜですか?

    • @itgakko
      @itgakko  Год назад +1

      質問ありがとうございます!
      問題文中で i=2、j=1 として関数が呼び出されているからです。
      -----
      関数printDualArrayData を printDualArrayData(2, 1, {{3,2}, {3,4}, {1,7}, {5,5}}) として呼び出すと...
      -----
      問題文中にこのように関数をどのような引数で呼び出すかが記載されています。
      この関数の引数の1つ目が i 、2つ目が j に該当しますので、i=2、j=1 になります。

    • @western13able
      @western13able Год назад

      @@itgakko ありがとうございます!再度確認します!

    • @itgakko
      @itgakko  Год назад +1

      またご不明点あればご質問ください!

  • @march9529
    @march9529 Год назад

    科目Bの予想問題では時々長文の問題(循環小数や2進数の加算のプログラム)が出てくるのですが、そのような時にはどのようにして解くのが良いのでしょうか?

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      解答方針はこの動画で解説しているものと変える必要はないと思います。
       ・プログラムの穴埋め形式の問題であれば文章とプログラムをリンクさせる、
       ・プログラムの実行結果を問う問題では1行1行トレースする。
      記載頂いている2進数や循環小数の問題であれば、
      プログラムを全て見なくても2進数や循環小数の知識だけで答えが出るケースもありますが、
      他の問題を解く際の再現性に欠けるので、
      こんなケースで解けたらラッキーくらいに思うのがお勧めです。
      問題を解く上で個別にわからない箇所があるようであれば記載頂ければ
      アドバイスはできると思います。

    • @march9529
      @march9529 Год назад

      ご回答ありがとうございます!
      色々な種類の問題を解いて慣れていこうかなと思います。

  • @user-vw2xs8ic9q
    @user-vw2xs8ic9q 10 месяцев назад

    科目bはサンプル問題さえ解ければ合格点取れるのでしょうか?

    • @itgakko
      @itgakko  10 месяцев назад

      質問ありがとうございます!
      結論、分からないですね。
      しかし個人的な感覚で言えば、公式が出しているサンプル問題や過去問を全て「素早く」かつ「内容を理解」した上で解けているのであれば、科目B合格点は到達できると思います。

  • @Area-vs5qs
    @Area-vs5qs 4 месяца назад

    再帰呼び出しで単純にgetSum(引数)としないのはなぜでしょうか?

    • @itgakko
      @itgakko  4 месяца назад

      質問ありがとうございます!
      質問内容は、問14について回答が「(イ) num」でない理由ということでよろしいでしょうか?
      その前提で回答しますね。
      関数内の1番下の行を
      -----
      return num + getSum(num)
      -----
      このようにした場合、プログラムの処理が一生終わらない(無限ループ)になってしまいます。
      例えばgetSum(3)として呼び出した場合、
      ・呼び出した関数内でgetSum(3)が呼び出される
      ・さらに呼び出した関数内で呼び出した関数内でgetSum(3)が呼び出される
      ...
      これが無限に繰り返されてしまいプログラムが終わらなくなってしまいます。

  • @user-rl3gi1zr2q
    @user-rl3gi1zr2q Год назад +3

    科目Bの効率的な勉強法があったらお聞きしたいです。よろしくお願いいたします。7月末に受験したら科目Bは400点でした。した。

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます!
      アルゴリズムについては、擬似言語の文法が理解できていないのであれば、まず覚えて下さい。本動画で説明した内容が理解できるレベルになればOKです。
      文法が理解できたら、あとは「問題演習→解説確認して理解」の繰り返しです。解説はただその問題の解答を理解するのでなく、解き方・考え方を理解して類似問題になるべく対応できるようにするのが良いです。
      あとこれは全ての方にお勧めはできないのですが、どうせ後でプログラミング学習する予定があるのであれば、実際にアルゴリズムの問題をプログラミングしてみるのもお勧めです。実際にプログラミングすることでアルゴリズムの勘所が理解できますし、プログラムを動かして見ることで処理の流れについても理解を深めることができます。
      セキュリティについても同様で、基本的な問題の解き方が理解できれば、「問題演習→解説確認して理解」の繰り返しが一番効果的だと思います。解き方は以下の動画で詳しく解説しているのでご確認いただければと思います。
      ✅【最短最速】科目B公式問題|基本情報技術者試験(2023年新方式対応)
      ruclips.net/video/rVAqR-jgd_Y/видео.html
      ✅【最速】科目B公式過去問を徹底解説(基本情報技術者試験)
      ruclips.net/video/0kvNR4HbMm4/видео.html

  • @user-og5gq8xc2k
    @user-og5gq8xc2k 11 месяцев назад

    めちゃくちゃ初歩的で申し訳ないのですが、 43:34 の①でbyteが01010101になっているのは例として出しているだけですよね..?🙇🏻‍♀️

    • @itgakko
      @itgakko  11 месяцев назад +1

      質問ありがとうございます!
      そうですね!あくまで例です。

    • @user-og5gq8xc2k
      @user-og5gq8xc2k 11 месяцев назад

      @@itgakkoありがとうございます!!

    • @itgakko
      @itgakko  11 месяцев назад +1

      勉強頑張って下さい!

  • @user-ut5jw4gk2h
    @user-ut5jw4gk2h Год назад +1

    あああ問13だけ難しくてわからねえええ
    受かる気がしねぇ

    • @itgakko
      @itgakko  Год назад

      一見複雑な問題でも1行1行トレースすることでやることはシンプルになります。
      是非あきらめずにトライしてみてください!
      不明な箇所を教えて頂ければコメントで解説しますのでお知らせください。

  • @user-tt7uk9gr9l
    @user-tt7uk9gr9l 6 месяцев назад

    問13難しすぎて笑ってしまうw
    基本情報ってこんなに難しいのか・・・。

    • @itgakko
      @itgakko  6 месяцев назад

      勉強頑張ってください!

  • @user-uf9bm4kf3h
    @user-uf9bm4kf3h 7 месяцев назад

    問10について質問です。
    i=1というのは、
    01010101の場合
    12345678
    と一番左から順番に名前を付けていてそれぞれ論理積して確認しているということでしょうか。
    見当違いなことを聞いていましたらすみません。

    • @itgakko
      @itgakko  7 месяцев назад

      すみません!
      ご質問の内容が理解できませんでした。
      お手数ですがもう少し詳細に教えていただけますか?

    • @user-uf9bm4kf3h
      @user-uf9bm4kf3h 7 месяцев назад

      for(iを1~8まで1ずつ増やす)とありますが、
      i=1、i=2、i=3は、どのような状況のことを表現しているのでしょうか。
      i=1からトレースをして考えたいのですが、i=1が何を表しているのかわからない状況です。@@itgakko

    • @itgakko
      @itgakko  7 месяцев назад

      そういうことですね!
      動画内 43:03 あたりから説明しているページの内容が
      関数invert(01010101)として呼び出した場合のi=1の場合の処理になっていますので、
      こちらを参考にi=2以降もトレースしてみてください。

    • @user-uf9bm4kf3h
      @user-uf9bm4kf3h 7 месяцев назад

      i=1は、1ビット左シフト
      i=2は、2ビット左シフト
      ということでしょうか。
      @@itgakko

    • @itgakko
      @itgakko  7 месяцев назад

      ​@@user-uf9bm4kf3h
      おっしゃっている内容だけではあっているともあってないとも言えません。
      動画内で説明している具体例において、
      変数byteの値は、関数が呼び出されてから
      i=1〜i=3にかけて以下のように変化していきます。
      ・関数が呼び出されたタイミング
       byte=01010101
      ・i=1の時のfor文内の処理が実行された後
       byte=10101010
       ※「01010101」を1ビット左シフト
      ・i=2の時のfor文内の処理が実行された後
       byte=01010100
       ※「10101010」を1ビット左シフト
      ・i=3の時のfor文内の処理が実行された後
       byte=10101000
       ※「01010100」を1ビット左シフト
      このように変数byteの値は変化していきます。

  • @hirokoji8111
    @hirokoji8111 9 месяцев назад

    32:47まで

  • @kt3221
    @kt3221 Год назад

    問5の(3,{3,4,5,6,})のカッコの意味を教えてください。{ }のデータを一個の変数だと思ってしまいました。このような記号が使われている場合、どのように変数のハコに格納されるのでしょうか?

    • @itgakko
      @itgakko  Год назад

      質問ありがとうございます。
      {3,4,5,6} は「整数型の配列」です。
      これが 関数printArrayData に渡され、data という変数名で受け取っているので、
      data という配列の名前に 番号を [ ] でつけてあげることで配列の各要素をプログラム内で使用できます。具体的には以下のようになります。
       data[1] = 3
       data[2] = 4
       data[3] = 5
       data[4] = 6
      ご不明点あればご連絡頂ければと思います。

    • @randora2015
      @randora2015 22 дня назад

      @@itgakko便乗で質問です
      配列は0から始まるので配列3は「6」を指す筈ですが、なぜ回答が「5」なのでしょうか

    • @itgakko
      @itgakko  22 дня назад

      @randora2015
      基本情報技術者試験の科目Bアルゴリズムにおいては、基本的に要素数は1から数えます。
      ※問題に記載がある場合はそちらを優先してください

    • @randora2015
      @randora2015 22 дня назад

      @@itgakko 要素数は「1」から数えますが配列は「0」からの筈です

    • @itgakko
      @itgakko  22 дня назад

      @randora2015
      失礼しました。
      しかし、配列の要素番号(プログラム上で「配列名[要素番号]」の形で指定する番号)も1から数えています。
      Javaなど実際のプログラミング言語では、要素番号は0から数えることが多いですが、基本情報技術者試験の科目Bでは1から数えることが多いです。
      ※問題文に指定がある場合は指定に従ってください

  • @user-uc2eo3ml8q
    @user-uc2eo3ml8q Год назад +2

    問10の最上位ビットが1のときの処理
    resultByte = resultByte v 00000000
    はやる意味があるのでしょうか?
    この一行を実行するかしないかでresultByteの中身は変わらない気がしてます

    • @itgakko
      @itgakko  Год назад +3

      質問ありがとうございます!
      おっしゃる通り意味がないです。
      2択の処理をわかりやすくするために残してますが、実際にプログラミングするんだったら不要なコードです。

  • @user-ni6qd3uj7f
    @user-ni6qd3uj7f Год назад

    問13で、I=3,j=3の時、nowstateとstatetrainsitionが等しく、その次に、input[3]=0とtransition[J][3]=1で等しくなっていないと思うのですが、どうしてこのような回答になるのでしょうか?01までは解けたのですが、0110になる理由がわかりません。よろしくお願いいたします。

    • @itgakko
      @itgakko  Год назад

      コメントありがとうございます。
      問13のi=3のケースについて、
      使用されている変数について整理すると、
       ・input[i] = 0
       ・nowState = 2
      となります。
      これとstateTransitionの値で一致する箇所を見ていくと、
      j=4の場合、2つのif文の判定結果が真(true)となります。
       ・1つ目のif文:if (nowState と stateTransition[j][1] が等しい)
        → nowState と stateTransition[j][1] ともに 2
       ・2つ目のif文:if (input[i] と stateTransition[j][3] が等しい)
        → input[i] と stateTransition[j][3] ともに 0
      j=4の場合、stateTransition[j][4] = 1 なので、1が出力され、
      次の i=4 の繰り返しに続きます。
      なので記載されている通り、
      i=3, j=3 のケースは input[3]=0とtransition[J][3]=1 で等しくなっていません。
      j=4 が等しいので、ご確認をお願いします。
      ご不明点あればご連絡いただければと思います。

    • @user-hg5yx2lg9s
      @user-hg5yx2lg9s Год назад

      @@itgakko 解説ありがとございます。私も同じところで躓いておりまして、jは1ずつ増えていくというif文の条件は無視してもよいということでしょうか?私も01までは理解できたのですが、一致する場所を見つけるという考え方がいまいちピンと来ておりません。

    • @itgakko
      @itgakko  Год назад

      @@user-hg5yx2lg9s 頂いた質問、お手数なのですが、「jは1ずつ増えていくというif文の条件」こちらがプログラム上のどこを指されているか教えて頂けますでしょうか。

    • @user-hg5yx2lg9s
      @user-hg5yx2lg9s Год назад

      申し訳ございません。if文ではなくfor文でした。for(jを1からstateTransitionの要素数まで1ずつ増やす)という部分です。1ずつではなく一気に2数値分増やしている(j→3ではなくj→4という解釈になっている)ところがわかりませんでした。

    • @itgakko
      @itgakko  Год назад

      @@user-hg5yx2lg9s ありがとうございます。
      おそらく、問題で説明している箇所について、if文の条件が真になってない箇所は飛ばしているため誤解されているのだと思います。
      実際プログラムは以下のように動きます。
       ・i=1の時、j=1〜6の6回繰り返す、その結果合致したのがj=1の時
       ・i=2の時、j=1〜6の6回繰り返す、その結果合致したのがj=2の時
       ・i=3の時、j=1〜6の6回繰り返す、その結果合致したのがj=4の時
       ・i=4の時、j=1〜6の6回繰り返す、その結果合致したのがj=6の時
      このようにiの値1〜4それぞれにケースについて、j=1〜6の6回ずつfor文内の処理が実行されています。
      解説の中では、その中でif文に合致するケースのみをかいつまんで説明しているので、「jが1つずつ増えていない」ように解釈されたのだと思います。
      わかりづらく申し訳ありません。

  • @hifine7599
    @hifine7599 11 месяцев назад

    配列の要素番号が1からになってるのは問題文に定義してほしい。

    • @itgakko
      @itgakko  11 месяцев назад

      ご意見ありがとうございます!
      参考にさせて頂きます。

  • @user-qw9cd8xi4b
    @user-qw9cd8xi4b 6 месяцев назад

    問10で、空欄に答えを入力したうえでI=1から8まで計算した後のresultbyteの結果が10010100になってしまうのですが、この部分が正しく計算できれば、反転した値である11001010になるということでしょうか。

    • @itgakko
      @itgakko  6 месяцев назад

      質問ありがとうございます!
      そうですね!問題文に書いてある通りinvert(00110101)として呼び出した場合であれば、最終的な値は11001010になります!

    • @user-qw9cd8xi4b
      @user-qw9cd8xi4b 6 месяцев назад

      @@itgakko i=8でresultbyt←resultbyte∨00000001 を入力した段階で11001010になり、その下のresultbyte<<1をすると10010100になってしまうのですが、これは計算途中でどこかがずれてしまったということですよね、、、。

    • @itgakko
      @itgakko  6 месяцев назад

      問10は概要欄で訂正させて頂いており、それをご確認頂けてないのかもしれません。
      概要欄の訂正内容をご確認頂けますでしょうか?
      同じく動画概要欄でご案内している公式LINEから無料ダウンロードできる教材の方は訂正内容も反映したものになってますので、よろしければそちらもご確認ください。

    • @user-qw9cd8xi4b
      @user-qw9cd8xi4b 6 месяцев назад

      @@itgakko if (i が 8 と等しい)
              return resultByte 訂正して頂いていたこの部分を見逃していました!i=8になったらreturn resultByte でresultByteに戻るということで、その下のbyteとresultByteの桁をずらさなくてよいという解釈であっていますでしょうか。

    • @itgakko
      @itgakko  6 месяцев назад

      @@user-qw9cd8xi4b あってます!

  • @user-mv3ux2mh6k
    @user-mv3ux2mh6k 9 месяцев назад

    視聴メモ
    41:35