Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Башкирцев Р.В..docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
195.16 Кб
Скачать

Министерство образования и науки Украины

Национальный горный университет

Институт электроэнергетики

Кафедра электропривода

Отчет

По учебной практике

Вариант 2

Выполнил:

Студент группы ЕМС-12-1

Башкирцев Р.В

Проверил:

Проф. Воскобойник В.Э

Асс. Твердохлебов В.В

Днепропетровск

2013 год

СОДЕРЖАНИЕ

Задание 1. Суммирование функциональных рядов____________________

Задание 2. Вычисление определенного интегралов____________________

Задание 3. Операции с массивами__________________________________

Задание 4. Табулирование функции_________________________________

Задание 5.Сортировка массивов____________________________________

Задание 6. Операции с файлами____________________________________

Задание 7. Расчет разветвленной электрической цепи при

постоянном токе____________________________________­­­­­­­­­_____________

Задание 1. Суммирование функциональных рядов

Условие

Составить алгоритм и программу вычисления

- Значение функциональной суммы своего варианта для количества членов от одного до (n) слагаемых;

- Значение суммы с нужной точностью э = 0.001. Найти также количество просуммированных элементов;

- Значение функции согласно с формулой;

Функциональные

ряды

Диапазон

Изменения

аргумента

n

Функция

2

[/5; 9/5]

16

Блок схема часть 1

Начало

m

j<=1, 3, 1

x

вывод

од

X, y, S, e

S<=0

конец i

i<=1, 16, 1

конец j

Конец

m

Таблица символических имен

Имя

Значения

Тип

Данные

i

Индекс элемента

Целый

Вычисляется

j

Счетчик цикла

Целый

Вычисляется

S

Сумма ряда

Действительный

Вычисляется

y

Функция

Действительный

Вычисляется

x

Аргумент

Действительный

Задается

Вычисление конечной суммы

#include<iostream.h>

#include<math.h>

#include<stdio.h>

#include<conio.h>

void main()

{

int i, j;

double S, x, y, e;

clrscr();

for(j=0;j<3;j++)

{

cout<<"x=";

cin>>x;

y=-log(fabs(2*sin(x/2)));

S=0;

for(i=1;i<=16;i++)

S=S+cos(i*x)/i;

e=fabs(y-S);

cout<<"y="<<y<<" S="<<S<<" e="<<e<<endl;

}

getch();

}

Б

m

лок схема часть 2

Начало

j<=1, 3, 1

вывод

i, S, y

x

Да

Нет

S<=0

Конец

i<=1

m

Таблица символических имен

Имя

Значения

Тип

Данные

i

Индекс элемента

Целый

Вычисляется

j

Счетчик цикла

Целый

Вычисляется

S

Сумма ряда

Действительный

Вычисляется

y

Функция

Действительный

Вычисляется

x

Аргумент

Действительный

Задается

e

Погрешность

Действительный

Вычисляется

Вычисление суммы с заданной точностью

#include<iostream.h>

#include<math.h>

#include<conio.h>

#include<stdio.h>

void main()

{

clrscr();

int i, j;

float S, y, x;

for(j=0;j<3;j++)

{

cout<<"\nVvedite x ot pi/5 do 9pi/5\nx=";

cin>>x;

cout<<endl;

y=-log(fabs(2*sin(x/2)));

S=0;

i=1;

cout<<"\nn S y";

do

{

S=S+cos(i*x)/i;

cout.precision(10);

cout<<endl<<i<<"\t"<<S<<"\t"<<y;

i++;

}

while(fabs(y-S)>=0.001);

}

getch();

}

Результат конечной суммы

x= 0.628

y= 0.481702 S= 0.481702 e= 0.072595

x= 2.321

y= -0.606502 S= -0.588296 e= 0.018206

x= 5.652

y= 0.476811 S= 0.401281 e= 0.07553

Результат суммы с заданной точностью

Vvedite x ot pi/5 do 9pi/5

i S y

1 0.4771620333 0.4817020893

2 0.4795806408 0.4817020893

3 0.4827907383 0.4817020893

4 0.4855662286 0.4817020893

5 0.4868541956 0.4817020893

