Помощь в написании студенческих работ
Антистрессовый сервис

Основы программирования в среде Turbo Pascal

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Для решения таких задач чаще всего применяют методы прямоугольников, трапеции и Симпсона. В нашей задаче мы применим метод прямоугольников. Блок-схема к программе на рис. 1 и рис2. Т. е. функция не меняет свой знак на концах отрезка), и производная не меняет знак, поэтому в интервале корней нет. Проверим это с помощью программы. Блок-схема приведена на рис. 3. Разницей матриц, А (i, j) и B (i, j… Читать ещё >

Основы программирования в среде Turbo Pascal (реферат, курсовая, диплом, контрольная)

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

1. использование принципиально новых методологических основ проектирования;

2. широкое применение экономико-математических методов проектирования;

3. всесторонняя автоматизация инженерного труда.

С появлением ЭВМ возможность автоматизации стала реальностью. Появилось много систем автоматизированного проектирования (САПР), управления производством, управления технологическими процессами и др. Возникли новые методы решения таких задач (в отличие от традиционных), которые рассматриваются в курсе информатике. Одной из известных программ является Turbo Pascal. В данной работе мы будем использовать 7-ю версию этой программы.

программирование функция turbo pascal.

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

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

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

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

В этой задаче встречается нестандартная функция sh? параболический синус.

Для определения этой функции воспользуемся невыполняемым оператором FUNCTION..

Составим блок — схемы для определения функции Sh (рис. 1.1) и основной функции Y (рис. 1.2):

Да.

Рис. 1.1.

Рис. 1.2.

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

Program Irina1;

uses crt;

var x, y: Real;

Label 5;

function MySh (x:real):Real;

begin.

MySh:=(Exp (x)+Exp (-x))/2;

end;

begin.

clrscr;

begin.

5: write ('Vvedite x: x= ');

read (x);

end;

if x>0 then.

Y:=MySh (ln (x)) + ln (MySh (x)) — Sqrt (x).

else goto 5;

begin.

writeln ('y= ', y:5:3);

end;

readkey;

end.

1.4 Результаты.

Ручной счёт Машинный счёт.

x = 1 Y= 0.434 x = 1 Y= 0.434.

x = 3 Y= 2.244 x = 3 Y= 2.244.

1.5 Вывод по работе.

относительная погрешность составляет 0%.

2. Матрицы и операции над ними.

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

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

(Aij-BijCij)•Djk•L; i=3, j=2,k=3.

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

В данной задаче нам предстоит применить правила сложений матриц и умножения.

матрицы на число.

Разницей матриц А (i, j) и B (i, j) называется матрица Е (i, j) того же порядка, каждый элемент которого равен сумме соответствующих элементов матриц, А и В:

E (i, j) =A (i, j)-B (i, j).

Умножением матрицы А (i, j) на число V называется матрица В (i, j), получающаяся.

из матрицы, А умножением всех её элементов на V.

Составим блок? схему (смотри стр. 8−10):

Да.

Да.

Да.

Да.

Да.

Да.

Да.

Да Да.

Да Да.

Да.

Да.

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

Program Irina3;

uses crt;

const L=3;

M=2;

N=3;

VAR.

A:array[1.L, 1. M] of integer;

B:array[1.L, 1. M] of integer;

C:array[1.L, 1. M] of integer;

D:array[1.M, 1. N] of integer;

E:array[1.L, 1. M] of integer;

X:array[1.L, 1. M] of integer;

Y:array[1.L, 1. N] of integer;

Z:array[1.L, 1. N] of integer;

i, j, k, V: integer;

begin.

clrscr;

for i:=1 to L do.

for j:=1 to M do.

begin.

write ('Vvedite element [', i,',', j,'] matricu A: A[', i,',', j,']= ');

read (A[i, j]);

end;

for i:=1 to L do.

for j:=1 to M do.

begin.

write ('Vvedite element [', i,',', j,'] matricu B: B[', i,',', j,']= ');

read (B[i, j]);

end;

for i:=1 to L do.

for j:=1 to M do.

begin.

write ('Vvedite element [', i,',', j,'] matricu C: C[', i,',', j,']= ');

read (C[i, j]);

end;

for j:=1 to M do.

for k:=1 to N do.

begin.

write ('Vvedite element [', i,',', k,'] matricu D: D[', i,',', k,']=');

read (D[i, k]);

end;

begin.

write ('Vvedite znachenie V: V= ');

read (v);

end;

for i:=1 to L do.

for j:=1 to M do.

begin.

E[i, j]: = A[i, j]-B[i, j];

end;

for i:=1 to L do.

for j:=1 to M do.

begin.

writeln ('E[', i,',', j,']= ', E[i, j]);

end;

for i:=1 to L do.

for j:=1 to M do.

begin.

X[i, j]: = E[i, j] - C[i, j];

end;

for i:=1 to L do.

for j:=1 to M do.

begin.

writeln ('X[', i,',', j,']= ', X[i, j]);

end;

for i:=1 to L do.

for k:=1 to N do.

Y[i, k]: = 0;

for i:=1 to L do.

for j:=1 to M do.

for k:=1 to N do.

begin.

Y[i, k]: = Y[i, k]+ (X[i, j]*D[j, k]);

end;

for i:=1 to L do.

for k:=1 to N do.

begin.

writeln ('Y[', i,',', k,']= ', Y[i, k]);

end;

for i:=1 to L do.

for k:=1 to N do.

begin.

Z[i, k]: =Y[i, k]*V.

end;

for i:=1 to M do.

for k:=1 to M do.

begin.

writeln ('Z[', i',', k']=, Z[I, k]);

end;

readkey;

end.

2.4. Результаты.

2.4.1 Ручной счёт.

1 2 3 3 2 1 2 2 2 -4 -2 0.

A 1 2 3 — B 3 2 1 — C 2 2 2 = X -4 -2 0.

1 2 -12 -6 0.

X -4 -2 0 * D 2 1 = Y -12 -6 0.

— 4 -2 0 1 2 -12 -6 0.

— 12 -6 0 -24 -12 0.

Y -12 -6 0 * 2 = Z -24 -12 0.

— 12 -6 0 -24 -12 0.

Y -12 -6 0 * 2 = Z -24 -12 0.

— 12 -6 0 -24 -12 0.

2.4.2 Машинный счёт.

— 24 -12 0.

Z -24 -12 0.

— 24 -12 0.

2.5 Вывод по работе.

Относительная погрешность составляет 0%.

3. Решение нелинейных уравнений.

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

Найти значения корней нелинейного уравнения по методу половинного деления на отрезке [a, в] с точностью Е. .

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

Подставляя значения а=3 и в=6 в функцию F (x), легко проверить, что F (1)•F (2)>0.

(т.е. функция не меняет свой знак на концах отрезка), и производная не меняет знак, поэтому в интервале [3,6] корней нет. Проверим это с помощью программы. Блок-схема приведена на рис. 3.

Нет.

Да.

Да Да.

Нет.

Рис. 3.

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

Program Irina4;

uses crt;

var A, B, X, Fa, Fb, Fx, e: real;

Label 5,.

10,.

15,.

20;

begin.

clrscr;

5: write ('Vvedite A: A= ');

read (A);

10: write ('Vvedite B: B= ');

read (B);

write ('Vvedite e: e= ');

read (e);

if a<=0 then goto 5 else.

if b<=0 then goto 10 else.

Fa:=5*ln (a)-a+1;

15: X := (A + B)/2;

Fx:=5*ln (x)-x+1;

if (ABS (Fx) < e) then goto 20;

if ((Fa*Fx) <= 0) then b:=x else.

begin.

A:=X; Fa:=Fx;

end;

begin.

if (ABS (A-B) >= e) then goto 15;

end;

20: write ('X= ', X:5:3);

ReadKey;

end.

3.4 Результаты.

3.4.1 Машинный счёт.

Машина считает с точностью е = 0,001.

Ш На отрезке [0,1;5] х = 1;

Ш На отрезке [3;16] х = 14,302;

3.4.2 Ручной счёт.

Ш На отрезке [0,1;5] х = 1;

Ш На отрезке [3;16] х = 14,302;

3.5. Вывод по работе.

Относительная погрешность составляет 0%.

4. Численное интегрирование.

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

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

a =4, b =5, c =6, n =10.

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

Для решения таких задач чаще всего применяют методы прямоугольников, трапеции и Симпсона. В нашей задаче мы применим метод прямоугольников. Блок-схема к программе на рис. 1 и рис2.

Рис. 1.

Рис. 2.

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

Program Irina5;

uses crt;

var i: integer;

x1,x2,S1,S2,S, h1, h2:real;

const n=10;

a=0;

b=1;

c=2;

function Mych (x:real):real;

begin.

Mych := (Exp (x/2)+Exp (-x/2))/2;

end;

begin.

clrscr;

x1:=a; S1:= 0;

h1:=(b-a)/n;

for i:=1 to n do.

begin.

S1 := S1 + 1/(Mych (x½)*Mych (x½));

x1:=x1+h1;

S1 := S1*h1;

end;

x2:=b; S2:= 0;

h2:=(c-b)/n;

for i:=1 to n do.

begin.

S2 := S2 + 1/(1+cos (x2));

x2:=x2*h2;

S2 := S2*h2;

end;

S := S1 + S2;

writeln ('S= ', S:5:3);

readkey;

end.

4.4 Результаты.

Ручной счёт: Машинный счёт:

A=4, b=5, c=6, h=10, S=0.161; A=4, b=5, c=6, h=10, S=0.161;

4.5 Вывод по работе.

Относительная погрешность составляет 0%.

5. Оптимизация функции.

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

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

.

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

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

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

Составим блок — схему (см. стр.21):

Нет.

Нет.

Нет.

Да.

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

Program OptimFun;

uses crt;

var x, h, Y, Ymax, Ymin: real;

const a=3;

b=6;

begin.

clrscr;

Write ('Input h= ');

Read (h);

Ymax:=5*ln (3)-3+1;

Ymin:=5*ln (6)-6+1;

x:=a;

While x<=b do.

begin.

Y:=5*ln (x)-x+1;

If Y>Ymax then Ymax:=Y;

x:=x+h;

end;

begin.

Writeln ('Ymax= ', Ymax:4:2);

end;

begin.

x:=b;

while x>=a do.

begin.

Y:=5*ln (x)-x+1;

if Y.

x:=x-h;

end;

begin.

writeln ('Ymin= ', Ymin:4:2);

end; end;

readkey;

end.

5.4 Результаты при h = 0.001.

ручной счёт: ymax =4.05, ymin =3.49; машинный счёт: ymax =4.05, ymin =3.49.

5.5 Вывод.

Относительная погрешность составляет 0%.

6. Численное дифференцирование.

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

Составить алгоритм и программу решения дифференциального уравнения: .

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

Решение проводим по методу Эйлера. Первообразную функцию в каждой точке определяем по формулам:

Составим блок — схему (см. рис.6).

Да.

Рис. 6.

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

Program Difur;

Uses crt;

Label 25, 20;

Var X, Y, X0,Y0,H, Xk: Real;

Begin.

Clrscr;

20: Write ('Input X0= ');

Read (X0);

Write ('Input Y0= ');

Read (Y0);

Write ('Input H= ');

Read (H);

Write ('Input Xk= ');

Read (Xk);

X:=X0;

Y:=Y0;

If (x*x*x-1)>0 then.

25: Y:=Y+H*(x/(x*x*x-1));

Writeln ('X= ', X:4:6,'Y= ', Y:4:6);

X:=X+H;

If X<=Xk Then goto 25;

else goto 20;

Readkey;

End.

6.4 Результаты Машинный счёт:

X0= 2, X= 2.000, Y= 5.286,.

Y0= 5, X= 3.000, Y= 5.401,.

H= 1, X= 4.000; Y= 5.465.

Xk= 4;

Ручной счёт:

X= 2.000, Y= 5.286,.

X= 3.000, Y= 5.401,.

X= 4.000; Y= 5.465.

6.5 Вывод.

Относительная погрешность составляет 0%.

7. Аппроксимация функции.

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

Найти аппроксимирующую функцию.

Изменение функции у от аргумента х.

Значения х.

0.1.

0.2.

0.3.

0.4.

0.5.

0.6.

0.7.

0.8.

0.9.

1.0.

1.1.

1.2.

1.3.

1.4.

3,7.

2,95.

2,63.

2,45.

2,32.

2,23.

2,16.

2,09.

2,05.

2,0.

1,96.

1,93.

1,9.

1,87.

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

Решать будем методом наименьших квадратов:

Составим блок — схему (см. стр. 26):

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

Program Aproks;

uses crt;

const n=14;

var K1, K2,L1,L2,A0,A1:Real;

X, Y: Array[1.n] of real;

i:integer;

Begin.

Clrscr;

For i:=1 to n do.

begin.

Write ('Input X[', i,']= ');

Read (X[i]);

end;

For i:=1 to n do.

begin.

Write ('Input Y[', i,']= ');

Read (Y[i]);

end;

K1:=0; K2:=0;

L1:=0; L2:=0;

For i:=1 to n do.

begin.

K1:=K1+X[i];

K2:=K2+X[i]*X[i];

L1:=L1+Y[i];

L2:=L2+X[i]*Y[i];

end;

A0:=(L2*K1-L1*K2)/(K1*K1-n*K2);

A1:=(K1*L1-n*L2)/(K1*K1-n*K2);

Writeln ('A0= ', A0:4:2, 'A1= ', A1:4:2);

Readkey;

end.

7.4 Результаты.

7.4.1 Машинный счёт.

Подставляем значения х и у из таблицы 7.1. (см. стр.25).

А0= 3,08; А1 =-1,04.

7.4.1. Ручной счёт.

;

=.

А0= 3,08;

А1= -1,04.

7.5 Вывод по работе.

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

Заключение

.

Итак, подводя итоги можно сказать, что появление ЭВМ действительно упростило труд инженеров в разработке проектных решений производственных задач. Работая с программой Turbo Pascal, мы убедились, что это быстрый и точный метод решения задач расчетного и проектного характера. К тому же эта программа очень удобна и проста в применении. Сравнивая ручной счет с машинным, мы увидели, что погрешность вычислений минимальна.

1 Технологическая информатика: методичка /Е. А. Карев: Ульяновск, 2006 г.- 52 с.

2 Программирование в среде Turbo Pascal: методичка/Ю.В. Псигин, О. Г. Крупенников: Ульяновск, 2008 г.- 95 с.

3 Информатика: учебное пособие/Е.А. Карев: Ульяновск, 2006 г.- 103 с.

Показать весь текст
Заполнить форму текущей работой