ITの勉強をしている者です。大変はずかしいのですがアルゴリズムが全く理解できません。
作業手順(フローチャート)を作成するのにも全くイメージが思い浮かびません。
それをVBAでプログラムということになるのですがなにがなんやらさっぱりです。
ある人からは、あなたには無理ですあきらめなさいと言われる始末です。
正直くやしいです。なんとか克服しようと勉強してはみるのですが、まったく成果があがりません。
覚えるきっかけみたいなのがあれば良いのですが今のところなんともなりません。
効率のいい勉強の方法やコツみたいなのがあれば是非知りたいのです。
なんとも情けないですが詳しい方おしえてください。
No.5ベストアンサー
- 回答日時:
「アルゴリズム」「フローチャート」のキーワードですでに
苦手意識が沸いているのであれば、いったん視点を変える。忘れる。
これまでの習得はどうなのか、これにも『手順』があります。
『無理』と言うのは
その言った人自身もこれを改善させるための『手順』がわかっていないからでしょう。
基本からやって順当に力をつけてきている人を見つけて、
こうなった過程でどこが誤っているのか、
何から始めたらよいか、より良い指導をもらうところから始める方がよいです。
問題をもっと明確にしましょう。
「できない」「うまく動かない」「わからない」では
直すべき箇所、原因は不透明です。
これまでの勉強の仕方を提示すること。
おそらく
138本の缶ビールがあったときに、
24本入り1箱、6本入り1ケース、4ケース1箱としたときに
端数は何本になるのか、
こういうときに、
算出式をつくろうと考えて悩んでしまう、そんなやり方になっているのかと思われます。
6本で1ケース、12本で2ケース、・・・、
132本で・・・、138本で・・・、
最初は138のときがわかるまで順番に考えたらいいんです。
つまりは、
IF ・・・
ENDIF
IF ・・・
ENDIF
IF ・・・
ENDIF
IF文の羅列でも結果は出ます。
これも低レベルと言われてもアルゴリズムです。
6、12、18・・・とループを使わないといけない、そんな概念ははずすこと。
正しく動く事項、自分で理解できた事項を積み重ねる。
その後で、
ループにすればスッキリするということが見えてくるし、
6で割れば比較的早く答えが出るというのも見えてきます。
求め方というのは1つとは限らないのです。
「アルゴリズムが理解できない」「イメージが思い浮かばない」
というのもよくわかりません。
アルゴリズムは自分が理解できた手順で生み出すもの、で良い。
それができなかったら人の生成したものを見てもわからないものです。
できないことを克服、でなくて
できることを確実に自分の力にする、
(=できる範囲内で遠回りしてでも結果は出せるのかどうか)
理解できてるところと
できてないところを明確にすること。
それから
与えられた仕様を「理解できる、できない」は国語力も影響します。
日本語和文でいかに組み立てるか、
コードにするときにはその日本語をVBA仕様に置き換えるだけ、
悩む段階ではない、そういう意識をもつこと。
ご回答ありがとうございます。
貴重なアドバイスいただき感謝いたします。
こうじゃなければいけないというのはないのですね。
頭をやわらかくして考えてみる。そして自分のできることから
やってみる。今後はもう一度自由な発想で取り組みたいと思います。
No.4
- 回答日時:
プログラムでもよくよく見れば80%以上が基本文法の
羅列でしかなく、窓拭きのフローチャートとさほど変わら
ないです。
手順を順番に書いていくだけです。
小学校の夏休みの宿題で「一日の計画表」が書けるか
どうかのレベルの話で、イメージが思い浮かぶかどうか
など最初から問題にならないはずです。
逆にそれが出来ないのなら、小学校の夏休みの宿題で
「一日の計画表」を書くところからやり直す必要が
あります。
プログラムという作業は、目的に応じて解決手段を
自分で考える事になります。その作業手順を英単語
もどきで書いているに過ぎません。
「全く理解できません。」などという質問はせずに、
なぜ自分では理解できないかを考え、その原因を推定
し、自分で検証した上で、更に助言が必要ならはじめて
他人に質問するようにしてみて下さい。
それ自体が、プログラミングができるかどうかの
訓練になります。
ご回答ありがとうございます
難しく考えすぎていました。
なんでもいいからとりあえず自分で考えることが大事なんですね。
動くかどうかはとりあえず後回しということで。。。
大変参考になりました。
No.3
- 回答日時:
>作業手順(フローチャート)を作成するのにも全くイメージが思い浮かびません。
フローチャートをかけないとなるとITだけじゃなくって通常の生活でも大変なんですが。。。
例えば、窓拭きのフローチャート
1.バケツを用具入れから出す。
2.雑巾を用具入れから出す。
3.洗剤を用具入れから出す。
4.判断:洗剤の残量は十分か?
4-1.不足している→買いに行く
4-2.十分足りる→次へ進む
5.バケツに水を入れる
・・・
これを図にするだけなのでタブン誰でも書けると思いますよ。
さて、プログラムのフローチャートになるといきなりかけなくなるのはなぜ?
と考える前に例えば、地震予知のフローチャートはかけますか?
かけませんよね、私もかけません。
なぜ?
なぜなら、地震予知をどうやるかがわかっていないからです。
だから、プログラムのフローチャートをかけるようになりたいなら、
プログラムを動かすのに何が必要かを把握しましょう。
まず、変数の定義、次は、(ここからはさまざまですが)入力データのエラーチェック、
それから、・・・・
何をする必要があるのかわからないと途方にくれるだけかもしれません。
他人の作ったプログラムのフローチャートを書いてみるとかしたら、
何をするときにどんなフローになるのか分かってくるのでは?
あるいは他人の作ったプログラムをデバックモードで1行ずつ動かしながら
フローと見比べたり、フローを作ってみたりとかしてもいいかもしれません。
アルゴリズムはたぶん、数をこなせばそのうち分かってくるでしょう。
いくつかの定型的なものは教科書レベルの本に載っていたりしますが。
(例えばバブルソートのアルゴリズムとか・・・ちょっと変わった方法なので面白いですけどね。
ま、先の話としておいたほうがいいです。)
ご回答ありがとうございます。
なるほど日常生活のアルゴリズムというのもおもしろいですね。
さっそくやってみようかとおもいます。
やはり自分は難しく考えすぎていました。
大変参考になりましたありがとうございました。
No.2
- 回答日時:
質問者の考えることがピントハズレです。
私が回答で書くVBAコード(スクリプト)など、アルゴリズムを意識することはまずありません。
アルゴリズムといえば、私は数学的な裏付けを持った名前の付いたものを連想して言ってますが、日頃ここへ出るVBAの質問などでは、ほとんど出てきません。
またフローチャートを作ることは、回答者が初心者には勧めますが、絶対無くてなら無いものではない。
というのは私の書くコードなど数十行以下ですから。またそういう設計図を残す義務も無いからです。
だからそういうことをしなければならないプロはフローチャートやドキュメンテーションをその場面で考えます。
ーー
したいことを精密に文章化するのが大切では無いですか。
一方エクセルVBAであれば、頭の隅に、経験によって、エクセルで出来ること、VBAで、できるプロパティ・メソッドを頭の中に思い浮かべて、使えるかどうかを、対比していきます。
結局何やかや言っても、エクセルの(何が出来るかの)勉強と、使えるVBAコード(多くて数行の塊)を、質問者のポケットに
無いか、極く少ないためでしょう。結局経験が足りないということに尽きる。
昔のBasicでは20-30のステートメントを使いまわしてプログラムを作成したが、エクセルVBAでは、オブジェクト・メソッド・プロパティなどは、解説書は800ページにもなっています(すべて暗記するものではないが)。
ーー
ITやアルゴリズムやフローチャートなど大きな言葉だけ質問者は使っていますが、そんな態度ではだめです。
時間をかけて、習い覚えるのです。最近は徒弟制度が向いているとさえ思います。
一問題・1パターンという事で習い覚えていくと良い。ある程度それ(問題パターン)が溜まると展望が開けるのでしょう。
質問者はVBAを考える時間は今まで累積何時間でしたか。問題は何問しましたか(回答を見ても良い)。
取るに足らない時間ではないですか。VBAの本は何冊読みましたか。其れで判らないといってませんか。
No.1
- 回答日時:
アルゴリズムって覚える部分も有りますけど、この場合はおそらく考える方だと思うんですよね。
おそらく数学とか文章問題苦手じゃありませんか?
論理的な言葉で問題を捉えて、それを数式にする、というのはプログラムの基本です。
効率とかじゃなく、ソートとか単純なものなどで、日頃していることをアルゴリズムにするとかからやるしか無いんじゃないですかね。
VBAなんてちょっと使えるだけじゃなんにもなりませんが、
その数歩手前で困っているなら適性は無いと思います。
ITを勉強していると言うよりはその準備と言う感じですね。
例えば、1000円未満のお金を一番少ない硬貨で作るアルゴリズムって作れますか?
少なくともあなたはできますけど、それを具体的な手段に落とし込めますか?
そういうのが多分基礎だとは思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- Excel(エクセル) ExcelのFSO(ファイルシステムオブジェクト)について学びたいのですが。。。 5 2022/12/15 18:06
- 高校 是非自分のためにきつく言ってほしいです。 悩みがあります 僕は現在高校2年生です。 成績は悪かったも 3 2022/09/04 22:36
- 学校 入試2週間前なのにやる気が起きない。 2 2023/01/04 00:17
- 高校受験 中3 9月 模試の結果D判定 夏に受けた模試の結果が第1志望D判定でした。 あと21点でやっと合格圏 3 2022/09/09 23:19
- 大学受験 自己推薦書の添削や意見・アドバイスお願いします 2 2022/08/27 19:34
- インターネットビジネス webライターになる為に、記事作成の勉強の他にSEO対策の勉強は要りますか webライターになる為に 2 2022/12/12 01:27
- 大学受験 高3。通信制高校生。英検四九レベル偏差値は30も無いでしょう。社会不適合者です。 中学は2年から頭に 1 2022/05/12 22:06
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) 大学一年でVBAのプログラミングを勉強しているものです。来週の情報の授業で以下の問題のプログラムを勉 4 2023/01/19 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
C♯で電卓を作成しています。演...
-
ハッシュアルゴリズム
-
Stuck
-
Dijkstraて
-
2部グラフの最大マッチングと...
-
C# 再帰よるスタックオーバー...
-
Visual studio2019 C#で生まれ...
-
対話型遺伝的アルゴリズムにつ...
-
携帯のパスワードについてです。
-
[ EXCEL VBA ] 図形を読み込む...
-
根を求めるアルゴリズムについ...
-
トップダウン解析とボトムアッ...
-
OpenCVのライセンスについて
-
期間重複チェックがわかりません
-
アルゴリズム系の問題知りませ...
-
三次元形状曲面の導出法
-
デジタル時計のアルゴリズム
-
vbaで、連立方程式を解く方法に...
-
詰め将棋をとくのは、アルゴリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
Dijkstraて
-
Stuck
-
[ EXCEL VBA ] 図形を読み込む...
-
BCDについて
-
アルゴリズムとプロトコールの違い
-
期間重複チェックがわかりません
-
グループを均等に分けるには?...
-
三次元形状曲面の導出法
-
あいまい検索(文字列一致率)
-
Visual studio2019 C#で生まれ...
-
gooという検索エンジンの後にGo...
-
フリーセルの難易度について
-
C♯で電卓を作成しています。演...
-
経路探索について
-
CRC-CCITT16の算出法
-
理系の高校生です。大学で情報...
-
詰め将棋をとくのは、アルゴリ...
-
偏りのある乱数のアルゴリズム
-
OpenCVのライセンスについて
おすすめ情報