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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Введение

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

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

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

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

С появлением ЭВМ возможность автоматизации стала реальностью. Появилось много систем автоматизированного проектирования (САПР), управления производством, управления технологическими процессами и др. Возникли новые методы решения таких задач (в отличие от традиционных), которые рассматриваются в курсе информатике. Одной из известных программ является 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;x,y: Real;5;MySh(x:real):Real;:=(Exp(x)+Exp(-x))/2;;

begin

clrscr;

: write ('Vvedite x: x= ');(x);;x>0 then:=MySh(ln(x)) + ln(MySh(x)) - Sqrt(x)goto 5;('y= ',y:5:3);;

readkey;

end.

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

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

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

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

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

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

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

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

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

(Aij-Bij- Cij)тАв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):

Да

Да

Да

Да

Да

Да

Да

ДаДа

ДаДа

Да

Да

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

Program Irina3;

uses crt;L=3;=2;=3;:array[1..L,1..M] of integer;:array[1..L,1..M] of integer;:array[1..L,1..M] of integer;:array[1..M,1..N] of integer;:array[1..L,1..M] of integer;:array[1..L,1..M] of integer;:array[1..L,1..N] of integer;:array[1..L,1..N] of integer;,j,k,V:integer;;i:=1 to L doj:=1 to M do('Vvedite element [',i,',',j,'] matricu A: A[',i,',',j,']= ');(A[i,j]);;i:=1 to L doj:=1 to M do('Vvedite element [',i,',',j,'] matricu B: B[',i,',',j,']= ');(B[i,j]);;i:=1 to L doj:=1 to M do('Vvedite element [',i,',',j,'] matricu C: C[',i,',',j,']= ');(C[i,j]);;j:=1 to M dok:=1 to N do('Vvedite element [',i,',',k,'] matricu D: D[',i,',',k,']=');(D[i,k]);;('Vvedite znachenie V: V= ');(v);;i:=1 to L doj:=1 to M do[i,j]:= A[i,j]-B[i,j];;i:=1 to L doj:=1 to M do('E[',i,',',j,']= ',E[i,j]);;i:=1 to L doj:=1 to M do[i,j]:= E[i,j] - C[i,j];;i:=1 to L doj:=1 to M do('X[',i,',',j,']= ',X[i,j]);;i:=1 to L dok:=1 to N do[i,k]:= 0;i:=1 to L doj:=1 to M dok:=1 to N do[i,k]:= Y[i,k]+ (X[i,j]*D[j,k]);;i:=1 to L dok:=1 to N do('Y[',i,',',k,']= ',Y[i,k]);;i:=1 to L dok:=1 to N do[i,k]:=Y[i,k]*V;i:=1 to M dok:=1 to M do('Z[',i',',k']= ,Z[I,k]);;

readkey;

end.

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

.4.1 Ручной iёт

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 -4 -2 0 * D 2 1 = Y -12 -6 0

-4 -2 0 1 2 -12 -6 0

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

-12 -6 0 -24 -12 0

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

-6 0 -24 -12 0

.4.2 Машинный iёт

-12 0

Z -24 -12 0

-12 0

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

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

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

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

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

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

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

(т.е. функция не меняет свой знак на концах отрезк