C++ / 引数のポインタ渡し / 函数から多値を返したい

多値は返せないので、値を格納するためのアドレスを函数に複数渡してそれぞれのアドレスに値を書き込んでもらうことにする。 #include <iostream> using namespace std; void basicCalc(double a, double b, double *add, double *sub, double *mul, double *div){ *ad</iostream>…

C++ / 引数のポインタ渡し

#include <iostream> using namespace std; void sute(int *a){ // 假引数として普通の変数ではなくポインタ変数をとって、 *a = 10; // そのポインタに何かを格納する。 } int main(){ int A; // 何かを格納するための変数を用意しておいて、 sute(&A); // その変数の</iostream>…

C++ / 自前の函数を外部ファイルにわける

ヘッダーファイルでプロトタイプ宣言をしておいて、そのヘッダーファイルをメインファイルにインクルードする。 コンパイルリンクするときにメインファイル.cppと一緒に外部ファイル.cppも指定する。 basicCalc.h double add(double a, double b); double su…

C++ / 範囲ベースforとauto型

#include <iostream> using namespace std; int main(){ char vals[] = {'a','b','c','d'}; int num = sizeof(vals)/sizeof(char); // 普通のforループ for(char i=0; i</iostream>

C++ / sizeof演算子

函数ではなく演算子なのでカッコでくくる必要はないがカッコでくくるのが慣例との由。 #include <iostream> using namespace std; int main(){ int a[] = {0,1,2,3,4,5}; cout << "int型排列aの全体のバイト数: " << sizeof(a) << endl; cout << "int型のバイト数: " <</iostream>…

C++ / stringクラス

#include <iostream> #include <string> using namespace std; int main(){ string sute = "これはテストです。"; cout << sute << endl; cout << "これは試験です。" << endl; char hoge[] = "これも試験です。"; cout << hoge << endl; system("pause"); return 0; }</string></iostream>

C++ / 数値を丸める / <iomanip>、fixed、setprecision()

#include <iostream> #include <iomanip> using namespace std; int main(){ double dbl; int n; cout << "Enter any real number: "; cin >> dbl; cout << "Specify the number of digits after the decimal: "; cin >> n; cout << fixed << setprecision(n) << dbl << endl; s</iomanip></iostream>…

オブジェクトのコピー

目的のオブジェクトにカーソルを置いてctrlキーを押しながらドラッグする。Windowsにおける一般的な操作と同じである。

Toolsパレット / Automatic Tool Selectionボタン

Automatic Tool Selectionがオフのときは、スペースキーを押すとPositioning (↖)ツールとWiring (糸巻き)ツールの2つだけがトグルされ、tabキーを押すと、Operating (人差し指)、Positioning (↖)、Lebel (A)、Wirigin (糸巻き)の4つのツールが巡回される。

C++ / コンソール入力(cin)とコンソール出力(cout)と

#include <iostream> using namespace std; int main(){ int num; cout << "Enter any integer: "; cin >> num; cout << "The integer you have entered is: " << num << endl; return 0; }</iostream>

波形グラフ

LabVIEWで使われる主なグラフには「波形チャート」「波形グラフ」「XYグラフ」の3つがある。 波形チャートと違って波形グラフは、n個の要素から成る1次元排列を引数に取る。 要素の値がy軸の値として、インデックス(0ベース)がx軸の値としてプロットされる。…

C++ / hello, world / clするときに/EHscオプションをつける。

#include <iostream> using namespace std; int main(){ cout << "hello, world" << endl; system("pause"); return 0; } C++は、clするときに/EHscオプションをつける。</iostream>

micro:bit / mbed / 温湿度センサーDHT11、DHT22、AM2302 / 1回だけ測定する

#include "MicroBit.h" MicroBit uBit; //MicroBitPin P0 = uBit.io.pin[0]; MicroBitPin P0 = uBit.io.P0; // P0端子に信号ラインを接続する。 // 40要素の配列からバイトデータとして抜き出すための函数。 uint8_t getByte(uint8_t buf[], uint8_t pos){ /…

micro:bit / mbed / 温湿度センサーDHT11、DHT22、AM2302 / データパルスの長さを0、1に変換する

#include "MicroBit.h" MicroBit uBit; //MicroBitPin P0 = uBit.io.pin[0]; MicroBitPin P0 = uBit.io.P0; int main(void){ uBit.init(); // スタートシーケンスを開始する。 P0.setDigitalValue(1);// P0を一旦Hにしてから、 P0.setDigitalValue(0);// P0…

