Смекни!
smekni.com

Применение программных комплексов для решения инженерных задач (стр. 1 из 2)

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский государственный университет транспорта»

Кафедра «Информационные технологии»

Курсовая работа

ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»

на тему

“Применение программных комплексов для решения инженерных задач”

Выполнил

студент группы УД-22 доцент

Сазанович К. В.

Проверил: Иоффе Л. А.

Гомель 2010


Содержание

Введение

Раздел 1. Решение задачи средствами Паскаль

1.1 Алгоритм решения задачи, выданной преподавателем

1.2 Программа решения задачи на языке Паскаль

1.3 Результаты решения задачи

Раздел 2. Решение задачи средствами Microsoft Excel

Раздел 3.Решение задачи в среде MathCAD

Заключение

Литература


Введение

Внедрение и широкое использование средств вычислительной техники является одним из главных факторов ускорения научно-технического прогресса в нашей стране. Стремительно возрастает роль ЭВМ в во всех областях человеческой деятельности. Без использования быстродействующих ЭВМ немыслимо решение задач интенсификации экономического развития ведущих отраслей народного хозяйства.

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

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

Широкое и многообразное применение ЭВМ предъявляет все более высокие требования в их программному обеспечению. Разработка программ и программных комплексов приобретает характер индустриального производства. Значение программного обеспечения трудно переоценивать, т.к именно программы определяют и создают «интеллект» компьютера. В то же время процесс создания программ относится к одной из наиболее сложных сфер творческой деятельности человека, требующий больших усилий и специальной технологии разработки.

При составлении программ применяются различные языки программирования, среди которых Pascal занимает особое место. Отражая основные концепции структурного программирования, язык Pascal быстро завоевал популярность среди специалистов.

В данной курсовой работе необходимо научиться решать транспортные задачи средствами Pascal, Ms Excel, MathCad.


Раздел 1. Решение задачи средствами Паскаль

1.1 Алгоритм решения задачи, выданной преподавателем

Блок-схема процедуры name


Блок-схема процедуры vvod


Блок-схема процедуры sum_strok


Блок-схема процедуры schit


Блок-схема процедуры vivodfie

инженерная задача паскаль excel mathcad


Блок-схема процедуры Sum_po_stolbcam_bez_MC


Блок-схема процедуры Max_perevozka


Блок-схема процедуры Umengruz


Блок-схема процедуры Sum_stolbzov


Блок-схема программы на языке Паскаль

1.2 Программа решения задачи на языке Паскаль

Program perevozki;

uses crt;

const n=10;

Type Mas=array[1..n,1..n]of real;

Var i,j,k:byte;

S:real;

A:mas;

f1,f2:text;

sum_po_strokam:array[1..n] of real;

sum_po_stolscam:array[1..n] of real;

sum_po_stolscam_bez_MC:array[1..n] of real;

max:real;

jmax:byte;

imax:byte;

Reg:array[1..n] of string;

Procedure name;

begin

for i:=1 to n do

begin

Writeln('введите название i-региона ');

read(Reg[i]);

end;

end;

{ввод таблицы грузоперевозок в регионах РБ}

Procedure vvod(n:byte; var A:mas);

begin

reset(f1);

for i:=1 to n do

begin

for j:=1 to n do

read(f1,A[i,j]);

readln(f1);

end;

close(f1);

end;

{вывод таблицы грузоперевозок по пунктам в файл f2}

Procedure Vivodvfile(n:byte; A:Mas);

begin

writeln(f2,' _________________________________________________________________');

writeln(f2);

write(f2, ' ');

for i:=1 to n do

write(f2,Reg[i]:7,' ');

writeln(f2);

writeln(f2,' _________________________________________________________________');

for i:=1 to n do

begin

write(f2, Reg[i]:12,' ');

for j:=1 to n do

write(f2,A[i,j]:8:1);

writeln(f2);

end;

writeln(f2,' _________________________________________________________________');

writeln(f2);

end;

{вывод данной программы}

Procedure Schit (n:byte; A:Mas);

begin

write(' ');

for i:=1 to n do

write( reg[i]:10);

writeln;

writeln;

for i:=1 to n do

begin

write(reg[i]:10,' !') ;

for j:=1 to n do

write(A[i,j]:10:1);

write(' !') ;

writeln;

writeln();

end;

end;

{определение количества грузов, перевозимых в местном сообщение в регионах РБ}

Function diag(n:byte; A:Mas):real;

var i,j:byte;s:real;

begin

s:=0;

for i:=1 to n do