6 0.4861742556 0.4817020893

7 0.4837975502 0.4817020893

8 0.4806389213 0.4817020893

9 0.4779047966 0.4817020893

10 0.4766325355 0.4817020893

11 0.4772968888 0.4817020893

12 0.4796330333 0.4817020893

Vvedite x ot pi/5 do 9pi/5

i S y

1 -0.6430189013 -0.6065022945

2 -0.5592246056 -0.6065022945

3 -0.6352359056 -0.6065022945

4 -0.6104645133 -0.6065022945

5 -0.5766769648 -0.6065022945

6 -0.641145885 -0.6065022945

7 -0.5882959366 -0.6065022945

8 -0.5992373228 -0.6065022945

9 -0.6321244836 -0.6065022945

10 -0.5798509121 -0.6065022945

11 -0.6179678864 -0.6065022945

12 -0.6157627702 -0.6065022945

13 -0.5839809775 -0.6065022945

14 -0.6274466515 -0.6065022945

Vvedite x ot pi/5 do 9pi/5

i S y

1 0.4663950205 0.476810962

2 0.45767349 0.476810962

3 0.4564620852 0.476810962

4 0.4630290568 0.476810962

5 0.4746789634 0.476810962

6 0.4868516624 0.476810962

7 0.4949014783 0.476810962

8 0.4958648682 0.476810962

9 0.4895458221 0.476810962

10 0.4785237312 0.476810962

11 0.4671065807 0.476810962

12 0.4596519172 0.476810962

13 0.4589082301 0.476810962

14 0.4650063217 0.476810962

15 0.4754689634 0.476810962

16 0.4862122834 0.476810962

17 0.4931357205 0.476810962

18 0.48778373 0.476810962

19 0.477823019 0.476810962

20 0.4676848682 0.476810962

Задание 2. Вычисление определенного интеграла

Условие

Составить схему алгоритма и программу для вычислений:

- Определенного интеграла методом Трапеции;

- Определение интеграла методом Ньютона-Лейбница

Интеграл

Метод

Число областей интегрирования

Первообразная функции

2

Трапеции

54

Блок схема

Начало

s

a<= pi/6;

b<= pi/3;

n<=54;

i<=1, n-1, 1

)-

)

Конец i

C<=0

p

s

p

d

вывод

S, Snl

Конец i

C<=0

v

i<=1, n-1, 1

d

m

v

m

вывод

n, S, Snl, e

e ≥ 0.001

Нет

Да

Конец

Таблица символических имен

Имя

Значения

Тип

Данные

a

Нижний предел

Действительный

Задается

b

Верхний предел

Действительный

Задается

h

Шаг интегриров.

Действительный

Вычисляется

d

Погрешность

Действительный

Вычисляется

S

Интеграл

Действительный

Задается

Snl

Интеграл вычеслен по формуле Ньютона-Лейбница

Действительный

Вычисляется

C1

Сумма

Действительный

Вычисляется

C2

Сумма

Действительный

Вычисляется

E

Погрешность

Действительный

Вычисляется

n

Индекс

Целый

Задается

i

Целый

Вычисляется

Вычисление определенного интеграла

#include<iostream.h>

#include<math.h>

#include<conio.h>

#include<stdio.h>

void main()

