Смекни!
smekni.com

Пояснительная записка к курсовой работе

Содержание


1. Программирование нестандартных функций --------------------------------------------------- 5

1.1. Постановка задачи -------------------------------------------------------------------------- 5

1.2. Результат машинного и ручного счета -------------------------------------------------- 6

1.3. Вывод ------------------------------------------------------------------------------------------- 6

2.Программирование нестандартных функций --------------------------------------- 7

2.1. Постановка задачи --------------------------------------------------------------------------- 7

2.2. Метод решения ------------------------------------------------------------------------------- 7

2.3.Описание программы ------------------------------------------------------------------------- 8

2.4.Результат машинного и ручного расчета ------------------------------------------------- 9

2.5. Вывод ------------------------------------------------------------------------------------------- 9

3.Операции над матрицами -------------------------------------------------------------------------- 10

3.1. Постановка задачи ---------------------------------------------------------------------------- 10

3.2. Метод решения -------------------------------------------------------------------------------- 10

3.3. Описание программы ------------------------------------------------------------------------ 12

3.4. Результат машинного и ручного расчета ---------------------------------------------- 14

3.5. Вывод ------------------------------------------------------------------------------------------ 15

4.Вычесление определенного интеграла --------------------------------------------------------- 16

4.1. Постановка задачи ----------------------------------------------------------------------------- 16

4.2. Метод решения ------------------------------------------------------------------------------- 16

4.3. Описание программы ------------------------------------------------------------------------ 16

4.4. Результат машинного и ручного расчета ------------------------------------------------ 17

4.5. Вывод ------------------------------------------------------------------------------------------- 18

5. Нахождение максимального и минимального значения функции ----------------------- 19

5.1. Постановка задачи ---------------------------------------------------------------------------- 19

5.2. Метод решения -------------------------------------------------------------------------------- 19

5.3. Описание программы ------------------------------------------------------------------------ 20

5.4. Результат машинного и ручного расчета ----------------------------------------------- 21

5.5. Вывод --------------------------------------------------------------------------------- 21

Заключение ------------------------------------------------------------------------------------ 22 Список литературы ------------------------------------------------------------------------------- 23


Министерство образования Российской Федерации

Ульяновский государственный технический университет

Кафедра “Технология Машиностроения”


Пояснительная записка к курсовой работе

по технологической информатике


Студент Швецов В.В., гр. ТМду-21 Вариант №70


Консультант Крупенников О.Г.


Ульяновск 2005

Министерство образования Российской Федерации

Ульяновский государственный технический университет

Кафедра “Технология машиностроения”


Задание на курсовую работу


Исходные данные для проектирования

Разработать алгоритмы и программы в соответствии с вариантом №70


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

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

Составить алгоритм и программу операций над матрицами.

при I=3, J=4, K=5.

Составить алгоритм и программу для вычисления определенного интеграла. Число разбиений каждого интервала интегрирования принять равным 10.

, при a=3, b=4.

Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции на интервале [a,b]=[3,6] .



Консультант Крупенников О.Г.


Студент Швецов В.В.


Задание принял к исполнению ”1“ сентября 2005г.

Содержание

стр.

1. Задание №1……………………………………………………………………4

2. Задание №2……………………………………………………………………6

3. Задание №3…………………………………………………………………...10

4. Задание №4…………………………………………………………………...18

5. Задание №5…………………………………………………………………...20

Заключение………………………………………………………………...…24

Список литературы ..………………………………………………………...25


Задание №1

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

,

Так как в Turbo Pascal нет функции ch(x) поэтому нужно преобразить их с помощью функций, которые распознает Turbo Pascal:

Тогда первоначальную формулу можно представить как:


Ручной счет




Алгоритм программы

Текст программы


Program N1;

uses Crt;

var a,b,x,y:Real;

F:Text;

begin

Clrscr;

Assign (F,'A:\1.Dat');

Rewrite (F);

Writeln ('Вычисление функции с использованием нестандартных функций');

Writeln (F,'Вычисление функции с использованием нестандартных функций');

writeln('y=a*a-b*b+ln(x-a)*ch(x) ');

writeln(F,'y=a*a-b*b+ln(x-a)*ch(x) ');

writeln ('Введите значения а,b,x');

Readln (a,b,x);

y:=a*a-b*b+ln(x-a)*((exp(x)+exp(-x))/2);

Writeln ('y= ',y:3:3);

Writeln (F,'y= ',y:3:3);

Writeln (F);

writeln ('Разработал студент гр.Тмду-21 Швецов В.В.');

writeln (F,'Разработал студент гр.Тмду-21 Швецов В.В.');

Close (F);

Readkey;

end.


Машинный счет


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

y=a*a-b*b+ln(x-a)*ch(x)

введите а 3

введите b 2

