Урок 5. Вградени математически функции
Заедно с основните аритметични действия при решаването на различни задачи се налага изчисляването на математични функции като
sin x, cos x, IxI и т.н.
Езикът Small Basic има набор от вградени функции. Те могат да се открият в обекта Math. В него са вградени доста на брой математически операции, някои от които ще разгледаме сега.
Синтаксисът е ОБЕКТ.ОПЕРАЦИЯ (аргумент)
В математиката
Абсолютна стойност или IxI
В Small Basic
Math.Abs(х)
Math.SquareRoot(х)
Math.Power(х,n)
Math.Remainder(x,y)
Math.Ceiling(х)
Math.Floor(х)
Math.GetRandomNumber(х)
Math.Round(х)
Math.Мах(а,b)
Math.Мin(а,b)
Math.Sin(x)
Math.Cos(x)
Math.Tan(х)
Math.GetDegrees(x)
Math.GetRadians(х)
Math.Log(x)
Math.NaturalLog(x)
Забележка
Резултатът винаги е положително число
Х>0 винаги
Х - основа, n- степенен показател
x- делимо, у-делител
резултат – остатък от делението
Х е цяло число по-голямо или равно на аргумента
Х е цяло число по-малко или равно на аргумента
Генерира случайно число, по-малко или равно на аргумента
Закръглява до най-близкото цяло число
По-голямата стойност от двете
По-малката стойност
X – ъгъл, измерен в радиани 1˚= π/180˚
X – ъгъл в радиани
Х – ъгъл в радиани
Преобразува ъгъл от радиани в градуси
Преобразува ъгъл, представен от градуси в радиани
Десетичен логаритъм
Натурален логаритъм
Извличане на втори корен
Степен хn
Остатък от деление до цяло число
няма
няма
няма
Закръгление с точност до цяло число
Най- голям елемент - максимум
Най-малък елемнт - минимум
Sin (x)
Cos (x)
Тg(x)
няма
няма
Log(x)
Ln(x)
Примери:
Math.Abs(-33.456 ) или Math.Abs(33.456 ) резултатът ще бъде винаги 33.456
Math.SquareRoot(625) ще даде стойност 25
Math.Power(2,3) ще даде стойност 8 т.е. ще изчисли степента 23
Math.Remainder(10,6) ще даде стойност 4 докато Math.Remainder(10,2) ще бъде 0
Math.Ceiling(34.567) ще даде стойност 35 докато Math.Ceiling(-4.07) ще даде -4
Math.Floor(34.567) ще даде стойност 34, а Math.Floor(-4.07) ще даде стойност -5
Math.Round(3,124) ще бъде 3 докато Math.Round(3,524) ще бъде 4
Math.Мах(5,35) ще бъде 35 а Math.Мin(5,35) ще е 5
Math.GetDegrees(3,14) ще даде стойност ≈180˚ а Math.GetRadians(180) ще бъде ≈3,14
Тригометричните функции sin(30˚) и cos(60˚)ще даде стойност ≈0,5; a tg(45) ще бъде ≈1.
Приблизителните резултати идват от числото π, за което знаем, че е безкрайна периодична дроб.
Логаритмичните функции се изучават по математика в 10 клас и сега няма да са обект на нашето внимание.
Вече знаем какъв е синтаксиса на математическите функции и можем да пристъпим към решаване на задачи:
Задача1. Дадени са катетите а и в на правоъгълник. Напишете програма, която намира хипотенузата, ако потребителя въвежда стойности за катетите от клавиатурата.
TextWindow.Write("стойността на катет а=")
a=TextWindow.ReadNumber()
TextWindow.Write("стойността на катет b=")
b=TextWindow.ReadNumber()
c=a*a +b*b
c= Math.SquareRoot(c)
TextWindow.WriteLine("хипотенузата е ="+ c)
Нека тестваме програмата с питагоровите числа 3 и 4. Ще получим следния резултат:
В програмния код на 5 ред изчисляваме в с сумата от квадратите на катетите. В 6 ред извършваме коренуването. Забелязахте ли, че в този ред използваме от двете страни на равенството с. Тъй като сборът от квадратите на катетите не ни е нужен по-нататък, ние можем да си позволим да изчислим квадратния корен и да го запомним под това име. Така ще използваме разумно паметта на компютъра, който при въвеждане на нова променлива, заделя място за нея в своята памет.
Задача 2. Напишете програма, която генерира 6 случайни числа от 1 до 49.
x1=math.GetRandomNumber(49)
x2=math.GetRandomNumber(49)
x3=math.GetRandomNumber(49)
x4=math.GetRandomNumber(49)
x5=math.GetRandomNumber(49)
x6=math.GetRandomNumber(49)
TextWindow.WriteLine("Бяха изтеглени числата " +x1+" "+x2+" "+x3+" "+x4+" "+x5+" "+x6 )
Изпълнете няколко пъти програмата и направете съответните изводи. Опитайте се да изведете всяко число на отделен ред.
Изпълнете отново / повече от един път/.
Забелязахте ли, че след няколко изпълнения може сред случайно генерираните числа да има повторение . Помислете как можем да отстраним този проблем?
Задача 3.
Съставете програма за изчисление на
, като х се въвежда от клавиатурата. При х<0 да се изведе съобщение „Грешка“.
TextWindow.Write("Въведете стойност за х=")
x= TextWindow.ReadNumber()
If x>=0 then
x= Math.SquareRoot(x)
TextWindow.WriteLine("резултат от коренуването " +x )
Else
TextWindow.WriteLine("ГРЕШКА!" )
EndIf
Задачи за самостоятелна работа:
Напишете програма която изчислява сумата от квадратите на 3 числа. Числата се въвеждат от клавиатурата
Напишете програма, която проверява какво е въведеното число – четно или нечетно.
Напишете програма която генерира 5 случайни числа от 1 до 35.
Напишете програма, която намира разстоянието между две точки в равнината при дадени координати на точките.
След този урок вие трябва да можете :
Да изчислявате аритметични изрази, като спазвате приоритета на операциите както в математиката.
Да използвате математически операции и свойствата им.