Основные задачи программирования с помощью языка Паскаль

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

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




Введение

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

В качестве примеров рассмотрим основные задачи программирования с помощью языка Паскаль.

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

.1 Составить алгоритм и программу вычисления функции

Y = ,

c использованием нестандартной функции. Построить график функции.

.2 На языке Паскаль функцию описывают с помощью невыполняемого оператора Function1:

Function F(x:Tk):T (где F - имя функции; x - формальный параметр; Tk - тип параметра; T - тип имени функции, например, целого, вещественного и др. типов). Обращение к функции осуществляется в правой части оператора присваивания по имени F(X1,X2,Xk) ( где F - имя функции; Xk - фактические параметры).

В данном случае представим гиперболическую функцию тангенс в виде нестандартной функции iормальным параметром X:

Fns(X) = Th(X) = (Exp(x) - Exp(-X)) / (Exp(X) + Exp(-X)).

Блок-схема к программе показана на рис. 1.

Рис. 1. Блок-схема программы вычисления функции Y = Th(x)/ - x2 :(а) - для вычисления нестандартной функции; (б) - для вычисления функции Y.

.3 Программа вычисления и построения графика нестандартной функции:

Program GrTrFun; graph, crt; ga, gm, error: integer; ,Y,L,V:real; , MX, MX03, MX09, MSX, , MY09, MY005, MSY: INTEGER; :string[4]; z=0; Myth(x:real):Real; :=(Exp(x)-Exp(-x))/(Exp(x)+Exp(-x)); ; := DETECT; := DETECT;

INITGRAPH(GA, GM, 'C:\TP7\BGI');

ERROR := GRAPHRESULT; ERROR <> GROK THEN ('OSHIBKA!!!', #10#13,GRAPHERRORMSG(ERROR) ); HALT; ; := GetMaxX; MX03 := ROUND (0.3 * MX); := ROUND (0.9 * MX); := GetMaxY; MY09 := ROUND (0.9 * MY); := ROUND (0.05 * MY); (12); (5, MY09, MX-10, MY09); (MX03, MY005, MX03, MY-9); (5, MY09, 15, MY09-3); (5, MY09, 15, MY09+3); (MX-20, MY09-3, MX-10, MY09); (MX-20, MY09+3, MX-10, MY09); (MX03, MY005, MX03-3, MY005+10); (MX03, MY005, MX03+3, MY005+10); (0, 0, 2); SetColor(14); (MX03-40, MY005, ' Y '); (MX-40, MY09-25, ' X '); (0, 0, 1); SetColor(12); := ROUND(MY09 / 15); := -1.0; Y <= 13.501 do

(Y: 4: 1, ST); := ROUND (MY09 - MSY * Y); (MX03 + 3, A, MX03 - 3, A); (MX03 - 40, A - 3, ST); := Y + 0.5; ; := ROUND(MX09 / 6); := -1.8; X <= 4.401 do (X : 4 : 1, ST); := ROUND(MX03 + MSX * X); (A, MY09 + 3, A, MY09 - 3); (A, MY + 15, ST); := X + 0.2; ; (2); := -1.6; X <= 2.2 do := Myth(X);:= (x*x-z*z); V<=0 then := X + 0.0001 else := ( L/Sqrt(V) ) + x*x; Y<=13 then ( ROUND(MX03 + MSX * X), (MY09 - MSY * Y), 2); := X + 0.0001; ABS(X) < 1E-8 Then X := 0; ; (9); (1, 0, 4); ( ROUND(0.4 * MX), ROUND(0.1 * MY),

'Grafic in Turbo Pascal'); (15); (1,0,4); ( ROUND(0.4 * MX), ROUND(0.2 * MY),

'Proect: Osadchuka S.N.'); (15); (1, 0, 2); (ROUND(0.4*MX),ROUND(0.5*MY), 'Y=Th(X)/Sqrt(x*x+z*z)+x*x'); (9);

(0, 0, 2); ( ROUND(0.4 * MX), ROUND(0.4 * MY), 'Graphik function'); not KeyPressed do; ; .

.4 Результаты ручного iёта при z = 0:

при х = 0 Y=th(x) / - x2 = нет корней;

при х = 1 Y=th(x) / - x2 = 1.76;

при х = 2 Y=th(x) / - x2 = 4.48;

Результаты машинного iёта соответствуют графику(см. рис. 2).

.5 Вывод:

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

Рис.2

2. Программирование операций над матрицами

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

(Atij + Btij )Cik .

2.2 На языке Паскаль для описания массива используют оператор Array1. Например, запись Var A: Array [1..50] of Real указывает на то, что переменная А представляет массив, состоящий из 50 элементов вещественного типа. Запись Var C: Array [1..Imax,1..Ymax] of Integer характеризует переменную С, представляющую матрицу, состоящую из М строк и N столбцов, причём М = Imax и N = Ymax. Каждый элемент матрицы целочисленного типа (Integer).Ввод элементов осуществляется с помощью операторов Read и операторов цикла For. Вывод элементов массива производят операторами - Write, Writeln, For. Блок-схему к программе см. на стр.10-16.

Блок-схема к программе:

Да

Да

Да

Да

Да

Да