введите x 4

функция y=5.000

Разработал студент гр.Тмду-21 Швецов В.В.


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

y=a*a-b*b+ln(x-a)*ch(x)

введите а 4

введите b 3

введите x 5

функция y=7.000

Разработал студент гр.Тмду-21 Швецов В.В.

Вывод: результаты ручного и машинного счета совпали, следовательно, программа выполнена правильно.

Задание №2

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

Так как в Turbo Pascal нет функций sh(x) поэтому нужно преобразить ее с помощью функций, которые распознает Turbo Pascal:


Также в Turbo Pascal нет факториала, но известно, что

аналогично и для


Ручной счет



Алгоритм программы



Текст программы

Program N2;

uses crt;

var y,x,s,u:real;

m,n: integer;

F:Text;

procedure vvod;

begin

clrscr;

Assign (F,'A:\2.Dat');

Rewrite (F);

writeln ('Вычисление функции с использованием нестандартных функций и процедур');

writeln (F,'Вычисление функции с использованием нестандартных функций и процедур');

writeln ('y=sh(sqrt(x))+(m!-n!)-sqrt(x)');

writeln (F,'y=sh(sqrt(x))+(m!-n!)-sqrt(x)');

write('Введите x= ');

readln(x);

end;

procedure factorial (var m,n:integer);

var a,b:longint;

i:integer;

begin

a:=1;

for i:=1 to n do b:=b*i;

b:=1;

for i:=1 to m do a:=a*i;

m:=a; n:=b;

u:=m-n

end;


procedure sinus;

begin

s:=(exp(sqrt(x))-exp(-sqrt(x)))/2;

writeln('синус гиперболический равен s= ',s:4:2);

end;

procedure functio;

begin

y:=s+u-sqrt(x);

writeln('значение функции равно y= ',y:4:2);

writeln(F,'значение функции равно y= ',y:4:2);

end;

begin

vvod;

writeln('Введите m,n ');

readln(m,n);

factorial (m,n);

sinus;

functio;

writeln ('Разработал студент гр.Тмду-21 Швецов В.В.');

writeln (F,'Разработал студент гр.Тмду-21 Швецов В.В.');

Close (F);

readkey;

end.

Машинный счет


Вычисление функции с использованием нестандартных функций и процедур y=sh(sqrt(x))+(m!-n!)-sqrt(x)

Введите x= 1

Введите m, n 3, 1

гиперболический синус равен u= 1.18

значение функции равно y= 5.18

Разработал студент гр.Тмду-21 Швецов В.В.

Вывод: результаты ручного и машинного счета совпали, следовательно, программа выполнена правильно


Задание№3

Составить алгоритм и программу операций над матрицами.

при I=3, J=4, K=5.

Алгоритм программы




Текст программы

program matrix;

uses crt;

const Ni=3;

Nj=4;

Nk=5;

type matr=array[1..Nk,1..Nk] of real;

var A,At,B,C,D,AtB,CD,S:matr;

i,j,k:integer;

F:text;

procedure proizvedenie1(var m:matr; p,l:matr);

var i1,j1,k1:integer;

begin

for i1:=1 to Ni do

for k1:=1 to Nk do

begin

m[i1,k1]:=0;

for j1:=1 to Nj do

m[i1,k1]:=m[i1,k1]+p[i1,j1]*l[j1,k1];

end;

end;

procedure proizvedenie2(var m:matr; p,l:matr);

var i1,j1,k1:integer;

begin

for i1:=1 to Ni do

for j1:=1 to Nj do

begin

m[i1,j1]:=0;

for k1:=1 to Nk do

m[i1,j1]:=m[i1,j1]+p[i1,k1]*l[k1,j1];

end;

end;

procedure vvod(var m:matr;t:char; Ni1,Nj1:integer);

var i1,j1:integer;

begin

writeln('Ввод матрицы ',t);

for i1:=1 to Ni1 do

for j1:=1 to Nj1 do

begin

write ('Введите ',j1,' -элемент ',i1,' строки:');

readln(m[i1,j1]);

end;

end;

procedure trans(var mt:matr; m:matr; N1:integer);

var i1,j1:integer;

begin

for i1:=1 to N1 do

for j1:=1 to N1 do

mt[i1,j1]:=m[j1,i1];

end;

procedure summa(var m:matr; p,l:matr; Ni1,Nj1:integer);

var i1,j1:integer;

begin

for i1:=1 to Ni1 do

for j1:=1 to Nj1 do m[i1,j1]:=p[i1,j1]+l[i1,j1];

end;

begin

clrscr;

Assign (F,'A:\3.Dat');

rewrite (F);

writeln ('Вычисление матрицы S=At*B*(C+D) ');

writeln (F,'Вычисление матрицы S=At*B*(C+D) ');

