Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет транспорта»
Кафедра «Информационные технологии»
Курсовая работа
ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»
на тему
“Применение программных комплексов для решения инженерных задач”
Выполнил
студент группы УД-22 доцент
Сазанович К. В.
Проверил: Иоффе Л. А.
Гомель 2010
Содержание
Введение
Раздел 1. Решение задачи средствами Паскаль
1.1 Алгоритм решения задачи, выданной преподавателем
1.2 Программа решения задачи на языке Паскаль
1.3 Результаты решения задачи
Раздел 2. Решение задачи средствами Microsoft Excel
Раздел 3.Решение задачи в среде MathCAD
Заключение
Литература
Внедрение и широкое использование средств вычислительной техники является одним из главных факторов ускорения научно-технического прогресса в нашей стране. Стремительно возрастает роль ЭВМ в во всех областях человеческой деятельности. Без использования быстродействующих ЭВМ немыслимо решение задач интенсификации экономического развития ведущих отраслей народного хозяйства.
Темпы научно-технического прогресса, усиление роли науки в значительной степени определяются качеством и номенклатурой средств вычислительной техники и их программным обеспечением. Именно развитие этих средств обеспечивает успехи в автоматизации производственных процессов, в разработке новых технологий, в повышении эффективности труда и управления, в совершенствовании системы образования и в ускорении подготовки кадров.
Интенсивное развитие вычислительной техники, ее проникновение во все сферы человеческой деятельности ставит перед специалистами задачу широкого распространения компьютерной грамотности и использования ЭВМ в учебном процессе, в том числе в системе высшего образования.
Широкое и многообразное применение ЭВМ предъявляет все более высокие требования в их программному обеспечению. Разработка программ и программных комплексов приобретает характер индустриального производства. Значение программного обеспечения трудно переоценивать, т.к именно программы определяют и создают «интеллект» компьютера. В то же время процесс создания программ относится к одной из наиболее сложных сфер творческой деятельности человека, требующий больших усилий и специальной технологии разработки.
При составлении программ применяются различные языки программирования, среди которых Pascal занимает особое место. Отражая основные концепции структурного программирования, язык Pascal быстро завоевал популярность среди специалистов.
В данной курсовой работе необходимо научиться решать транспортные задачи средствами Pascal, Ms Excel, MathCad.
Блок-схема процедуры name
Блок-схема процедуры vvod
Блок-схема процедуры sum_strok
Блок-схема процедуры schit
Блок-схема процедуры vivodfie
инженерная задача паскаль excel mathcad
Блок-схема процедуры Sum_po_stolbcam_bez_MC
Блок-схема процедуры Max_perevozka
Блок-схема процедуры Umengruz
Блок-схема процедуры Sum_stolbzov
Блок-схема программы на языке Паскаль
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('итоги по регионам прибытия грузов');