Witam. Mam problem ze wskaźnikami a mianowicie treść zadania jest dla mnie niezbyt jasna..
Sprawdzić efekt przypisania wartości wskaźników dwóch różnych typów.
Czyli mam utworzyć wskaźniki 2 różnych typów (np double i integer) i do nich przypisać jakieś liczby (odpowiednie dla double i integer) ?
var ch:PChar;
var X:Integer;
X:=3;
ch:=@X; WriteLn(Ord(ch));
OK, następna część mówi, by sprawdzić wszystkie kombinacje wskaźników typu char, integer, real, pointer;
Czy dobrze wykonałem to ?:
program p1;
type
pointerInt = ^Integer;
pointerChar = ^Char;
pointerReal = ^Real;
var
pint :pointerInt;
pchar :pointerChar;
preal :pointerReal;
p_void :pointer;
a_int :Integer;
a_char :Char;
a_real :Real;
BEGIN
a_int := 22;
a_char := 'Z';
a_real := 12.23;
p_void := @a_int;
writeln('P_Void na inta: ', integer(p_void^));
p_void := @a_char;
writeln('P_Void na char: ', char(p_void^));
p_void := @a_real;
writeln('P_Void na real: ', real(p_void^):4:2);
p_void := nil;
pint := @a_int;
writeln('PINT wskazujacy na inta: ', pint^);
pint := @a_char;
writeln('PINT wskazujacy na char: ', pint^);
pint := @a_real;
writeln('PINT wskazujacy na real: ', pint^);
{
i tak ze wszystkimi, czyli nastepne by bylo pchar := @a_char;
pchar := @a_int; itd.. potem z real..
}
readln;
END.
1.Te typy wskaźnikowe są już zadeklarowane, nie musisz tego robić ręcznie.
2. nevermindp_void^
huh? Przecież to nie ma prawa się skompilować.
@Patryk27 kompiluje sie pod free pascalem (z tego co wiem to lazarus ma kompilator free pascala). Dzieki za info, nie wiedziałem że są wbudowane :)
A co do treści, czy zadanie jest dobrze wykonane ?
A co do treści, czy zadanie jest dobrze wykonane ?
Tia, wydaje się poprawnie.
Wycofuję moją poprzednią uwagę odnośnie tego p_void^
- to jednak jest okej, głupio spojrzałem :P
@Thebestway - według mnie dobrze to robisz, tyle że niepotrzebnie redeklarujesz typy wskaźnikowe, bo masz gotowe do dyspozycji PChar, PInteger i PDouble; Poza tym nie korzystaj z Real tylko z Double, bo ten pierwszy to alias tego drugiego, zostawiony dla wstecznej kompatybilności i na dodatek jest zależny od platformy.
@furious programming bardzo bym chciał użyć Double (bo właśnie nie ma PReal przynajmniej u mnie nie łyka tego) ale w poleceniu mam napisane, że musi być real, a nasz wykładowca jest dość czepialski. Dziękuję za odpowiedzi :)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.