vvod(A,'A',Nj,Ni);

vvod(B,'B',Nj,Nk);

vvod(C,'C',Nk,Nj);

vvod(D,'D',Nk,Nj);

trans(At,A,Nj);

writeln ('Транспонированная матрица At:');

writeln (F,'Транспонированная матрица At:');

for i:=1 to Ni do

begin

for j:=1 to Nj do

begin

write (At[i,j]:7:2,' ');

write (F,At[i,j]:7:2,' ');

end;

writeln;

writeln(F);

end;

summa(CD,C,D,Nk,Nj);

writeln ('Сумма матриц C и D:');

writeln (F,'Сумма матриц C и D:');

for k:=1 to Nk do

begin

for j:=1 to Nj do

begin

write (CD[k,j]:7:2,' ');

write (F,CD[k,j]:7:2,' ');

end;

writeln;

writeln(F);

end;

proizvedenie1(AtB,At,B);

writeln ('Произведение матриц At и B:');

writeln (F,'Произведение матриц At и B:');

for i:=1 to Ni do

begin

for k:=1 to Nk do

begin

write (AtB[i,k]:7:2,' ');

write (F,AtB[i,k]:7:2,' ');

end;

writeln;

writeln(F);

end;

proizvedenie2(S,AtB,CD);

writeln ('Результирующая матрица:');

writeln (F,'Результирующая матрица:');

begin

for i:=1 to Ni do

begin

for j:=1 to Nj do

begin

write (S[i,j]:2:2,' ');

write (F,S[i,j]:2:2,' ');

end;

writeln;

writeln(F);

end;

end;

writeln ('Разработал студент гр.Тмду-21 Швецов В.В.');

writeln (F,'Разработал студент гр.Тмду-21 Швецов В.В.');

close(F);

Readkey;

end.


Ручной счет

,

,

,

.

Машинный счет

Ввод матрицы А

Введите 1-элемент 1 строки:1

Введите 2-элемент 1 строки:1

Введите 3-элемент 1 строки:1

Введите 1-элемент 2 строки:1

Введите 2-элемент 2 строки:1

Введите 3-элемент 2 строки:1

Введите 1-элемент 3 строки:1

Введите 2-элемент 3 строки:1

Введите 3-элемент 3 строки:1

Введите 1-элемент 4 строки:1

Введите 2-элемент 4 строки:1

Введите 3-элемент 4 строки:1

Ввод матрицы B

Введите 1-элемент 1 строки:1

Введите 2-элемент 1 строки:1

Введите 3-элемент 1 строки:1

Введите 4-элемент 1 строки:1

Введите 5-элемент 1 строки:1

Введите 1-элемент 2 строки:1

Введите 2-элемент 2 строки:1

Введите 3-элемент 2 строки:1

Введите 4-элемент 2 строки:1

Введите 5-элемент 2 строки:1

Введите 1-элемент 3 строки:1

Введите 2-элемент 3 строки:1

Введите 3-элемент 3 строки:1

Введите 4-элемент 3 строки:1

Введите 5-элемент 3 строки:1

Введите 1-элемент 4 строки:1

Введите 2-элемент 4 строки:1

Введите 3-элемент 4 строки:1

Введите 4-элемент 4 строки:1

Введите 5-элемент 4 строки:1

Ввод матрицы С

Введите 1-элемент 1 строки:1

Введите 2-элемент 1 строки:1

Введите 3-элемент 1 строки:1

Введите 4-элемент 1 строки:1

Введите 5-элемент 1 строки:1

Введите 1-элемент 2 строки:1

Введите 2-элемент 2 строки:1

Введите 3-элемент 2 строки:1

Введите 4-элемент 2 строки:1

Введите 5-элемент 2 строки:1

Введите 1-элемент 3 строки:1

Введите 2-элемент 3 строки:1

Введите 3-элемент 3 строки:1

Введите 4-элемент 3 строки:1

Введите 5-элемент 3 строки:1

Введите 1-элемент 4 строки:1

Введите 2-элемент 4 строки:1

Введите 3-элемент 4 строки:1

Введите 4-элемент 4 строки:1

Введите 5-элемент 4 строки:1

Введите 1-элемент 5 строки:1

Введите 2-элемент 5 строки:1

Введите 3-элемент 5 строки:1

Введите 4-элемент 5 строки:1

Ввод матрицы D

Введите 1-элемент 1 строки:1

Введите 2-элемент 1 строки:1

Введите 3-элемент 1 строки:1

Введите 4-элемент 1 строки:1

Введите 5-элемент 1 строки:1

Введите 1-элемент 2 строки:1

Введите 2-элемент 2 строки:1

Введите 3-элемент 2 строки:1

Введите 4-элемент 2 строки:1

Введите 5-элемент 2 строки:1

