質問: Cをどうやって学びますか? (コンピュータプロジェクト) あなたはこの質問の男のためのコードを書いて私を助けることができますか? 8ピンのLEDがデジタルピン2〜9に接続されたArduino Unoがあります。 8要素の配列を作成します。 2と9の間の乱数で入力してください(すべてを含む) その中で最大の数を決定するプログラムを書く。この番号をmaxという名前の変数に保存します。この番号をシリアルモニタに表示します。この番号に接続されているLEDを点滅させます。遅延時間を0.5秒とする。 ランダム関数は重複した数値を生成する可能性があることに注意してください。例えば、生成される配列は、{3,4,4,7,6,2,5,7} 最大数は7です。配列内で2回発生したので、2回点滅する必要があります^ _ ^ 配列内で最大の回数が3回発生した場合、それを3回点滅させる必要があります。したがって、任意の発生回数 私はこれまでこれを書いているが、私はそれがすべて間違っていると確信している ``` int pins[8]={2, 3, 4, 5, 6, 7, 8,9}; void setup() { pinMode(pins[8], OUTPUT); } void loop() { x=random(0, 8); digitalWrite(pins[x], HIGH); delay(1000) digitalWrite(pins[x], LOW); delay(1000) } ```
回答: 最初のヒント:pinMode()は一度に1つのピンにのみ適用されます。 8つのI/Oピンのモードを初期化するには、それを8回実行する必要があります。 2番目のヒント:@ChrisStrattonが示唆したように、まず乱数セットを生成します。ターミナル出力とデジタルI/Oとは何をするのでしょうか?これらのことをそれぞれ行います。より大きな問題を小さな問題に分割するのに役立ちます。 Update: Considering your updated title, *How do I learn C?*, and since the question reads like a homework assignment, aren't you already taking a class in C or C++? If so, how do you find it lacking, i.e., what additional resources or direction would be most helpful to you? There are a number of good books on the C language, and one of those would be a good place to start. If you don't already have a favorite one, you can't go wrong with *The C Programming Language*, by Brian Kernighan & Dennis Ritchie, the authors/designers of the C language and its early compilers. It is book on the C language, not on programming per-se, so if you are new to programming as well, a programming tutorial would be an excellent additional choice (sorry I don't have one to recommend). 次に、ArduinoIDEに付属しているサンプルプログラムを叩きます:IDEツールバーの「開く」ボタンをクリックします。ファイルではない|開いているメニュー]をクリックすると、現在のスケッチのメニューが表示され、ブレークの下にサンプルプログラムのカテゴリが表示されます。例をひとつ選び、それを読んで、それが何をしているのか、なぜそれが書かれているのか理解しようとする。それから### pを微調整して、それがどのように異なって振る舞うかを理解し、それを**壊す**。 a)コンパイラからのエラーメッセージを解釈し、b)間違いを見つけて修正することで、多くのことを学びます。あなたが成功している時間の少なくとも2倍の時間であなたのプログラムを壊していないならば、あなたは十分な努力をしていません!