Завдання з інформатики
1. Дана функція f (x) = a + b * x * Sin (c * x + d), в якій коефіцієнти a, b, c, d
визначаються функцією Rnd з використанням процедури Randomize. Постійне k
визначається в інтервалі [0.1; 0.2] c кроком 0.01. Скласти програму визначення
перші точки перетину прямої y = k * x з функцією f для x> 0.
Текст програми:
CLS
RANDOMIZE 1000
INPUT "точність"; t
a1 = RND (100)
q1 = RND (90)
q2 = RND (80)
q3 = RND (110)
DEF fnf (x) = a1 + q1 * x * SIN (q2 * x + q3) - k * x
a = 0: b = 110
FOR k = .1 TO .2 STEP .01
GOSUB pod1
GOSUB pod2
PRINT "при k ="; k
cor = (x1 + x2)/2: y = fnf (cor) + k * x
PRINT "точка перетину"
PRINT "x ="; cor; "y ="; y;
a = x2
NEXT k
PRINT "Точність"; t
END
a = x2
NEXT k
PRINT "Точність"; t
END
pod1: 'відділення коренів в інтервалі а, в'
s = 10 * t: x = a
200: p = fnf (x) * f (x + s)
IF p> 0 THEN 1
x1 = x: x2 = x + s: RETURN
1 x = x + s: IF x
/> RETURN
10 x = (x1 + x2)/2: y = fnf (x)
IF fnf (x1) * y> 0 THEN x1 = x ELSE x2 = x
IF ABS (x2 - x1)> t THEN 10
/> RETURN
Дані:
a = 0
b = 110
точність? .001
Результати:
при k = .1
точка перетину
x = .0096875 y = .7444314
при k = .11
точка перетину
x = .0196875 y = .7470496
при k = .12
точка перетину
x = .0296875 y = .7497169
при k = .13
точка перетину
x = .0396875 y = .7524328
при k = .14
точка перетину
x = .0496875 y = .7551972
при k = .15
точка перетину
x = .0596875 y = .7580096
при k = .16
точка перетину
x = 6.968751E-02 y = .7608697
при k = .17
точка перетину
x = 7.968751E-02 y = .7637773
при k = .18
точка перетину
x = .0896875 y = .7667319
при k = .19
точка перетину
x = .0996875 y = .7697333
2. Відомі координати вершин чотирикутника A, B, C, D. Знайти точку
перетину його діагоналей і найбільший радіус кола, яка має центр в
цій точці і повністю лежить всередині цього чотирикутника. Координати точок
розташувати на гнучкому диску.
Текст програми:
REM Програма знаходження точки перетину діагоналей 4-х кутника
REM та найбільшого радіусу кола лежить в ньому.
CLS
OPEN "a: zad2.dat" FOR INPUT AS # 1
OPEN "a: zad2.txt" FOR OUTPUT AS # 2
DIM r (6)
INPUT # 1, x1, y1, x2, y2, x3, y3, x4, y4
x = ((x3 * y2 - x2 * y3) * (x4 - x1) - (x4 * y1 - x1 * y4) * (x3 - x2))/((y4
- Y1) * (x3 - x2) - (y3 - y2) * (x4 - x1))
y = ((y4 - y1) * (x - x1)/(x4 - x1)) + y1
r (1) = ABS ((x2 - x1) * y - (y2 - y1) * x + x1 * y2 - y1 * x2)/SQR ((x2 - x1) ^
2 + (y2 - y1) ^ 2)
r (2) = ABS ((x3 - x2) * y - (y3 - y2) * x + x2 * y3 - y2 * x3)/SQR ((x3 - x2) ^
2 + (y3 - y2) ^ 2)
r (3) = ABS ((x4 - x3) * y - (y4 - y3) * x + x3 * y4 - y3 * x4)/SQR ((x4 - x3) ^
2 + (y4 - y3) ^ 2)
r (4) = ABS ((x1 - x4) * y - (y1 - y4) * x + x4 * y1 - y4 * x1)/SQR ((x1 - x4) ^
2 + (y1 - y4) ^ 2)
r (5) = ABS ((x3 - x1) * y - (y3 - y1) * x + x1 * y3 - y1 * x3)/SQR ((x3 - x1) ^
2 + (y3 - y1) ^ 2)
r (6) = ABS ((x4 - x2) * y - (y4 - y2) * x + x2 * y4 - y2 * x4)/SQR ((x4 - x2) ^
2 + (y4 - y2) ^ 2)
min = r (1)
FOR i = 2 TO 6
IF r (i) = 0 THEN GOTO 5
IF r (i)
5 NEXT i
PRINT "Точка перетину діагоналей O ("; x; ","; y; ")"
PRINT "Радіус кола лежить в 4-х кутники ABCD, R =", min
PRINT # 2, "Точка перетину діагоналей O ("; x; ","; y; ")"
PRINT # 2, "Радіус кола лежить в 4-х кутники ABCD, R =", min
Дані з диска а:
1,1 2,1 1,2 2,2
Результати:
Точка перетину діагоналей O (1.5, 1.5)
Радіус кола лежить в 4-х кутники ABCD, R = .5
3. Елементи двовимірного масиву Q (m, n) (m> n) визначаються за однією з формул:
- Якщо номер рядка i <номера стовпця j, то елемент Q (i, j) обчислюється за>
формулою
- Якщо i
- Якщо i = j, то Q (i, j) = Log (10 * Rnd)/Sin (Rnd),
- Якщо i> j, то Q (i, j) = Rnd * Q (j, i).
За отриманими таким чином даними знайти і видати на друк:
- Рядок з найбільшим середнім значенням елементів,
- Строку, в якій різниця поруч стоять елементів - найменша,
- Елементи квадратної матриці (n, n), c максимальною сумою діагональних
елементів.
Текст програми:
CLS
2 INPUT "Кількість рядків стовпців"; m, n
IF m> = n THEN 1
PRINT "Число строк має бути більше числа стовпців": GOTO 2
1 DIM q (m, m)
FOR i = 1 TO m
FOR j = 1 TO m
IF i
IF i = j THEN q (i, j) = LOG (10 * RND)/SIN (RND)
IF i> j THEN q (i, j) = RND * q (j, i)
NEXT j
NEXT i
FOR i = 1 TO m
FOR j = 1 TO n
PRINT USING "##.### "; q (i, j);
NEXT j
PRINT
NEXT i
DIM s (m)
FOR i = 1 TO m
f = 0
FOR j = 1 TO n
f = f + q (i, j)
NEXT j: s (i) = f/n
NEXT i
PRINT
PRINT "Рядок з найбільшим середнім значенням"
max = s (1)
FOR j = 1 TO n
FOR i = 1 TO m
IF s (i)> = max THEN max = s (i): ii = i
NEXT i
PRINT USING "##.####"; q (ii, j);
NEXT j
PRINT
PRINT
PRINT "Рядок в якій різниця що стоять поруч ел-тов найменша"
min = ABS (q (1, 1) - q (1, 2))
FOR i = 1 TO m
FOR j = 2 TO n
z = ABS (q (i, j - 1) - q (i, j))
NEXT j
IF z> = min THEN 33
min = z: kk = i
33 NEXT i
FOR i = 1 TO n
PRINT USING "##.#### "; q (kk, i);
NEXT i
PRINT
s = 0
FOR i = 1 TO n
s = s + q (i, i)
NEXT i
k = 0
FOR i = 1 TO n
k = k + q (i + 1, i)
NEXT i
k (i) = k
PRINT
PRINT "Ел-ти квадратної матриці (n, n) з макс. Сумою діагональних ел-тов"
max = s
FOR i = 1 TO n
FOR j = 1 TO n
IF k (i)> = s THEN PRINT USING "##.####"; q (i + 1, j);
IF k (i)
NEXT j
PRINT
NEXT i
Дані:
Число рядків стовпців? 4,3
Результати:
Вихідна матриця
3.842 -0.373 0.367
-0.304 43.204 0.537
0.353 0.468 -0.708
0.201 -0.015 0.021
Рядок з найбільшим середнім значенням
-0.303743.2038 0.5367
Рядок у якої різниця що стоять поруч ел-тов найменша
0.2005 -0.0149 0.0212
Ел-ти квадратної матриці (n, n) з макс. сумою діагональних ел-тов
3.8424 -0.3729 0.3669
-0.3037 43.2038 0.5367
0.3530 0.4677 -0.7079
4. Скласти таблицю значень певного інтеграла