c
#include
: 条件演算子 a? もう一度基礎からC言語 第20回 いろいろな演算子~演算子の優先順位 演算子の優先順位と結合規則. b: c a が真なら b が実行、 a が偽なら c が実行。 例を見てみましょう。 cnt = (cnt < 100)? cnt + 1: 0; この例ではcntが100未満なら1カウントアップされ、100以上ならcntが0となります。つまり、以下のif文と同じとなります。 if (cnt < 100) { cnt = cnt + 1;} else { cnt = 0;} 比較演算子 比較演算子は、関係演算子とも呼ばれ、C言語には下記のものがあります。 <比較演算子と意味> 演算子 一般的な読み 例 意味 < 小なり a < b a は b より小さい <= 小なりイコール a <= b a は b 以下 > 大なり a > b a は b より大きい >= 大なりイコール a >= b a は b 以上 == イコール a == b a と b は等しい! = ノットイコール a! = b a と b は異なる 比較の「==」と代入の「=」をうっかり間違えるケースがよくあります。気をつけましょう。また、ノットイコールは「<>」ではなく「!
h> if ((num & 0x80) == 0x80) return 0;} この 「マスク処理」 は、 組み込み開発のハードウェア制御 にてよく登場します。 マスク処理に関して詳しく知りたい方は『 ビット演算を扱うための本当の視点と実践的な使用例を図解 』を読んでおきましょう。 ナナ 組み込み開発の初心者は、この不具合をよく出します。 ビルドエラーが発生しないため、なかなか問題に気づきづらい のです。 ビット演算の演算子は優先順位が低いことに要注意 ですよ。 覚えておくべき優先順位の関係性③:インクリメント・デクリメントと間接参照演算子 間接参照演算子(*)はポインタ制御にて出てくる演算子です。 間接参照演算子を利用する目的は、ポインタが参照しているメモリにアクセスするための記号です。 次のプログラムはmain関数で定義されたcount変数の値を、subfunc関数でインクリメントするものですが、正しく動きません。 #includevoid subfunc(long * pdata) *pdata++; return;} long count = 0; subfunc(&count); printf("%d", count); return 0;} 間接参照演算子とインクリメント・デクリメント(後置)は次の優先順位となっています。 インクリメント(後置)の方が先に実施されることがわかります。 そのため正しくプログラムを動かすためには、次のように()で間接参照演算子を先に演算する必要があります。 #include (*pdata)++; return 0;} count変数の値が「1」になっているのがわかります。 ポインタのアスタリスクについて理解できていない方は、『 ポインタ変数定義の正しい解釈とは【「*」の意味を解説】 』を見ておきましょう。 ナナ ポインタを経由してインクリメントしたいというシーンは、多くはないですがたまに出てくるシーンです。 この組み合わせも覚えておきましょう。 演算子の種類と優先順位についてのまとめ C言語には多数の演算子が用意されているが、徐々に使いながら覚えればよい! 複数の演算子が同時に使用された場合は、優先順位に従い順に演算される! 優先順位を全て丸暗記する必要はなく、ポイントとなる3つの組み合わせを覚えておくこと!
演算子の優先順位 | Programming Place Plus C言語編 先頭へ戻る Programming Place Plus トップページ – C言語編 C言語に存在する演算子の優先度が、どのように定義されているか一覧できるようにしました。 演算子の優先順位 「優先度」の列の数値が小さいものほど先に処理されます。 「評価 の向き」というのは、その演算子 の左側と右側の式のうち、どちらから処理されるかという意味です。 優先度 演算子 機能 評価の向き 解説章 1 () 関数呼び出し 左から右 第9章 [] 配列の要素 第25章 -> ポインタからの構造体メンバアクセス 第31章. C++ の組み込み演算子、優先順位、および結合規則 | Microsoft Docs. 構造体メンバアクセス 第26章 ++ 後置インクリメント 第15章 – 後置デクリメント (type) {…} 複合リテラル 第26章 、 第32章 2! 論理否定 右から左 第13章 ~ ビット否定 第49章 前置インクリメント 前置デクリメント + 符号 第4章 - 符号を反転させる * ポインタの間接参照 第31章 & メモリアドレス sizeof 変数や型の大きさを取得 第6章 _Alignof (C11) アラインメント値を取得 第37章 3 (型名) キャスト 第21章 4 乗算 / 除算 第4章% 剰余 5 加算 減算 6 << 左シフト >> 右シフト 7 < 左の方が小さい 第11章 <= 左が右以下 > 左の方が大きい >= 左が右以上 8 == 等しい 第11章! = 等しくない 9 ビット積 10 ^ ビット排他的論理和 11 ビット和 12 && 論理積 13 || 論理和 14?
広告 演算子が一つだけの場合は優先順位を気にする必要はありませんが複数の演算子を組み合わせる場合には演算子の優先順位を把握しておく必要があります。 主な演算子の優先順位は次のようになっています。 演算子 結合順位% * / 左 + - 左 << >> 左 > >= < <= 左 ==!
h>
int subfunc(int arg1, int arg2)
if (arg1 == 0 || arg1 == 1 && arg2 == 0 || arg2 == 1)
return 1;}
return 0;}
printf("%d\n", subfunc(0, 0)); // ケース①
printf("%d\n", subfunc(0, 1)); // ケース②
printf("%d\n", subfunc(0, 2)); // ケース③
return 0;} ケース③の呼び出しでは、第2引数が「2」であるため戻り値は「0」でないといけませんが結果は「1」になっています。 このプログラムは次のように間違った順番で演算されています。 それでは()を使って正しく優先順位を調整したプログラムを示しましょう。 #include 1. ポイント
音も光も、空気中を進む速さが決まっています。
音は約340m/秒 、 光は約30万km/秒 で進みます。
音も非常に速いですが、 光は音と比べものにならないぐらい速い ことがわかりますね。
このような音と光の速さのちがいを利用して、ある地点間の距離を測ることもできます。
このように、光と音の性質を利用した計算問題は、テストでもよく出題されます。
まずは、光と音の速さについて、基本から押さえていきましょう。
2. 光の速さ
光は、空気中を 約30万km/秒 の速さで進みます。
これは、たった1秒で地球を約7周半する速さです。
ものすごい速さですね! ココが大事! 光の速さは約30万km/秒
3. 音の速さ
音は、空気中を 約340m/秒 の速さで進みます。
これは気温が約15℃のときのものです。
ちなみにこの速さは、 マッハ という単位を使って、 マッハ1 と表されます。
光の速さは約30万km/秒でしたから、光の速さをマッハで表すと、
300000÷0. 340=882352...
マッハ88万ほどになります! 3分で計算できる!初期微動継続時間・震源までの距離・地震発生時刻の求め方 | Qikeru:学びを楽しくわかりやすく. 光は音の88万倍の速さで伝わるということですね。
改めて、音の速さ(音速)と光の速度(光速)のちがいが分かりますね。
音の速さは約340m/秒
4. 光・音の速さから距離をはかる方法
少し話が変わりますが、夏の風物詩といえば 花火 ですね。
花火を少し離れたところから見たとき、「花火が開いて、しばらくしてからドンという音が聞こえた」という経験はありませんか? このようなズレは、光と音の速さから説明することができます。
光は瞬間的に伝わり、音は光よりも時間をかけて伝わる ことを学びました。
実は、これを利用して、 花火まで距離を調べることができる のです。
実験を通して、いっしょにその方法をみていきましょう。
打ち上げ花火を観察していたら、 花火の光が見えてから4秒後に音が聞こえました。
このとき、花火を打ち上げた場所までの距離はどれくらいでしょうか? 光はほぼ瞬間的に伝わり、音は約340m/秒の速さで伝わります。
よって、 光と音が届く時間差 から、花火までの距離が求められるのです。
花火の光が見えてから4秒後に音が聞こえました。
つまり、花火の音は打ち上げた場所から届くまでに4秒かかったということです。
340×4=1360
よって、花火を打ち上げた場所までの距離はおよそ 1360m です。
光と音が空気中を伝わる速度のちがいから距離を求める方法をおさえましょう。
光と音の届く時間差から、距離が求められる
映像授業による解説
動画はこちら
5. ノット。
船などの速さを表すときに良く用いられる単位 ですよね。
そんなノットという単位、何となく見たり聞いたりしたことはあるものの、 実際にどのくらいの速さなのかいまいち分からない ところ、ありますよね。
そこで今回は、 速さの単位「ノット」について分かりやすくまとめてみました! このページでは、そんなノットの定義のほか、時速や秒速に換算できる計算フォームなども用意しましたので、ぜひ最後まで読んでみてくださいね(^^)
ノットの定義
それでは早速ではありますが、速さの単位である ノットの定義 から見ていきたいと思います。こちらです。
1ノット=1時間で1海里進む速さ
なるほど、 1時間で1海里ほど進む速さが1ノット だったのですね! しかし、ここでまた新たな疑問が生まれます。それは 1海里という距離がどのくらいなのか ということです。普段の生活では距離の単位は「メートル」を使っていますから、海里にはなじみがないですもんね。
そんな 海里の定義 は、下記の通りです。
海里の定義
1海里=1852m
これは世界中で使われている国際海里の定義であり、 1海里は正確に1852m となります。
なので先ほどのノットの定義を海里ではなくメートルで表すと、 「1ノット=1時間で1852m(=時速1. 【中1理科】音・光の速さとは~速さの求め方、時速・秒速の変換~ | 映像授業のTry IT (トライイット). 852km)」 ということになりますね。
ちなみに、海里の距離がこのような中途半端な数値になっているのは、 地球の緯度1分の距離が由来になっているから です。緯度1分は、緯度1度の距離の60分の1に当たります。
※海里の由来となっている緯度については別ページで詳しくお話していますので、気になる方はこちらを参照されてくださいね。
ノット、時速、秒速の換算計算式
第1章ではノットの定義について見てきましたが、 定義だけではいまいち実感が湧かない ところ、ありますよね。
そこでこの章では、ノットがどのくらいの速さなのか実感できるように 実際に計算してみたいと思います! 計算フォーム
こちらにノット、時速、秒速のそれぞれを換算できる計算フォームを作りましたので、 いろいろと計算して遊んでみてください(^^)
速度の数値と単位を入力して計算ボタンを押すと、 ノット、時速、秒速それぞれに換算した数値を出力 します。
計算式
ちなみに、上記の 計算で使用している計算式はこちら になります。
1kt=1. まずは、秒速で表すと1(m/s)なので、つまり、秒速1mになります。
次は、分速について考えてみましょう。
分速とは1分間(60秒間)にどれだけの距離を進むかということなので、1秒間に進む距離を60倍すれば求まりそうですよね。
したがって、1分間は60秒間なので1m×60倍=60mとなり、1分間に60m進むので60(m/min)、つまり、分速60mとなります。
理論的に計算すると、次のようになります。
※ 倍分 を使って計算してください。なお、単位の次元が同じなので、分母のsと分子のsは消すことができます。
最後は、時速について考えてみましょう。
時速とは1時間(3600秒間、又は60分間)にどれだけの距離を進むかということなので、1秒間に進む距離を3600倍、又は1分間に進む距離を60倍すれば求まりそうですよね。
したがって、1時間は3600秒間なので1m×3600倍=3600m=3. 6kmとなり、1時間に3. 6km進むので3. 6(km/h)、つまり、時速3. 6kmとなります。
※倍分を使って計算してください。
3.速さの練習問題2
時速を秒速にする問題を解いてみましょう。
時速30km(30km/h)を秒速にするとどうなるでしょうか? G/kgとppmの変換(換算)方法は?【グラムパーキログラムの計算】 | ウルトラフリーダム. まずは、kmをmにしましょう。
30km=30000mとなります。
秒速とは1秒間当たりに進む距離なので、30000mを3600秒で割れば求まりそうですよね。
したがって、30000m/3600s≒8. 33(m/s)
秒速8. 33mとなります。
4.図を使って速さを求める式を覚える
速さの単位を見て速さを計算する方法の他に、もう1つわかり易い方法があります。
次の様な図を描いてください。
描き方は丸の中に、は、じ、き、という文字を書いて、それぞれ線で区切ってください。
丸の中のそれぞれの言葉の意味は、
は=速さ
じ=時間
き=距離
のことを表しています。
今回は、速さを求めたいので、丸の中の「は」と書いてある部分を丸の外に移動して、「は」と丸の図形をイコールで結んでください。
この作業をすることによってあるものを求める式ができます。
この上の図をじっと見て何か思い浮かびませんか? は=き/じ、に見えませんか? は(速さ)=き(距離)/じ(時間)という式ができましたよね。これは次のように速さを求める式です。
初めに説明しました速さの単位から速さを求める方法と同じ式ができ上がりました。
km/hとはkm÷hという意味なので、/は割るということを表しています。
5.速さの計算を覚えるおすすめの本
速さの計算でつまずいているお子さんはいませんか。速さの計算方法がわかるおすすめの本を紹介します。
本の名前:強育ドリル 完全攻略・速さ
Amazonで詳細を見る
楽天ブックスで詳細を見る
強育ドリルは速さの入門の本です。
速さの計算は公式を覚えれば一通り計算できますが、それだけでは足りないところがあります。
それは、速さの公式がなぜその式になっているのかの速さの概念を理解していないからです。
速さについて基礎から詳しく解説されているので速さの計算方法が理解でき、速さの問題が解けれるようになります。 算数
2020. 08. 19 2016. 01. 16
「速さ」の単元は、多くの小学生が苦手とします。というか、中高生ですら、苦手な生徒が多いという現実……。そんな「速さ」の単元でも特に嫌われるのが、次のような問題です。
【問題1】
時速288kmで進む電車があります。分速何kmですか。
この問題のどこが難しいのでしょうか? どうして60で割ったの? 【問題1】で、生徒は次の計算をしました。
288÷60=4. 8 A. 分速4. 8km
答自体はこれでOK。しかし、僕は 「どうして60で割ったの?」 と生徒に質問します。
例えば、1時間を分に変換する場合、"1×60=60"で60分です。つまり、時間を分に直すときは60をかけます。
【問題1】は、時速を分速に変換する問題です。時間を分に変換するなら60をかけるべきではないのでしょうか? ここで生徒は頭を抱えます。「どうして60で割ったの?」と聞かれると、自分の計算に自信が無くなるからです。適当に計算していたという証拠でもあります。
速さの変換≠時間の変換
【問題1】は速さの変換です。 そもそも時間の変換とは考え方が異なります。 では、何がどう異なるのでしょうか? まずは、「速さ」の復習をしましょう。「時速」「分速」の定義は次の通りです。
・時速…1時間に進む道のりで表した速さ
・分速…1分間に進む道のりで表した速さ
これを踏まえて、【問題1】を考えます。「時速288km」は「1時間で288km進む」です。"1時間=60分"なので、「60分で288km進む」と言い換えられますね。一方、「分速何kmですか」も定義通りに考えれば、「1分間に何km進みますか?」と言い換えられます。
つまり、 【問題1】は、「60分で288km進むなら、1分間で何km進みますか?」です。 "60分÷60=1分"で時間が短くなれば、進む道のりも当然短くなります。したがって、比例の考え方から、"288kmも60で割る"わけです。
理屈をきちんと考えれば、「時速を分速に変換するときは60で割る」という"お約束"を丸暗記する必要はありません。
理屈で考える「速さ」の単位換算
では、次の問題はどうでしょうか? 【問題2】
【問題1】の答は、分速何mですか。
こちらの問題は、既に「分速」の部分が揃っています。つまり、 「1分間で4. 8km進むなら、1分間で何m進みますか?」と言い換えられます。 単純にkmをmに変換するだけですね。60で割ったり60をかけたりする必要はありません。
したがって、"1km=1000m"を踏まえて次のように計算します(単位換算については、 過去記事 をお読みください)。
4.3分で計算できる!初期微動継続時間・震源までの距離・地震発生時刻の求め方 | Qikeru:学びを楽しくわかりやすく
G/KgとPpmの変換(換算)方法は?【グラムパーキログラムの計算】 | ウルトラフリーダム
852km/h 1kt=0. 514m/s
1kt=1. 852kmは、ノットの定義そのままですね。
また、秒速は時速を3. 6で割れば求められますので、1kt=1. 852÷3. 6=0. 51444…となります。この数字は割り切れないので、上記の計算フォームでは、1kt=0.
【中1理科】音・光の速さとは~速さの求め方、時速・秒速の変換~ | 映像授業のTry It (トライイット)