Функции Sqrt и Sqr
Функция Sqrt в Паскале вычисляет квадратный корень числа. Синтаксис функции следующий:
function Sqrt(Х : ValReal) : ValReal;
Эта функция возвращает квадратный корень числа, переданного через параметр Х. Число Х должно быть положительным, иначе произойдёт ошибка во время выполнения программы (так написано в документации, но в моей версии компилятора ошибки не происходит, а функция в случае отрицательного параметра возвращает значение NaN).
Функция Sqr в Паскале вычисляет квадрат числа. Синтаксис функции для разных типов приведён ниже:
function Sqr(Х : LongInt) : LongInt; function Sqr(Х : QWord) : QWord; function Sqr(Х : ValReal) : ValReal;
Эта функция возвращает результат вычисления квадрата числа, переданного через параметр. То есть Sqr = х * х.
О типе ValReal я рассказывал здесь.
Квадрат числа
Здесь всё крайне просто. Квадрат числа Х равен произведению Х на Х. То есть функция Sqr на первый взгляд кажется бесполезной. Потому что во многих случаях проще написать так:
Единственный случай, когда использование функции Sqr является обоснованным с точки зрения упрощения кода, это когда в качестве параметра передаётся вещественное число (константа) с большим количеством знаков после запятой, или очень большое целое число, или сложное выражение. Например:
будет написать проще, чем
Х := 5.3456753322 * 5.3456753322
Также возведение в квадрат числа в Паскале сложного выражения тоже будет проще, если использовать функцию Sqr:
X := Sqr(Y + 100 * Z / X)
Вычисление квадратного корня
Когда мы изучали функции вычисления экспоненты и натурального логарифма, то мы узнали, что с их помощью можно возвести число в любую степень. То есть вычислить, в том числе, и корень любой степени.
Однако использование этих функций всё-таки немного сложновато. Поэтому для вычисления квадратного корня в Паскале имеется специальная функция (потому что квадратный корень приходится вычислять намного чаще, чем, например, корень n-й степени).
Эту функцию вы уже знаете — это функция Sqrt.
А здесь я напомню что такое квадратный корень для тех, кто подзабыл математику.
Итак, квадратный корень из числа А (корень 2-й степени) — это решение уравнения:
То есть квадратный корень из числа А, это число Х, которое при возведении в квадрат даёт число А.
ВАЖНО!
Число А может быть только положительным числом. Извлечение корня из отрицательного числа тоже возможно, но это уже будут комплексные числа.
Sqr x sqrt y где ошибка
Контрольная работа по программированию № 2 (2 курс)
(логические и арифметические выражения, развилка)
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(X = 0) and (Y = X - 2).
II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по Вашему мнению, будет правильным.
Program MyError; Var X, Y, Сумма : integer; Begin WriteLn(Введите значение X); ReadLn(X); WriteLn(Введите значение Y); ReadLn(Y); Сумма = X + Y; WriteLn(Сумма); End.
III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var X1, Y1, X2, Y2, R1, R2 : Real; Begin WriteLn(‘Введите X1, Y1’); ReadLn(X1, Y1); WriteLn(‘Введите X2, Y2’); ReadLn(X2, Y2); R1 := SQRT(X1 * X1 + Y1 * Y1); R2 := SQRT(X2 * X2 + Y2 * Y2); If R1 = R2 Then WriteLn(‘Лежат’) Else WriteLn(‘Не лежат’); End.
IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Y = -X - 1) and (Y >= X - 1) and (Sqr(X) + Sqr(Y)II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по Вашему мнению, будет правильным.
Program Ошибки; Var X, Y : Integer; Begin WriteLn(Введите значение X:); ReadLn(X); WriteLn(Введите значение Y:); ReadLn(Y); S := X + Y; If S < 0 Then S := ABS(S) WriteLn(S); End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var S1, S2, Dg, Dr, A : Real; Begin WriteLn('Введите S1 и S2: '); ReadLn(S1, S2); A := SQRT(S1); Dg := A * SQRT(2); Dr := SQRT(4 * S2 / Pi); If DgIV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Sqr(X) + Sqr(Y) = X) and (Y >= -X)Program Д; Var X : Real; Begin WriteLn(Введите значение X); ReadLn(X); Y := SQR(X) - 1; If Y < 0 Then Y := Y * -1 WriteLn(Y); EndProgram Kr_2; Var S1, S2, Dr, A : Real; Begin WriteLn('Введите S1 и S2: '); ReadLn(S1, S2); A := SQRT(S1); Dr := SQRT(4 * S2 / Pi); If DrIV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
(X >= -1) and (X = -2) and (Y = 0) and (X = -2) and (YII. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по Вашему мнению, будет правильным.
Program Summa; Begin Var X, Y : Integer; Z : Boolen; WriteLn('Введите X и Y: '); ReadLn(X; Y); If X + Y > 0 Then Z := True; Else Z := False; WriteLn(Z); End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, S : Real; Begin WriteLn('Введите A, B, C: '); ReadLn(A, B, C); If SQR(A) + SQR(B) = SQR(C) Then begin S := 0.5 * A * B; WriteLn('Являются; S = ', S : 7 : 2) end Else WriteLn('Не являются') End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
(Sqr(X) + Sqr(Y-1)Program Max Var a, b, c : Real; Begin WriteLn('Введите три числа: '); ReadLn(a, b, c); If a > b Then B := a; Else B := b; If B > c Then WriteLn(B); Else WriteLn(c) End.Program Kr_2; Var N, R, S, A, B, C, D : Integer; Begin WriteLn('Введите натуральные N, R, S: '); ReadLn(N, R, S); A := N div 1000; B := N mod 1000 div 100; C := N mod 100 div 10; D := N mod 10; If (A * B * C * D = R * R) or (A * B * C * D = S * S * S) Then WriteLn('Верно') Else WriteLn('Неверно') End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
(Y >= 1) or (Y = 0) and (Y >= X) and (Y >= -X)Program MyError; Var a, b, min; Begin Write('Введите a и b: '); ReadLn(a, b); If a < b Then min:=a; WriteLn('Да'); Else min:=b; WriteLn('Нет'); WriteLn(min : 5 : 2) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, Max, Min, Max2, Min2 : real ; Begin WriteLn('Введите три числа: '); ReadLn(A, B, C); If A > B Then begin Max := A; Min := B end Else begin Max := B; Min := A end; If Max > C Then begin Max2 := Max; Min2 := C end Else begin Max2 := C; Min2 := Max end; Max2 := Max2 - (Min + Min2); WriteLn(Max2 : 7 : 2) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Sqr(X) + Sqr(Y)II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по Вашему мнению, будет правильным.
Program MyError Var A, X : Real; Begin Write(X =); ReadLn(X); If X >= 0 Then A := X; Else A := |X|; WriteLn(A) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var N, A, B, S : Integer; Begin Write('Введите трехзначное число: '); ReadLn(N); A := N div 100; B := N mod 10; If A > B Then S := 0.5 * (A + B) Else If A < B then S := SQRT(A * B) Else S := A + B; WriteLn(S) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Y = X - 1) or (Y >= 0) and (YII. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по Вашему мнению, будет правильным.
Program Gde_oshybka?; Var X, Y : Real; Begin Write(Введите угол); ReadLn(X); If -Pi / 2 < X < Pi / 2 Then Y := tg(X); WriteLn(Y : 7 : 2) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, H : Integer; Begin Write('Введите три числа: '); ReadLn(A, B, C); If A > B Then begin H := A; A := B; B := H end; If A > C Then begin H := A; A := C; C := H end; If B > C Then begin H := B; B := C; C := H end; WriteLn(A, ' ', B, ' ', C) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(X >= 0) and (Sqr(X) + Sqr(Y) = -0.5 * X - 1).Program Ошибка; Var A : real; Begin Write('Введите число'); ReadLn(A); If A > 0 and A < Pi Then C := SIN(A); WriteLn(C : 6 : 2) Else WriteLn(Нет) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var N, M, A, B, S, Q : Integer; Begin Write('Введите N и M (M Q Then WriteLn('Да') Else WriteLn('Нет') End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(X >= 0) and (Sqr(X) + Sqr(Y) = -X) or (X = X)II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему мнению, будет правильным.
Program MyError Begin Var X : Real; Write('Введите X: '); ReadLn(X); If X > 0 Then P := LnX Else X := ABS(X); P := LnX; WriteLn(P : 7 : 2) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, S, Min : Integer; Begin Write('Введите три числа: '); ReadLn(A, B, C); If A + B + C > 1 Then begin If A < B Then Min := A Else Min := B; S := Min; end Else S:=C; WriteLn(S) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(X = 0) and (Y = X - 2).II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему мнению, будет правильным.
Program Ошибки; Var X, Y : Integer; Begin WriteLn(Введите значение X:); ReadLn(X); WriteLn(Введите значение Y); ReadLn(Y); S := X + Y; If S < 0 Then S := ABS(S) WriteLn(S); End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var S1, S2, Dr, A : Real; Begin WriteLn('Введите S1 и S2: '); ReadLn(S1, S2); A := SQRT(S1); Dr := SQRT(4 * S2 / Pi); If DrIV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
Вариант 12I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Y >= -X + 1) and (Y >= X + 1) and (YII. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему мнению, будет правильным.
Program Д; Var X : Real; Begin WriteLn(Введите значение X); ReadLn(X); Y := SQR(X) - 1; If Y < 0 Then Y := Y * -1 WriteLn(Y); End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, S : Real; Begin WriteLn('Введите числа A, B, C: '); ReadLn(A, B, C); If Abs(SQR(A) + SQR(B) - SQR(C)) < 1e-7 Then begin S := 0.5 * A * B; WriteLn('Являются; S = ’, S : 7 : 2) end Else WriteLn('Не являются') End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
Вариант 13I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Sqr(X) + Sqr(Y) = X) and (Y >= -X)II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему мнению, будет правильным.
Program Summa; Begin Var X, Y : Integer; Z : boolen; WriteLn('Введите X и Y: '); ReadLn(X; Y); If X + Y > 0 Then Z := True; Else Z := False; WriteLn(Z); End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, Max, Min, Max2, Min2 : Real; Begin WriteLn('Введите три числа: '); ReadLn(A, B, C); If A > B Then begin Max := A; Min := B end Else begin Max := B; Min := A end; If Max > C Then begin Max2 := Max; Min2 := C; end Else begin Max2 := C; Min2 := Max end; Max2 := Max2 - (Min + Min2); WriteLn(Max2 : 7 : 2) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(X >= -1) and (X = -2) and (Y = 0) and (X = -2) and (YII. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему мнению, будет правильным.
Program Max Var a, b, c : Real; Begin WriteLn('Введите три числа: '); ReadLn(a, b, c); If a > b Then B := a; Else B := b; If B > c Then WriteLn(B); Else WriteLn(c) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, Max, Min, Max2, Min2 : Real; Begin WriteLn('Введите три числа: '); ReadLn(A, B, C); If A > B Then begin Max := A; Min := B end Else begin Max := B; Min := A end; If Max > C Then begin Max2 := Max; Min2 := C end Else begin Max2 := C; Min2 := Max end; Max2 := Max2 - (Min + Min2); WriteLn(Max2 : 7 : 2) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Sqr(X) + Sqr(Y-1)II. Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему мнению, будет правильным.
Program MyError; Var a, b, min; Begin WriteLn('Введите a и b: '); ReadLn(a, b); If a < b Then min := a; WriteLn('Да'); Else min := b; WriteLn('Нет'); WriteLn(min : 5 : 2) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Z3; Var N : Integer; Begin Write('Введите трехзначное число (корректность ввода не анализируется) '); ReadLn(N); If N Div 100 < N Mod 10 Then N := N Mod 10 * 100 + N Div 10 Mod 10 * 10 + N Div 100; WriteLn(N : 4) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
I. Изобразить на плоскости ( X , Y ) область, в которой и только в которой истинно указанное выражение
(Y >= 1) or (Y = 0) and (Y >= X) and (Y >= -X)Program MyError Var A, X : Real; Begin Write(X=); ReadLn(X); If X >= 0 Then A := X; Else A := |X|; WriteLn(A) End.III. Точно и четко сформулировать условие задачи, которая решается в данной программе
Program Kr_2; Var A, B, C, H : Integer; Begin Write('Введите три числа: '); ReadLn(A, B, C); If A > B Then begin H := A; A := B; B := H end; If A > C Then begin H := A; A := C; C := H end; If B > C Then begin H := B; B := C; C := H end; WriteLn(A, ' ', B, ' ', C) End.IV. Придумать и записать высказывание, которое может быть истинным или ложным. Записать соответствующее ему логическое выражение, имеющее значение TRUE, если высказывание истинно, и FALSE в противном случае.
© А.А. Широких, А.П. Шестаков, 1999-2000
В описании, якласс, паскаль
Выражение записано на языке Паскаль: sqrx−sqrty. Какая ошибка допущена?
1: нет такой функции sqr
2: нет верного ответа
3: для обозначения переменных используются буквы латинского алфавита
4: аргумент записан без скобокЛучший ответ
Jason VoorheesУченик (92) 6 лет назад
Вы уверены?
Николай Матвейчук Просветленный (43268) А похоже что я сомневаюсь? :))
Остальные ответы
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Функциональное программирование на Scheme и Kotlin
Управляющие конструкции
Определение глобальных имен и функций
```scheme
(define pi 3.1415926)
(define (sqr x) (* x x)) ; квадрат
(define (plus x y) (+ x y)) ; сумма 2 чисел
```Вызов функции, изменение значения
`lambda`-выражения (анонимные функции)
```scheme
( (lambda (x y) (+ x y)) 2 3) ; определение и вызов анонимной функции(define root ; функция с 1 или 2 параметрами
(case-lambda
((x) (sqrt x)) ; один аргумент - квадратный корень
((x n) (expt x (/ n))) ; два аргумента - корень n-й степени
)
)
(root 2) ; 1.4142135623730951
(root 8 3) ; 2.0
```Последовательность действий, локальные определения
```scheme
(let
((a 2) (b 3)) ; локальные имена a b
(display "Сумма ")
(display (+ a b))
(newline)
)
(begin (display "A") (display "B") (display "C")) ; как (let () действия)
```Результатом ``begin`` и ``let`` является значение последнего выражения Несколько действий можно указывать в ``(lambda параметры действия)``
```scheme
(define (min x y) ; минимум
(if ( < x y) ; (if условие
x ; результат-если-условие-истинно
y ; результат-если-условие-ложно
)
)
(define (sign x) ; знак числа
(cond
(( < x 0) -1) ; (условие действия)
((> x 0) 1)
(else 0) ; (else действия)
)
)
(define (whatday x) ; тип дня недели
(case x
((1 2 3 4 5) "workday") ; ((список вариантов) действия)
((6 7) "weekend")
(else "not a weekday")
)
)
```Циклы в Scheme чаще реализуются через рекурсию, но можно использовать специальную конструкцию, похожую на ``let``
```scheme
(define (factorial n)
(if ( (* n (factorial (- n 1)))
)
)
(define (factorial n)
(do ; (do список-локальных-имен (условие-завершения действия) действия)
((i 1 (+ i 1)) ; (имя начальное-значение изменение)
(a 1 (* a i)))
((> i n) a) ; (условие-завершения результат)
)
)
(define (scale-vector! v k)
(do ((i 0 (+ i 1)))
((= i (vector-length v))) ; ничего не возвращаем
(vector-set! v i (* (vector-ref v i) k)) ; изменяем i-й элемент вектора
)
)
```Определение глобальных имен и функций
```kotlin
val pi=3.1415926 // константа
var a=3 // переменная
fun sqr(x:Double)=x*x // функция, сокращенная форма
fun plus(x:Int, y:Int):Int < // функция, полная форма
return x+y
>
fun hello(s:String):Unit < // функция не возвращает значения
println("Hello, $s!")
>
```Вызов функции, изменение значения
`lambda`-выражения, анонимные функции
```kotlin
x+y>(2,3) // Лямбда-выражение
val sqr:(Double)->Double= // по умолчанию единственный параметр называется it
val plus=fun(x:Int,y:Int):Int < return x+y >// Анонимная функция
```Если тип параметров `lambda`-выражения ясен из предыдущего контекста, то их тип можно не указывать.
Последовательность действий, локальные определения
```kotlin
< // интерпретируется как лямбда-выражение ()->Unit
val a=2
val b=3
print("Сумма ")
println(a+b)
>
```Циклы
```kotlin
val lc=listOf('a','b','c')
for(x in lc)
println(x)
for (i in 1..10) println(i)
>
for (i in 10 downTo 0 step 2) println(i)
>
var i=10
while (i >= 0) println(i)
i-=2
>
do val y = readLine()
> while (y != null)
```

Функциональное программирование на Scheme и Kotlin