Задачи по информатике
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 pod2: 'уточнение корня'
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 - если 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. Составить таблицу значений определённого интеграла
т (x*tg(x)/(1+x2))*dx при изменении верхнего предела в интервале
[t1; t2] c шагом s.
Интегрировать методом трапеций с заданной точностью. На печать
выдать переменный предел, результат. Печать организовать
операторомPrint Using. Текст программы: CLS OPEN "a: z4. txt" FOR
OUTPUT AS #1 DEF fna (x) = (x * TAN(x)) / (1 + x ^ 2) INPUT "Нижняя
граница интеграла"; a
INPUT "Введите изменение верхнего предела интеграла, b"; t1, t2
INPUT "Введите шаг"; s INPUT "Точность"; t FOR b = t1 TO t2 STEP s
PRINT "Верхняя граница"; a; "Точность"; t PRINT #1, "Верхняя
граница"; a; "Точность"; t GOSUB INT2 PRINT USING " b=####. #####
INTEGR=####. #####"; b; IN1 PRINT #1, USING " b=####. #####
INTEGR=####. #####"; b; IN1 NEXT b END INT1: dx = (b - a) / (n - 1)
IN1 = (fna(a) + fna(b)) / 2 x = a 5 x = x + dx IN1 = IN1 + fna(a +
dx) IF x IN1 = IN1 * dx RETURN INT2: n = 100 45 GOSUB INT1: R = IN1
n = n + 20: GOSUB INT1 IF ABS(R - IN1) > t THEN 45 RETURN
Данные: Нижняя граница интеграла? 2 Введите изменение верхнего
предела интеграла, b? 3, 5 Введите шаг? . 9 Точность? . 001
Результаты: Верхняя граница 2 Точность . 001 b= 3. 00000 INTEGR=
-0. 86889 Верхняя граница 2 Точность . 001 b= 3. 90000 INTEGR= -1.
64549 Верхняя граница 2 Точность . 001 b= 4. 80000 INTEGR= -2.
32331
Задачи по информатике
225
0
4 минуты
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!