1. Program p1; { 1. Вычислить и вывести на экран значение функции Y. Исходные данные X, A и B ввести с клавиатуры. y=tgx*a(b+1)*ln(a+b) } Function Y(x, a, b: Real): Real; Begin { Обработку недопустимых значений x, a, b реализуешь как-нибудь сам (x <> Pi/2 + n*Pi, (a+b) > 0, переполнение типа Real) } Y := Sin(x) / Cos(x) * a * (b + 1) * Ln(a + b); End; Var x, a, b: Real; Begin Write('x = '); ReadLn(x); Write('a = '); ReadLn(a); Write('b = '); ReadLn(b); WriteLn('Y(x, a, b) = ', Y(x, a, b):12:12); ReadLn; End. 2. Program p2; { 2. Если сумма трех различных действительных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае возвести все числа в квадрат. } Var x, y, z: Real; Begin Write('Vvedite x: '); ReadLn(x); Write('Vvedite y: '); ReadLn(y); Write('Vvedite z: '); ReadLn(z); If x + y + z < 1.0 Then If x < y Then If x < z Then x := (y + z) / 2.0 Else z := (x + y) / 2.0 Else If y < z Then y := (x + z) / 2.0 Else z := (x + y) / 2.0 Else Begin x := x * x; y := y * y; z := z * z; End; WriteLn('x = ', x:12:12); WriteLn('y = ', y:12:12); WriteLn('z = ', z:12:12); ReadLn; End. 3. Program p3; { 3. Для заданных значений x, y написать программу вычисления числа: Здесь и далее min(x,y) - минимальное из чисел x и y, max(x,y) - максимальное из чисел x и y. Z=(min(x,y)+0,5) / (1+max2(x,y)) } Function min(x, y: Real): Real; Begin If x < y Then min := x Else min := y; End; Function max(x, y: Real): Real; Begin If x > y Then max := x Else max := y; End; Function Z(x, y: Real): Real; Begin Z := (min(x, y) + 0.5) / (1 + Sqr(max(x, y))); End; Var x, y: Real; Begin Write('Vvedite x: '); ReadLn(x); Write('Vvedite y: '); ReadLn(y); WriteLn('Z = ', Z(x, y):12:12); ReadLn; End. 6. Program p6; { 6. Даны натуральное n, действительные числа a1, … , an (все числа попарно различны). Поменять в этом массиве местами наименьший и последний элементы. } Const n = 20; Var a: Array [1..n] Of Integer; i: Integer; IndexMin: Integer; { индекс (в массиве) минимального элемента } Begin { Заполняем массив псевдослучайными числами от 0 до 999 } Randomize; For i := 1 To n Do a[i] := Random(1000); { Ищем наименьший элемент (после цикла a[IndexMin] будет наименьшим) } IndexMin := n; For i := n - 1 Downto 1 Do Begin If a[i] < a[IndexMin] Then IndexMin := i; End; WriteLn('Massiv do izmeneniy:'); For i := 1 To n Do Write(a[i]:4); WriteLn; i := a[IndexMin]; a[IndexMin] := a[n]; a[n] := i; WriteLn('Massiv posle izmeneniy:'); For i := 1 To n Do Write(a[i]:4); WriteLn; ReadLn; End. 7. Program p7; { 7. Дана целочисленная квадратная матрица размером n*m. Написать программу, позволяющую поменять местами элементы, расположенные в верхней и нижней четвертях, ограниченные главной и побочной диагоналями (за исключением элементов, расположенных на диагоналях). } Const N = 7; Var matrix: Array [1..N, 1..N] Of Integer; i, j, Temp: Integer; Begin { Заполняем матрицу псевдослучайными числами от 0 до 999 } Randomize; For i := 1 To N Do For j := 1 To N Do matrix[i][j] := Random(1000); WriteLn('Matritsa do izmeneniy:'); For i := 1 To N Do Begin For j := 1 To N Do Write(matrix[i][j]:4); WriteLn; End; For i := 1 To N Div 2 Do For j := i + 1 To N - i Do Begin Temp := matrix[i][j]; matrix[i][j] := matrix[N - i + 1][j]; matrix[N - i + 1][j] := Temp; End; WriteLn('Matritsa posle izmeneniy:'); For i := 1 To N Do Begin For j := 1 To N Do Write(matrix[i][j]:4); WriteLn; End; ReadLn; End. |