問題タブ [ada2012]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
packages - Ada パッケージ内のシンボルの再帰的な可視性
汎用ベクター ライブラリがあるとします。使いやすくするために、ベクター ライブラリのさまざまな一般的な形式をインスタンス化し、それらを 1 つのパッケージで表示できるようにしたいと考えています。
私はこれを試しています:
最終的な目標は、私ができるようになりwith Vectors; use Vectors;
、最終的に、Just Work を直接利用できるようにしたいということです。Vector3
Vector4
当然、上記のコードは機能しません。use all type
ステートメントは、指定された型に添付された定義をパッケージ仕様にインポートするように見えますが、それらの定義は のユーザーにエクスポートされませんVectors
。代わりに私がしなければなりませんwith Vectors; use Vectors; use all type Vectors.Vectors3;
。これはちょっとひどいです。
これどうやってするの?
generics - Ada.Iterator_Interfaces を実装するパッケージから型を取得して Ada 2012 for .. in/of ループ構文を利用するジェネリック サブプログラム
ここから理解できるように、Ada.Iterator_Interfaces を実装するものはすべて Ada 2012 for ループ構文を使用できます。"for ... [in|of] .. ループ .. 終了ループ;
Ada.Iterator_Interfaces を実装するパッケージ内の型でインスタンス化できる汎用サブプログラムを作成するにはどうすればよいですか? そのため、Ada 2012 の for ループを使用して、そのサブプログラムにその型を反復処理させることができます。
Java では、これは次のようになります。
たとえば、(唯一のケースではありませんが)文字列を含む反復可能なコンテナを取り、文字列リストに結合されたすべての文字列を返すことができる古典的な結合関数です。例えば。
ありがとう
マット
ada - プログラムで実行を停止する方法
ここにコードをコピー アンド ペーストせずに、ADA プログラムが特定の値を 'X' に計算する場合、実行時にコード行をそれ以上実行しないようにするにはどうすればよいですか?
何かのようなもの:
私はプログラミングは初めてではありませんが、ADA は初めてなので、正しい構文を見つけるのは大変です。何か助けはありますか?
ada - 標準入力から複数のデータセットをループする方法
標準入力 (テキスト ファイル) から読み取り、次のように並べられたデータを使用して計算を行っています。
私のADAプログラムの基本的な概要:
読み取るものがなくなるまでループし続けるようにプログラムに指示する方法を知りたいのですが、ゼロがデータセットを分離し、各「0」の後にさらにデータがある場合はループし続けることに注意してください。
ada - Adaの配列に異なる型の値を追加する方法は?
私の目標は、標準入力から方程式を受け取り、それを後で使用/再印刷するために配列に保存してから、方程式全体と答えを出力する行を出力することです。
入力: 2+3=
出力: 2 + 3 = 5
Ada では動的文字列などを使用できないため、これを行う方法について非常に混乱しています。
これは、私が疑似コードで持っている大まかなアイデアです..
配列は次のようになるはずだと思います。
私もAdaの初心者なので、理解するのはさらに難しく、Javaはとても得意ですが、強く型付けされた構文に慣れることができません。さらに情報が必要な場合はお尋ねください。
java - Ada の名前のないレコード
Java では、次のようなことができます。
ArrayList.add(new Object(int arg1, int arg2);
名前のないオブジェクトを作成してリストに追加すると、ループで簡単に使用できます。
レコードを使用して Ada で同様のことを行うにはどうすればよいですか?
私は記録を持っています:
レコードのインスタンスを作成し、名前を付けずに配列に追加するにはどうすればよいですか?
loops - Ada for ループが正しい比較を行っていない
簡単なプログラムは、有権者にとって最良の候補者を複数の候補者と一致させることです。架空の有権者が回答した架空のトピックは 10 あります。「-1」は同意しないことを意味し、「0」は気にしないことを意味し、「1」は同意することを意味します。候補者も同じトピックについて同じ調査を行い、同じルールが適用されます。有権者または候補者が特定のトピックに「0」を投票した場合、総同意値は影響を受けません。有権者と候補者の間の値が同じである場合、これにより同意値が増加します。値が異なる場合、合意値は減少します。最後に、最も価値の高い候補者が有権者に提示されます。
出力を含むプログラムの端末入力の例を次に示します。
入力:
出力: A、F、G
print ステートメントを使用して、投票者の値を現在の候補値と実際に比較する for ループを除いて、すべてが正常に機能することを確認できました。
プログラム全体で正しい値を維持するだけでなく、他のすべてが正しく取り込まれていることが検証されますが、COMPARE_Loop は値を正しく比較しません。理由がわかりません。
ada - Ada 2012 と GNAT GPS IDE デバッガーがソース ファイルを見つけられない
Windows 7/64 で GPS IDE を使用して、Ada 2012 で単純な hello world 単一の .adb ファイル プログラムを使用しています。すべてのオブジェクト ファイルとソース ファイルをまとめておけば、すべてが機能します。プロジェクト プロパティの [スイッチ] タブに移動し、[Ada] タブを選択して、[デバッグ情報] チェックボックスを有効にする必要がありました。
ここで、プロジェクトをもう少し整理して、オブジェクト ファイルを独自のディレクトリに配置したいと考えています。プロジェクト プロパティの[オブジェクト] タブを使用して、設定を から.
に変更しましたojb
。ビルドして実行できます。デバッグに行って hello.adb の行をクリックすると、「hello.adb という名前のソース ファイルがありません。obj ディレクトリを探していると思います。set directory
コマンドを発行して、絶対パスを指定しました。親フォルダー. 後続のshow directories
コマンドは、私のフォルダーが含まれていることを示していますhello.adb
ファイルは現在パスにありますが、まだ喜びはありません。ブレークポイントを設定できなくなりました。これはそれほど珍しい操作ではないように思えますが、デバッガーのソース パスを指定する別の高レベルの方法があるのではないかと思います。誰でもそれが何であるか、またはこれを機能させるためのヒントを知っていますか?
arrays - Ada 2012 の連結配列の境界を理解する
John Barnesの Programming in Ada 2012を読んでいます。セクション 8.6 で、彼は配列の連結と配列境界のルールについて説明しています。特に:
結果の下限は、基になる配列型が制約されているかどうかによって異なります。制約がない場合...下限は左オペランドの下限です...[そうでない場合]下限は配列インデックスサブタイプの下限です。
次に、8.6 の演習では、質問 7 は次のとおりです ([] 内に Web サイトの PDF にある回答を追加しました)。
次の境界は何ですか:
- 与えられた
タイプ TC は整数の配列 (1..10) です。
タイプ TU は整数の配列 (自然範囲 <>) です。
AC: TC;
AU: TU(1..10);
AC配列は制約付きの型に基づいているため、インデックスの境界を使用するだけなので、aとbへの答えは私には理にかなっています。基になる型が制約されていないため、左端のオペランド AU(6) または AU(6..10) が開始境界を決定するため、c に対する答えは両方とも 6..15 である必要があります。次に、理解を深めるために以下に示すようにコーディングしてみました。4 つすべてが境界を 1..10 として示しています。私のコードが間違っていますか、答えが間違っていますか、それともテキストの説明が間違っていますか? (ところで、私も新しい配列変数でコーディングし、それらに割り当てを行いましたが、結果は同じです)。
(Tio と Iio は、テキストと整数の std Ada io パッケージの名前を変更しただけです)
このコードを実行すると、次のコンソール出力が生成されます。