Введите 1-элемент 3 строки:1

Введите 2-элемент 3 строки:1

Введите 3-элемент 3 строки:1

Введите 4-элемент 3 строки:1

Введите 5-элемент 3 строки:1

Введите 1-элемент 4 строки:1

Введите 2-элемент 4 строки:1

Введите 3-элемент 4 строки:1

Введите 4-элемент 4 строки:1

Введите 5-элемент 4 строки:1

Введите 1-элемент 5 строки:1

Введите 2-элемент 5 строки:1

Введите 3-элемент 5 строки:1

Введите 4-элемент 5 строки:1


Вычисление матрицы S=At*B*(C+D)

Транспонированная матрица At:

1.00 1.00 1.00 1.00

1.00 1.00 1.00 1.00

1.00 1.00 1.00 1.00

Сумма матриц C и D:

2.00 2.00 2.00 2.00

2.00 2.00 2.00 2.00

2.00 2.00 2.00 2.00

2.00 2.00 2.00 2.00

2.00 2.00 2.00 2.00

Произведение матриц At и B:

4.00 4.00 4.00 4.00 4.00

4.00 4.00 4.00 4.00 4.00

4.00 4.00 4.00 4.00 4.00

Результирующая матрица:

40.00 40.00 40.00 40.00

40.00 40.00 40.00 40.00

40.00 40.00 40.00 40.00

Разработал студент гр.Тмду-21 Швецов В.В.


Вывод: результаты ручного и машинного счета совпали, следовательно, программа выполнена правильно.

Задание №4

Составить алгоритм и программу для вычисления определенного интеграла. Число разбиений каждого интервала интегрирования принять равным 10.


, при a=3, b=4.

Ручной счет

Текст программы

Program N4;

uses Crt;

var a,b,h,x,y,x1,y1,xn,yn, I:Real;

N:Word; F:Text;

begin

Clrscr;

Assign (F,'A:\4.Dat');

Rewrite (F);

Writeln ('Вычисление определенного интеграла функции');

Writeln (F,'Вычисление определенного интеграла функции');

Writeln ('y:=exp(ln(1-2*x+sqr(x))/5)/1-x методом Симпсона');

Writeln (F,'y:=exp(ln(1-2*x+sqr(x))/5)/1-x методом Симпсона');

writeln ('Введите значения а,b,N');

Readln (a,b,N);

h:=(a-b)/(N-1);

x1:=b;xn:=a;y1:=exp(ln(1-2*x1+sqr(x1))/5)/1-x1;

yn:=exp(ln(1-2*xn+sqr(xn))/5)/1-xn;y:=0;x:=b+h;

Repeat y:=exp(ln(1-2*x+sqr(x))/5)/1-x;x:=x+2*h Until (x>=(a-h));

I:=(h/3)*(y1+(y*y)+(2*y*y)+yn);

Writeln ('I= ',I:3:3);

Writeln (F,'I= ',I:3:3);

writeln ('Разработал студент гр.Тмду-21 Швецов В.В.');

writeln (F,'Разработал студент гр.Тмду-21 Швецов В.В.');

Close (F);

Readkey;

end.


Алгоритм программы


Машинный счет


Вычисление определенного интеграла функции

y:=exp(ln(1-2*x+sqr(x))/5)/1-x методом Симпсона

I= -0,466.

Разработал студент гр.Тмду-21 Швецов В.В.


Вывод: результаты машинного и ручного счета разошлись на 1,5%, следовательно программа выполнена верно.

Задание №5

Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции на интервале [a,b]=[3,6]

Ручной счет:



Y=-4.0665 при X=3.00


Y=-4.1887 при X=3.75


Y=-4.2726 при X=4.50


Y=-4.3335 при X=5.25


Y=-4.3797 при X=6.00

Из данного графика функции

видно что

Ymax=-4.0665 при X=3.00


Ymin=-4.3797 при X=6.00


Алгоритм программы


Текст программы

program kurs8;

const a=3; b=6;

var xmin,xmax,ymax,ymin,x,y,h:real;

n:real;

F:Text;

begin

Assign (F,'A:\5.Dat');

Rewrite (F);

Writeln ('Вычисление наибольшего и наименьшего значений');

Writeln (F,'Вычисление наибольшего и наименьшего значений');

writeln('функции y=arcsin(2*x)/(1+x*x)-3*Pi/2 на интервале [3,6] ');

writeln(F,'функции y=arcsin(2*x)/(1+x*x)-3*Pi/2 на интервале [3,6] ');

writeln('Введите число разбиений ');

readln(n);

ymax:=-10E5;

ymin:=10E5;

h:=(b-a)/n; x:=a;

while (x<=b) do begin

