Я пытаюсь понять, как разделить символ на строку и получить поплавок в качестве квоты. Я сделал следующее в своем коде:
Procedure extwo is
function "-"(Strang: in String;
Char: in Character) return Float is
F: Float := Float'Value(Strang);
begin
return Float(Character'Pos(Char)-48) - Float'Value(Strang);
end "-";
Differensen: Float;
Char: Character;
Strang: String(1.
Begin
Put("Mata in ett tecken: ");
Get(Char);
Put("Mata in en sträng med exakt 3 tecken: ");
Get(Strang);
Differensen:= Char-Strang;
Put("Du matade in tecknet: ");
Put(Char);
Put(" och strängen: ");
Put(Strang);
Put(" och differensen blev ");
Put(Differensen, Fore=> 0);
end extwo;
При этом я получаю сообщения об ошибках: "недопустимые типы операндов для оператора "-"", "левый операнд имеет тип "Standard.Character"" и "правый операнд имеет подтип "Standard.String", определенный в строке 59" все в строке 95:22, где написано «Differensen:= Char-Strang;»
С операторами проще использовать имена L
для параметра, который идет слева от оператора, R
для параметра, который идет справа.
Который, чтобы соответствовать вашему использованию (Char - Strang
) и вашей реализации, будет
function "-" (L : Character; R : String) return Float;
о ничего себе, я даже не знал, что позиция в параметре имеет значение, большое спасибо