アルゴリズム・フローチャート基礎講座【基本情報技術者・ITパスポート・高校情報1】

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

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

  • @rayt3926
    @rayt3926 Год назад +6

    説明が明晰、明快、そして親しみやすい。日本中の学生の授業を、この方の動画配信にすれば多くの学生が救われるのではないか?と思ってします程でした。
    私も助かりました、ありがとうございます。

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

      ray tさん、コメントありがとうございました!
      高校生の力になれたらいいなと思って動画を作ってきたので、そんなふうに感じてもらえてとても嬉しいですね✨
      僕自身こういう動画を作ってて楽しいので、これからもこの活動を続けていけたら良いなと考えています。
      モチベーションをもらえるようなコメントをありがとうございました!

  • @user-yz2bq6qh2d
    @user-yz2bq6qh2d 3 месяца назад +1

    数字が苦手な40代のおっさんでも分かりやすく勉強させていただいています。
    ありがとうございます😊

    • @SekaChan
      @SekaChan  3 месяца назад

      学校の勉強じゃないからこそ面白く学べる部分もありますよね👍
      これからも楽しく勉強していってください!

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

    基本情報技術者試験のアルゴリズム解説書よりもわかりやすく助かりました。ありがとうございます!

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

      みかん箱みかんさん、コメントありがとうございました!
      アルゴリズムは動きのあるものなので、本だけだと分かりにくい部分もあるかもしれません😄
      解説書と動画をうまく組み合わせて、ぜひ基本情報対策がんばっていってください!!

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

    明日ITパスポート受験なので見てました。アルゴリズムの問題は捨てようかと思っていたのですが、この動画を見てなんかいけそうだぞと思えてきたのでもうちょっと勉強して、できれば得意になって、明日本番では捨てないで解こうかと思います。

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

      chikappe93さん、コメントありがとうございました!
      アルゴリズムはコツがつかめるかどうかで、0点にも100点にもなり得る分野です。もしこの動画でコツがつかめていたら嬉しいですね😄
      今日の試験、頑張ってきてください!!

  • @user-bari.
    @user-bari. 6 месяцев назад +1

    高校生でiパスに向けて勉強しててここでつまづいてたのですがわかりやすくてありがたいです。 ちゃんと理解できたら楽しい…

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

      高校生でiパスの勉強、すごく良いですね!
      アルゴリズムが分かれば高校の情報科目や大学入試、さらに(iパスの上位試験の)基本情報技術者試験にもつながるので、ぜひ楽しく勉強していってください!

  • @user-mr6ho2gd1z
    @user-mr6ho2gd1z Месяц назад +1

    さすがに神すぎます。
    大学院の試験が近いので、これみて対策させていただきます!!!

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

      僕もうん十年前の夏は院試の勉強してました。暑さに負けずにがんばって!!

  • @namiK-oq5ir
    @namiK-oq5ir Год назад +3

    字や図形が綺麗で見やすいです!早送りで瞬間移動するところも好きです(笑)

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

      nami Kさん、コメントありがとうございました!
      字や図形はかなーり時間をかけて書いてるので、そう感じてもらえて良かったです!
      瞬間移動はなぜか良いって言ってくれる人がチラホラいます(笑)

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

    解説が分かりやすく理解が進みました。中級編とか続編を期待しています。

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

      コメントありがとうございました!
      分かりやすいって感じてもらえて良かったです!
      アルゴリズムはまだまだ話せる内容があるので、もしリクエストが集まったら続編を検討しますね。

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

    ものすごくわかりやすい解説ありがとうございます!フローチャートの線形探索法の場面では、菅原さんの好きなバンドへの愛も伝わってきました笑

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

      suguru dejiさん、コメントありがとうございました!
      わかりやすいって感じてもらえて良かったです!
      あるバンドへの愛に気づいてくれて嬉しいですね😄
      せかチャンの動画、実はいろんなところに隠れ〇〇〇〇があります笑

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

      @@SekaChan
      返信ありがとうございます!!
      隠れ〇〇〇〇、これからも追い続けていきます!!

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

    神奈川県在住、34歳の
    Webエンジニア転職独学中の、
    岩本 建厚(いわもと たてあつ)と申します!
    宜しくお願い致します!
    先生の動画で、アルゴリズムのトレース力が、
    確実に、付いて来ている感じがしました!
    本当に助かっています!
    独学中で、誰も教えてくれる人が、
    いない中、強力な味方な感じがします!
    感謝致します!👍
    今後とも、宜しくお願い致します!
    では、宜しくお願い致します!

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

      岩本さん、コメントありがとうございました!
      トレース力が身につけば、プログラムの動きを読み取りやすくなります。
      独学は大変な部分も多いですが、今はいろんな解説動画が公開されているので、ぜひその調子で楽しく勉強を進めていってください!
      (お名前載せて大丈夫かなと思いましたが、RUclips上で公開されてるようなのでこのままにしておきますね😄)

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

      @@SekaChan
      かしこまりました!
      名前は、公開で大丈夫です!
      RUclipsrやってますので!
      では、どうぞ、
      宜しくお願い致します!!👍

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

    アルゴリズムを勉強したかったので、見に来ました。
    思っていたより意外と複雑に感じてこんがらがりそうなので、慣れるまで繰り返し見た方が良いなと思いました。
    とても理解しやすくて助かります。
    ありがとうございます。

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

      百人一首さん、コメントありがとうございました!
      アルゴリズムは最初は難しく感じる人が多いですが、慣れるとすごく面白いし、プログラミングに通じる大切な考え方でもあります😄
      自分のペースに合わせて何度か見てもらいながら、ぜひ着実に理解していってください!

  • @Arsche
    @Arsche 5 месяцев назад +1

    世界最古のアルゴリズムは最大公約数を探し出すアルゴリズムです。
    じつに、数千年前に考案されたアルゴリズムで、現代的な言語では1行で表現出来ますが、
    現代のプログラミングに絶対必要な考え方が含まれていたりします。
    面白いので、考えてみようー

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

      たしかに、最大公約数を求めるアルゴリズムには基本3構造(順次・分岐・繰り返し)のすべてが含まれてますね。
      これが分かったら、アルゴリズムの基本はしっかり理解できてるかなと思います。

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

      @@SekaChan 数千年前にさ、これ、考えたやつって、かなりすごいよね

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

      @@SekaChan 面白いと思ったら書いてみよう。
      それが全ての始まりなんだからさ。
      バグってもいいじゃん、
      治せばすむことだし。
      楽しむことだけを考えよう。
      fun to hack

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

    先日基本情報のサンプル問題を解いたところが、やっぱり理解出来なくて解説をみたらなんとか理解できました。旧試験時代には解説を見ても分からない事が多く困っていましたが、午後対策本2週して次は3回目に入りました。まだなかなか理解出来ない問題もありますが菅原先生が基礎を楽しく解説していただけるのでありがたいです。本来こんなことを学ばなければいけなかったのかと感じました。早く合格出来るようにしたいです。私レベルアップしてますかね?ちなみにパイザでプログラム組んでます。Javaです

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

      まきさん、コメントありがとうございました!
      理解できなかった内容が理解できたのであれば、着実にレベルアップできてると思いますよ👍
      アルゴリズムは理解できればすごく面白い分野なので、ぜひ楽しみながら勉強を進めていってください!
      Javaでプログラムを組みながら勉強できれば、さらに効率良くスキルアップできそうですね。

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

      @@SekaChan 私自身も3年ぶりに試験を受けて落ちてしました。午前はなんとかギリギリでしたが午後は310点とひどいものでした。プログラミングをしないといけないとは感じてました。しかし何をやっていいのかわからなかったため悩んでいました。そのため色々と探してパイザラーニングをやっています。写経になってしまいますが‥しばらくは慣れていくしかありません。

  • @Michi-le9dx
    @Michi-le9dx Год назад +2

    字が綺麗!!

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

      Michiさん、コメントありがとうございました!
      字は超ゆっくり丁寧に書いてます!

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

    実際クライアントさんの要望をアルゴリズムを図を使って考えられるかが今は、心配ですがこの動画を何回も拝見させて頂いて、基本をしみつけてこれからしっかり開発出来るように勉強したいと思います。毎日拝見して勉強させて頂いてます!いつも有り難うございます!!41歳ですがエンジニアを目指し新しい事に挑戦中です(笑)

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

      清澤健さん、コメントありがとうございました!
      この動画で解説した「順次進行」「分岐」「反復(繰り返し)」の3つの構造を理解できれば、クライアントさんや他のエンジニアとのやり取りに必ず役立つと思います✨
      何かにチャレンジするときに年齢が気になることもありますが、これからの人生で「今」が一番若いですからね。
      僕もまだまだ新しいことに挑戦していくので、ぜひお互いに頑張っていきましょう!

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

      @@SekaChan 菅原先生、心強い返信コメントして頂き有り難うございます !(順次進行)(分岐)(反復)をしっかり身につけていきたいと思います!先生の有難いコメントを頂きもっとモチベアップしたので今日も動画拝見させて頂いて勉強頑張ります!!

  • @tamaritamari1230
    @tamaritamari1230 8 месяцев назад +2

    非常にわかりやすくてよかったです。

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

      tamaritamari1230さん、コメントありがとうございました!
      わかりやすかったみたいで良かったです😄

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

    とても解かりやすかったです。

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

      たたさん、コメントありがとうございました!
      そう感じてもらえて良かったです✨
      アルゴリズムはどのプログラム言語にも共通する考え方なので、ぜひ今後に活かしていってください!

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

    理解しました。ありがとうございます。

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

      Vone Utiさん、コメントありがとうございました!
      アルゴリズムが理解できたみたいで良かったです😄
      すべてのプログラミングの土台になっている考え方なので、ぜひ今後に活かしてください!

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

    線形探索法が非効率の例で辞書調べて寝ちゃうっていうのが面白かった😂

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

      楽しんでもらえて良かったです😄
      線形探索法は非効率なんだっていうイメージが頭に残ったら嬉しいですね。

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

    最後の問題のMは最大値を表すっていうのは、ある添字にいった時点でのそれぞれの最大値を表すっていう理解であってますか??

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

      すいませんあともう一つ聞きたいんですけど、6番の線形探索法っていうところからは教科書に全く載ってないんですけど、共通テストのことを考えた場合やった方がいいですかね?

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

      最後の問題(1:46:40)にMは出てこないので、たぶん別の問題でしょうか🤔
      6番以降は載っている教科書もあるので、模試や入試で出てくる可能性がありますね。
      (例えば「線形探索」という用語は7割の教科書で説明されています。説明がどこまで細かいは教科書によって違いますが‥)

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

      わかりました!!頑張ります!
      ちなみにMのやつは分岐構造の動画の最後の問題ですすいません!!

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

      @@rana4663 さん、返信ありがとうございます!
      改めて見直しましたが、たぶんMは配列の問題に出てくるやつですね。
      だとしたら、【Mはある添字にいった時点でのそれぞれの最大値を表す】という考え方で合ってますよ👍

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

    菅原先生〜!こっちにも遊びに来ました^^
    Javaの方は、四章の型変換のあたりで少し休憩中です笑( ̄▽ ̄)
    焦らずに理解していこうと思います。
    *今をときめくPythonも学んでみたいなと思って先生の動画を開いたら、冒頭で、「まずはアルゴリズム動画を見ると理解が深まるよ」、とのことだったのでまずはこちらを見ています^^
    *確認問題があるのほんとうに視聴者想いでありがたいです!
    *先生への返信
    ご返信ありがとうございます!
    自分が先生の動画が好きなのは、わかりやすくて人柄が伝わるような動画であるというはもちろん、毎回こうして丁寧に返信してくださるのがモチベーションにもなるんです^^
    Javaのときは(まだ途中ですが)オブジェクト指向を理解するんや!!というモチベーションでしたが、今回の動画はPythonを学ぶんや!!というモチベーションです\\٩( 'ω' )و //
    *他の視聴者の方のコメントを見て・・・
    ほんとだ、バンドですね笑
    そういえば、Java講座にも◯井さんとか登場していた気が。
    まとめ
    --------------------------------------------------------------------------------------
    【第一回・アルゴリズム】
    1:50
    *アルゴリズム・・・何かの課題を解決するための処理手順のこと。
    *プログラム・・・コンピュータ向けに処理の手順を記述したもの。
    *アルゴリズムは図を使って表現される。・・・ フローチャート/ アクティビティ図/ 状態遷移図
    *アルゴリズムは複数考えられる。←これ、大事な気がする!!
    *正しくて、分かりやすくて、効率がいいのが大切。
    --------------------------------------------------------------------------------------
    【第二回・フローチャート】
    12:00
    *フローチャートの「開始」と「終了」は角っこが丸くなっている。この、処理の初めと終わりを表す記号のことを端子記号という。
    *開始と終了に挟まれた一つ一つの処理は長方形で囲んでいる。この長方形の記号は処理記号という。
    17:30
    *処理の流れを追うことをトレースという。
    --------------------------------------------------------------------------------------
    【第三章・分岐構造】
    *基本的な3つの構造を組み合わせて行うプログラミングを、構造化プログラミングという。
    *3つの構造・・・順次構造、分岐構造(if/else)、反復構造(for)
    23:10
    *if文で使うひし形の記号を判断記号という。
    27:40
    *確認問題・・・
    実は最小値を求めるフローチャートだった!全部同じやんけ!と思ったら、そうだったのか!
    --------------------------------------------------------------------------------------
    【第四章・反復構造】
    32:30
    *つまり、
    int A=0;
    for (int n=1; n3までループっていうことは、n>3を満たした時点でループを脱出するということ。
    ということは、b=0までループというのはb=0になったら脱出ということである。
    2 3, 4 2, 8 1, 16 0で脱出なのでyは16だ。
    38:50
    y=a^b を表すフローチャートだったとは!
    --------------------------------------------------------------------------------------
    【第五章・配列】
    41:00
    *配列の各中身のことを要素、配列の番号を添え字という。
    また勘違いしそうになったが、i>5までループということは、i=6になった時点で脱出ということ。
    この終了条件は頭に書いてもいいということみたい。
    *確認問題・・・
    今回はこのフローチャートの意味も考える。
    最高得点を求めるものだとわかった。
    *勉強のためにコードでも書いてみる。
    #include
    int main(void) {
    int score[]={80, 65, 85, 70, 90};
    int m=score[0];
    for ( int i= 1; i< 5; i++ ){
    if ( m< score[i] ) {
    m= score[i];
    };
    }
    printf("%d",m);
    return 0;
    }
    結果はちゃんと90になった。
    *コーディングするときの終了条件の書き方はこの動画のフローチャートとは逆で、「満たす限りは繰り返す」。この動画では「満たしてしまったら終了」。
    --------------------------------------------------------------------------------------
    【第六章・線形探索法】
    *処理回数というのは、開始と終了を除く、通る記号の回数ということみたい。
    1:02:00
    *番兵。
    *二つ目のフローチャートの処理回数が少なく済んだ(=効率的になっている)ことの本質は、番兵を用意したことによって、ループを続けていれば必ず求めている答えが見つかって、自動的に終わりを迎えるようになり、【要素数が(つまりループが)終わりを迎えたかどうか】という2択を毎回調べなくてよくなっていること。
    【第七章・二分探索法】
    1:07:00
    *ガウス記号・・・[]の中身を超えない最大の整数を表す。[4]=4 [5.5]=5
    *二分探索法考えた人、賢いわあ。
    【第八章・基本交換法】
    *基本交換法の一巡目にやっていることは、つまり、一番大きい(一番右側の)数を確定させるということ。
    ということは、理論的には、5つの要素を並び替える場合、多くても四巡すれば必ず整列が完了するはず。
    ↓やってみる。
    97531
    79
    759
    7539
    75319 一巡目終わり。
    57
    537
    53179 二巡目終わり。
    35
    31579 三巡目終わり。
    13579 四巡目終わり。
    1:20:00 ここまで

    • @SekaChan
      @SekaChan  9 месяцев назад +2

      ないとさん、コメントありがとうございました!
      アルゴリズムはプログラミングの土台になる考え方なので、JavaやPythonの理解につながりますよ👍
      まとめに書いてくれている「アルゴリズムは複数考えられる」は、たしかに超重要ですね。
      1つの処理に対して1つのプログラムの書き方しか思いつかない人よりも、複数の書き方の中から状況に合わせて(処理スピードを優先するか、メンテナンスしやすさを優先するか、など)最適なプログラムを書ける人のほうが強いエンジニアといえるのかなと思います。

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

    繰り返しの表現方法について教えてほしいです。
    i:n-1,-1,0
    というのは、どういう意味なんでしょうか。
    n=4であれば、
    iは3から0まで繰り返すという意味なんでしょうか。その場合、i=n-1,0ではダメなんでしょうか。なぜ真ん中に-1があるのかもわかりません。
    お忙しいところ恐縮ですが、ご教示のほど宜しくお願いいたします。

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

      コメントありがとうございました。
      34:08 あたりから解説している反復記号では、ループ始端内に
      【変数:初期値、増分、終値】
      を指定する書き方もあります。
      n=4で「i:n-1,-1,0」と指定した場合は「i:3,-1,0」となるため、n=3,2,1,0と4回処理を繰り返すことになります。
      JIS規格で上のように書き方が決まっているため、「i=n-1,0」とは書けないですね。

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

      @@SekaChan
      お忙しいところ、ご教示いただきありがとうございました、
      エクセルvbaで繰り返しを表す時、
      for i = 2 to 10
      と書くと思いますが、常にiが1ずつ増えていってたので、初見では何が言いたいのか分からず、また、なぜ必要なのか疑問でした。
      おかげさまで理解することができました!

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

    質問なのですが 31:24 の3≦3になって、終了でなくてまたループするんですか?

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

    0→A、1→nになるのが理解できておりません。
    なぜAは0から始めてnは1から始めるのでしょうか?
    お返事いただけますと幸いです

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

      せっかく質問してくれたのにすみませんが、動画のどの部分について質問を受けているかが分からないので回答が難しいです🙏

    • @mainiaciinemui4
      @mainiaciinemui4 4 месяца назад +1

      29:13あたりの問題です!

    • @nana-ld5hx
      @nana-ld5hx 4 месяца назад +1

      横からすみません。
      A=Answer(計算結果)なので最初は0から、n=number(今回の場合、1.2.3)なので最初は1から始まっているのだと思います😊

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

      @@nana-ld5hx さん、ありがとうございました!!
      僕もそんなスマートな回答ができるようになりたい😳