Üdv!
A kérdés hogyan lehet egy positive tömböt egyetlen stringé konvertálni függvény segítségével.
Itt a kód hátha jobban látszik mit szeretnék elérni:
type Index is new Positive;
type Permutation is array (Index range <>) of Natural;
function Image(P: Permutation) return String is
result:String:="(";
begin
for I in P'Range loop
result:=result & Positive'Image(P(I)); ----Ez a 147. sor
if I= P'last then
result:=result & ")";
else
result:=result & ",";
end if;
end loop;
return result;
end;
(a futás idehű hiba: raised CONSTRAINT_ERROR : permutation_pack.adb:147 length check failed)
Előre is köszönöm a segítségeket...
- 5123 megtekintés
Hozzászólások
Régen volt Ada és tévedhetek. Szerintem a result egy 1 hosszú string lesz:
result: String := "(";
Nem növekszik automatikusan, így az első konkatenálásnál elszáll.
KisKresz
- A hozzászóláshoz be kell jelentkezni
Ez eddig oké, de hogy varázsolok olyat akkor ami nő...:D
- A hozzászóláshoz be kell jelentkezni
1. dynamic_string
2. Vagy kétszer mész végig a cikluson, először meghatározod, mekkora lesz az eredmény, lefoglalod a megfelelő méretű stringet és újra a ciklus... hát nem egy szép megoldás. :-)
Szerk.: annak van oka, hogy positive'image-t használsz natural helyett?
KisKresz
- A hozzászóláshoz be kell jelentkezni
dynamic_stringre egy példát vagy linket tudsz adni mivel igen kevés jó példát találok neten adához...
- A hozzászóláshoz be kell jelentkezni