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

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

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

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



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











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

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

	на тему

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

	

	

	

	

	Выполнил

	студент группы УД-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('итоги по регионам прибытия грузов');

Sum_strok(n,A);

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

Sum_stolbzov(n,A);

writeln('сумма количества грузов в местном сообщении по всем регионам ',diag(n,A),' тонн');

writeln(f2,' ');

writeln(f2,'сумма количества грузов в местном сообщении по всем регионам ',diag(n,a),'тонн');

{вызов процедуры Min_perevozka }

Sum_po_stolbcam_bez_MC(n,A);

Max_perevozka(n,A);

Umengruz(n,k,A);

Schit(n,A);

writeln(f2,' Таблица грузоперевозок в регионах');

writeln(f2,' (таблица после корректировки объёмов прибытия грузов в пункт - ',Reg[k],')');

vivodvfile(n,A);

Writeln('Работу выполнил Сазановича К.В.');

Writeln(f2, 'Курсовую работу выполнил Сазановича К.В.');

{закрытие файла f2}

close(f2); end.



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



Курсовая работа Сазановича К.В.




Исходная таблица перевозок грузов





Итоги количества грузов прибыло из регионов







Итоги количества грузов отправленных в регионы






сумма количества грузов в местном сообщении по всем регионам 445тонн

Итоги количества грузов прибывших из регионов







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






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



Исходная таблица





При помощи функции “СУММ(ячейка1:ячейка2)” мы высчитали суммы столбцов, суммы столбцов без местного сообщения и суммы строк. Таблица приведена ниже:








Таблица с формулами



При помощи функций “ИНДЕКС”, “ПОИСКПОЗ” и “МАКС” находим следующие значения в расчетах:







Таблица с формулами






После нахождения максимального региона уменьшаем максимальный столбец на 10% и получаем таблицу:



	



Таблица в формулах





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








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







Введем исходную матрицу перевозок







Исходная таблица





Найдем сумму по строкам







Найдем сумму по столбцам











Найдем сумму количества грузов, перевозимого в местном сообщении по всем регионам











Найдем количество груза ввозимого без местного сообщения









Найдем максимальный регион:







Уменьшим максимальный регион на 10%:







Выведем измененную таблицу:





Для того, чтобы не вводить матрицу вручную, а взять из файла используем функцию READPRN(“<путь к файлу>”).

Для нахождения максимального количества грузов в местном сообщении использовалась функция max.


Заключение



Выполнив курсовую работу, я ознакомился с основными типами языка Паскаль, структурой программы, алгоритмами решения, работой с циклическими операторами, массивами, процедурами и т.д. Приобрел навыки в решении задач на языке программирования Паскаль, составлении блок-схем, печати программ, работы в MS Excel, MathСad. Особое внимание в данной курсовой работе уделено операторам языка Паскаль. При помощи этого языка программирования решена задача, при тестировании получены и приведены результаты, которые затем совпали с результатами решения задачи в других приложениях.

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

В программе MathCad научился производить различные операции над матрицами при помощи формул, арифметических выражений и т.д.

В оболочке MS Excel получены навыки по работе с таблицами, формулами, графиками и диаграммами.




Литература



	Борисенко, М.В. Компьютерные информациооные технологии / М.В.Борисенко; М-во образования Респ. Беларусь, Белорус. гос. ун-т трансп. – Гомель: БелГУТ,2008. – 296 с.

	Бородич, Ю.С., Вальвачев, А.Н., Кузьмич, А.И. Паскаль для персональных компьютеров / Бородич, Ю.С., Вальвачев, А.Н., Кузьмич, А.И. – Минск: ВШ, 1991. – 365с.

	Гораев, О.П., Текстовый процессор MS Word: практикум по компьютерным технологиям/ О.П. Гораев.  Гомель : БелГУТ, 2003. – 68 с.

	Гораев, О.П., Лыч Ю.П. Операционная система Windows. Операционные оболочки: практикум по компьютерным технологиям / О.П. Гораев, Ю.П. Лыч.  Гомель : БелГУТ, 2003. – 67 с.

Гораев, О.П., Лыч Ю.П. Электронные таблицы MS Excel: практикум по компьютерным технологиям / О.П. Гораев, Ю.П. Лыч.  Гомель : БелГУТ, 2003. – 67 с.

	Информатика. Базовый курс / под ред. С.В. Симоновича.  СПб. : Питер, 2006.  640 с.

	Комягин, В.Б. Современный самоучитель работы на ПК. Быстрый старт / В. Б. Комякин, А.О. Коцюбинский.  М. : Триумф, 2004.  400 с.

Курбатова, Е.А. Microsoft Excel 2003. Краткое руководство / Е. А. Курбатова. – Издательский дом «Вильямс», 2005. – 288 с.

Леонтьев, В. . Новейшая энциклопедия персонального компьютера / В. П. Леонтьев  М. : ОЛМА-ПРЕСС Образование, 2005.  734 с.

Лыч, Ю.П. Электронные таблицы : учеб. пособие / Ю. П. Лыч. – Гомель: БелГУТ, 2000. – 123 с.

	Максимова, А. П. Информатика : учеб.-практ. курс /А. П. Максимова. – Минск : ТетраСистемс, 2005.  128 с.

	Основы информатики : учеб. пособие / А. Н. Морозевич [и др.] ; под общ. ред. А.Н. Морозевича. – Минск : БГЭУ, 2003 – 560 с.

	Степанов, А. Н. Информатика : учеб. для вузов / А. Н. Степанов. – 4-е изд. – СПб. : Питер, 2005.  684 с.

	Турбо Паскаль 70; Киев : Торгово-издательское бюро,1996.

	Шибут, М.С. Технологии работы с текстами и электронными таблицами (Word, Excel) / М.С. Шибут; под ред. И. Ф. Богдановой. – Минск : Молодёжное научное общество, 2000. – 144 с.

Шушкевич, Г.Ч. Введение в Mathcad 2000 : учеб. пособие / Г. Ч. Шушкевич, С.В. Шушкевич. – Гродно : ГрГУ, 2001. – 140 с.

17 Н.А. Рогачёва, М. В. Борисенко Т. Н. Литвинович «Информатика. Програмирование на языке Паскаль» 1 и 2 часть, Гомель 2004.