s:=s+A[i,i];

diag:=s;

writeln('Cумма количества грузов, перевозимых в местном сообщении по всем регионам равна ', s);

writeln;

end;

{нахождение итогов по регионам вывоза грузов}

Procedure Sum_strok(n:byte;A:Mas);

begin

for j:=1 to n do

sum_po_strokam[i]:=0;

for j:=1 to n do

for i:=1 to n do

sum_po_strokam[j]:=sum_po_strokam[j]+A[i,j];

for i:=1 to n do

writeln(sum_po_strokam[j]:19:1);

writeln();

writeln(f2,'Итоги количества грузов прибыло из регионов');

write(f2,' ');

for j:=1 to n do

write(f2,Reg[j]:7,'/');

writeln();

for j:=1 to n do

write(f2,sum_po_strokam[j]:8:1);

writeln(f2);

end;

{нахождение итогов количества грузов отправленных в регионы}

Procedure Sum_stolbzov(n:byte;A:Mas);

begin

for i:=1 to n do

sum_po_stolscam[i]:=0;

for i:=1 to n do

for j:=1 to n do

sum_po_stolscam[i]:=sum_po_stolscam[i]+A[i,j];

for i:=1 to n do

writeln(sum_po_stolscam[i]:19:1);

writeln();

writeln(f2,'Итоги количества грузов отправленных в регионы ');

write(f2,' ');

for i:=1 to n do

write(f2,Reg[i]:7,'/');

writeln();

for i:=1 to n do

write(f2,sum_po_stolscam[i]:8:1);

writeln(f2);

end;

{Сумма столбцов без местного сообщения}

Procedure Sum_po_stolbcam_bez_MC(n:byte;A:mas);

Begin

for j:=1 to n do

sum_po_stolscam_bez_MC[j]:=sum_po_strokam[j]-A[j,j];

writeln('Сумма по столбцам таблицы без учета грузов, перевозимых в местном сообщении');

for i:=1 to n do

writeln(reg[j]:18, ' ',sum_po_stolscam_bez_MC[j]:8:1);

writeln();

writeln(f2,'Итоги количества грузов прибывших из регионов');

write(f2,' ');

for j:=1 to n do

write(f2,Reg[j]:7,'/');

writeln();

for j:=1 to n do

write(f2,sum_po_stolscam_bez_MC[j]:8:1);

writeln(f2);

end;

{нахождение регионов, между которыми установлена максимальная перевозка груза}

Procedure Max_perevozka(n:byte;A:mas);

begin

max:=sum_po_stolscam_bez_MC[1];

imax:=1;

for i:=1 to n do

if sum_po_stolscam_bez_MC[i]>max then

begin

max:=sum_po_stolscam_bez_MC[i];

imax:=i;

k:=imax;

end;

Writeln('в регионе',' ' , Reg[imax],' установлена минимальная перевозка, которая составляет',' ', max:5:0 ,' ','тонн');

writeln(f2);

writeln (f2,'регионы, между которыми установлена минимальная перевозка груза - ',Reg[imax]);

writeln(f2);

end;

{по региону прибытия минимального груза, все размеры прибытия груза уменьшить на 10%}

Procedure Umengruz(n,k:byte; var A:mas);

begin

for i:=1 to n do

A[i,k]:=(A[i,k])*0.9;

Writeln('------------------------------------------------------------------------------');

writeln('Новый объём груза, прибывшего в регион, ',Reg[k],' будет составлять');

writeln;

end;

{главная программа}

begin

writeln(' к у р с о в а я р а б о т а в а р и а н т - 6 ');

Writeln;

Writeln('Индивидуальное задание:');

Writeln('Определить регионы(исключая местное сообщение)между которыми установлена максимальная перевозка(корреспонденция)груза ');

Writeln('По региону, прибытия данного груза, все размеры прибытия уменьшить на 10%!');

Writeln;

assign(f1,'D:\sazan.txt');

assign(f2,'D:\sazan2.txt');

{открытие файла для записи}

rewrite(f2);

name;

writeln(f2,' Курсовая работа Сазановича К.В.');

{вызов процедуры VVOD заполнения таблицы грузоперевозок в регионах РБ}

vvod(n,A);

{вызов процедуры Schit вывода таблицы грузоперевозок в регионах РБ}

writeln(' исходная таблица перевозок грузов');

writeln;

Schit(n,A);

Writeln(f2, ' исходная таблица перевозок грузов');

vivodvfile(n,A);

Writeln(f2);

Writeln('итоги по регионам прибытия грузов');