{

float h, d, S, Snl, C, pi=3.1415, a=pi/6, b=pi/3, e;

int n=54, i;

clrscr();

Snl=(tan(b)-1/tan(b)-2*b-tan(pi/6)+1/tan(pi/6)+pi/3)-

(tan(a)-1/tan(a)-2*a-tan(pi/6)+1/tan(pi/6)+pi/3);

h=(b-a)/n;

d=pow(b-a,3)/(12*n*n);

C=0;

for(i=1;i<=n-1;i++)

C+=pow(tan(a+i*h),2)+pow(1/tan(a+i*h),2);

S=h*((pow(tan(a),2)+pow(1/tan(a),2)+pow(tan(b),2)+pow(1/tan(b),2))/2+C)+d;

cout<<"y=tan(x)-1/tan(x)-2*x-tan(pi/6)+1/tan(pi/6)+pi/3";

cout<<"\nf(x)=pow(tan(x),2)+pow(1/tan(x),2)";

cout<<"\na=pi/6 b=pi/3\n";

cout<<"\nMetod Trapezuu";

cout<<"\nS="<<S<<endl;

cout<<"\nFormyla Nuytona-Leubucha";

cout<<"\nSnl="<<Snl<<endl;

cout<<"\nRashet s toshnostuy e=0.001\n";

cout<<"\nn S Snl e\n";

n=15;

do

{

h=(b-a)/n;

d=pow(b-a,3)/(12*n*n);

C=0;

for(i=1;i<=n-1;i++)

C+=pow(tan(a+i*h),2)+pow(1/tan(a+i*h),2);

S=h*((pow(tan(a),2)+pow(1/tan(a),2)+pow(tan(b),2)+pow(1/tan(b),2))/2+C)+d;

cout.precision(5);

e=fabs(Snl-S);

cout<<n<<"\t"<<S<<"\t\t"<<Snl<<"\t\t"<<e<<endl;

n=n*2;

}

while(fabs(Snl-S)>=0.001);

getch();

}

Результат вычислений определенного интеграла

y=tan(x)-1/tan(x)-2*x-tan(pi/6)+1/tan(pi/6)+pi/2

f(x)=pow(tan(x),2)+pow(1/tan(x),2)

a=pi/6 b=pi/3

Metod Trapezuu

S = 1.262341

Formyla Nuytona-Leubucha

Snl = 1.262152

Rashet s tochnostuy e = 0.001

n S y e

15 1.2647 1.26215 0.00255

30 1.26279 1.26215 0.00064

Задание 3. Операции с массивами

Условие

Сложить схему алгоритма и программу для вычисления элементов матрицы , что является произведением матрицы на матрицу . Каждый элемент матрицы С вычисляется за формулой

i=1, 2,…n; j=1, 2,…q; k=1, 2,…m (n ≤ 6, q ≤ 8, m ≤ 10)

Выходные данные: m= 3; n= 4; q=3;

A = B =

Б лок схема

Начало

m

m<= 3

n<= 4

q<=3

m

k

i<= 1, n, 1

k<= 1, m, 1

j<= 1, q, 1

Конец i

Конец j

Конец k

k

вывод

A, B, C

Конец

Таблица символических имен

Имя

Значения

Тип

Данные

k

Номер элемента вектора

Целый

Вычисляется

i

Индекс вектора

Целый

Вычисляется

n

Кол-во елементов вектора

Целый

Задается

m

Множитель

Действительный

Вычисляется

x

Заданый вектор

Действительный

Задается

y

Заданый вектор

Действительный

Задается

z

Искомый вектор

Действительный

Вычисляется

Программа

#include<iostream.h>

#include<math.h>

#include<conio.h>

#include<stdio.h>

void main()

{

clrscr();

int m=3, n=4, g=3, j, k, i;

float A[3][4]= {3.6, 0, 1, 2,

6, 0, 2, 4,

9, 0, 3, 16};

float B[4][3]= {1, -1, -2,

3, 2.2, 4,

2, 4, 1,

-2, 0, 3};

float C[3][3];

for(k=0;k<m;k++)

for(j=0;j<g;j++)

{

C[k][j]=0;

for(i=0;i<n;i++)

C[k][j]+=A[k][i]*B[i][j];

}

cout<<"Matrica A\n";

for(k=0;k<m;k++)

{

for(i=0;i<n;i++)

cout<<A[k][i]<<"\t";

cout<<endl;

}

cout<<"\nMatrica B\n";

for(i=0;i<n;i++)

{

for(j=0;j<g;j++)

cout<<B[i][j]<<"\t";

cout<<endl;

}

cout<<"\nMatrica C=A*B\n";

for(k=0;k<m;k++)

{

for(j=0;j<g;j++)

cout<<C[k][j]<<"\t";

cout<<endl;

}

}

Результаты вычислений

Matrica A

3.6 0 1 2

6 0 2 4

9 0 3 16

Matrica B

1 -1 -2

3 2.2 4

2 4 1

Matrica C=A*B

