PDAclub.pl - Forum użytkowników technologii mobilnych
Windows Mobile (Classic, Professional, Standard), Windows Phone 6.x oraz 7/8.x/10 => Oprogramowanie PPC => Dla programistów => Wątek zaczęty przez: carlcoxx w 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??
-
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.