Содержание
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
|