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

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 309

  • @itgakko
    @itgakko  5 หลายเดือนก่อน +4

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

  • @kentsuji5670
    @kentsuji5670 9 หลายเดือนก่อน +4

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

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

  • @AtomSaito
    @AtomSaito ปีที่แล้ว +14

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

    • @itgakko
      @itgakko  ปีที่แล้ว +3

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

  • @hoge_tarou
    @hoge_tarou 11 หลายเดือนก่อน +2

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

    • @itgakko
      @itgakko  11 หลายเดือนก่อน

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

  • @タマスラ
    @タマスラ ปีที่แล้ว +4

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @taikodaisukikurabu
    @taikodaisukikurabu ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @tatsuyanagao486
    @tatsuyanagao486 ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @yuto-mb8ll
    @yuto-mb8ll ปีที่แล้ว +13

    問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
      ----------
      以上、よろしくお願いいたします。

  • @akiper
    @akiper ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @正直-e3y
    @正直-e3y ปีที่แล้ว +9

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

    • @itgakko
      @itgakko  ปีที่แล้ว +2

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

  • @sanatyblue
    @sanatyblue 2 หลายเดือนก่อน

    参考書より分かりやすくて驚いてます笑
    科目Bで苦戦していましたが、やっと理解できました。
    ありがとうございます。

    • @itgakko
      @itgakko  2 หลายเดือนก่อน +1

      よかったです!
      勉強頑張ってください!

  • @yokosumakimotee5315
    @yokosumakimotee5315 ปีที่แล้ว +7

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @つば-f1q
    @つば-f1q ปีที่แล้ว +7

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @しょうちゃん-v6s
    @しょうちゃん-v6s ปีที่แล้ว +3

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @Baechantokyo
    @Baechantokyo ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @石本敢大
    @石本敢大 ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @zenon1424
    @zenon1424 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @山本悦司
    @山本悦司 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน +1

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

    • @山本悦司
      @山本悦司 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน +1

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

  • @Baechantokyo
    @Baechantokyo ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @KK-xm1fw
    @KK-xm1fw ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @louiskentakikuchi6991
    @louiskentakikuchi6991 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  8 หลายเดือนก่อน

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

  • @kuriyamasaikou
    @kuriyamasaikou ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

    • @kuriyamasaikou
      @kuriyamasaikou ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @名無-k2c4f
    @名無-k2c4f 4 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  3 หลายเดือนก่อน

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

  • @みねみさ
    @みねみさ 9 วันที่ผ่านมา

    分かりやすい動画ありがとうござます。
    最近科目Bの勉強を始めたのですが、テキストは買うべきなのでしょうか。もし必要であればおすすめを教えて頂けたら嬉しいです。
    また、こちらのチャンネルで科目B対策をする際に動画の見る順番などがありましたら、教えて頂きたいです。

    • @itgakko
      @itgakko  9 วันที่ผ่านมา +1

      質問ありがとうございます!
      それぞれ回答しますね
      【テキストは買うべきか】
      私の動画が合っている(解説を聞いて理解が進む)のであれば、テキストは不要かなと思います。
      ただアルゴリズムについては、基本的な考え方が理解できた後は実力アップのために問題演習が重要です。
      私の動画でも60問以上ありますが、それでも足りない場合は以下の問題集がオススメです(70問以上収録されています)。
      ---
      基本情報技術者[科目B]アルゴリズムとプログラミング トレーニング問題集(第2版)
      ---
      【本チャンネルの視聴順】
      コメントいただいたこの動画は最初に見ていただくと良いですが、それ以外は順不同です!
      基本的には『別動画で解説してるからこの動画では解説を省略します』みたいな説明はしてないので、お好きな順番で見ていただければと思います!

    • @みねみさ
      @みねみさ 9 วันที่ผ่านมา

      @itgakko
      ご丁寧に回答して頂きましてありがとうございます。
      科目Bはまずこちらのチャンネル動画で学習を進めて、頑張ってみます!

    • @itgakko
      @itgakko  9 วันที่ผ่านมา

      @みねみさ 勉強頑張ってください!

    • @みねみさ
      @みねみさ 7 วันที่ผ่านมา

      何度も質問すみません。
      問10から初見では全く歯が立たないので、答えと解説を見て何とか理解しようとしているのですが、よくわからない部分もありますが、この状態でテキストを買わずにこちらのチャンネルでこのまま学習を進めても問題ないでしょうか。
      時間を空けて再度問題文と解説を読むと理解できる部分もある状態です。
      また、初見で1問に費やしてもいい時間と歯が立たなかったら回答と解説を見てもいいのでしょうか。
      長文になってしまいすみません。

  • @田村文太
    @田村文太 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

    • @田村文太
      @田村文太 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @nukonuko2217
    @nukonuko2217 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @鈴木太郎-s3s
    @鈴木太郎-s3s หลายเดือนก่อน +1

    非IT社会人ですが、自己研鑽のためITの勉強を始めました。
    ITパスポート、情報セキュリティマネジメントと何とか合格できました。
    基本情報技術者試験に挑戦すべく、B試験の勉強から始めました。
    参考書も応用になると分かりません。
    この動画でも丁寧に解説して頂いていますが、後半から全くついていけません。
    通信口座などであれば理解できるのでしょうか?
    それとも潔く諦めるべきでしょうか?

    • @itgakko
      @itgakko  21 วันที่ผ่านมา +2

      ITパスポート・情報セキュリティマネジメントいいですね!
      通信講座なども良いです!
      私からは自学の観点で1点アドバイスさせていただきます!
      「全くわからない」という状態は、突き詰めるとほとんどの場合ありません。
      必ずと言っていいほど細かい問題に分解できます!
      今自分がどこまで分かってて、どこから分からなくなってしまっているのか、
      コメントを拝見したところそこを整理するところから始めるのが良いと思いました!

  • @ゆきね-x4o
    @ゆきね-x4o ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

    • @ゆきね-x4o
      @ゆきね-x4o ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +2

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

    • @ゆきね-x4o
      @ゆきね-x4o ปีที่แล้ว

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

  • @マキ-l6l
    @マキ-l6l ปีที่แล้ว +3

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @kou367
    @kou367 10 หลายเดือนก่อน +1

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

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

  • @なにふぁむ-i2w
    @なにふぁむ-i2w ปีที่แล้ว +3

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

    • @itgakko
      @itgakko  ปีที่แล้ว +2

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

  • @YKykYK1023
    @YKykYK1023 9 วันที่ผ่านมา

    概要欄に訂正があるの知らなくて問13何回やっても答えにたどり着かなくてめっちゃ時間無駄にした笑
    自分と同じ過ちを犯す人が出ないようにいつか訂正済み動画出してくれるとうれしい
    もうすぐ試験だから詰め込むぞ~

    • @itgakko
      @itgakko  9 วันที่ผ่านมา

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

  • @user-lb6ec3xk8y
    @user-lb6ec3xk8y ปีที่แล้ว +3

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

    • @itgakko
      @itgakko  ปีที่แล้ว +3

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

  • @gougouryu6217
    @gougouryu6217 2 หลายเดือนก่อน

    素晴らしい動画をありがとうございます。
    問13に関しては概要欄の修正を見ないと一生回答の0110(ア)とならず010・(イ)?となるので注意が必要ですね。
    私はこれで数十分時間がかかってしまいました笑

    • @itgakko
      @itgakko  2 หลายเดือนก่อน

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

  • @桧山尚子
    @桧山尚子 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @user-fansu
    @user-fansu ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @lighttobrcaz1
    @lighttobrcaz1 ปีที่แล้ว

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

    • @itgakko
      @itgakko  11 หลายเดือนก่อน +1

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

  • @みみ-p3u1w
    @みみ-p3u1w ปีที่แล้ว +4

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @yuhuqu4887
    @yuhuqu4887 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว +2

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

  • @berryjin9113
    @berryjin9113 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @かめ-r3c
    @かめ-r3c ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @kck999
    @kck999 ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว +3

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

  • @nhanpham3262
    @nhanpham3262 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @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  ปีที่แล้ว

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

  • @平山聡-s3v
    @平山聡-s3v 11 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  11 หลายเดือนก่อน +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文が二重構造になっている場合は上記のような処理順になります。
      問い合わせ内容が異なる場合、
      もう少し詳細に教えていただけると幸いです。

  • @HS-ij2no
    @HS-ij2no 8 หลายเดือนก่อน +1

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

    • @itgakko
      @itgakko  8 หลายเดือนก่อน

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

  • @さい-p3j
    @さい-p3j 6 หลายเดือนก่อน +1

    お恥ずかしい質問なのですが、問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  6 หลายเดือนก่อน +1

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

    • @さい-p3j
      @さい-p3j 6 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  6 หลายเดือนก่อน +1

      勉強頑張ってください!

    • @さい-p3j
      @さい-p3j 6 หลายเดือนก่อน

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

  • @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文 が複数回出てきているからといって、
      その結果を足したりはしないです。

  • @ユウキ-n9n
    @ユウキ-n9n ปีที่แล้ว +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 に格納されるようになっています。
      上記のような処理をしていることから、
      動画内ではこの部分を「ソート前配列から最小値を探す」
      というように説明させて頂いております。
      以上、ご不明点あればご連絡頂ければと思います。

    • @中村太一-s9s
      @中村太一-s9s ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @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文 があった方がベターです。
      以上となります。ご不明点あればご連絡頂ければと思います。

  • @oooden
    @oooden ปีที่แล้ว +4

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @dai370
    @dai370 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @吉原瑞樹
    @吉原瑞樹 4 หลายเดือนก่อน +1

    質問です、問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  4 หลายเดือนก่อน

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

    • @吉原瑞樹
      @吉原瑞樹 4 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  4 หลายเดือนก่อน

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

  • @TYAMA-uf8sn
    @TYAMA-uf8sn 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน +1

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

    • @TYAMA-uf8sn
      @TYAMA-uf8sn 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน +1

      勉強頑張って下さい!

  • @山田太郎-o5e7x
    @山田太郎-o5e7x ปีที่แล้ว +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

    • @山田太郎-o5e7x
      @山田太郎-o5e7x ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @Lizm0414
    @Lizm0414 ปีที่แล้ว

    先生!問題の解答に関する質問とは違いますが質問があります!
    問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  ปีที่แล้ว

      質問ありがとうございます!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 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

      補足ありがとうございます!
      > 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 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

      @@Lizm0414 よかったです!

  • @yokosumakimotee5315
    @yokosumakimotee5315 ปีที่แล้ว +4

    問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 ปีที่แล้ว

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

  • @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

      勉強頑張ってください!

  • @kaguya_0101
    @kaguya_0101 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +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 ปีที่แล้ว

      ​@@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  ปีที่แล้ว +1

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

  • @SS.K
    @SS.K ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @lock-on-t5m
    @lock-on-t5m ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @Lizm0414
    @Lizm0414 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

    • @Lizm0414
      @Lizm0414 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

    • @Lizm0414
      @Lizm0414 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

      頑張って下さい!

  • @oo-m8p
    @oo-m8p 10 หลายเดือนก่อน +1

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

      勉強頑張ってください!

    • @oo-m8p
      @oo-m8p 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

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

  • @foolim1
    @foolim1 ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @テオしろ
    @テオしろ ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @keganin
    @keganin ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

      ありがとうございます!

  • @user-og5gq8xc2k
    @user-og5gq8xc2k ปีที่แล้ว

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

  • @motosuu
    @motosuu 4 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  4 หลายเดือนก่อน +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.関数呼び出し①」で解説しているので
      よろしければそちらをご確認ください。

  • @飯田直-z8o
    @飯田直-z8o 7 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  7 หลายเดือนก่อน

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

  • @選ばれたのは綾鷹でした-d7b
    @選ばれたのは綾鷹でした-d7b 9 หลายเดือนก่อน

    問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  9 หลายเดือนก่อน

      ご質問ありがとうございます!
      ご質問いただいたのは投映している資料の中で
      -----
      ・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)になったということで、
      「水色の列から一致するものを探す」
      という表現をしています。
      以上となります。
      混乱させて申し訳ありません。

    • @選ばれたのは綾鷹でした-d7b
      @選ばれたのは綾鷹でした-d7b 9 หลายเดือนก่อน

      @@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  9 หลายเดือนก่อน

      それぞれ回答しますね!
      > 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回繰り返し処理を行うことを考えた時に、
         各繰り返し処理では毎回同じ場所(桁)に対して処理することになる。
        ・ビット値の操作については、左シフト・右シフト・論理積・論理和がある。
         ※これは公式のサンプル問題に合わせています
       上記から、まず右の桁に値を設定して、それを左シフトすることを繰り返せば
       最終的に元の値をビット反転した値が得られるということで
       こういったプログラムにしています。
      以上、よろしくお願いします。

    • @選ばれたのは綾鷹でした-d7b
      @選ばれたのは綾鷹でした-d7b 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

      よかったです!

  • @user-ic3ug1pu3d
    @user-ic3ug1pu3d ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @大学8年生-h1j
    @大学8年生-h1j ปีที่แล้ว

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

    • @大学8年生-h1j
      @大学8年生-h1j ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @itgakko
    @itgakko  ปีที่แล้ว +7

    この動画で基礎力を付けたら応用問題にもチャレンジしてみてくださいね!
    応用問題はコチラ↓↓
    th-cam.com/video/9fU2HlAXTiM/w-d-xo.html

  • @ひまわり-d5c
    @ひまわり-d5c ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

    • @ひまわり-d5c
      @ひまわり-d5c ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      頑張って下さい!

  • @さんモラウ
    @さんモラウ ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @グンロズ-f9h
    @グンロズ-f9h ปีที่แล้ว +1

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

  • @commtv1320
    @commtv1320 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +2

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

  • @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
    間違ってたら教えてください

    • @りく-l8o3e
      @りく-l8o3e ปีที่แล้ว

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

    • @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
         ----------
      ------

  • @うま-l5g
    @うま-l5g 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

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

    • @うま-l5g
      @うま-l5g 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

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

  • @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

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

  • @きっくー-t3l
    @きっくー-t3l 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

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

  • @長谷川竜也-u3j
    @長谷川竜也-u3j 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

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

    • @長谷川竜也-u3j
      @長谷川竜也-u3j 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

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

    • @長谷川竜也-u3j
      @長谷川竜也-u3j 10 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  10 หลายเดือนก่อน

      ​@@長谷川竜也-u3j
      おっしゃっている内容だけではあっているともあってないとも言えません。
      動画内で説明している具体例において、
      変数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の値は変化していきます。

  • @にょ-h3d
    @にょ-h3d ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @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 3 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  3 หลายเดือนก่อน

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

    • @randora2015
      @randora2015 3 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  3 หลายเดือนก่อน

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

  • @ただのこばやし
    @ただのこばやし ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @XLEGT
    @XLEGT ปีที่แล้ว +12

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

  • @march9529
    @march9529 ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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

    • @march9529
      @march9529 ปีที่แล้ว

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

  • @user-og5gq8xc2k
    @user-og5gq8xc2k ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

    • @user-og5gq8xc2k
      @user-og5gq8xc2k ปีที่แล้ว

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

      勉強頑張って下さい!

  • @yamadaiyokoB
    @yamadaiyokoB ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว +1

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

  • @たつ-e8y
    @たつ-e8y 11 หลายเดือนก่อน +1

    1〜9 ○
    10〜 △

    • @たつ-e8y
      @たつ-e8y 11 หลายเดือนก่อน

      12 ✖︎

  • @Area-vs5qs
    @Area-vs5qs 7 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  7 หลายเดือนก่อน

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

  • @たもん-b7h
    @たもん-b7h ปีที่แล้ว +2

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

    • @itgakko
      @itgakko  ปีที่แล้ว +3

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

  • @oo-m8p
    @oo-m8p 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

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

    • @oo-m8p
      @oo-m8p 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

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

    • @oo-m8p
      @oo-m8p 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

      @@oo-m8p あってます!

  • @つば-f1q
    @つば-f1q ปีที่แล้ว

    問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つずつ増えていない」ように解釈されたのだと思います。
      わかりづらく申し訳ありません。

  • @こだま-b2s
    @こだま-b2s ปีที่แล้ว +2

    自分用 続き41:16

  • @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  ปีที่แล้ว

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

  • @itgakko
    @itgakko  ปีที่แล้ว +4

    動画で投影している教材はさいとうの公式LINEに登録頂くと無料でダウンロードできます!
    無料で教材が欲しい方は概要欄からLINEに登録してみて下さいね!
    今回の動画の教材名:【初心者向け】基本情報技術者試験 科目B|アルゴリズムをゼロから理解する

  • @ねこおじさん-h6r
    @ねこおじさん-h6r 9 หลายเดือนก่อน

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

    • @itgakko
      @itgakko  9 หลายเดือนก่อน

      勉強頑張ってください!

  • @田村文太
    @田村文太 ปีที่แล้ว +1

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

    • @itgakko
      @itgakko  ปีที่แล้ว

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