Содержание
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:Первая.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:Факториал.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:Факториал.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:Седьмая.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: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