Sebastian Borzymowski
Akademia Morska w Gdyni
Wydział Nawigacyjny
Specjalizacja Transport Morski
Grupa A11
Informatyka labolatorium
temat: Środowisko Turbo Delphi - Kalkulator - Największy wspólny dzielnik i Najmniejsza wspólna wielokrotność.
W moim sprawozdaniu z informatyki chciałbym przedstawić instrukcje umożliwiające obliczanie na kalkulatorze największego wspólnego dzielnika (w skrócie NWD) i najmniejszej wspólnej wielokrotności ( w skrócie NWW).
Aby stworzyć kalkulator, tworzymy w Turbo Delphi nowy plik w zakładce na pasku narzędzi „file” => „new” i wybieramy VCL Forms Application. Teraz tworzymy wyświetlacz naszego kalkulatora - z „Tool Palette” wybieramy „T Panel” i przeciągamy do wcześniej utworzonej „podstawie” naszego kalkulatora, zwanej „Form”. Tak samo tworzymy pola edycyjne, w które będziemy wpisywać wartości liczbowe; wybieramy z „Tool Palette” „T Edit”. Jeszcze tworzymy przyciski kalkulatora, wybierając stamtąd „T Button”. Teraz możemy stworzyć bloki instrukcji odpowiedzialne za NWD i NWW.
Największy wspólny dzielnik
NWD jest, jak nazwa sugeruje, najmniejszą możliwym dzielnikiem co najmniej dwóch liczb. Warunkiem, który powinien spełniać NWD jest taki, iż dzielne podzielone przez niego daja nam liczbe całkowitą. Aby móc stworzyć blok instrukcji dającący nam wynik NWD z dwóch liczb, musimy użyć nowej pętli. Zwie się ona „while...do”. W instrukcji tej warunek sprawdzany jest przed jej wykonaniem i póki warunek jest spełniany, wykonywana jest instrukcja zapisana po słowie „do”. Ponadto zastosujemy przy tym bloku instrukcji pętlę „if...then”, słowo „and” ( operator odpowiedzialny za operację logiczną „i”), słowo „else” powiązane z pętlami oraz operator arytmetyczny „mod” odpowiedzialny za resztę z dzielenia.
procedure TForm1.Button1Click(Sender: TObject);
var x,y,z: integer;
begin
x:= strtoint (edit1.text);
y:= strtoint (edit2.Text);
while (x>0) and (y>0) do
if (x>y) then
x:= x mod y
else
y:= y mod x;
z:= x+y;
panel1.caption:= 'NWD = ' + inttostr(z)
end;
Słownie blok instrukcyjny można by zapisac tak:
wprowadź liczby x i y
dopóki x i y są >0, powtarzaj
jeżeli x>y to przyjmij x = x mod y
w przeciwnym wypadku przyjmij y = y mod y
NWD > 0
Najmniejsza wspólna wielkokrotność
NWW jest to taka liczba z, która jest wielokrotnością liczby x i jest wielokrotnością liczby y, czyli istnieją takie liczby k, l należące do zbioru liczb naturalnych, że z = k · x, i z = l · y. Aby wukonac blok instrukcyjny obliczający NWW użyjemy pętli „while...do”, pętli „if...then”,słowo „and” ( operator odpowiedzialny za operację logiczną „i”), słowo „else” powiązane z pętlami, operator arytmetyczny „mod” odpowiedzialny za resztę z dzielenia oraz operator arytmetyczny odpowiedzialny za dzielenie całkowite. Ponadto deklarujemy nową wartość „a”. Jeżeli by się dokładnie przyjrzeć blokowi instrukcji NWW, to okazuje się że wykorzystuje on blok instrukcji NWD.
procedure TForm1.Button2Click(Sender: TObject);
var x,y,a,z: integer;
begin
x:= strtoint (edit1.text);
y:= strtoint (edit2.Text);
z:=x*y;
while (x>0) and (y>0) do
if (x>y) then
x:= x mod y
else
y:= y mod x;
a:= x+y;
z:= z div a;
panel1.caption:= 'NWW = ' + inttostr(z)
end;
Słownie blok instrukcyjny można by zapisac tak:
wprowadź liczby x i y
przyjmij z = x * y
dopóki a i b są >0, powtarzaj
jeżeli a>b to przyjmij a = a mod b
w przeciwnym wypadku przyjmij b = b mod b,
a = x + y, z = z div a
NWW > 0
Podsumowanie
Dzięki zastosowaniu nowej pętli „while... do”, mozemy wykonywać bloki operacyjne bardziej złożone niż dotychczas, które zawierają kilka warunków potrzebnych do wykonania instrukcji. Dzieki temu mozemy stworzyc blok instrukcji do NWW i NWD.