RSS    

   Реферат: Курсовая по информатике

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 <= b - s THEN 200

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) < min THEN min = 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 <  j, то Q(i, j) = eRnd*Sin(Rnd-0.5),

        - если  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 < j THEN q(i, j) = EXP(RND) * SIN(RND - .5)

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) < s THEN PRINT USING " ##.#### "; q(i, j);

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.  Составить таблицу значений определённого интеграла   

  b                                                                             

 ò (x*tg(x)/(1+x2))*dx  при изменении верхнего предела в интервале [t1;t2]              

a

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 < b THEN 5

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


Страницы: 1, 2


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.