ray tさん、コメントありがとうございました! 高校生の力になれたらいいなと思って動画を作ってきたので、そんなふうに感じてもらえてとても嬉しいですね✨ 僕自身こういう動画を作ってて楽しいので、これからもこの活動を続けていけたら良いなと考えています。 モチベーションをもらえるようなコメントをありがとうございました!
@@SekaChan お忙しいところ、ご教示いただきありがとうございました、 エクセルvbaで繰り返しを表す時、 for i = 2 to 10 と書くと思いますが、常にiが1ずつ増えていってたので、初見では何が言いたいのか分からず、また、なぜ必要なのか疑問でした。 おかげさまで理解することができました!
説明が明晰、明快、そして親しみやすい。日本中の学生の授業を、この方の動画配信にすれば多くの学生が救われるのではないか?と思ってします程でした。
私も助かりました、ありがとうございます。
ray tさん、コメントありがとうございました!
高校生の力になれたらいいなと思って動画を作ってきたので、そんなふうに感じてもらえてとても嬉しいですね✨
僕自身こういう動画を作ってて楽しいので、これからもこの活動を続けていけたら良いなと考えています。
モチベーションをもらえるようなコメントをありがとうございました!
数字が苦手な40代のおっさんでも分かりやすく勉強させていただいています。
ありがとうございます😊
学校の勉強じゃないからこそ面白く学べる部分もありますよね👍
これからも楽しく勉強していってください!
基本情報技術者試験のアルゴリズム解説書よりもわかりやすく助かりました。ありがとうございます!
みかん箱みかんさん、コメントありがとうございました!
アルゴリズムは動きのあるものなので、本だけだと分かりにくい部分もあるかもしれません😄
解説書と動画をうまく組み合わせて、ぜひ基本情報対策がんばっていってください!!
明日ITパスポート受験なので見てました。アルゴリズムの問題は捨てようかと思っていたのですが、この動画を見てなんかいけそうだぞと思えてきたのでもうちょっと勉強して、できれば得意になって、明日本番では捨てないで解こうかと思います。
chikappe93さん、コメントありがとうございました!
アルゴリズムはコツがつかめるかどうかで、0点にも100点にもなり得る分野です。もしこの動画でコツがつかめていたら嬉しいですね😄
今日の試験、頑張ってきてください!!
高校生でiパスに向けて勉強しててここでつまづいてたのですがわかりやすくてありがたいです。 ちゃんと理解できたら楽しい…
高校生でiパスの勉強、すごく良いですね!
アルゴリズムが分かれば高校の情報科目や大学入試、さらに(iパスの上位試験の)基本情報技術者試験にもつながるので、ぜひ楽しく勉強していってください!
さすがに神すぎます。
大学院の試験が近いので、これみて対策させていただきます!!!
僕もうん十年前の夏は院試の勉強してました。暑さに負けずにがんばって!!
字や図形が綺麗で見やすいです!早送りで瞬間移動するところも好きです(笑)
nami Kさん、コメントありがとうございました!
字や図形はかなーり時間をかけて書いてるので、そう感じてもらえて良かったです!
瞬間移動はなぜか良いって言ってくれる人がチラホラいます(笑)
解説が分かりやすく理解が進みました。中級編とか続編を期待しています。
コメントありがとうございました!
分かりやすいって感じてもらえて良かったです!
アルゴリズムはまだまだ話せる内容があるので、もしリクエストが集まったら続編を検討しますね。
ものすごくわかりやすい解説ありがとうございます!フローチャートの線形探索法の場面では、菅原さんの好きなバンドへの愛も伝わってきました笑
suguru dejiさん、コメントありがとうございました!
わかりやすいって感じてもらえて良かったです!
あるバンドへの愛に気づいてくれて嬉しいですね😄
せかチャンの動画、実はいろんなところに隠れ〇〇〇〇があります笑
@@SekaChan
返信ありがとうございます!!
隠れ〇〇〇〇、これからも追い続けていきます!!
神奈川県在住、34歳の
Webエンジニア転職独学中の、
岩本 建厚(いわもと たてあつ)と申します!
宜しくお願い致します!
先生の動画で、アルゴリズムのトレース力が、
確実に、付いて来ている感じがしました!
本当に助かっています!
独学中で、誰も教えてくれる人が、
いない中、強力な味方な感じがします!
感謝致します!👍
今後とも、宜しくお願い致します!
では、宜しくお願い致します!
岩本さん、コメントありがとうございました!
トレース力が身につけば、プログラムの動きを読み取りやすくなります。
独学は大変な部分も多いですが、今はいろんな解説動画が公開されているので、ぜひその調子で楽しく勉強を進めていってください!
(お名前載せて大丈夫かなと思いましたが、RUclips上で公開されてるようなのでこのままにしておきますね😄)
@@SekaChan
かしこまりました!
名前は、公開で大丈夫です!
RUclipsrやってますので!
では、どうぞ、
宜しくお願い致します!!👍
アルゴリズムを勉強したかったので、見に来ました。
思っていたより意外と複雑に感じてこんがらがりそうなので、慣れるまで繰り返し見た方が良いなと思いました。
とても理解しやすくて助かります。
ありがとうございます。
百人一首さん、コメントありがとうございました!
アルゴリズムは最初は難しく感じる人が多いですが、慣れるとすごく面白いし、プログラミングに通じる大切な考え方でもあります😄
自分のペースに合わせて何度か見てもらいながら、ぜひ着実に理解していってください!
世界最古のアルゴリズムは最大公約数を探し出すアルゴリズムです。
じつに、数千年前に考案されたアルゴリズムで、現代的な言語では1行で表現出来ますが、
現代のプログラミングに絶対必要な考え方が含まれていたりします。
面白いので、考えてみようー
たしかに、最大公約数を求めるアルゴリズムには基本3構造(順次・分岐・繰り返し)のすべてが含まれてますね。
これが分かったら、アルゴリズムの基本はしっかり理解できてるかなと思います。
@@SekaChan 数千年前にさ、これ、考えたやつって、かなりすごいよね
@@SekaChan 面白いと思ったら書いてみよう。
それが全ての始まりなんだからさ。
バグってもいいじゃん、
治せばすむことだし。
楽しむことだけを考えよう。
fun to hack
先日基本情報のサンプル問題を解いたところが、やっぱり理解出来なくて解説をみたらなんとか理解できました。旧試験時代には解説を見ても分からない事が多く困っていましたが、午後対策本2週して次は3回目に入りました。まだなかなか理解出来ない問題もありますが菅原先生が基礎を楽しく解説していただけるのでありがたいです。本来こんなことを学ばなければいけなかったのかと感じました。早く合格出来るようにしたいです。私レベルアップしてますかね?ちなみにパイザでプログラム組んでます。Javaです
まきさん、コメントありがとうございました!
理解できなかった内容が理解できたのであれば、着実にレベルアップできてると思いますよ👍
アルゴリズムは理解できればすごく面白い分野なので、ぜひ楽しみながら勉強を進めていってください!
Javaでプログラムを組みながら勉強できれば、さらに効率良くスキルアップできそうですね。
@@SekaChan 私自身も3年ぶりに試験を受けて落ちてしました。午前はなんとかギリギリでしたが午後は310点とひどいものでした。プログラミングをしないといけないとは感じてました。しかし何をやっていいのかわからなかったため悩んでいました。そのため色々と探してパイザラーニングをやっています。写経になってしまいますが‥しばらくは慣れていくしかありません。
字が綺麗!!
Michiさん、コメントありがとうございました!
字は超ゆっくり丁寧に書いてます!
実際クライアントさんの要望をアルゴリズムを図を使って考えられるかが今は、心配ですがこの動画を何回も拝見させて頂いて、基本をしみつけてこれからしっかり開発出来るように勉強したいと思います。毎日拝見して勉強させて頂いてます!いつも有り難うございます!!41歳ですがエンジニアを目指し新しい事に挑戦中です(笑)
清澤健さん、コメントありがとうございました!
この動画で解説した「順次進行」「分岐」「反復(繰り返し)」の3つの構造を理解できれば、クライアントさんや他のエンジニアとのやり取りに必ず役立つと思います✨
何かにチャレンジするときに年齢が気になることもありますが、これからの人生で「今」が一番若いですからね。
僕もまだまだ新しいことに挑戦していくので、ぜひお互いに頑張っていきましょう!
@@SekaChan 菅原先生、心強い返信コメントして頂き有り難うございます !(順次進行)(分岐)(反復)をしっかり身につけていきたいと思います!先生の有難いコメントを頂きもっとモチベアップしたので今日も動画拝見させて頂いて勉強頑張ります!!
非常にわかりやすくてよかったです。
tamaritamari1230さん、コメントありがとうございました!
わかりやすかったみたいで良かったです😄
とても解かりやすかったです。
たたさん、コメントありがとうございました!
そう感じてもらえて良かったです✨
アルゴリズムはどのプログラム言語にも共通する考え方なので、ぜひ今後に活かしていってください!
理解しました。ありがとうございます。
Vone Utiさん、コメントありがとうございました!
アルゴリズムが理解できたみたいで良かったです😄
すべてのプログラミングの土台になっている考え方なので、ぜひ今後に活かしてください!
線形探索法が非効率の例で辞書調べて寝ちゃうっていうのが面白かった😂
楽しんでもらえて良かったです😄
線形探索法は非効率なんだっていうイメージが頭に残ったら嬉しいですね。
最後の問題のMは最大値を表すっていうのは、ある添字にいった時点でのそれぞれの最大値を表すっていう理解であってますか??
すいませんあともう一つ聞きたいんですけど、6番の線形探索法っていうところからは教科書に全く載ってないんですけど、共通テストのことを考えた場合やった方がいいですかね?
最後の問題(1:46:40)にMは出てこないので、たぶん別の問題でしょうか🤔
6番以降は載っている教科書もあるので、模試や入試で出てくる可能性がありますね。
(例えば「線形探索」という用語は7割の教科書で説明されています。説明がどこまで細かいは教科書によって違いますが‥)
わかりました!!頑張ります!
ちなみにMのやつは分岐構造の動画の最後の問題ですすいません!!
@@rana4663 さん、返信ありがとうございます!
改めて見直しましたが、たぶんMは配列の問題に出てくるやつですね。
だとしたら、【Mはある添字にいった時点でのそれぞれの最大値を表す】という考え方で合ってますよ👍
菅原先生〜!こっちにも遊びに来ました^^
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 ここまで
ないとさん、コメントありがとうございました!
アルゴリズムはプログラミングの土台になる考え方なので、JavaやPythonの理解につながりますよ👍
まとめに書いてくれている「アルゴリズムは複数考えられる」は、たしかに超重要ですね。
1つの処理に対して1つのプログラムの書き方しか思いつかない人よりも、複数の書き方の中から状況に合わせて(処理スピードを優先するか、メンテナンスしやすさを優先するか、など)最適なプログラムを書ける人のほうが強いエンジニアといえるのかなと思います。
繰り返しの表現方法について教えてほしいです。
i:n-1,-1,0
というのは、どういう意味なんでしょうか。
n=4であれば、
iは3から0まで繰り返すという意味なんでしょうか。その場合、i=n-1,0ではダメなんでしょうか。なぜ真ん中に-1があるのかもわかりません。
お忙しいところ恐縮ですが、ご教示のほど宜しくお願いいたします。
コメントありがとうございました。
34:08 あたりから解説している反復記号では、ループ始端内に
【変数:初期値、増分、終値】
を指定する書き方もあります。
n=4で「i:n-1,-1,0」と指定した場合は「i:3,-1,0」となるため、n=3,2,1,0と4回処理を繰り返すことになります。
JIS規格で上のように書き方が決まっているため、「i=n-1,0」とは書けないですね。
@@SekaChan
お忙しいところ、ご教示いただきありがとうございました、
エクセルvbaで繰り返しを表す時、
for i = 2 to 10
と書くと思いますが、常にiが1ずつ増えていってたので、初見では何が言いたいのか分からず、また、なぜ必要なのか疑問でした。
おかげさまで理解することができました!
質問なのですが 31:24 の3≦3になって、終了でなくてまたループするんですか?
あ、なんでもないです!
0→A、1→nになるのが理解できておりません。
なぜAは0から始めてnは1から始めるのでしょうか?
お返事いただけますと幸いです
せっかく質問してくれたのにすみませんが、動画のどの部分について質問を受けているかが分からないので回答が難しいです🙏
29:13あたりの問題です!
横からすみません。
A=Answer(計算結果)なので最初は0から、n=number(今回の場合、1.2.3)なので最初は1から始まっているのだと思います😊
@@nana-ld5hx さん、ありがとうございました!!
僕もそんなスマートな回答ができるようになりたい😳