1.6 0.4 -0.2

2 2 2

-17 3 33

Задание 4. Табулирование функции

Условие

Составить алгоритм и программу вычислении функции своего варианта и вывести их результат в виде таблицы.

Алгебр.

рац

Алгебр.

иррац

Тригоном.

Показ

Гипербол

Натурал .логарифм

Соединение Тригоном.Гипербол. и им обратных

2

Блок схема часть 1

F1

x = - 1

return 0

return f

F1

F2

x ≤ 1

return 0

return f

F2

Нет

Да

Нет

Да

F3

return 0

F3

=0

Нет

Да

return f

F4

1+ =0

return 0

return f

F4

Нет

Да

F5

return 0

return f

F5

Нет

Да

F6

return 0

return f

F6

Нет

Да

F7

ch(sinx)=0

return 0

return f

F7

Нет

Да

Начало

ввод

S, Snl

F1

F1

z

z

L

i<= 1, 30, 1

F2

вывод

x, F1, F2, F3, F4, F5, F6, F7

F3

F4

Конец i

F5

конец

Конец

x, F1, F2, F3, F4, F5, F6,F7

F6

F7

конец

L

Таблица символических имен

Имя

Значения

Тип

Данные

pi

Число пи

Действительный

Константа

x

Аргумент

Действительный

Задается

f

Функция

Действительный

Вычисляется

i

Шаг цикла

Целый

Вычисляется

Программа табулирования функций

#include<iostream.h>

#include<math.h>

#include<stdio.h>

#include<conio.h>

#include<iomanip.h>

float F1(float x)

{

float f;

if(x==-1) return 0;

else

{

f=(pow(x,3)/(1+x));

return f;

}

}

float F2(float x)

{

float f;

if(x<=1) return 0;

else

{

f=(1+x*x)/sqrt(1+x);

return f;

}

}

float F3 (float x)

{

float f;

if(pow(sin(x),2)*(1+sin(x))==0) return 0;

else

{

f=1/(pow(sin(x),2)*(1+sin(x)));

return f;

}

}

float F4 (float x)

{

float f;

if(1+exp(-x)==0) return 0;

else

{

f=1/(1+exp(-x));

return f;

}

}

float F5 (float x)

{

float f;

if(x*x*sinh(x)==0) return 0;

else

{

f=1/(x*x*sinh(x));

return f;

}

}

float F6 (float x)

{

float f;

if(x*x*log(x+1)==0) return 0;

else

{

f=1/(x*x*log(x+1));

return f;

}

}

float F7 (float x)

{

float f;

if(cosh(sin(x))==0) return 0;

else

{

f=1/cosh(sin(x));

return f;

}

}

void main()

{

clrscr();

const float pi=3.1415;

float x[]={0,0.1,0.2,0.3,0.4,0.5,pi/4,0.8,0.9,1,pi/3,1.1,1.2,

1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.2,2.3,2.4,2.5,2.6,2.8,2.9,3,pi};

int i;

cout<<setw(5)<<"x"<<setw(10)<<"F1"<<setw(10)<<"F2"

<<setw(10)<<"F3"<<setw(10)<<"F4"<<setw(10)<<"F5"

<<setw(10)<<"F6"<<setw(10)<<"F7\n\n";

for(i=0;i<=30;i++)

{

cout<<setw(5)<<x[i]

<<setw(10)<<setprecision(3)<<F1(x[i])

<<setw(10)<<setprecision(3)<<F2(x[i])

<<setw(10)<<setprecision(3)<<F3(x[i])

<<setw(10)<<setprecision(3)<<F4(x[i])

<<setw(10)<<setprecision(3)<<F5(x[i])

<<setw(10)<<setprecision(3)<<F6(x[i])

<<setw(10)<<setprecision(3)<<F7(x[i])

<<endl;

getch();}

getch();

}

Блок схема часть 2

koordinat

Line(0,430,620,430)

Line(40,0,40,480)

koordinat

Начало

f

r <= DETECT

x1 <= 0.1∙ (i-1)

mx <= 180

x2 <= 0.1∙i

koordinat ( )

