Составление алгоритмов и программ вычисления функций
В широком смысле под технологической информатикой понимаются фундаментальную естественную науку, изучающую процессы сбора, накопления, передачи и обработки информации. В конкретном случае технологическая информатика предназначена для автоматизации решения многих инженерных, проектных и расчётных задач. В ней рассматриваются принципы разработки математических моделей, алгоритмов и программ… Читать ещё >
Составление алгоритмов и программ вычисления функций (реферат, курсовая, диплом, контрольная)
Министерство образования Российской Федерации Ульяновский государственный технический университет Кафедра «Технология машиностроения «
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА КУРСОВОЙ РАБОТЕ ПО ТЕХНОЛОГИЧЕСКОЙ ИНФОРМАТИКЕ Студент Финагеев П.P.
Ульяновск 2010
Исходные данные для проектирования Разработать алгоритмы и программы в соответствии с вариантом № 12.
1. Составить алгоритм и программу вычисления функции
y =
с использованием нестандартных функций.
2.Составить алгоритм и программу вычисления функции
y =
с использованием нестандартных функций и подпрограмм (процедур).
3. Составить алгоритм и программу операций над матрицами:
(), где i=2, j=3, k=3
4. Найти значение корней нелинейного уравнения y = x* по методу половинного деления.
5. Составить алгоритм и программу для вычисления суммы определённых интегралов
где a=1, b=2, c=3.
Число разбиений каждого интервала интегрирования принять равным 10.
6. Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции y = x*
Содержание Введение
1. Составление алгоритма и программы вычисления функции с использованием нестандартных функций
2. Составление алгоритма и программы вычисления функции с использованием нестандартных функций и подпрограмм
3. Составление алгоритма и программы операций над матрицами
4. Нахождение корня нелинейного уравнения
5. Вычисление определённого интеграла
6. Нахождение наибольшего и наименьшего значений функции Заключение Список использованной литературы
Введение
В процессе технологической подготовки производства инженерам приходится сталкиваться со сложными задачами расчётного и проектного характера, решение которых во многих случаях с помощью традиционных методов либо практически невозможно, либо занимает много времени. В связи с этим весьма актуальна автоматизация технологической подготовки производства, которая имеет следующие особенности:
1) использование принципиально новых методологических основ проектирования;
2) широкое применение экономико-математических методов проектирования;
3) всесторонняя автоматизация инженерного труда.
С появлением ЭВМ возможность автоматизации технологической подготовки производства стала реальностью. Появилось много систем автоматизированного проектирования (САПР), управление производством, управления технологическими процессами и др.
В данной курсовой работе выполнены шесть заданий по составлению алгоритмов и программ на языке TURBO PASCAL.
1. Составление алгоритма и программы вычисления функции с использованием нестандартных функций Постановка задачи Составить алгоритм и программу вычисления функции y = c использованием нестандартных функций.
Алгоритм решения задачи Текст программы
Program R1;
uses crt;
var x, a, y:real;
F:text;
begin
clrscr;
assign (F,'C:R1Tmd-21.txt');
rewrite (F);
write ('Введите значение x=');
readln (x);
write ('Введите значение a=');
readln (a);
y:=sqrt (sqrt (x-a))*0.5*(exp (x)-exp (-x))+0.5*(exp (x)+exp (-x));
writeln ('pri x=', x:2:1, ' i',' a=', a:2:1, ' y=', y:5:4);
writeln (F,'pri x=', x:2:1, ' i',' a=', a:2:1, ' y=', y:5:4);
writeln (Программу разработал студент группы TMд-21 Финагеев Павел);
writeln (F, Программу разработал студент группы TMд-21 Финагеев Павел);
close (F);
readkey;
end.
Результаты машинного расчёта При x=4.0 и a=2.0 y=59.7616
Разработал студент группы ТМд-21 Финагеев Павел Результаты ручного расчёта
59,762
Вывод В ходе выполнения работы составил алгоритм и программу на языке программирования Turbo Pascal для вычисления функции с использованием нестандартных функций. Программа работает, и результаты вычисления с помощью машины совпадают с результатами ручного счёта.
алгоритм программа вычисление функция
2. Составить алгоритм и программу вычисления функции с использованием нестандартных функций и подпрограмм (процедур).
Постановка задачи Составить алгоритм и программу вычисления функции y = с использованием нестандартных функций и подпрограмм (процедур).
Алгоритм решения задачи Текст программы
Program R2;
uses crt;
var x, y: real;
k, l, i, m, n:word;
F:text;
Procedure factorial;
begin
m:=1;
for i:=1 to k do
begin
m:=m*i
end;
n:=1;
for i:=1 to l do
begin n:=n*i
end;
end;
begin
clrscr;
assign (F,'C:R2TMd-21.txt');
rewrite (F);
write ('Введите значение x=');
readln (x);
writeln (F, x:5:3);
write (' Введите значение параметра m=');
readln (k);
write (' Введите значение параметра n=');
readln (l);
Factorial;
y:=m*sqrt ((exp (x)-exp (-x))/2)+n*sqrt ((exp (x)+exp (-x))/2);
writeln ('При значениях факториалов m≠', m, ' i n≠', n);
writeln (F,'При значениях факториалов m≠', m, ' i n≠', n);
writeln ('Значение функции y=', y:5:3);
writeln (F,'Значение функции y=', y:5:3);
writeln ('Разработал студент группы
ТМд-21 Финагеев Павел');
writeln (F, 'Разработал студент группы
ТМд-21 Финагеев Павел');
close (F);
readkey;
end.
Результаты машинного расчёта
x=5.000
При значениях факториалов m≠2 i n≠6
Значение функции y=68.915
Разработал студент группы ТМд-21 Финагеев Павел Результаты ручного расчёта При x=5, m=2, n=3:
Вывод В ходе выполнения работы составил алгоритм и программу на языке программирования Turbo Pascal для вычисления функции с использованием нестандартных функций и подпрограмм (процедур). Программа работает, и результаты вычисления с помощью машины совпадают с результатами ручного счёта.
3. Составить алгоритм и программу операций над матрицами Постановка задачи Составить алгоритм и программу операций над матрицами:
(), где i=2, j=3, k=3
Алгоритм решения задачи Текст программы
Program R3;
uses crt;
Const m=2;n=3;p=3;
Var A: array [1.m, 1. n] of integer;
B:array [1.n, 1. p] of integer;
AB, ABL, C, CL, R: array [1.m, 1. p] of integer;
i, j, k, L: integer;
F:text;
begin
clrscr;
assign (F,'C:R3TMd-21.txt');
rewrite (F);
write ('Введите L=');
readln (L);
Writeln ('матрица A');
for i:=1 to 2 do
for j:=1 to 3 do
begin
write ('A[', i,',', j,']=');
readln (A[i, j]);
end;
Writeln ('матрица B');
for j:=1 to 3 do
for k:=1 to 3 do
begin
write ('B[', j,',', k,']=');
readln (B[j, k]);
end;
writeln ('матрица C');
for i:=1 to 2 do
for k:=1 to 3 do
begin
write ('C[', i,',', k,']=');
readln (C[i, k]);
end;
CLRSCR;
writeln ('Исходная матрица A');
for i:=1 to 2 do
BEGIN
for j:=1 to 3 do
WRITE (A[i, j]: 3);
WRITELN;
end;
readln;
writeln (F,' Исходная матрица A');
for i:=1 to 2 do
BEGIN
for j:=1 to 3 do
WRITE (F, A[i, j]: 3);
WRITELN (F);
end;
readln;
writeln (' Исходная матрица B');
for j:=1 to 3 do
BEGIN
for k:=1 to 3 do
WRITE (B[j, k]: 3);
WRITELN;
end;
readln;
writeln (F,' Исходная матрица B');
for j:=1 to 3 do
BEGIN
for k:=1 to 3 do
WRITE (F, B[j, k]: 3);
WRITELN (F);
end;
readln;
writeln (' Исходная матрица C');
for i:=1 to 2 do
BEGIN
for k:=1 to 3 do
WRITE (c[i, k]: 4);
WRITELN;
end;
readln;
writeln (F,' Исходная матрица C');
for i:=1 to 2 do
BEGIN
for k:=1 to 3 do
WRITE (F, c[i, k]: 4);
WRITELN (F);
end;
readln;
writeln ('матрица A [i, j]*B[j, k]');
writeln (F,'матрица A [i, j]*B[j, k]');
for i:=1 to 2 do
for j:=1 to 3 do
begin
AB[i, j]: =0;
for k:=1 to 3 do
AB[i, j]: =AB[i, j]+(A[i, j]*B[j, k]);
end;
for i:=1 to 2 do
BEGIN
for k:=1 to 3 do
WRITE (AB[i, j]: 3);WRITE (F, AB[i, j]:3);
WRITELN;
Writeln (F);
end;
writeln ('матрица AB[i, k]*L');
writeln (F,'матрица AB[i, k]*L');
for i:=1 to 2 do
begin
for k:=1 to 3 do
ABL[i, k]: =AB[i, k]*L;
end;
for i:=1 to 2 do
BEGIN
for k:=1 to 3 do
WRITE (ABL[i, k]: 3);
WRITE (F, ABL[i, k]: 3);
WRITELN;
writeln (F);
end;
Begin
writeln ('матрица C[i, k]*L');
writeln (F,'матрица C[i, k]*L');
for i:=1 to 2 do
for k:=1 to 3 do
CL[i, k]: =C[i, k]*L;
for i:=1 to 2 do
BEGIN
for k:=1 to 3 do
WRITE (CL[i, k]: 3);WRITE (F, CL[i, k]: 3);
WRITELN;
writeln (F);
end;
writeln ('Результирующая матрица');
writeln (F,' Результирующая матрица');
for i:=1 to 2 do
begin
for k:=1 to 3 do
begin
R[i, k]: =ABL[i, k]+CL[i, k];
write (R[i, k]:3);write (F, R[i, k]:3);
end;
writeln;
writeln (F);
end;
readkey;
writeln;
writeln (F);
end;
readln;
writeln ('Разработал студент группы
ТМд-21 Финагеев Павел');
writeln (F, 'Разработал студент группы
ТМд-21 Финагеев Павел');
close (F);
end.
Результаты машинного расчёта Исходная матрица A
1 1 1
1 1 1
Исходная матрица B
2 2 2
2 2 2
2 2 2
Исходная матрица C
3 3 3
3 3 3
матрица A [i, j]*B[j, k]
6 6 6
6 6 6
матрица AB[i, k]*L
30 30 30
30 30 30
матрица C[i, k]*L
15 15 15
15 15 15
Результирующая матрица
45 45 45
45 45 45
Результаты ручного расчёта Ручной счёт:
S=
L=5
=
S=
Расчёт на ЭВМ: При вводе этих данных ЭВМ выдаёт результат:
Вывод В ходе выполнения работы составил алгоритм и программу операций над матрицами. Программа работает, и результаты вычисления с помощью машины совпадают с результатами ручного счёта.
4. Нахождение корня нелинейного уравнения Постановка задачи Найти значение корней нелинейного уравнения y = x* по методу половинного деления.
Алгоритм решения задачи Текст программы
Program R4;
uses crt;
label 10,20;
var Fa, Fxk, Fx, b, a, x, xk, E: real;
F:text;
begin
clrscr;
assign (F,'C:R4TMd-21.txt');
rewrite (F);
write ('Vvedite lev. granicu a=');
readln (a);
write ('Vvedite prav. granicu b=');
readln (b);
write ('Vvedite stepen tochnosti E=');
readln (E);
Fa:=a*exp (0.33*ln (a-1))-2;
10:x:=(a+b)/2;
Fx:=x*exp (0.33*ln (x-1))-2;
if abs (Fx)<=E then
GOTO 20;
if Fa*Fx>0 then
a:=x else begin b:=x;
GOTO 10;
end;
20:xk:=x;
Fxk:=xk*exp (0.33*ln (x-1))-2;
writeln ('pri xk=', xk:5:3,' Fxk=', Fxk:5:4);
writeln (F,'pri xk=', xk:5:3,' Fxk=', Fxk:5:4);
writeln ('Разработал студент группы ТМд-21 Финагеев Павел');
writeln (F, 'Разработал студент группы ТМд-21 Финагеев Павел');
close (F);
readkey;
end.
Результаты машинного расчёта При xk=2.000 и Fxk=0.000
a=0,b=4, E=0,001
Результаты ручного расчёта Вывод В ходе выполнения работы составил алгоритм и программу для нахождения значения корней нелинейного уравнения по методу половинного деления.
Программа работает, и результаты вычисления с помощью машины совпадают с результатами ручного счёта.
5. Вычисление определённого интеграла Постановка задачи Составить алгоритм и программу для вычисления суммы определённых интегралов
где a=1, b=2, c=3.
Число разбиений каждого интервала интегрирования принять равным 10.
Алгоритм решения задачи Текст программы
Program R5;
uses crt;
var s2, s1,a, c, b, x, int, int1, int2,y1,y2,h:real;
n:word;
F:text;
begin
clrscr;
assign (F,'C:R5TMd-21.txt');
rewrite (F);
write ('Введите a=');
readln (a);
writeln (F, ' Предел интегрирования a= ', a:1:0);
write ('Введите b=');
readln (b);
writeln (F,' Предел интегрирования b= ', b:1:0);
write ('Введите c=');
readln (c);
writeln (F,' Предел интегрирования c= ', c:1:0);
write ('Число отрезков n=');
readln (n);
writeln (F,'Число отрезков n= ', n);
x:=a;
S1:=0;
h:=(b-a)/(n-1);
while (x<=b-h) do
begin
y1:= (exp (x*ln (2))+exp (x*ln (3)));
s1:=s1+y1;
x:=x+h;
end;
int1:=h*s1;
writeln ('Интеграл от первой функции равен ', int1:5:3);
writeln (F,'Интеграл от первой функции равен ', int1:5:3);
s2:=0;
h:=(c-b)/(n-1);
while (x<=c-h) do
begin
y2:= (sqr (((exp (x)+exp (-x))/2/((exp (x)-exp (-x))/2))));
s2:=s2+y2;
x:=x+h;
end;
int2:=h*s2;
writeln ('Интеграл от второй функции равен', int2:5:3);
writeln (F,'Интеграл от второй функции равен', int2:5:3);
int:=int1+int2;
writeln ('интеграл равен ', int:5:3);
writeln (F,'интеграл равен ', int:5:3);
writeln ('Программу разработал студент группы ТМд-21 Финагеев Павел');
writeln (F,' Программу разработал студент группы ТМд-21 Финагеев Павел');
close (F);
readln;
end.
Результаты машинного расчёта
Int=7,772 при a=1, b=2, c=3 и n=10
Результаты ручного расчёта
Вывод В ходе выполнения работы составить алгоритм и программу для вычисления суммы определённых интегралов. Для того чтобы решить эту задачу можно использовать более точные методы, например метод трапеций или метод Симпсона.
6. Нахождение наибольшего и наименьшего значений функции Постановка задачи Составить алгоритм и программу вычисления наибольшего и наименьшего значений функции y = x*
Алгоритм решения задачи Текст программы
Program R6;
uses crt;
var a, b, x, y, xmin, xmax, ymin, ymax, h: real;
i, n: integer;
F:text;
begin
clrscr;
assign (F,'C:TMd-21.txt');
rewrite (F);
write ('Vvedite lev. granicu a=');
readln (a);
write ('Vvedite prav. granicu b=');
readln (b);
write ('Vvedite chislo tochek razbivki n=');
readln (n);
h:=(b-a)/n;
ymax:=-100 000;
ymin:=100 000;
x:=a;
while (x<=b) do
begin
y:=x*exp (0.33*ln (x-1))-2;
writeln ('x=', x:5:3, ' y=', y:5:3);
writeln (F,'x=', x:5:3, ' y=', y:5:3);
if y
begin
ymin:=y;
xmin:=x;
end;
if y>ymax then
begin
ymax:=y;
xmax:=x;
end;
x:=x+h;
end;
writeln;
writeln (F);
writeln ('Pri x=', xmin:5:3,' Ymin=', ymin:5:3);
writeln (F,'Pri x=', xmin:5:3,' Ymin=', ymin:5:3);
writeln ('Pri x=', xmax:5:3,' Ymax=', ymax:5:3);
writeln (F,'Pri x=', xmax:5:3,' Ymax=', ymax:5:3);
writeln ('Разработал студент группы ТМд-21 Финагеев Павел');
writeln (F, 'Разработал студент группы ТМд-21 Финагеев Павел');
close (F);
readkey
end.
Результаты машинного расчёта
x=3.000 y=1.771
x=3.375 y=2.490
x=3.750 y=3.236
x=4.125 y=4.008
x=4.500 y=4.804
x=4.875 y=5.623
x=5.250 y=6.463
x=5.625 y=7.324
x=6.000 y=8.205
При x=3.000 Ymin=1.771
При x=6.000 Ymax=8.205
Результаты ручного расчёта Вывод В ходе выполнения работы составил алгоритм и программу на языке программирования Turbo Pascal для вычисления наибольшего и наименьшего значений функции Программа работает, и результаты вычисления с помощью машины совпадают с результатами ручного счёта.
Заключение
.
В широком смысле под технологической информатикой понимаются фундаментальную естественную науку, изучающую процессы сбора, накопления, передачи и обработки информации. В конкретном случае технологическая информатика предназначена для автоматизации решения многих инженерных, проектных и расчётных задач. В ней рассматриваются принципы разработки математических моделей, алгоритмов и программ, а также вопросы построения некоторых вычислительных систем.
Основной задачей выполнения курсовой работы по информатике, является закрепление теоретических знаний полученных в процессе самостоятельных работ, а так же на лекциях, практических и лабораторных занятиях. Развитие практических навыков программирования, работы за терминалом или персональным компьютером.
1. Карев Е. А. Технологическая информатика: методические указания к выполнению курсовой работы для студентов специальности 120 100 «Технология машиностроения». — Ульяновск: УлГТУ, 2002. — 52 с.
2. Крупенников О. Г., Рязанов С. И., Псигин Ю. В., Кравченко Д. В. Решение задач машиностроения средствами Turbo Pascal. — Ульяновск: УлГТУ, 2004. — 107 с.
3. Крупенников О. Г., Кравченко Д. В. Курс лекций по основам алгоритмизации и программирования задач машиностроения: учебное пособие. — Ульяновск: УлГТУ, 2006. — 143с.
4. Карев Е. А. Информатика: учебное пособие.-Ульяновск: УлГТУ, 1996. -103с.