Vlrfsasm講習/準備

概要

本章では、必要なツールを導入する方法と、簡単な動かし方とを学びます。

フォルダ

まずは、ファイルを配置するフォルダを作ります。

基点フォルダ作成

ファイルがあちこちに散らばっていては、作業に不便です。そこで、1つフォルダを作り、ここに全てのファイルやフォルダを入れることにします。今後、このフォルダを「基点フォルダ」と呼びます。基点フォルダはわかりやすい位置にあるのが好ましいので、迷ったらとりあえずデスクトップに置いてしまいましょう。名前はvlrfsasmとします。

作業フォルダ

さて、基点フォルダの中についても、散らかしたくはありません。新しいことを始めるときや、構造が混迷してしまい、刷新したいときには、必ず新しいフォルダを作ります。これは、Vlrfsasmに限らず、何にでも適用して損はないことですから、癖にしましょう。本講習では、この新しいフォルダを「作業フォルダ」と呼び、章ごとに作ってもらいます。

ツール

必要なアプリと、その導入方法とを紹介します。

ダウンロード

まず、Vlrfsasmを導入します。Githubで公開しているので、このリンクからダウンロードし、zipファイルを基点フォルダ内に解凍してください。解凍されたフォルダはVlrfsasm_v1.1という名前になりますが、このままではアップデート毎に変えなくてはならないので、assemblerと改名しておいてください。

バッチファイル

次に、バッチファイルを作ります。メモ帳などのテキストエディタを起動し、以下の内容をコピーして貼り付けてください。

batファイルの内容COPIED!
  1. @set sourceFolder=%CD%
  2. @cd ..\assembler
  3. start vlrfsasm %sourceFolder%\result.txt %sourceFolder%\message.log %sourceFolder%\source.vlra def\common.vlra

そして、基点フォルダ内に、assemble.batという名前で、保存してください。文字コードはUTF-8にしましょう。このバッチファイルは、各章で使い回します。

バイナリエディタ

本講習では少ししか使いませんが、vlrfsasmはもともとバイナリファイルを扱うために作ったので、使う機会はあると思います。データを読み出すだけですので、何でも構いません。使い慣れているものがあればそれを使ってください。参考までに、Vlrfsasmの作者はFavBinEditを使っています。いずれにせよ、各ソフトウェアの指示に従ってインストールしてください。

テキストエディタ

メモ帳で構いませんが、これも使い慣れているものを使ってください。ただし、拡張表示機能などのファイルは提供していません。また、スタートメニューにショートカットを貼っておくと便利でしょう。

Hello world

それでは、動作確認を兼ねて、少し動かしてみましょう。

ソースコード

基点フォルダ内にhelloというフォルダを作り、さきほど作ったバッチファイルをコピーして入れてください。また以下のソースコードを、source.vlraという名前でこのフォルダに保存してください。Vlrfsasmのソースコードは、常に.vlraという拡張子を付け、文字コードはUTF-8で保存してください。

ソースコードCOPIED!
  1. [文字列「Hello world!」を出力します]
  2. {.; ; (c.convertSbS8 "Hello world!")}

実行

バッチファイルをダブルクリックして実行すると、Vlrfsasmが実行されます。うまくいけば、helloフォルダ内に、result.txtmessage.logが出力されているはずです。上手く行かないときは、ファイル名や文字コードなどを確認しましょう。メモ帳では、ファイルメニューの「名前を付けて保存」から、文字コードを設定して保存し直せます。

結果

さて、生成された2つのファイルを開き、中身が以下のようになっていれば成功です。ただし、message.logの赤下線部には、実行日時が書かれています。これはコンピュータの現地時刻なので、時差を含みます。また、その下に出力ファイルのパスなどが表示されますが、青下線部のように個人情報を含むことがあるので、誤って公開しないよう注意しましょう。

result.txtCOPIED!
  1. Hello world!
message.logCOPIED!
  1. Vlrfsasm v0.7 2021-11-27 18:00
  2. 15:Complete
  3. C:\Users\vlrfsg\Desktop\vlrfsasm\hello\result.txt

なお、青下線部は架空のものです。

終了

本章の内容は以上です。Vlrfsasmは勝手に終了していますから、開いたテキストエディタなどを閉じれば片付けも終わりです。

テスト

ここはVlrfsasm講習の内容ではありません。

冪乗
n01234
2n124816
en12.727.3920.154.6
3n1392781

2105+1.7=206.5

6254=5

cos56π=−32

an=−3n+13

Σnk=1k2=n(n+1)(2n+1)6

競技プログラミング講習の一部COPIED!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4. int n, k;
  5. cin >> n >> k;
  6. vector<int> a(n);
  7. for (int i = 0; i < n; i++) cin >> a[i];
  8. bool ok = false;
  9. ビット全探索のループ/*ビット全探索開始*/
  10. for (int b = 0; b < 1 << n; b++) {
  11. int sum = 0;
  12. for (int i = 0; i < n; i++) {
  13. 対応するビットが1のとき/*ビットによる分岐*/
  14. if ((b >> i) & 1) {
  15. sum += a[i];
  16. }
  17. }
  18. if (sum == k) ok = true;
  19. }
  20. /*ビット全探索終了*/
  21. if (ok) cout << "Yes" << endl;
  22. else cout << "No" << endl;
  23. return 0;
  24. }