ch(

Нет

my <= 300

f

j

Да

i <=1, 3, 1

a

j

Line(x1∙mx+40,430 – y1∙my,x2∙mx+40,430 – y2∙my

Конец

Конец i

a

Таблица символических имен

Имя

Значения

Тип

Данные

i

Счетчик цикла

Целый

Вычисляется

x1

Первая координата по x

Действительный

Вычисляется

x2

Вторая координата по x

Действительный

Вычисляется

y1

Первая координата по y

Действительный

Вычисляется

y2

Вторая координата по y

Действительный

Вычисляется

mx

Масштаб по x

Действительный

Задано

my

Масштаб по y

Действительный

Задано

Программа построения графика функции

#include<iostream.h>

#include<conio.h>

#include<process.h>

#include<graphics.h>

#include<time.h>

#include<math.h>

void koordinat()

{

line(0,430,620,430);

line(40,0,40,480);

}

void main()

{

clrscr();

int r, d;

r=DETECT;

initgraph(&r,&d,"c:\\borlandc\\bgi");

setbkcolor(15);

setcolor(10);

koordinat();

outtextxy(15,10,"Y");

outtextxy(615,435,"X");

for(int j=0;j<=560;j=j+90)

outtextxy(130+j,427,"|");

for(j=25;j<=430;j=j+75)

outtextxy(37,27+j,"-");

setcolor(10);

outtextxy(10,280,"0.5");

outtextxy(0,55,"1.25");

outtextxy(26,130,"1");

outtextxy(0,205,"0.75");

outtextxy(0,355,"0.25");

outtextxy(220,450,"1");

outtextxy(400,450,"2");

outtextxy(580,450,"3");

outtextxy(26,440,"0");

float mx, my, y1, x1, y2, x2;

mx=(180);

my=(300);

setcolor(12);

for(int i=1;i<=31;i++)

{

x1=0.1*(i-1);

x2=0.1*i;

if(cos(sin(x1))!=0)

{

y1=1/cosh(sin(x1));

y2=1/cosh(sin(x2));

line(ceil(x1*mx)+40,430-ceil(y1*my),ceil(x2*mx)+40,430-ceil(y2*my));

}

}

closegraph;

getch();

}

Результат табулирования функций

x F1 F2 F3 F4 F5 F6 F7

0 0 0 0 0.5 0 0 1

0.1 0 0 91.227 0.525 998.335 1049.206 0.995

0.2 0.007 0 21.137 0.55 124.171 137.12 0.981

0.3 0.021 0 8.839 0.574 36.487 42.35 0.958

0.4 0.046 0 4.746 0.599 15.216 18.575 0.929

0.5 0.083 0 2.941 0.662 7.676 9.865 0.895

0.785 0.271 0 1.172 0.687 1.866 2.797 0.793

0.8 0.284 0 1.132 0.69 1.759 2.658 0.788

0.9 0.5 0 0.914 0.711 1.203 1.923 0.756

1 0.5 0 0.767 0.731 0.851 1.443 0.727

1.047 0.561 1.465 0.715 0.74 0.73 1.273 0.715

1.1 0.634 1.525 0.666 0.75 0.619 1.114 0.702

1.2 0.785 1.645 0.596 0.769 0.46 0.881 0.682

1.3 0.955 1.774 0.549 0.786 0.348 0.71 0.666

1.4 1.143 1.911 0.519 0.802 0.268 0.583 0.655

1.5 1.35 2.055 0.503 0.818 0.209 0.485 0.649

1.6 1.575 2.208 0.501 0.832 0.164 0.409 0.648

1.7 1.82 2.367 0.511 0.846 0.131 0.348 0.652

1.8 2.083 2.534 0.534 0.858 0.105 0.3 0.661

1.9 2.365 2.707 0.574 0.87 0.085 0.26 0.675

2 2.667 2.887 0.633 0.881 0.069 0.228 0.693

2.1 2.987 3.073 0.72 0.891 0.056 0.2 0.716

2.2 3.328 3.265 0.846 0.9 0.046 0.178 0.743

2.3 3.687 3.463 1.03 0.909 0.038 0.158 0.774

2.4 4.066 3.666 1.308 0.917 0.032 1.142 0.808

2.5 4.464 3.875 1.747 0.924 0.026 0.128 0.844

2.6 4.882 4.09 2.483 0.931 0.022 0.115 0.88

2.8 5.777 4.535 6.675 0.943 0.016 0.096 0.946

2.9 6.254 4.765 14.097 0.948 0.013 0.087 0.972

3 6.75 5 44.004 0.953 0.011 0.08 0.99

3.141 7.486 5.341 1.164e+08 0.959 0.009 0.071 1

Результат графика функции

Задание 5. Сортировка массивов

Условие

Составить схему алгоритма и программу, который имеет ГМ и ПП сортировки масива А=[ai]n без уменьшения (a1 a2 ≤ … ≤ ai ≤ … ≤ an) методом выбора.

Таблица символических имен

Имя

Значения

Тип

Данные

i

индекс строки

Целый

Вычисляется

n

размер вектора

Целый

Задается

j

счетчик цикла

Целый

Вычисляется

A

вектор

Действительный

масив

Задается

M

запоминающая переменная

Действительный

Вычисляется

Блок схема

Obr

A

B

j<= 1, n-1, 1

A[i+1]<=M

Конец i

i<= 1, n-1, 1

A[i]>A[i+1]

Конец i

Нет

M<=A[i]

Да

Obr

A[i]<=A[i+1]

A

B

Начало

ввод

n, А

вывод

А

Obr

А

вывод

Конец

Программа сортировки массива

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

void Obr(float A[10], int n)

{

int i, j;

float M;

for(j=0;j<n-1;j++)

for(i=0;i<n-1;i++)

{

if(A[i]>A[i+1])

{

M=A[i];

A[i]=A[i+1];

A[i+1]=M;

}

}

}

void main()

{

int n, i;

float A[10];

clrscr();

cout<<"Vvedite n=";

cin>>n;

cout<<"Vvedite vektor\n";

for(i=0;i<n;i++)

{

cout<<"A["<<i+1<<"]=";

cin>>A[i];

}

clrscr();

cout<<"Ishodnuy vektor\n";

for(i=0;i<n;i++)

cout<<A[i]<<"\t";

Obr(A, n);

cout<<"\n\nOtsortirovanuy vektor\n";

for(i=0;i<n;i++)

cout<<A[i]<<"\t";

}

Результат сортировки

Ishodnuy vector

5 -1 7 -3 0 4 -2 6

Otsortirovanuy vector

-3 -2 -1 0 4 5 6 7

Задание 6. Операции с файлами

Условие

Дан файл F, компоненты которого целые числа. Найти:

а) большее значение среди компонентов;

б) меньшее значение среди компонентов с четными индексами;