micro:bit / mbed / 温湿度センサーDHT11、DHT22、AM2302 / データパルスの長さを測る

長いパルスか短いパルスかが判別できればよいだけなので、ビジーウェイトを利用して、パルスがHの状態にあるときのループ回数を数えるだけにする。正確なパルス幅は測らない。 #include "MicroBit.h" MicroBit uBit; //MicroBitPin P0 = uBit.io.pin[0]; Mic…

micro:bit / mbed / 温湿度センサーDHT11、DHT22、AM2302 / 動作確認

スタートシーケンスを開始してセンサーから信号が送られてくるかどうかを確認してみる。センサーから送られてくる信号の意味は今のところわからない。短いパルスが0、長いパルスが1。 #include "MicroBit.h" MicroBit uBit; //MicroBitPin P0 = uBit.io.pin[…

Cortex-A、-R、-M

参考: Interface(インターフェース) 2016年11月号, p.49 Armv7のときに、複雑化するアーキテクチャ仕様を用途別に整理して以下の3つのプロファイルに分割した。 Cortex-A: Linuxなどをはじめとする多彩な機能を有するOSを実行するためのMMU (Memory Manageme…

波形チャートの背景色を変える / [背景色]プロパティノード、[フレーム付きカラーボックス]制御器

ブロックダイアグラムに波形チャートの[背景色]プロパティノードを配置する。ループ内に配置する。 フロントパネルに[フレーム付きカラーボックス]制御器を配置する。 フロントパネルのカラーボックスをクリックすると色が変えられる。 colorWaveformChart.v…

VIの開始時に波形チャートのデータをクリアする / [履歴データ]プロパティノード

波形チャートの[履歴データ]プロパティノードに空配列を配線しておけばよい。こうすればVIの開始時に波形チャートのデータがクリアされる。このプロパティノードはループの外に配置する。 clearWaveformChart.vi - Google ドライブ

何かのプロパティをブロックダイアグラム上のオブジェクトで設定できるようにする / Property Nodeを使う

plotSinProperty.vi - Google ドライブ たとえば波形チャートの[スケール]タブ→[スケール変数]→[乗数]プロパティを、ブロックダイアグラム上のオブジェクトで設定できるようにしてみる。 ブロックダイアグラム側の波形チャートを右クリックして下のように選…

サイコロを振ったときに目的の目が出るまでの回数を数える

[乱数(0-1)]アイコンは0 ≦ x < 1の乱数を生成する。 saikoro.vi - Google ドライブ python: import math from random import random def saikoro(N): i = 0 while True: i += 1 if N == math.ceil(random()*6): break return i print(saikoro(5))

iteratorが奇数か偶数かに応じて2つのLEDを交互に点滅させる

BlinkingLED2.vi - Google ドライブ

Lチカを行う

iteratorがインクリメントするたびに点灯、消灯を繰り返す。 BlinkingLED.vi - Google ドライブ

ループ回数を1000回でとめて、その間にサインカーブを1周期ぶん描く。

plotSingleSin.vi - Google ドライブ

iteratorが任意の数を超えたらLEDを点ける

isGreaterThanN.vi - Google ドライブ

VIの開始時にユーザー入力を求める

[関数]、[プログラミング]、[ダイアログ&ユーザインタフェース]、[ユーザー入力プロンプト]を使う。 この設定にしてVIを開始すると、開始時にユーザー入力が要求される。 ブロックダイアグラムの[実行のハイライト]アイコン(電球)を押した状態でVIを実行する…

reach

CLEVELAND: 1 of 4 TEAMS TO NEVER REACH SUPER BOWL (DETROIT, HOUSTON, JACKSONVILLE) ブラウンズはスーパーボール出場経験のない4チームのうちの1つである(残り3チームはライオンズ、テキサンズ、ジャガーズ)。

WhileループとWait (ms)とを使ってストップウォッチを作る

p.74のDO IT YOURSELF: 0.01秒刻みのストップウォッチを作る。 もっと良い方法があると思うが今のところわからない。 [停止ボタン]は、押した瞬間にループがとまるようにしたいので[押されたらラッチ]にする。この設定にすると、ボタンを押した瞬間に値がfal…

波形チャートに正弦波をプロットする

波形チャートは要するにストリップチャートのことである。 plotSin.vi - Google ドライブ

automatic creation機能

端子に配線アイコンを置いた状態で右クリックして[作成]、[定数]の順に選択すると、その端子に配線された状態で数値定数アイコンが配置される。値もハイライトされているのでそのままキーボードから入力できる。