y:=arctan( ((2*x)/(1+x*x))/sqrt(1-sqr(((2*x)/(1+x*x)))) )-(3*Pi/2);

writeln (' Y=',y:5:5,' при X=',x:4:2);

writeln (f,' Y=',y:5:5,' при X=',x:4:2);

if (y<=ymin) then begin ymin:=y; xmin:=x;end;

if (y>=ymax) then begin ymax:=y; xmax:=x;end;

x:=x+h;

end;writeln;

writeln('Ymax=',ymax:5:3,' при X=',xmax:4:2);

writeln(F,'Ymax=',ymax:5:3,' при X=',xmax:4:2);

writeln('Ymin=',ymin:5:3,' при X=',xmin:4:2);

writeln(F,'Ymin=',ymin:5:3,' при X=',xmin:4:2);

writeln ('Разработал студент гр.Тмду-21 Швецов В.В.');

writeln (F,'Разработал студент гр.Тмду-21 Швецов В.В.');

readln;

Close (F);

end.

Машинный счет

Вычисление наибольшего и наименьшего значения функции

y=arctan( ((2*x)/(1+x*x))/sqrt(1-sqr(((2*x)/(1+x*x)))) )-(3*Pi/2)

Введите число разбиений n= 4

Y=-4.06889 при X=3.00

Y=-4.19118 при X=3.75

Y=-4.27505 при X=4.50

Y=-4.33595 при X=5.25

Y=-4.38209 при X=6.00

Ymax=-4.069 при X=3.00

Ymin=-4.382 при X=6.00

Вывод: Результаты ручного и машинного счета совпадают, следовательно программа работает верно


Заключение.


Программы работают правильно, так как ручной и машинный счет совпадают. Можно сделать вывод, что курсовая работа выполнена правильно. Для каждого задания была составлена блок-схема, программа на языке TP7, представлены ручные и машинные расчеты.

Для задания №5 в ручных расчетах представлен график функции заданной функции.


Список литературы


1.Карев Е.А. Технологическая информатика. Методические указания к выполнению курсовой работы .2002г..

2. Карев Е.А. Информатика. Учебное пособие для выполнения практических занятий , контрольных и курсовых работ.1996г..

3.Петров А.В. Алексеев В.Е. Вычислительная техника и программирование.1990 г..


4


Задание на курсовую работу


Исходные данные для проектирования

Разработать алгоритмы и программы в соответствии с вариантом №63


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

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

Составить алгоритм и программу операций над матрицами.

при ; I=2; J=3; K =5

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

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


Консультант __________________________ Кравченко Д.В.


Студент ____________________________ КондратьевВ.В.


Задание принял к исполнению ”1“ сентября 2005г.

1. Программирование нестандартных функций


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

.

Блок схема выполнена на рисунке 1.


Рис. 1- Блок схема


Текст программы:


program lab111;

uses crt;

var y,a,x: real;

s:text;

begin

assign(s,'A:&bsol;Первая.txt');

rewrite (s);

Writeln ('Прграмма вычисления с использованием нестандартных функций');

Writeln ('Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln ('y=ln(x^2-a^2)+ln(sh)x))');

Writeln (s,'Прграмма вычисления с использованием нестандартных функций');

Writeln (S,'Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln (s,'y=ln(x^2-a^2)+ln(sh)x))');

write ('введите x ');

readln(x);

write ('введите a ');

readln(a);

y:= ln(sqr(a)-sqr(x))+ln((exp(x)+exp(-x))/2);

writeln('функция y= ',y:4:2);

readkey;

close (s);

end.


1.2. Результат машинного и ручного счета.

Результат машинного расчета для x=1, a=2; получим у=1,527

Ручной счет получим равным:

Ошибка вычисления составляет:


1.3. Вывод: Результаты ручного и машинного расчета можно считать близкими к верным с погрешностью вычисления

.

23

2. Программирование нестандартных функций


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


Метод решения.
При составлении программы для расчета гиперболических синуса

, косинуса
, тангенса
, а также факториала
используем функции, описанные с помощью оператора FUNCTION. Для описания функций
и
воспользуемся формулами
и
.
Для вычисления
используем функцию языка Паскаль
.
Блок-схема программы








Рис.2- Блок схема программы (а-д).


Описание программы.
Программа FUNCTIONS предназначена для вычисления функции

в произвольной точке
.
В начале работы программы необходимо ввести значение переменной
, для которой будет вычисляться значение функции
, а так же значения констант
и
.
Для примера введем значения:
,
,
.
Текст программы:

program functions;

var x,y:real;

var n,m:integer;

s:text;

function sh(q:real):real;

begin

sh:=(exp(q)-exp(-q))/2;

end;


function ch(q:real):real;

begin

ch:=(exp(q)+exp(-q))/2;

end;


function th(q:real):real;

begin

th:=sh(q)/ch(q);