в) большее значение среди модулей компонентов с нечетными индексами;

г) сумму большего и меньшего значений компонентов;

д) разницу первого и последнего компонентов файла.

Таблица символических имен

Имя

Значения

Тип

Данные

i

индекс элемента

Целый

Вычисляется

n

размер вектора

Целый

Задается

A

вектор

Действительный

масив

Задается

f1

текстовый документ

файл

Задается

max

больший элемент

Целый

Вычисляется

min

меньший элемент

Целый

Вычисляется

minp

меньший элемент компонентов с четными индексами

Целый

Вычисляется

maxmn

больший по модулю элемент компонентов с нечетными индексами

Целый

Вычисляется

r

разность первого и последнего компонента

Целый

Вычисляется

s

сумма большего и меньшего элемента

Целый

Вычисляется

начало

f1=fopen

(“F.txt”,”r”)

ввод

А

max<=A[1]

min<=A[1]

maxmn<=A[1]

minp<=A[2]

i<= 1, n, 1

Да

Нет

|maxmn|<

|A[i]|

Да

Нет

minp>A[i]

Да

Нет

А

B

C

D

А

B

C

D

maxmn<=A[1]

minp<=A[2]

max<A[i]

Да

Нет

max<=A[1]

min>A[i]

Да

Нет

min<=A[1]

F

F

конец i

r<=A[1]-A[n]

s<=max+min

max, minp, maxmn, s,r

вывод

конец