PEŁNY KURS TURBO PASCALA - część VI
działania matematyczne
Moim zdaniem dysponujesz już sporą wiedzą, aby wkroczyć w następny poziom zaawansowania. Na poprzednich lekcjach poznałeś tylko znikomą część działań matematycznych, takich jak plus (+) czy minus (-). W tej lekcji postaram się objaśnić wam jak najwięcej takich działań. Stosuje się je tak jak inne. No to zaczynajmy.
+
Dodawanie. Np. 3+2=5, 8+10=18, 6+2=8.
-
Odejmowanie. Np. 3-2=1, 8-10=-2, 6-2=4.
*
Mnożenie. Np. 3*2=6, 8*10=80, 6*2=12.
/
Dzielenie. Np. 10/5=2, 6/2=3, 2/5=2,5.
To były podstawowe działania. Są jeszcze inne. Oto niektóre z nich:
div
Całkowita część z dzielenia. Np. 10 div 3=3, 6 div 4=1, 10 div 4=2.
mod
Reszta z dzielenia. Np. 5 mod 2=5, 10 mod 3=3333..., 1 mod 2=5.
sqrt
Pierwiastek. Np. sqrt(9)=3, sqrt(64)=8, sqrt(16)=4
sqr
Kwadrat (potęga druga). Np. sqr(2)=4, sqr(3)=9, sqr(10)=100.
abs
Wartość bezwzględna. Np. abs(3)=3, abs(-3)=3, abs(-230)=230.
Teorię mamy za sobą. Weźmy się za praktykę. Napiszmy program, który będzie podawał kwadrat, z liczby podanej przez użytkownika.
USES CRT;
VAR
liczba:longint;
BEGIN
clrscr;
writeln('Podaj jakąś liczbę');
read(liczba);
writeln('Kwadrat z liczby ',liczba,' wynosi ',sqr(liczba));
readln;
END.
Może wydawać ci się to trochę skomplikowane, ale po krótkiej analizie i kilku własnych programach, wszystko zrozumiesz. Teraz zróbmy program, który będzie pytał użytkownika o dwie liczby. Po podaniu liczb, program ma mówić, czy druga liczba jest dzielnikiem pierwszej. Np. gdy użytkownik poda liczby 10 i 2, program ma napisać, że 2 jest dzielnikiem 10. No to do roboty:
USES CRT;
VAR
liczba1,liczba2:longint;
BEGIN
clrscr;
writeln('Podaj pierwszą liczbę');
read(liczba1);
writeln('Podaj drugą liczbę');
read(liczba2);
IF liczba1 mod liczba2=0 THEN writeln(' Liczba ',liczba2,' jest dzielnikiem liczby ',liczba1);
IF liczba1 mod liczba2<>0 THEN writeln(' Liczba ',liczba2,' nie jest dzielnikiem liczby ',liczba1);
readln;
END.
Powyższy program sprawdza, czy reszta z dzielenia jednej liczby przez drugą jest równa zero czy też nie. Można to było zrobić jeszcze w inny sposób:
USES CRT;
VAR
liczba1,liczba2:longint;
BEGIN
clrscr;
writeln('Podaj pierwszą liczbę');
read(liczba1);
writeln('Podaj drugą liczbę');
read(liczba2);
IF liczba1 mod liczba2=0 THEN writeln(' Liczba ',liczba2,' jest dzielnikiem liczby ',liczba1)
ELSE writeln('Liczba ',liczba2,' nie jest dzielnikiem liczby ',liczba1);
readln;
END.
Zamiast całej instrukcji warunkowej użyłem polecenia „ELSE”. Tego typu programy są bardzo ważne i musisz je znać. Radzę je dobrze poćwiczyć, zanim dojdziesz do następnej lekcji, gdyż będą one szeroko stosowane.
Praca domowa: zrób program, który pyta użytkownika o 3 liczby, a następnie sprawdza, czy liczba trzecia jest sumą dwóch pierwszych liczb. Jeżeli jest, to program ma wyświetlić dowolny komunikat i wydać jakiś dźwięk. Jeżeli nie jest - program ma się wyłączyć. POWODZENIA!
3