zmienna dynamiczna

  • 1 Odpowiedzi
  • 811 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

zmienna dynamiczna
« dnia: Kwiecień 24, 2006, 21:45:31 »
Nie wiem jak na pisać program w pascalu ze zmienną dynamiczną program który czyta liczbę całkowitą a następnie znajduje jej najmniejszy podzielnik np wpisze liczbe 21 to najmniejszy podzielnik tej liczby to bedzie 3 wpisze 37 to najm podz bedzie 37...itd
Program bez zmiennej dynamicznej bedzie wyglądał mniej więcej tak:
najpierw trzeba wczytać liczbe calkowita np. ReadLn(N);

potem szukamy podzielnika od najmniejszego, w petli, skonczymy jak znajdziemy. Podzielnosc sprawdza sie instrukcja mod:

K := 1;
repeat
Inc(K);
until (N mod K) = 0;

i dziala. To jest bardzo niefachowe, dziala powoli, ale jakos idzie.
Mozna jeszcze to zapisac tak:

K := 2;
while (N mod K) <> 0 do Inc(K);

i wyjdzie na to samo.


 Jesli liczba calkowita moze byc ujemna, albo zero, to trzeba jeszcze sie przed tym obronic (oczywiscie po wczytaniu, a przed szukaniem):

if N < 0 then N := -N;
if N = 0 then
begin
WriteLn('Dla 0 nie szukamy podzielnika!');
Halt;
end;
no i własnie do tego programu trzeba zstosowac zmienna dynamiczną,tylko jak??

*

Offline timokie

  • ****
  • 610
  • Sprzęt: Loox C550
zmienna dynamiczna
« Odpowiedź #1 dnia: Kwiecień 27, 2006, 09:56:01 »
Nie widze za bardzo, gdzie mialaby byc zastosowana zmienna dynamiczna, ale zmienne dynamiczne tworzy sie w Pascalu tak:
var
   a : ^integer;
begin
   new(a);
   a^ := 123;
   writeln(a^);  
   dispose(a);
end.