end;


function fact(k:integer):integer;

var i,f:integer;

begin

f:=1;

for i:=1 to k do f:=f*i;

fact:=f;

end;

begin

assign (s,'A:&bsol;Факториал.txt');

rewrite(s);

Writeln ('Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln ('Составить алгоритм и программу вычисления функции сиспользованием нестандартных функций');

Writeln (s,'Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln (s,'Составить алгоритм и программу вычисления функции сиспользованием нестандартных функций');

writeln ('Введите константы:');

write ('n:');

readln (n);

write ('m:');


readln (m);

writeln ('Введите переменную x');

readln (x);

y:=fact(n)*ln(sh(x)+ch(x))-th(x)/fact(m);

writeln ('x=',x:5:2,', y=',y:8:3);

writeln (s,'x=',x:5:2,', y=',y:8:3);

readln;

close(s);


end.


Результаты машинного и ручного расчетов.
Результат машинного расчета для

,
,
:

Ручной расчет для тех же данных:


Вывод: Результаты ручного и машинного расчетов полностью совпадают.



3. Операции над матрицами


Постановка задачи.
Составить алгоритм и программу операций над матрицами:

. Размерности
,
,
.

Метод решения.

Операции над матрицами и векторами определяются следующим образом:[7.1], [7.2], [7.3].:

сумма матриц

и
порядка i x j – матрица
того же порядка, каждый элемент которой
;

матрица

- транспонированная к матрице
, если
для всех i и j;

произведение матрицы

порядка i x j и матрицы
порядка j x k – матрица
порядка i x k, каждый элемент которой
;

Все перечисленные операции, а так же ввод данных и вывод результата опишем отдельными процедурами.

Блок-схема программы








Рис. 3- Блок- схема программы MATRIX.


Описание программы.

Программа MATRIX предназначена для выполнения операций над матрицами:

.

В начале работы программы необходимо задать значения констант

,
,
, определяющих размерности матриц A, B, C и D.

Затем вводим значения элементов матриц A, B, C и D.
Для определенности примем:

;
;

;

Текст программы:

program matrix;

const Ni=2;

Nj=3;

Nk=5;

type matr=array[1..Nk,1..Nk] of real;

var A,At,B,Bt,C,Ct,D,Dt,AtBt,CtDt,S:matr;

i,j,k:integer;

s:text;

procedure multi(var m:matr; p,l:matr);

var i1,j1,k1:integer;

begin

for i1:=1 to Nk do

for k1:=1 to Nk do

begin

m[i1,k1]:=0;

for j1:=1 to Nk do

m[i1,k1]:=m[i1,k1]+p[i1,j1]*l[j1,k1];

end;

end;


procedure vvod(var m:matr;t:char; Ni1,Nj1:integer);

{ввод матрицы}

var i1,j1:integer;

begin

assign (s,'A:&bsol;Факториал.txt');

rewrite(s);

Writeln ('Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln ('Составить алгоритм и программу вычисления функции сиспользованием нестандартных функций');

Writeln (s,'Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln (s,'Составить алгоритм и программу вычисления функции сиспользованием нестандартных функций');


writeln('Ввод матрицы ',t);

for i1:=1 to Ni1 do

for j1:=1 to Nj1 do

begin

write ('Введите ',j1,' -элемент ',i1,' строки:');

readln(m[i1,j1]);

end;

end;


procedure trans(var mt:matr; m:matr; N1:integer);

var i1,j1:integer;

begin

for i1:=1 to N1 do

for j1:=1 to N1 do

mt[i1,j1]:=m[j1,i1];

end;


procedure summ(var m:matr; p,l:matr; Ni1,Nj1:integer);

{сумма матриц}

var i1,j1:integer;

begin

for i1:=1 to Ni1 do

for j1:=1 to Nj1 do m[i1,j1]:=p[i1,j1]+l[i1,j1];

end;


begin

vvod(A,'A',Nj,Ni); {ввод матриц A,B,C,D}

vvod(B,'B',Nk,Nj);

vvod(C,'C',Nj,Nk);

vvod(D,'D',Nj,Nk);


trans(At,A,Nj); {транспонирование матриц}

trans(Bt,B,Nk);

trans(Ct,C,Nk);

trans(Dt,D,Nk);

summ(CtDt,Ct,Dt,Nk,Nj);

multi(AtBt,At,Bt); {умножение матриц}

multi(S,AtBt,CtDt);


writeln ('Результирующая матрица:'); {вывод результата}

for i:=1 to Ni do

begin

for k:=1 to Nj do

write (s,’S[i,k]:7:2,’ );

writeln;

end;

readln;

end.


3.4 Результаты машинного и ручного расчетов.

В результате машинного расчета для выбранных в п.2.3. матриц A, B, C и D получаем матрицу

.


Выполним ручной расчет для тех же данных.

;
;

;




Вывод: Результаты ручного и машинного расчетов полностью совпадают.


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


Постановка задачи.
Составить алгоритм и программу для вычисления определенного интеграла:

При числе разбиений интервала N = 10.

Метод решения.

Вычислим определенный интеграл по методу левых

прямоугольников [7.3]. Метод состоит в разбиении участка

интегрирования на N равных промежутков и вычислении

площадей прямоугольников

,

где

,
- значение функции в начале

интервала разбиения i. Таким образом, площадь под

графиком приближенно заменяется суммой

площадей прямоугольников:

.
Рис. 4- График функции.F(x)
Блок-схема программы



Описание программы.
Программа INTEGRAL предназначена для вычисления определенного интеграла

по методу левых прямоугольников.
В начале работы программы необходимо ввести значения констант
,
и количество разбиений
. По запросу программы вводим
,
,


Текст программы:

program integral;

var i,N,a,b:integer;

x,y,h:real ;

s:text;

begin

assign (s,'A:&bsol;Седьмая.txt');

rewrite(s);

Writeln ('Программа вычисления функциии с использованием нестандартных функций');

Writeln ('Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln (s, 'Программа вычисления функциии с использованием нестандартных функций');

Writeln (s,'Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

writeln ('Введите пределы интегрирования:');

write ('a=');

readln(a);

write ('b=');

readln(b);

write ('Введите количество разбиений:');

readln(N);

x:=a;

y:=0;

h:=(b-a)/N;

for i:=1 to N do

begin

y:=y+h*(exp(x)+exp(-2*x))/x;

x:=x+h;

end;

writeln ('I=',y:6:2);

readln;

close (s);

END.



Результаты машинного и ручного расчетов.
Результат машинного расчета:


Ручной расчет интеграла:
, где
,

Интегралы такого вида вычисляются при помощи разложения подынтегральной функции в степенной ряд.

Воспользуемся стандартным разложением в ряд функции

,

тогда

Проинтегрировав, получаем:



Аналогично можно разложить в ряд и подынтегральную функцию 2-го интеграла, но так как вычисления трудоемки, а подынтегральная функция на указанном интервале достаточно мала (

,
), то для приближенных вычислений этим интегралом можно пренебречь.

Ошибка вычислений составляет


Вывод: Результаты ручного и машинного расчетов можно считать верными с погрешностью вычисления

.

5. Нахождение максимального и минимального значений функции


5.1. Постановка задачи.

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

:

5.2. Метод решения.


Для поиска максимума и минимума на отрезке

разбиваем этот отрезок на N равных частей с шагом
. Переменной Ymax присваиваем значение, заведомо меньшее, чем может принимать функция
, и наоборот, переменной Ymin присваиваем значение, заведомо большее, чем может принимать функция.

Последовательно вычисляем значения

с шагом h и на каждом шаге сравниваем
с Ymax и Ymin. Если у > Ymax, то присваиваем Ymax = y; если y < Ymin, то присваиваем
Ymin = y. Таким образом, после прохождения всего цикла находим максимальное и минимальное значения
на интервале
. Статья I.


5.3. Описание программы.

Программа MAXMIN предназначена для поиска максимума и минимума функции

на отрезке
.


Текст программы:


program maxmin;

const a=3;

b=6;

h=0.01;

var x,y,xmin,xmax,max,min:REAL;

s:text;


begin

assign (s,'A:&bsol;Max and Min.txt');

rewrite(s);

Writeln ('Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln ('Нахождение макс. и минимального значения ф-ии на отрезке [3,6]');

Writeln (s,'Разроботал студент гр.ТМДу-21 Кондратьев В.В.');

Writeln (s,'Нахождение макс. и минимального значения ф-ии на отрезке [3,6]');

max:=-100000;

min:=100000;

x:=a;

while x<=b do

begin

y:=x*x-4;

if y>max then

begin

max:=y;

xmax:=x;

end;

if y<min then

begin

min:=y;

xmin:=x;

end;

x:=x+h;

end;

writeln ('max=',max:6:3,' при х=',xmax:6:2);


writeln ('min=',min:6:3,' при х=',xmin:6:2);

writeln (s,'max=',max:6:3,' при х=',xmax:6:2);

writeln (s,'min=',min:6:3,' при х=',xmin:6:2);

readln;

close(s);

end.




5.4. Результаты машинного и ручного расчетов.


В результате работы программы получаем:

при

при

Для выполнения ручного расчета найдем критические точки функции

при помощи производной. Преобразуем исходную функцию:


при

Многочлен

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

- наибольшее значение

- наименьшее значение

5.5. Вывод: Результаты ручного и машинного расчетов полностью совпадают.


Заключение.


В данной курсовой работе мной получены навыки по решению ряда задач из высшей математике при помощи программы Турбо Паскаль 7.0 (составление программы Матрица, решение уравнения методом левых прямоугольников и др.).

При сравнении ручного и машинного подсчета, у программ №2, №3, №5- ручной и машинный счет совпадает на 100

, а в программах №1 и №4 имеется погрешность
. Для задания №4 в представлен график функции F(x).

На основании подсчетов можно сделать вывод что программа работает правильно а значит и цель курсового проекта выполнена. Имеющаяся погрешность не велика и значит ей можно пренебречь.




Список литературы.


1.Карев Е.А. Информатика: учебное пособие. – Ульяновск: УлГТУ, 1996. – 104с.

2. Вычислительная техника и программирование: Учебник для техн. вузов /А.В. Петров, В.Е. Алексеев, А.С. Ваулин и др.; Под ред. А.В. Петрова.- М: Высш. шк., 1990. - 470 с.

3. Тарчак Л.И. Основы численных методов: Учебное пособие. –М.: Наука. Гл. ред. физ. мат. лит., 1987. - 320 с.

4. Светозарова Г.И., Сиштов Е.В., Козловский А.В. Практикум программирования на алгоритмических языках. –М.: Наука, 1980. – 200 с.

5. Меженный О.А. TURBO PASCAL: Учитесь программировать. – М.: Издательский дом «Вильямс», 2001. – 488 с.

6. Бахвалов Н.С. и др. Численные методы. – М.: Наука, 1987.


Министерство образования Российской Федерации

Ульяновский государственный технический университет

Кафедра “Технология Машиностроения”


Пояснительная записка к курсовой работе

по технической информатике.


Студент Филипов Д.В., гр. ТМду-21 Вариант №95


Консультант Карев Е.А.


Ульяновск 2005

Министерство образования Российской Федерации

Ульяновский государственный технический университет

Кафедра “Технология машиностроения”


Задание на курсовую работу


Исходные данные для проектирования

Разработать алгоритмы и программы в соответствии с вариантом №70


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

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

Составить алгоритм и программу операций над матрицами.

при I=2, J=3, K=4.

Составить алгоритм и программу для вычисления определенного интеграла. Число разбиений каждого интервала интегрирования принять равным 10.

, при a=3, b=4, c=5.

5. Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции на интервале [a,b]=[3,6] .



Руководитель проекта Карев Е.А.


Студент Филипов Д.В.


Задание принял к исполнению ”4“ сентября 2005г.


Введение.


В данной курсовой работе будет рассмотрено решение задач из ряда высшей математике, это: вычисление определенного интеграла, логарифма и др..

Машинный счет будет сравнен с ручным, что позволит нам убедиться в правильности своих вычислений и избежать ошибки в случае неверности программы, а также будет возможно сохранить результат машинного вычисления в любом файле, при помощи процедуры assign.


Содержание

стр.

1. Задание №1……………………………………………………………………

2. Задание №2……………………………………………………………………

3. Задание №3…………………………………………………………………...

4. Задание №4…………………………………………………………………...

5. Задание №5…………………………………………………………………...

Заключение………………………………………………………………...…

Список литературы ..………………………………………………………...


Задание №1

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


Так как в Turbo Pascal нет функции ch(x) поэтому нужно преобразить их с помощью функций, которые распознает Turbo Pascal:

;

Тогда первоначальную формулу можно представить как:



Ручной счет


Алгоритм программы .

Задание №2

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


Так как в Turbo Pascal нет факториала, но известно, что


Ручной счет


Алгоритм программы



Задание№3

Составить алгоритм и программу операций над матрицами.

при I=2, J=3, K=4.

Алгоритм программы










Задание №4

Составить алгоритм и программу для вычисления определенного интеграла. Число разбиений каждого интервала интегрирования принять равным 10.

, при a=3, b=4,с=5.

Алгоритм программы




Задание №5

Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции на интервале [a,b]=[3,6]

Ручной счет:


Алгоритм программы




Заключение.


Программы работают правильно, так как ручной и машинный счет совпадают. Можно сделать вывод, что курсовая работа выполнена правильно. Для каждого задания была составлена блок-схема, программа на языке TP7, представлены ручные и машинные расчеты.

Для задания №5 в ручных расчетах представлен график функции заданной функции.


Список литературы


1.Карев Е.А. Технологическая информатика. Методические указания к выполнению курсовой работы .2002г..

2. Карев Е.А. Информатика. Учебное пособие для выполнения практических занятий , контрольных и курсовых работ.1996г..

3.Петров А.В. Алексеев В.Е. Вычислительная техника и программирование.1990 г..


Задача №2


Задача №3








Задача №7


Задача №8



Задача №3-2






Задача №8-2