私はEiffelを初めて使いました。私はLINKED_LISTクラスを使用して、他のクラス "MONOMIO"のインスタンスを整理しようとしています。私はこの要素を並べ替えるための関数を追加し、removeとカーソルの移動機能を使用します。コードを実行しようとすると、含まれているオブジェクトが読み書き可能でなければならないという例外が発生します。私は[MONOMIO]機能LINKED_LISTとして持つクラスのために作られてきた、それはだ、私は例外があるため、この機能によって提起考えるEiffel - クラスを読みやすくするにはどうしたらいいですか?
class
MONOMIO
feature --Initialization
make (coef:INTEGER; expX:INTEGER; expY:INTEGER)
do
coeficiente := coef
exponenteX := expX
exponenteY := expY
end
feature
evaluar(valX: INTEGER; valY: INTEGER): REAL_64
do
Result := coeficiente*(valX^exponenteX)*(valY^exponenteY)
end;
coeficiente: INTEGER;
exponenteX: INTEGER;
exponenteY: INTEGER;
feature --setter
set_coeficiente(val: INTEGER)
do
coeficiente := val
end;
end
:私はこれが私のクラスで、それを行う方法を知りたいのです
simplificar
local
tamanio_polinomio: INTEGER -- Número de monomios que tiene el polinomio
contador: INTEGER
monomio_a_comparar: MONOMIO -- Auxiliar
coeficiente_total:INTEGER -- Auxiliar
indice_monomio_en_revision:INTEGER
do
from
contenido.start
indice_monomio_en_revision := 0
tamanio_polinomio := contenido.count
until
indice_monomio_en_revision = tamanio_polinomio
loop
contenido.start
contenido.move (indice_monomio_en_revision)
monomio_a_comparar := contenido.item
from
contador := indice_monomio_en_revision
coeficiente_total := monomio_a_comparar.coeficiente
contenido.forth
until
contador = tamanio_polinomio
loop
if
(monomio_a_comparar.exponentex = contenido.item.exponentex) and
(monomio_a_comparar.exponentey = contenido.item.exponentey)
then
coeficiente_total := coeficiente_total + contenido.item.coeficiente
contenido.remove -- Mueve el cursor a la derecha
tamanio_polinomio := tamanio_polinomio - 1
contador := contador - 1
else
if
not contenido.islast
then
contenido.forth
end
end
contador := contador + 1
end
contenido.start
contenido.move (indice_monomio_en_revision)
contenido.item.set_coeficiente (coeficiente_total)
indice_monomio_en_revision := indice_monomio_en_revision + 1
end
end;
私はこの問題を誰かが助けてくれることを願っています。ありがとう。
クラスは正常に見えますが、問題はLINKED_LISTで動作するコードにあると思います。あなたはそれを見せて、あなたが得た正確なエラーは何かを教えてくれますか?それはコンパイル時エラーかランタイムエラーですか? –
@AlexanderKogtenkov実行時に "読み取り可能:PRECONDITION_VIOLATIONが発生しました"という例外があります.LINKED_LISTには、含まれているオブジェクトを読み込めるように要求されているためです。 – GiaccomoU
例外につながるコードを表示しますか? ( 'readable'は前提条件の副節の名前ですが、あなたのクラス' MONOMIO'には関係ありません。確認してください) –